在页式虚拟存储管理的计算机系统中,运行一个共有8页的作业,且作业在主存中分配到4块主存空间,作业执行时访问页面顺序为7,0,1,2,3,0,4,3,2,3,6,7,3,1,5,7,6,2,6,7。请问用FIFO和LRU调度算法时,它们的缺页中断率分别是多少(交换过程写入下表,缺页中断在表下方打*)
时间: 2023-07-14 21:14:01 浏览: 137
我们可以使用一个大小为4的页框来模拟这个系统的内存。初始时,所有的页框都是空的。
首先,我们来看FIFO算法。FIFO算法会按照页面被调入内存的顺序来调出页面。因此,我们只需要记录每个页面被调入内存的时间,然后按照时间顺序来调出页面。下表展示了FIFO算法的运行过程:
| 访问页面 | 页框状态 | 缺页中断 |
|--------|--------|---------|
| 7 | 7 | * |
| 0 | 7 0 | * |
| 1 | 7 0 1 | * |
| 2 | 7 0 1 2| * |
| 3 | 0 1 2 3| * |
| 0 | 0 1 2 3| |
| 4 | 1 2 3 4| * |
| 3 | 1 2 3 4| |
| 2 | 1 2 3 4| |
| 3 | 1 2 3 4| |
| 6 | 2 3 4 6| * |
| 7 | 3 4 6 7| * |
| 3 | 4 6 7 3| * |
| 1 | 6 7 3 1| * |
| 5 | 7 3 1 5| * |
| 7 | 7 3 1 5| |
| 6 | 7 3 1 6| * |
| 2 | 3 1 6 2| * |
| 6 | 3 1 6 2| |
| 7 | 3 1 6 7| |
在这个过程中,共有8次缺页中断。因此,FIFO算法的缺页中断率为8/20=0.4。
接下来,我们来看LRU算法。LRU算法会将最近最少使用的页面调出内存。因此,我们需要记录每个页面最近一次被访问的时间,然后按照最长时间未被访问的页面来调出页面。下表展示了LRU算法的运行过程:
| 访问页面 | 页框状态 | 缺页中断 |
|--------|--------|---------|
| 7 | 7 | * |
| 0 | 7 0 | * |
| 1 | 7 0 1 | * |
| 2 | 7 0 1 2| * |
| 3 | 0 1 2 3| * |
| 0 | 0 1 2 3| |
| 4 | 1 2 3 4| * |
| 3 | 1 2 3 4| |
| 2 | 1 2 3 4| |
| 3 | 1 2 3 4| |
| 6 | 2 3 4 6| * |
| 7 | 3 4 6 7| * |
| 3 | 4 6 7 3| * |
| 1 | 6 7 3 1| * |
| 5 | 7 3 1 5| * |
| 7 | 3 1 5 7| * |
| 6 | 1 5 7 6| * |
| 2 | 5 7 6 2| * |
| 6 | 5 7 2 6| |
| 7 | 5 2 6 7| * |
在这个过程中,共有10次缺页中断。因此,LRU算法的缺页中断率为10/20=0.5。
因此,FIFO算法的缺页中断率为0.4,LRU算法的缺页中断率为0.5。