操作系统--课堂问答笔记19--习题答案

课堂笔记学习视频来自 操作系统
说明:其他”课堂问答笔记“也在”操作系统“专栏

【4-5、4-6、4-7】

  1. 简述段页式存储管理方式的特点和优势。
    答:简单说,段页式存储管理就是把用户程序采用外部分段、内部分页的方式装入内存,其结合了分页和分段两种存储管理的优势,对用户来讲,按段的逻辑关系进行划分;对系统讲,按页划分每一段。一个用户程序对应一个段表和若干个页表(有多少个段表项,即用户程序分多少段,那么就有多少个页表),段页式存储管理方式在进行地址变换时需要三次访问内存(引入快表后则可能一次访问高速缓存和一次访问内存)。
    在这里插入图片描述
    优点:保留了分段和请求分页存储管理的全部优点;提供了虚拟存储空间,能更有效利用主存。
    缺点:增加了硬件成本;系统复杂度较大。

  2. 简述局部性原理。
    答:之前介绍的各种存储器管理方式(分区、分页、分段)统称为传统存储器管理方式,它们全都具有如下两个共同的特征:1) 一次性(一次并全部装入内存);2) 驻留性(未执行完则常驻内存)。但程序在执行时将呈现出局部性规律,即在一较短的时间内,程序的执行仅局限于某个部分,相应地,它所访问的存储空间也局限于某个区域。因此程序执行时无需一次并全部装入内存也无需常驻内存,而仅须将那些当前要运行的少数页面或段先装入内存便可运行,其余部分暂留在外存中。
    局部性通常有两种不同的形式:时间局部性和空间局部性。时间局部性:在一个具有良好的时间局部性的程序中,被访问过一次的内存地址空间很可能在不远的将来会被再次访问。空间局部性:在一个具有良好空间局部性的程序中,如果一个内存地址空间被访问了一次,那么程序很可能在不远的将来访问其附近的某一个内存地址空间。
    正是由于局部性原理的存在,使得虚拟存储器技术的实现成为可能。

  3. 虚拟存储器的定义和特征。
    答:定义:虚拟存储器是指具有请求调入功能和置换功能,能从逻辑上对内存容量进行扩充的一种存储器系统。在虚拟存储器系统中,作业无需全部都装入,只要装入一部分就可运行。当用户看到自己的程序能在系统中正常运行时,他会认为,该系统所具有的内存容量一定比自己的程序大,或者说,用户所感觉到的内存容量会比实际内存容量大得多。但用户所看到的大容量只是一种错觉,是虚的,故人们把这样的存储器称为虚拟存储器。
    特征:与传统的存储器管理方式比较,虚拟存储器具有以下三个重要特征:1) 多次性:所需的全部程序和数据要分成多次调入内存;2) 对换性:允许在作业的运行过程中进行换进、换出;3) 虚拟性:能够从逻辑上扩充内存容量,使用户所看到的内存容量远大于实际内存容量。

  4. 在请求分页系统中,页表应包含哪些表项?每项的作用是什么?
    答:如下图:
    在这里插入图片描述
    在请求分页系统中,其页表项中包含的数据项有页号,物理块号,状态位P,访问字段A,修改位M和外存地址;
    页号和物理块号:与基本分页系统中对应页表项含义相同;
    状态位P:指示该页是否调入内存,供程序访问时参考,通常0表示未调入、1表示已调入;
    访问字段A:用于记录本页在一段时间内被访问的次数,或最近已有多长时间未被访问,提供给置换算法在选择换出页面时参考;
    修改位M:表示该页在调入内存后是否被修改过,通常0表示未修改(淘汰该页也就是从内存换出该页时无需替换外存对应页)、1表示已修改(淘汰该页时需要替换外存对应页),提供给置换页面时参考;
    外存地址:用于指出该页在外存上的地址,通常是物理块号(注意是外存的物理块号,页表的第二个表项:物理块号是内存的物理块号),供调入该页时使用(知道在哪调入该页)。

  5. 简述请求分页系统中的三种内存分配策略。
    答:在请求分页时,可采取两种内存分配策略,即固定和可变分配策略。在进行置换时,也可采取两种策略,即全局置换和局部置换。于是可组合出以下三种适用的策略。

  1. 固定分配局部置换(Fixed Allocation,Local Replacement):为每个进程分配一组固定数量的物理块(设为N个页面),进程运行时不再改变(即N值固定不变)。若发生缺页,从分配的N个页面中选出一页换出,从外存调入缺少的那一页,以保证分配给该进程的内存空间不变(N值固定)。
  2. 可变分配全局置换(Variable Allocation,Global Replacement):进程运行时,先为系统中的每个进程分配一定数目的物理块,而OS自身也保持一个空闲物理块队列。当某进程发现缺页时,由系统从空闲物理块队列中取出一个物理块分配给该进程,并将欲调入的(缺)页装入其中。这样,凡产生缺页(中断)的进程,都将获得新的物理块。仅当空闲物理块队列中的物理块用完时,OS才能从内存中选择一页调出,该页可能是系统中任一进程的页,这样,自然又会使那个进程的物理块减少,进而使其缺页率增加。
  3. 可变分配局部置换(Variable Allocation,Local Replacement):这同样是基于进程的类型或根据程序员的要求,为每个进程分配一定数目的物理块,但当某进程发现缺页时,只允许从本身进程在内存的页面中选出一页换出,这样就不会影响其它进程的运行。如果进程在运行中频繁地发生缺页中断,则系统需再为该进程分配若干个附加的物理块,直至该进程的缺页率减少到适当程度为止;反之,若一个进程在运行过程中的缺页率特别低,则此时可适当减少分配给该进程的物理块数,但不应引起其缺页率的明显增加。(即和第二种方式一样,N值不固定)
    总结:全局是指置换页面时,换出的页面可能是内存中的任一进程的页面,局部只能是本进程(就是当前缺页的进程)的页面;固定分配指为一个进程分配的物理块是固定的,可变分配指可根据缺页率调整所分配的物理块数。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章