模拟卷 操作系统 缺页异常 解答题
第 46 题

(7 分)设一个没有设置快表的虚拟页式存储系统,页面大小为 100 字节。一个仅有 460 个字节的程序有下述内存访问序列(下标从 0 开始): 10、11、104、170、73、309、185、245、246、434、458、364。 为该程序分配有 2 个可用页帧(Page frame)。试问:

(1)试叙述缺页中断与一般中断的主要区别? (2)若分别采用 FIFO 和 LRU 算法,试计算访问过程中发生多少次缺页中断? (3)若一次访存的时间是 10ms,平均缺页中断处理时间为 25ms,为使该虚拟存储系统的平均有效访问时间不大于 22ms,则可接受的最大缺页中断率是多少?

缺页异常

[tag_link]

**【解析】** 本题考查缺页中断和页面置换算法。

(1)缺页中断是一种特殊的中断,它与一般中断的区别是: ① 在指令执行期间产生和处理中断信号。CPU 通常在一条指令执行完后检查是否有中断请求,而缺页中断是在指令执行时间,发现所要访问的指令或数据不在内存时产生和处理的; ② 一条指令在执行期间可能产生多次缺页中断。如一条读取数据的多字节指令,指令本身跨越两个页面,若指令后一部分所在页面和数据所在页面均不在内存,则该指令的执行至少产生两次缺页中断。

(2)每个页面大小为 100 字节,则页面的访问顺序如下:

101110417073309185245246434458364
001103122443

采用 FIFO 算法的页面置换情况如下表,共产生缺页中断 6 次。

走向001103122443
块号 1001113322443
块号 20001133224
淘汰0132
缺页

采用 LRU 算法的页面置换情况如下表,共产生缺页中断 7 次。

走向001103122443
块号 1001103122443
块号 20010311224
淘汰103112
缺页

(3)设可接受的最大缺页中断率为 。若要访问页面在内存中,一次访问的时间是 10ms(访问内存页表)+ 10ms(访问内存)= 20ms。如果不在内存,所花时间为 10ms(访问内存页表)+ 25ms(中断处理)+ 10ms(访问内存页表)+ 10ms(访问内存)= 55ms。

平均有效访问时间:

解得可接受的最大缺页中断率 为 5.7%。