计算机操作系统基础笔记( 十 )


访问某页时,还应修改其访问位;对某页如果执行写操作,还应设置修改位为1 。

  1. 确定最小物理块数
    最小物理块数:是指能保证进程正常运行所需的最少物理块 数 。若系统为某进程所分配的物理块数少于此值时,进程将 无法运行 。
  2. 内存分配策略
    固定分配:指为每个进程分配固定物理块数,进程在整个运行期间不变 。局部置换:指进程运行过程中若发生缺页,只能从进程本身所拥有的物理块中选择一页换出,再调入所需页 。全局置换:指若空闲队列已空,而又发生缺页中断时,从内存空间中的任意进程所拥有的物理块中选择一页换出 。固定分配,局部置换可变分配,全局置换可变分配,局部置换
  3. 物理块分配算法
    平均分配算法按比例分配考虑优先权的分配算法(部分)
页面调入策略
  1. 请求调页策略
    缺页中断时,由系统将所缺的页调入内存 。但每次请求 只调入一页 。优点:容易实现 。缺点:对外存I/O次数多,开销较大,容易产生抖动现象 。
  2. 预调页策略
    将预计不久之后会被访问的程序或数据所在的页面,提先调入内存 。缺页中断时,系统为进程装入指定的页面以及与之相临的多个页面 。优点:提高调页的I/O效率 。缺点:若局部性很差,预先装入的很多页面不会很快被引用,并会占用大量的内存空间,反而降低系统的效率 。预调页的成功率仅约50% 。常用于首次调入时,由程序员指出应该先调入的页面 。
外存要分为文件区和对换区 。对换区为取得较快的速度,采用连续分配方式,且对换区所规定盘块较大 。
  1. 系统拥有足够的对换区空间,这时可以全部从对换区调入所需页面,以提高调页的速度 。
  2. 系统缺少足够的对换区空间,这时凡是不会被修改的 文件,都直接从文件区调入;
    而当换出这些页面时,由于它们未被修改而不必再将它 们重写到磁盘(换出),以后再调入时,仍从文件区直 接调入 。但对于那些可能被修改的部分,在将它们换出时,便须 调到对换区,以后需要时,再从对换区调入 。
  3. UNIX方式 。
    由于与进程有关的文件都放在文件区,故凡是未运行 过的页面,都应从文件区调入 。对于曾经运行过但又被换出的页面,由于是被放在对换区,因此在下次调入时,应从对换区调入 。
页面置换算法把未来不再使用的或短期内较少使用的页面调出,通 常只能在局部性原理指导下依据过去的统计数据进行预测 。要避免“抖动”(Thrashing)(又称颠簸)
  1. 最佳置换算法
    选择永不再用或者在最长时间内不再被访问的页面换出 。优点:缺页率最低,性能最好 。缺点:依赖于对将来页面访问序列的了解,因此无法实 现 。所以此算法只是一 个理想的算法,或称为“目标”,只能用来评价其它算法的优劣 。
  2. 先进先出算法
    选择最先进入内存,即在内存中驻留时间最久的页面换出 。优点:实现简单;缺点:不考虑程序的动态性,与进程实际运行的规律不 相适应 。
  3. 最近最久未使用算法
    选择最近一段时间内最久不用的页面予以淘汰 。性能接近最佳算法 。页表的访问字段,用以记录自上次访问以来所经历的时间T 。每次都选择现有页面中T值最大的页面置换 。为了记录页面使用时间的先后关系,引入硬件支持:寄存器,为每个在内存中的页面配置一个移位寄存器,当进程 访问它时,将其寄存器的最高位置1 。且定时信号每隔一 定时间将寄存器右移一位 。具有最小数值的寄存器所对应的页面,就是最近最久未使用的页面 。栈,利用栈保存当前(最近)使用的各个页面页面号 。若栈中有该页号则将其从原位置移出,压入栈顶;若栈中没有该页号且栈满,则将栈底页号对应页置换出,将新页号压入栈顶 。
  4. clock置换算法(轮转算法)
    该算法只考虑某页是否已经使用过,未考虑使用的时间,称为“最近未用算法”当某页被访问时,其访问位被置为1 。置换算法寻找访问位=0的页面作为被置换页 。指针经过的访问位为1的页重新置0,最后指针停留在被置换页的下一个页 。若查找一遍后没有访问位是0的页面,则返队首 。
改进:考虑置换代价 。选择换出页面时,既要是未使用过的页面,又要是未被修改过的页面 。把同时满足两条件的页面作为首选淘汰的页 。


推荐阅读