您的位置:首页 >新闻 >

请求分页式存储管理「可视化请求分页存储管理」

时间:2023-05-16 11:30:44 来源:搜狐

请求分页=分页技术 虚拟存储管理,这个公式可以帮助你理解单纯分页与请求分页的区别。请求分页是操作系统存储管理的主流技术.

(一)请求分页的基本思想

分页存储管理属于单纯分页存储管理。

在单纯分页存储管理系统中,每个进程的地址空间是连续的,而映像到内存空间后就不一定连续。利用这种办法,有效地解决了内存碎片问题,从而更好地支持多道程序设计,提高内存和CPU的利用率。但是,在单纯分页系统中,要求运行的进程必须全部装入内存。例如,一个进程有1000页,在内存中必须占用1000块。就是说,单纯分页系统并未提供虚拟存储器。

请求分页存储管理技术是在单纯分页技术基础上发展起来的,二者根本区别在于请求分页提供虚拟存储器。

请求分页存储管理的基本思想:

当一个进程的部分页面在内存时就可调度它运行;在运行过程中若用到的页面尚未在内存,则把它们动态换入内存。这样,就减少了对换时间和所需内存数量,允许增加程序的道数。由于这种分页存储管理机制中页面是根据请求而被装入的,所以这种存储管理方法叫做请求分页存储管理。

实现机制:为了标示进程的页面是否已在内存,在每个页表项中增加一个标志位,其值为1表示该页已在内存,其内存块可以访问;0表示该页尚未装入内存,不能立即进行访问。如果地址转换机构遇到一个具有0状态的页表项时,便产生一个缺页中断:告诉CPU——当前要访问的这个页面还未装入内存。这不是用户程序的错误。操作系统必须处理这个中断:它装入所要求的页面并相应调整页表的记录,然后再重新启动该指令。

(二)硬件支持及缺页处理

请求分页的硬件支持除了需要一定容量的内存和外存,以及支持分页机制外,还需要有页表机制、缺页中断机构以及地址转换机构。

(1)页表机制

分页系统中地址映射是通过页表实现的。在请求分页系统中,页表项不仅要包含该页在内存的基址,还要含有下列信息:

· 页表的每一项增加一个状态位,用来指示该页面是否在内存中。

· 页表项中还要记载该页面的外存地址,以便在发生缺页情况下,操作系统能很快地在外存上找到该页面,换入内存。

· 在页表中还要增加一些位,用于记录该页的使用情况,如最近被引用过没有,该页的内容在内存中修改过没有等。改变位为1,表示该页已被修改过;引用位用来指示最近对该页访问过没有,这些信息帮助操作系统做出页面替换的决定。

因此,请求分页管理页表的一个表项在逻辑上包含若干数据项,如图所示:

图4-15 典型的页表表项

(2)缺页中断机构

在硬件方面,还要增加对缺页中断进行响应的机构。一旦发现所访问的页面不在内存,能立即产生中断信号,随后转入缺页中断处理程序进行相应处理。

缺页中断的处理过程,是由硬件和软件共同实现的。其相互关系如图所示。

图4-16 指令执行步骤与缺页中断处理过程

(3)具有快表的地址转换机构

新问题:在内存中放置页表将带来存取速度的下降,降低了系统使用效率。

解决方法:采用两级的页表机制。也就是使用专用的、高速小容量的联想存储器,也称作快表,来保存系统中最常用的页表信息,完整的页表信息放入到外存中。

快表的组成:每项包括键号和值两部分,键号是当前进程正在使用的某个页面号,值是该页面所对应的物理块号。

块表的工作过程:当把一个页号交给快表时,它同时和所有的键进行比较。如果找到该页号,该项中的值就是对应的物理块号,并被立即输出,以便形成访内地址。这种查找是非常快的,但硬件成本也很贵。如果没有在快表中找到该页号,就必须访问页表,从中得到相应的块号,用它形成访内地址。同时,把该页号和相应块号填写到快表中,以利于后面使用。如果快表中没有空闲单元,则操作系统必须从快表中选择一项进行置换。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如有侵权行为,请第一时间联系我们修改或删除,多谢。