在一个请求分页系统中,假定系统分配给一个作业的物理块数为4,并且此作业的页面走向为1,2,3,4, 2,1,5,6,2,1, 2, 3, 7,6, 3, 2, 1,2,3,6。试用Optimal、FIFO和LRU三种算法分别计算出程序访问过程中所发生的缺页次数和缺页率
时间: 2023-10-15 07:08:15 浏览: 218
首先,需要知道每个作业所占用的物理块数,这里是4个物理块,即内存中只能存放4个页面。在计算缺页次数和缺页率时,需要记录每个页面的使用情况及其在内存中的位置。
接下来,分别使用Optimal、FIFO和LRU三种算法计算缺页次数和缺页率:
1. Optimal算法:
首先需要预测未来访问页面的情况,即找出最长时间内不再被访问的页面。根据此算法,计算程序访问过程中所发生的缺页次数和缺页率如下:
| 页面 | 1 | 2 | 3 | 4 | 2 | 1 | 5 | 6 | 2 | 1 | 2 | 3 | 7 | 6 | 3 | 2 | 1 | 2 | 3 | 6 |
| ---- | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - |
| 缺页 | 1 | 1 | 1 | 1 | 2 | 2 | 3 | 4 | 4 | 4 | 4 | 5 | 6 | 7 | 7 | 8 | 9 | 9 | 10| 11|
| 缺页率 | 25% | 25% | 25% | 25% | 50% | 50% | 75% | 100% | 100% | 100% | 100% | 91.67% | 83.33% | 87.5% | 87.5% | 90% | 95% | 95% | 100% | 100% |
2. FIFO算法:
按照页面进入内存的先后顺序进行替换。如果内存已满,则最先进入内存的页面会被替换掉。计算程序访问过程中所发生的缺页次数和缺页率如下:
| 页面 | 1 | 2 | 3 | 4 | 2 | 1 | 5 | 6 | 2 | 1 | 2 | 3 | 7 | 6 | 3 | 2 | 1 | 2 | 3 | 6 |
| ---- | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - |
| 缺页 | 1 | 1 | 1 | 1 | 2 | 2 | 3 | 4 | 4 | 4 | 4 | 5 | 6 | 7 | 7 | 8 | 9 | 9 | 10| 11|
| 缺页率 | 25% | 25% | 25% | 25% | 50% | 50% | 75% | 100% | 100% | 100% | 100% | 91.67% | 83.33% | 87.5% | 87.5% | 90% | 95% | 95% | 100% | 100% |
3. LRU算法:
根据页面最近的使用情况来进行替换。最近使用的页面会被保留在内存中,最久未使用的页面会被替换掉。计算程序访问过程中所发生的缺页次数和缺页率如下:
| 页面 | 1 | 2 | 3 | 4 | 2 | 1 | 5 | 6 | 2 | 1 | 2 | 3 | 7 | 6 | 3 | 2 | 1 | 2 | 3 | 6 |
| ---- | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - |
| 缺页 | 1 | 1 | 1 | 1 | 2 | 2 | 3 | 4 | 4 | 4 | 5 | 5 | 6 | 7 | 7 | 8 | 9 | 9 | 10| 11|
| 缺页率 | 25% | 25% | 25% | 25% | 50% | 50% | 75% | 100% | 100% | 100% | 83.33% | 83.33% | 87.5% | 87.5% | 90% | 95% | 95% | 100% | 100% |
综上所述,三种算法计算出的缺页次数和缺页率都是相同的,即缺页次数为11,缺页率为100%。这是因为作业需要的物理块数为4,而程序访问过程中的页面数超过了4个,所以必然会发生缺页,无论采用哪种算法。
阅读全文