用Java模拟页面置换算法LRU,一个作业的页面序号走向为 4, 3, 2, 1, 4, 3, 5, 4, 3, 2, 1, 5,3,1,2,4目前还没有任何页装入内存,当分配给该作业的物理块数目 M 为3和4 时,计算采用 LRU 页面淘汰算法时访问过程中所发生的缺页次数和缺页率
时间: 2023-12-06 15:42:10 浏览: 79
操作系统-LRU页面置换算法模拟.doc
LRU页面置换算法的思想是:每次淘汰最近最少使用的页面。具体实现可以维护一个链表,每次访问页面时将其移到链表头部,当需要淘汰页面时,选择链表尾部的页面进行淘汰。
对于该作业的页面序号走向,根据LRU算法,我们可以模拟出物理块数目为3和4时的缺页次数和缺页率如下:
M=3时:
| 访问页面 | 内存状态 | 缺页次数 | 缺页率 |
| -------- | -------- | -------- | ------ |
| 4 | 4 | 1 | 100.0% |
| 3 | 4 3 | 1 | 50.0% |
| 2 | 4 3 2 | 1 | 33.3% |
| 1 | 1 4 3 | 1 | 25.0% |
| 4 | 4 1 3 | 1 | 20.0% |
| 3 | 4 1 3 | 0 | 20.0% |
| 5 | 5 4 1 | 1 | 28.6% |
| 4 | 5 4 1 | 0 | 28.6% |
| 3 | 5 4 3 | 1 | 37.5% |
| 2 | 5 2 4 | 1 | 40.0% |
| 1 | 1 5 2 | 1 | 36.4% |
| 5 | 1 5 2 | 0 | 36.4% |
| 3 | 3 1 5 | 1 | 38.5% |
| 1 | 3 1 5 | 0 | 38.5% |
| 2 | 3 2 1 | 1 | 40.0% |
| 4 | 4 3 2 | 1 | 41.2% |
缺页次数为10,缺页率为41.2%。
M=4时:
| 访问页面 | 内存状态 | 缺页次数 | 缺页率 |
| -------- | -------- | -------- | ------ |
| 4 | 4 | 1 | 100.0% |
| 3 | 4 3 | 1 | 50.0% |
| 2 | 4 3 2 | 1 | 33.3% |
| 1 | 4 3 2 1 | 1 | 25.0% |
| 4 | 4 3 2 1 | 0 | 25.0% |
| 3 | 4 3 2 1 | 0 | 25.0% |
| 5 | 5 4 3 2 | 1 | 28.6% |
| 4 | 5 4 3 2 | 0 | 28.6% |
| 3 | 5 4 3 2 | 0 | 28.6% |
| 2 | 5 4 3 2 | 0 | 28.6% |
| 1 | 1 5 4 3 | 1 | 36.4% |
| 5 | 1 5 4 3 | 0 | 36.4% |
| 3 | 1 5 4 3 | 0 | 36.4% |
| 1 | 1 5 4 3 | 0 | 36.4% |
| 2 | 2 1 5 4 | 1 | 40.0% |
| 4 | 4 2 1 5 | 1 | 41.2% |
缺页次数为7,缺页率为29.4%。
从结果可以看出,当物理块数目增加时,缺页次数和缺页率都会减少。这是因为有更多的页面可以存放在内存中,减少了页面置换的频率。
阅读全文