-
内存
1.(虚拟内存,非物理内存)
由处理器位数决定(eg:32位 2的32次方大的虚拟内存)
每一个进程都有2的32次方大的虚拟内存:其中包括1个G的内核空间,3个G的用户空间
用户空间运行用户启动的进程
用户空间内存放的包括:1.环境变量命令行参数 2. 栈 3.共享内存映射区 4.堆(malloc申请的空间) 5.数据段(存放全局变量) 6.代码段
数据段:
静态存储区(全局变量、静态变量(全局和局部)):
1.初始化区: 用“=”赋了初值的变量 2.未初始化区(bss):未赋初值的变量
常量区:
2.(物理内存,数据实际存放的地方)
将虚拟地址转换为物理地址通过CPU中的MMU部件(内存管理单元);
为什么要通过虚拟内存来访问物理内存:为了保护系统安全;
3.辅存(交换内存)
临时存放物理内存不常使用的数据 ——换出(换入)(以页为单位)
在硬盘上临时开辟的内存;
4.虚拟内存寻址
处理器--虚拟地址--MMU--物理地址--物理内存-(辅存)
-
进程隔离
保护独立的进程,防止互相干涉数据和存储空间
-
自动分配和管理(利用malloc函数)
动态地分配,分配对程序员是透明的
-
支持模板化的程序设计
能够定义程序模块,并且动态的创建、销毁模块、改变模块大小
-
保护和访问控制
允许一部分内存可以由各种用户以各种方式进行访问
-
长期存储
关机后长时间保存信息
段页式内存管理
- 进程在虚拟内存中分为代码段、数据段和堆栈段
- 进程在段中有许多固定大小的块组成,这些块成为页
- 虚拟地址由段号、页号和页中偏移量构成
- 虚拟地址和贮存中实地址(物理地址)的动态映射以页为单位(通常为4k)
- 缺页
消除了进程全部载入内存中
按需调页(换页)--换入到辅存