分页、分段、段页式

[TOC]

分页

传统存储管理方式:操作系统引入了虚拟内存的概念,利用计算机的空间局部性和时间局部性原理,将程序分的一部分装入内存运行,其余部分留在外存,等需要的时候再讲外存的程序装入内存继续运行。

虚拟内存实现方式:请求分页,请求分段,请求段页式存储管理。请求分页存储管理中,将虚拟地址内存空间划分为大小相等的页块,同时内存地址空间,也划分为等大小的页块。系统维持一个页表,存储这虚拟页号到物理快块号的映射。程序中的逻辑地址由两部分组成:页号P和页内位移量W。块号*块大小加上页内偏移得到物理地址。

如果程序执行时,调用到不再内存中的虚拟页面时,发生缺页中断,将页由外存调入内存。如果内存已满,采用页面置换算法将老的淘汰,载入新的。页面置换算法常见的有FIFO,LRU。

img

优点:没有外碎片,每个内碎片不超过页的大小。

缺点:程序全部装入内存,要求有相应的硬件支持,如地址变换机构缺页中断的产生和选择淘汰页面等都要求有相应的硬件支持。增加了机器成本和系统开销。

分段

请求分段存储管理:将用户程序地址空间分成若干个大小不等的段,每段能够定义一组相对完整的逻辑信息。存储分配时,以段为单位,段内地址连续,段间不连续。虚拟地址由段号和段内地址组成,虚拟地址到实存地址的变换通过段表来实现。 分页对程序猿而言是不可见的。而分段通常对程序猿而言是可见的,因而分段为组织程序和数据提供了方便。段页式存储组织是分段式和分页式结合的存储组织方法。这样可充分利用分段管理和分页管理的长处。

img

优点:可以分别编写和编译,可以针对不同类型的段采取不同的保护,可以按段为单位来进行共享,包括通过动态链接进行代码共享。

缺点:会产生碎片。

段页式?

程序的地址空间划分成多个拥有独立地址空间的段,每个段上的地址空间划分成大小相同的页。这样既拥有分段系统

的共享和保护,又拥有分页系统的虚拟内存功能。

img