内存管理:分页,分段,段页结合
进程如何使用内存 进程是操作系统资源分配的最小单元。操作系统分配给进程的内存空间中包含五种段:数据段、代码段、BSS、堆、栈。 数据段 :存放程序中的静态变量和已初始化且不为零的全局变量。 代码段 :存放可执行文件的操作指令,代码段是只读的,不可进行写操作。这部分的区域在运行前已知其大小。 BSS段 ( Block Started By Symbol):存放未初始化的全局变量,在变量使用前由运行时初始化为零。 堆 :存放进程运行中被动态分配的内存,其大小不固定。 栈 :存放程序中的临时的局部变量和函数的参数值。 内存区域中以上五个段的组织形式: 逻辑地址、相对地址与物理地址 逻辑地址 : 与当前数据在内存中的物理分配地址无关的访问地址,在执行对内存的访问之前必须转化为物理地址。 相对地址 : 特殊的逻辑地址,相对于某些已知点的存储单元。 物理地址 :数据在主存中的实际位置 内存管理技术 几种内存管理技术整理 技术 简要说明 优点 缺点 固定分区 主存被分为很多大小固定的分区,进程可以装载到大于等于自身大小的分区。 实现简单 1. 有内部碎片 2. 活动进程的数目是固定的 动态分区 分区是被动态创建的,进程可以装载到正好等于自身大小的分区。 没有内部碎片,内存使用更完全 有外部碎片,需要压缩外部碎片 简单分页 主存被分为很多大小相同的帧,进程被分为很多与帧大小相同的页。要装入一个进程