,大小可在运行时确定,适应不同数据结构的和算法的需求;
空间较大:一般来说,堆区的空间比栈区的空间更大,因为它是随机开辟的,并不像栈区地址都是连续的,所以空间更大,方便使用;
管理复杂:需要程序员手动管理内存分配和释放...,因为代码段是可读的,不会发生写实拷贝;所以代码段时是共享的;
3.固定性:这个说的是代码段的大小在程序编译链接时就已经确定,程序中的指令和常量数量固定,决定了代码段的大小;
二,fork的遗留问题...其实这个权限是在页表中,当通过虚拟地址访问物理地址时,会通过页表转化并检查权限,如果没有权限就会被拦截;
三,什么是进程地址空间
我们知道要管理一个对象的方法是-->先描述在组织;
所谓进程地址空间,...本质上其实就是一个内核数据结构,和PCB一样,地址空间也是需要被操作系统管理的:先描述再组织。 而每一个进程都有自己的进程地址空间,PCB内部有一个指针指向这块空间!...,就会触发写实拷贝机制,重新开辟一块空间,存储新的数据,并且修改页表映射;
4.2进程地址是如何被切换的
进程PCB结构体里有对应的进程地址空间指针,所以进程切换就以为这进程空间地址空间被切换,