页面调入策略

2020年7月22日 8点热度 0条评论 来源: Caramel_biscuit

何时调入页面

  1. 预调页策略
    如果进程的许多页是存放在外存的一个连续区域中,一次调入若干的相邻的页会比依次调入一页更高效。但如果调入的一批页中的大多数都未被访问,则又是低效的。
    将那些预计在不久之后便会被访问的页面预先调入内存
  2. 请求调页策略
    当进程在运行中需要访问某部分程序和数据时,发现其所在的页面不在内存,便立即提出请求,由OS将所需的页面调入内存,这种策略每次仅调入一页

从何处调入页面

请求分页系统中的外存分为两部分:用于存放文件的文件区和用于存放对换页面的对换区。
对换区采用连续分配,文件区采用离散分配
所以对换区的数据存取比文件区的速度快
所以每当发生缺页请求,系统从何处缺页调入内存有三种情况:

  1. 系统拥有足够的对换区空间,这时可以全部从对换区调入所需的页面,以提高调页速率。为此,在进程运行前,要把与该进程有关的文件从文件区拷贝到对换区
  2. 系统缺少足够的对换区空间,这时凡是不会被修改的文件,都直接从文件区调入,而当换出这些页面时,因为它们未被修改,不用再将它们重新写回崔攀。对于可能被修改的部分,在将它们换出时,必须调入对换区。
  3. UNIX方式

页面调入过程

每当程序所要访问的页面未在内存(存在位为:“0”),便向CPU发出一缺页中断,中断处理程序首先保留CPU环境,分析中断原因后转入缺页中断处理程序。该程序通过查找页表得到该页在外存的物理块后,如果此时内存能容纳新页,则启动磁盘I/O,将该页调入内存,然后修改页表。如果内存满了,按照某种置换算法,从内存中选出一页换出,若该页未被修改过(修改位为“0”),可不必再写回磁盘,否则必须把它写回磁盘,再把所需的页面调入内存,并修改页表中对应的页表项,置存在位为“1”,并将此页表项写入快表。

缺页率

假设一个进程的逻辑空间为n页,系统为其分配的内存物理块数为m(m<=n),
如果在进程的运行过程中,访问页面成功的次数为S,访问页面失败的次数为F,则该进程总的页面访问次数为A=S+F,缺页率f = F/A
影响缺页率的因素:

  1. 页面大小。页面划分较大,则缺页率较低
  2. 进程所分配的物理块数。所分配的物理块数越多,缺页率越低
  3. 页面置换算法。算法的优劣决定了进程执行过程中缺页中断的次数
  4. 程序固有特性。程序编制的局部化程度越高,缺页率越低
    原文作者:Caramel_biscuit
    原文地址: https://blog.csdn.net/Caramel_biscuit/article/details/107504034
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。