进程管理 一.基础知识 1.内存空间分为:线性空间和物理空间 线性空间:内存被划分成页框,固定的存储空间 虚拟内存 指令、数据、堆区、栈区 常驻内存 系统的指定和数据 2.进程上下文切换:进程的切换,保存将要退出的进程的现场,装载下一个要运行的进程 进程的属性: 进程号 内存空间 启动用户 父进程 ...
分类:
系统相关 时间:
2016-07-04 22:12:39
阅读次数:
300
二.内存管理 mmap/munmap brk/sbrk malloc/free/calloc/realloc new/new[]/delete/delete[] STL内存管理Allocator 智能指针 1.认识各种不同的内存 代码区 全局区 局部区 堆区 实验1: 直观查看各个内存段。 /pro ...
分类:
其他好文 时间:
2016-07-01 06:34:45
阅读次数:
274
首先创建一个进程有两种做法,fork()和execve()他们都是系统调用,但是运行方式不同。创建一个进程可以使用fork系统调用,然后子进程会得到父进程的数据段,栈段和堆区的一份拷贝,子进程可以独立修改这些内存段,但是文本段是父进程和子进程的共享段,子进程不能修改;如果使..
分类:
系统相关 时间:
2016-06-28 08:15:27
阅读次数:
227
一、什么是类的加载
类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构。类的加载的最终产品是位于堆区中的Class对象,Class对象封装了类在方法区内的数据结构,并且向Java程序员提供了访问方法区内的数据结构的接口。
类加载器并不需要等到某个类被“首...
分类:
编程语言 时间:
2016-06-24 15:40:46
阅读次数:
213
1,昨天的作业题经典C语言题型1将全局区二维字符拷贝到堆中2将栈区二维字符拷贝到堆中3合并栈区与全局区的二维字符数组4把数组排序5打印堆区的二维数组6释放堆空间chunli@Linux:~/high$catmain.c
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
/..
分类:
其他好文 时间:
2016-06-21 20:58:41
阅读次数:
151
堆区:NSString *str = [[NSString alloc] initWithFormat:@"不可变"];//其中有汉字,是unicode,所以在堆区 常量区:NSString *str = [[NSString alloc] initWithFormat:@"123abc"];//纯 ...
分类:
其他好文 时间:
2016-06-16 17:53:05
阅读次数:
233
一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。 ...
分类:
其他好文 时间:
2016-06-11 14:23:00
阅读次数:
155
1:互斥锁,只有一个线程进行(例如:读写)操作 2.栈区上面的对象随时可能销毁,ARC下block会自动保存到堆区 //NSGlobalBlock全局区(未使用局部变量) // void (^task)() = ^{ // NSLog(@"task"); // }; // NSLog(@"%@",t ...
分类:
编程语言 时间:
2016-06-11 11:44:42
阅读次数:
258
一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。 ...
分类:
其他好文 时间:
2016-06-10 17:47:45
阅读次数:
133
栈区 1、从高地址向低地址分配; 2、存储局部变量,函数结束立即释放。 堆区 1、从低地址向高地址分配; 2、允许程序员手动向堆区申请空间,用完需手动释放。常用函数:malloc(申请) calloc(申请) realloc(扩容) free(释放) 3、对象也是在堆区存储的。 BSS段 存储未初始 ...
分类:
其他好文 时间:
2016-06-08 15:18:19
阅读次数:
150