《操作系统--精髓与设计原理》第八章复习题

第八章    虚拟内存

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

简单分页:进程运行时,它的所有页必须都在内存中,除非使用了覆盖技术

虚拟分页:进程运行时,并非所有页都须在内存页框中。仅在需要时才读入页(把一页读入内存可能需要把另一页写出到磁盘)

二、什么是抖动?

虚拟内存结构的抖动现象是指处理器运行时的大部分时间都用来交换块(页/段)而非执行指令。(例如:如果一块正好在将要用到之前换出,操作系统就不得不很快地把它取回。这类操作就会导致系统抖动(thrashing)

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

可以根据局部性原理设计算法来避免抖动。总的来说,局部性原理允许算法预测哪一个当前页在最近的未来是最少可能被使用的,并由此来决定候选的将来被替换出去的块。

四、哪些元素是页表项(PTE)中能找到的典型元素?简单定义每个元素。

  1. 帧号(页框号):用来表示主存中的页框与磁盘或进程中的页相对应的按顺序排列的号码。
  2. 存在位(P):表示所对应的页当前是否在内存中。若这一位表示该页在内存中,则这个页表项还包括该页的页框号。(P = 1, 页在内存中;P = 0, 页不在内存中)
  3. 修改位(M):表示所对应的页的内容从上次装入内存到现在是否已改变。若未改变,则在需要把该页换出时,无须用页框中的内容更新该页。(M = 1, 此页装入内存后被修改过,也就是脏页; M = 0, 此页未被修改过)

五、转换检测缓冲区(Translation Lookaside Buffer)的目的是什么?

转换检测缓冲区(TLB)是一个包含最近经常被使用过的页表项的高速缓冲存储器。它的目的是为了克服原则上每次虚存访问都可能会引起两次物理内存访问(一次取相应的页表项,另一次取需要的数据)的问题,减少从磁盘中恢复一个页表项所需的时间。

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

请求分页(demanding paging):只有当访问到某页中的一个单元时才将该页取入内存。若内存管理的其他策略比较合适,将发生下述情况:当一个进程首次启动时,会在一段时间出现大量的缺页中断;取入越来越多的页后,局部性原理表明大多数将来访问的页都是最近读取的页。因此,在一段时间后错误会逐渐减少,缺页中断的数量会降到很低。

预先分页(prepaging):读取的页并不是缺页中断请求的页。预先分页利用了大多数辅存设备(如磁盘)的特性,这些设备有寻道时间和合理的延迟。若一个进程的页连续存储在辅存中,则一次读取许多连续的页要比隔一段时间读取一页有效。当然,若大多数额外读取的页未引用到,则这个策略是低效的。

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

驻留集管理主要关注以下的两个问题:1、给每个活动进程分配多少页帧,即决定给特定的进程分配多大的内存空间,是采用固定分配策略(fixed-allocation)还是可变分配策略(variable-allocation);2、被考虑替换的页集是仅限在产生缺页中断的进程的驻留集中选择还是在主存中所有的页帧中选择(是局部范围还是全局范围)

页面置换策略是当内存中的所有页框都被占据的情况下,且需要读取一个新页以处理一次缺页中断时,置换策略决定置换当前内存(在考虑的页集中)中的哪一页。

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

时钟算法与FIFO类似,唯一不同的是,在时钟策略中会跳过使用位为1的页框。

九、页缓冲实现什么功能?

页缓冲的置换策略不丢弃置换出的页,而是将它分配到以下两个表之一中:若该页未被修改,则分配到空闲页表链中;若已被修改,则分配到修改页链表中(该页在内存中并不会物理性移动,移动的只是该页所对应的页表项,移动后的页表项放置在空闲页链表中或修改链表中)

  1. 被置换的页仍然留在内存中,若进程访问该页,则可迅速返回该进程的驻留集,且代价很小,减少了一次磁盘读写。
  2. 已修改的页按簇写回,而不是一次只写一页,因此大大减少了I/O操作的数量,进而减少了磁盘访问时间。

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

固定分配策略要求分配给一个进程的页框数是固定的,当一个进程中取入一个新的页时,从分配给该进程的页框中选择被置换的页,这个进程驻留页集中的一页必须被替换出来(保持分配的帧的数目不变),这是一种局部替换策略。

十一、驻留集和工作集有何区别?

一个进程的驻留集是指当前内存中的属于这个进程的页集,也进程执行的任何时候都在内存中的部分。

一个进程的工作集是指这个进程在以某个时刻为基点的过去的某几个虚拟时间单位中被访问的页集。

十二、请求式清除和预约式清除有何区别?

请求式清除(demand cleaning):是指当一页被选择用于置换时才被写回辅存;

预约式清除(precleaning):将这些已修改的多个页在需要使用它们所占据的页框之前成批写回辅存。

猜你喜欢

转载自blog.csdn.net/qq_36414798/article/details/80688558