问答题
设一个没有设置快表的虚拟页式存储系统,页面大小为100B。一个仅有460B的程序有下述内存访问序列(下标从0开始):10、11、104、170、73、309、185、245、246、434、358、364,为该程序分配有两个可用页帧(Page
frame)。
问答题
试叙述缺页中断与一般中断的主要区别。
【正确答案】缺页中断是一种特殊的中断,它与一般中断的区别是:①在指令执行期间产生和处理中断信号,CPU通常在一条指令执行完后检查是否有中断请求;而缺页中断是在指令执行期间,发现所要访问的指令或数据不在内存时产生和处理的。②一条指令在执行期间可能产生多次缺页中断。如一条读取数据的多字节指令,指令本身跨越两个页面,若指令后一部分所在页面和数据所在页面均不在内存,则该指令的执行至少产生两次缺页中断。
【答案解析】
问答题
若分别采用FIFO和LRU算法,试计算访问过程中发生缺页中断的次数。
【正确答案】每个页面大小为100B,则页面的访问顺序见表1。
{{B}}表1 页面的访问顺序{{/B}}
|
| 10 |
11 |
104 |
170 |
73 |
309 |
185 |
245 |
246 |
434 |
358 |
364 |
| 0 |
0 |
1 |
1 |
0 |
3 |
1 |
2 |
2 |
4 |
4 |
3 |
采用FIFO算法的页面置换情况见表2,共产生缺页中断6次。
{{B}}表2 采用FIFO算法的页面置换情况{{/B}}
|
| 走向 |
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算法的页面置换情况见表3,共产生缺页中断7次。
{{B}}表3 采用LRU算法的页面置换情况{{/B}}
|
| 走向 |
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%。
【答案解析】