问答题
设一个没有设置快表的虚拟页式存储系统,页面大小为100字节。一个仅有460个字节的程序有下述内存访问序列(下标从0开始):10、11、104、170、73、309、185、245、246、434、458、364,为该程序分配有2个可用页帧(Page frame)。试问:
问答题
试叙述缺页中断与一般中断的主要区别?
【正确答案】
【答案解析】缺页中断是一种特殊的中断,它与一般中断的区别是:①在指令执行期间产生和处理中断信号。CPU通常在一条指令执行完后检查是否有中断请求,而缺页中断是在指令执行时间,发现所要访问的指令或数据不在内存时产生和处理的;②一条指令在执行期间可能产生多次缺页中断。如一条读取数据的多字节指令,指令本身跨越两个页面,若指令后一部分所在页面和数据所在页面均不在内存,则该指令的执行至少产生两次缺页中断。
问答题
若分别采用FIFO和LRU算法,试计算访问过程中发生多少次缺页中断?
【正确答案】
【答案解析】每个页面大小为100字节,则页面的访问顺序如下:
10
|
11
|
104
|
170
|
73
|
309
|
185
|
245
|
246
|
434
|
458
|
364
|
0
|
0
|
1
|
1
|
0
|
3
|
1
|
2
|
2
|
4
|
4
|
3
|
采用FIFO算法的页面置换情况如下表,共产生缺页中断6次。
走向
|
0
|
0
|
1
|
1
|
0
|
3
|
1
|
2
|
2
|
4
|
4
|
3
|
块号1
|
0
|
0
|
1
|
1
|
1
|
3
|
3
|
2
|
2
|
4
|
4
|
3
|
块号2
|
|
|
0
|
0
|
0
|
1
|
1
|
3
|
3
|
2
|
2
|
4
|
淘汰
|
|
|
|
|
|
0
|
|
1
|
|
3
|
|
2
|
缺页
|
√
|
|
√
|
|
|
√
|
|
√
|
|
√
|
|
√
|
采用LRU算法的页面置换情况如下表,共产生缺页中断7次。
走向
|
0
|
0
|
1
|
1
|
0
|
3
|
1
|
2
|
2
|
4
|
4
|
3
|
块号1
|
0
|
0
|
1
|
1
|
0
|
3
|
1
|
2
|
2
|
4
|
4
|
3
|
块号2
|
|
|
0
|
0
|
1
|
0
|
3
|
1
|
1
|
2
|
2
|
4
|
淘汰
|
|
|
|
|
|
1
|
0
|
3
|
|
1
|
|
2
|
缺页
|
√
|
|
√
|
|
|
√
|
√
|
√
|
|
√
|
|
√
|
问答题
若一次访存的时间是10ms,平均缺页中断处理时间为25ms,为使该虚拟存系统的平均有效访问时间不大于22ms,则可接受的最大缺页中断率是多少?
【正确答案】
【答案解析】设可接受的最大缺页中断率为ρ。若要访问页面在内存中,一次访问的时间是10ms(访问内存页表)+10ms(访问内存)=20ms。如果不在内存,所花时间为10ms(访问内存页表)+25ms(中断处理)+10ms(访问内存页表)+10ms(访问内存)=55ms。平均有效访问时间:
20ms×(1-ρ)+55ms×ρ≤22ms,得可接受的最大缺页中断率ρ为5.7%。
[解析] 本题考查缺页中断和页面置换算法。