目录
请求分页的硬件支持
1.页表机制
2.缺页中断机构
3.地址变换机构
请求分页中的内存分配
1.最小物理块数的确定
2.内存分配策略
3.物理块分配算法(采用固定分配策略时)
页面调度策略
1.何时调入页面
2.从何处调入页面
3.页面调入过程
请求分页的硬件支持
内存、外存、页表机制、缺页中断机构、地址变换机构
1.页表机制
在请求分页系统中所需要的主要数据结构是页表。为支持请求分页,须在页表中再增加若干项,供程序(数据)在换进、换出时参考。在请求分页系统中的每个页表项如下所示:
现对其中各字段说明如下:
(1) 状态位P:用于指示该页是否已调入内存,供程序访问时参考。
(2)访问字段A:用于记录本页在一段时间内被访问的次数,或记录本页最近已有多长时间未被访问,供选择换出页面时参考。
(3)修改位M:表示该页在调入内存后是否被修改过,供置换页面时参考。
(4)外存地址:用于指出该页在外存上的地址,通常是物理块号,供调入该页时参考。
2.缺页中断机构
在请求分页系统中的缺页中断与一般中断区别,主要表现在下面两个方面:
(1) 在指令执行期间产生和处理中断信号。
(2)一条指令在执行期间,可能产生多次缺页中断。
在图中示出的例子,可能要产生6次缺页中断。
3.地址变换机构
请求分页中的地址变换过程
请求分页中的内存分配
1.最小物理块数的确定
这里所说的最小物理块数,是指能保证进程正常运行所需的最小物理块数。当系统为进程分配的物理块数少于此值时,进程将无法运行。
2.内存分配策略
1)内存分配策略
- 固定分配是指为每个进程分配一固定页数的内存空间,在整个运行期间都不再改变。
- 可变分配:是指一个进程所拥有的物理块数是不定的,这种分配方式称之为可变分配。
2)页面置换方式
- 全局置换:页面淘汰可以在整个内存空间范围内进行。
- 局部置换:只在一个进程空间范围内考虑。
由内存分配策略和页面置换方式的不同,可以组合出以下四种策略:
- 固定分配局部置换
- 固定分配全局置换 不可能
- 可变分配局部置换
- 可变分配全局置换
3.物理块分配算法(采用固定分配策略时)
1)平均分配算法
这是将系统中所有可供分配的物理块平均分配给各个进程。
2)按比例分配算法
这是根据进程的大小按比例分配物理块的算法。如果系统中共有n个进程,每个进程的页面数为Si,则系统中各进程页面数的总和为:
又假定系统中可用的物理块总数为m,则每个进程所能分到的物理块数为bi,将有:应该取整,它必须大于最小物理块数。
3)考虑优先权的分配算法
通常采取的方法是把内存中可供分配的所有物理块分成两部分:①一部分按比例地分配给各进程;②另一部分则根据各进程的优先权,适当地增加其相应份额后,分配给各进程。在有的系统中,如重要的实时控制系统,则可能是完全按优先权来为各进程分配其物理块的。
页面调度策略
1.何时调入页面
1)预调页策略可采用一种以预测为基础的预调页策略,将那些预计在不久之后便会被访问的页面预先调入内存。如果预测较准确,那么,这种策略显然是很有吸引力的。
2)请求调页策略当进程在运行中需要访问某部分程序和数据时,若发现其所在的页面不在内存,便立即提出请求,由OS将其所需页面调入内存。
2.从何处调入页面
在请求分页系统中的外存分为两部分:①用于存放文件的文件区和②用于存放对换页面的对换区。通常,由于对换区是采用连续分配方式,而文件区是采用离散分配方式,故对换区的磁盘I/0速度比文件区的高。这样,每当发生缺页请求时,系统应从何处将缺页调入内存,可分成如下三种情况:
(1)从交换区调入
系统拥有足够的对换区空间,这时可以全部从对换区调入所需页面,以提高调页速度。为此,在进程运行前,便须将与该进程有关的文件从文件区拷贝到对换区
(2)从交换区及文件区调入
系统缺少足够的对换区空间,这时凡是不会被修改的文件都直接从文件区调入;而当换出这些页面时,由于它们未被修改而不必再将它们换出,以后再调入时,仍从文件区直接调入。但对于那些可能被修改的部分,在将它们换出时,便须调到对换区,以后需要时,再从对换区调入。
(3)UNIX方式
由于与进程有关的文件都放在文件区,故凡是未运行过的页面,都应从文件区调入。而对于曾经运行过但又被换出的页面,由于是被放在对换区,因此在下次调入时,应从对换区调入。
3.页面调入过程
4.缺页率
假设一个进程的逻辑空间为n页,系统为其分配的内存物理块数为m(m≤n)。如果在进程的运行过程中,访问页面成功(即所访问页面在内存中)的次数为S,访问页面失败(即所访问页面不在内存中,需要从外存调入)的次数为F,则该进程总的页面访问次数为A=S+F,那么该进程在其运行过程中的缺页率即为:
影响缺页率的因素:
- 页面大小
- 进程所分配物理块的数目
- 页面置换算法
- 程序固有特性