操作系统--精髓与设计原理(第八版)第八章复习题答案

8.操作系统--精髓与设计原理(第八版)第八章复习题答案

8.1 简单分页与虚拟内存分页有何区别?

​ 进程运行时,简单分页的所有页必须都在内存中,除非使用了覆盖技术,虚存分页并非所有页都须在内存页框中,仅在需要时才读入页,把一页读入内存可能需要把另一页写出到磁盘。

8.2 什么是抖动?

​ 当操作系统读取一块内存时,它必须把另一块换出。 如果一块正好在将要用到之前换出,操作系统就不得不很快地把它取回。这类操作通常会导致一种称为系统抖动( thrashing)的情况。这样会使处理器的大部分时间都用于交换块而非执行指令。

8.3 为何在使用虚拟内存时,局部性原理至关重要?

​ 局部性原理描述了一个进程中程序和数据引用的集簇倾向。因此,假设在很短的时间内仅需要进程的一部分块是合理的。同时,还可以对将来可能会访问的块进行猜测,从而避免系统抖动。局部性原理表明虚拟内存方案是可行的。

8.4 哪些元素是页表项中能找到的典型元素?简单定义每个元素。

  • 页号: 虚拟地址的页号部分。
  • 进程标志符:使用该页的进程。页号和进程标志符共同标志-个特定进程的虚拟地址空间的一页。
  • 控制位: 该域包含一些标记, 比如有效、访问和修改,以及保护和锁定信息。
  • 链指针: 若某项没有链项,则该域为空(或用一个单独的位来表示)。否则,该域包含链中下一项的索引值(0~2^m -1之间的数字)。

8.5 转换检测缓冲区的目的是什么?

​ 原则上,每次虚存访问都可能会引起两次物理内存访问:一次取相应的页表项,另一次取需要的数据。因此,简单的虚拟内存方案会导致内存访问时间加倍。为克服这个问题,大多数虚拟内存方案都为页表项使用了一个特殊的高速缓存,通常称为转换检测缓冲区(TranslationLookaside Buffer, TLB)。

8.6 简单定义两种可供选择的页面读取策略。

  • 请求分页,只有当访问到某页中的一个单元时才将该页取入内存。若内存管理的其他策略比较合适,将发生下述情况:当一个进程首次启动时,会在一段时间出现大量的缺页中断:取入越来越多的页后,局部性原理表明大多数将来访问的页都是最近读取的页。因此,在一段时间后错误会逐渐减少,缺页中断的数量会降到很低。
  • 预先分页,读取的页并不是缺页中断请求的页。预先分页利用了大多数辅存设备(如磁盘)的特性,这些设备有寻道时间和合理的延迟。若一 个进程的页连续存储在辅存中,则一次读取许多连续的页要比隔一段时间读取一 页有效。 当然,若大多数额外读取的页未引用到,则这个策略是低效的。

8.7 驻留集管理和页面置换策略有何区别?

驻留集管理的概念为:
(1)给每个活动进程分配多少页框。
(2)计划置换的页集是局限于那些缺页中断的进程,还是局限于所有页框都在内存中的进程。
置换策略的概念为:在计划置换的页集中,选择换出哪一页。

8.8 FIFO 和时钟页面置换算法有何联系?

​ 最简单的时钟策略需要给每个页框关联一个称为使用位的附加位。FIFO和时钟页面置换算法都会扫描缓冲区,FIFO直接置换出最老的页,而在时钟策略中会跳过使用位为1的页框。

8.9 页缓冲实现什么功能?

​ 为提升性能,不丢弃置换出的页,被置换出的页任然驻留在内存中。因此,若进程访问该页,则可迅速返回该进程的驻留集,且代价很小。

8.10 为什么不能把全局置换策略和固定分配策略组合起来?

​ 因为固定分配策略下,驻留集的大小是固定不变的,从内存中移出的一页必须由同一个进程的另一页置换。

8.11 驻留集和工作集有何区别?

​ 驻留集表示进程在内存中的页集,工作集表示进程在过去的一段时间中被访问到的页集。

8.12 请求式清除和预约式清除有何区别?

  • 请求式清除(demand cleaning),只有当一页被选择用于置换时才被写回辅存;
  • 预约式清除(precleaning) 策略则将这些已修改的多页在需要使用它们所占据的页框之前成批写回辅存。
posted @ 2021-01-26 16:31  浩楠honer  阅读(2217)  评论(0编辑  收藏  举报