6.6 段页式存储管理
6.6.1 段页式存储管理的基本思想
引入段页式管理的目的
为了获得分段在逻辑上的优点和分页在管理存储空间方面的优点。
引入段页式管理的目的
(1)用分段方法来分配和管理虚拟存储器。把作业的地址空间分成若干段,而每一段有自己的段名,把每一段分成若干页。
(2)用分页方法来分配和管理实存。即把整个主存分成大小相等的存储块,可装入作业的任何一页。
图6_29 地址空间图
(3)逻辑地址结构。一个逻辑地址用三个参数表示:段号S;页号P;页内地址d。这种地址结构如图6_30所示.
图6_30 逻辑地址结构
(4)段表、页表、段表地址寄存器。为了进行地址转换,系统为每个作业建立一个段表,并且要为该作业段表中的每一个段建立一个页表。系统中有一个段表地址寄存器来指出作业的段表起始地址和段表长度。其关系见图6-31
图6_31 地址转换示意图
6.6.2 地址变换过程
图6_32 慢速地址转换过程
若运行进程访问虚地址v=(s,p,d),在没有联想寄存器的情况下,地址变换过程如下:
(1)由段表控制寄存器确定段表在主存中的位置。
(2)将虚地址中的段号和控制寄存器中的段表大小比较,以确保其访问的有效性。
(3)硬件地址转换机构根据虚地址中的段号S,得到欲访问段在该作业的段表中的表目。并验证存取权限,然后,检查分段存在标识(判状态位),如果访问的段在主存,则通过段表找到该段的页表存放地址,再根据虚地址中的页号P查页表,找到该页所对应的内存块号与虚地址中的页内地址d相加形成物理地址;若访问的分段不在主存,则由硬件产生缺段中断。操作系统对缺页中断响应后,必须重新构造其页表,并装入一页或多个所需的页面。
段页式地址转换需要访问主存次数
要是段表和页表全在主存的话,那么,要得到访问主存的物理地址,就需要访问主存两次。一次是访问段表,以段号为索引找到页表所在位置。另一次是访问页表,以页号为索引找到该页所在的存储块号。然后,把存储块号和虚地址中的位移量相加形成所需要访问的主存单元物理地址。
6.6.3 段页式存储管理的优缺点
优点
(1)它提供了大量的虚拟存储空间。
(2)能有效地利用主存,为组织多道程序运行提供了方便。
缺点
(1)增加了硬件成本、系统的复杂性和管理上的开消。
(2)存在着系统发生抖动的危险。
(3)存在着内碎片。
(4)还有各种表格要占用主存空间。
段页式存储管理技术对当前的大、中型计算机系统来说,算是最通用、最灵活的一种方案。
http://blog.csdn.net/xiucaijiang/article/details/6818359