在一个请求调页存储系统中,一个7个页面的进程页面走向为1,2,3,4,2,1,5,6,2,1,2,3,7,6,3,2,1,2,3,6。当系统分配给该进程页面分别为2,3,和4页时,分别运用FIFO,LRU,OPT置换算法指出被置换的页面以及缺页率
时间: 2024-01-04 21:03:06 浏览: 104
存储管理的页面置换算法详解 (2).pdf
首先,假设系统分配给该进程页面的初始状态为:[ , , , ],其中空格表示空闲的页面。
**FIFO算法:**
在FIFO算法中,最先进入内存的页面最先被置换。
- 初始化页面状态:[2, 3, 4, ]
- 第1个页面1:缺页,置换页面2。页面状态变为:[1, 3, 4, ]
- 第2个页面2:缺页,置换页面3。页面状态变为:[1, 2, 4, ]
- 第3个页面3:缺页,置换页面1。页面状态变为:[3, 2, 4, ]
- 第4个页面4:缺页,置换页面3。页面状态变为:[3, 2, 4, ]
- 第5个页面2:缺页,置换页面3。页面状态变为:[3, 2, 4, ]
- 第6个页面1:缺页,置换页面3。页面状态变为:[1, 2, 4, ]
- 第7个页面5:缺页,置换页面1。页面状态变为:[1, 2, 5, ]
- 第8个页面6:缺页,置换页面2。页面状态变为:[1, 6, 5, ]
- 第9个页面2:已经在内存中,页面状态不变:[1, 6, 5, ]
- 第10个页面1:已经在内存中,页面状态不变:[1, 6, 5, ]
- 第11个页面2:已经在内存中,页面状态不变:[1, 6, 5, ]
- 第12个页面3:缺页,置换页面1。页面状态变为:[3, 6, 5, ]
- 第13个页面7:缺页,置换页面3。页面状态变为:[7, 6, 5, ]
- 第14个页面6:已经在内存中,页面状态不变:[7, 6, 5, ]
- 第15个页面3:已经在内存中,页面状态不变:[7, 6, 5, ]
- 第16个页面2:已经在内存中,页面状态不变:[7, 6, 5, ]
- 第17个页面1:已经在内存中,页面状态不变:[7, 6, 5, ]
- 第18个页面2:已经在内存中,页面状态不变:[7, 6, 5, ]
- 第19个页面3:已经在内存中,页面状态不变:[7, 6, 5, ]
- 第20个页面6:已经在内存中,页面状态不变:[7, 6, 5, ]
因此,FIFO算法中被置换的页面分别为2、3、4、2、1,缺页率为13/20=65%。
**LRU算法:**
在LRU算法中,最近最少使用的页面最先被置换。
- 初始化页面状态:[2, 3, 4, ]
- 第1个页面1:缺页,置换页面2。页面状态变为:[1, 3, 4, ]
- 第2个页面2:缺页,置换页面3。页面状态变为:[1, 2, 4, ]
- 第3个页面3:缺页,置换页面1。页面状态变为:[3, 2, 4, ]
- 第4个页面4:缺页,置换页面2。页面状态变为:[3, 4, 2, ]
- 第5个页面2:已经在内存中,页面状态不变:[3, 4, 2, ]
- 第6个页面1:缺页,置换页面3。页面状态变为:[1, 4, 2, ]
- 第7个页面5:缺页,置换页面1。页面状态变为:[5, 4, 2, ]
- 第8个页面6:缺页,置换页面4。页面状态变为:[5, 6, 2, ]
- 第9个页面2:已经在内存中,页面状态不变:[5, 6, 2, ]
- 第10个页面1:已经在内存中,页面状态不变:[5, 6, 2, ]
- 第11个页面2:已经在内存中,页面状态不变:[5, 6, 2, ]
- 第12个页面3:缺页,置换页面5。页面状态变为:[3, 6, 2, ]
- 第13个页面7:缺页,置换页面3。页面状态变为:[7, 6, 2, ]
- 第14个页面6:已经在内存中,页面状态不变:[7, 6, 2, ]
- 第15个页面3:已经在内存中,页面状态不变:[7, 6, 2, ]
- 第16个页面2:已经在内存中,页面状态不变:[7, 6, 2, ]
- 第17个页面1:已经在内存中,页面状态不变:[7, 6, 2, ]
- 第18个页面2:已经在内存中,页面状态不变:[7, 6, 2, ]
- 第19个页面3:已经在内存中,页面状态不变:[7, 6, 2, ]
- 第20个页面6:已经在内存中,页面状态不变:[7, 6, 2, ]
因此,LRU算法中被置换的页面分别为2、3、1、4、2,缺页率为12/20=60%。
**OPT算法:**
在OPT算法中,预测未来最长时间不被访问的页面最先被置换。
- 初始化页面状态:[2, 3, 4, ]
- 第1个页面1:缺页,置换页面2。页面状态变为:[1, 3, 4, ]
- 第2个页面2:缺页,置换页面3。页面状态变为:[1, 2, 4, ]
- 第3个页面3:缺页,置换页面1。页面状态变为:[3, 2, 4, ]
- 第4个页面4:缺页,置换页面2。页面状态变为:[3, 4, 2, ]
- 第5个页面2:已经在内存中,页面状态不变:[3, 4, 2, ]
- 第6个页面1:缺页,置换页面4。页面状态变为:[3, 1, 2, ]
- 第7个页面5:缺页,置换页面3。页面状态变为:[5, 1, 2, ]
- 第8个页面6:缺页,置换页面1。页面状态变为:[5, 6, 2, ]
- 第9个页面2:已经在内存中,页面状态不变:[5, 6, 2, ]
- 第10个页面1:已经在内存中,页面状态不变:[5, 6, 2, ]
- 第11个页面2:已经在内存中,页面状态不变:[5, 6, 2, ]
- 第12个页面3:缺页,置换页面5。页面状态变为:[3, 6, 2, ]
- 第13个页面7:缺页,置换页面3。页面状态变为:[7, 6, 2, ]
- 第14个页面6:已经在内存中,页面状态不变:[7, 6, 2, ]
- 第15个页面3:已经在内存中,页面状态不变:[7, 6, 2, ]
- 第16个页面2:已经在内存中,页面状态不变:[7, 6, 2, ]
- 第17个页面1:已经在内存中,页面状态不变:[7, 6, 2, ]
- 第18个页面2:已经在内存中,页面状态不变:[7, 6, 2, ]
- 第19个页面3:已经在内存中,页面状态不变:[7, 6, 2, ]
- 第20个页面6:已经在内存中,页面状态不变:[7, 6, 2, ]
因此,OPT算法中被置换的页面分别为2、3、1、4、2,缺页率为12/20=60%。
综上所述,FIFO、LRU、OPT算法中被置换的页面分别为2、3、4、2、1,缺页率分别为65%、60%、60%。
阅读全文