假设有一系统采用请求分页内存管理,今有一用户程序,它访问其地址空间的字节地址序列是:70,305,215,321,56,140,453,23,187,456,378,401。若内存大小为384B,页大小为128B,试按FIFO和LRU淘汰算法,分别计算访问成功率。
时间: 2024-06-07 16:11:23 浏览: 71
首先,我们需要将用户程序的地址空间字节地址序列转换成页地址序列,并计算出需要的页数。假设每页大小为128B,则需要的页数为:
70/128=0.54,向上取整为1
305/128=2.38,向上取整为3
215/128=1.68,向上取整为2
321/128=2.51,向上取整为3
56/128=0.44,向上取整为1
140/128=1.09,向上取整为2
453/128=3.53,向上取整为4
23/128=0.18,向上取整为1
187/128=1.46,向上取整为2
456/128=3.56,向上取整为4
378/128=2.95,向上取整为3
401/128=3.13,向上取整为4
因此,需要的页数为1+3+2+3+1+2+4+1+2+4+3+4=28页。
接下来,我们分别使用FIFO和LRU淘汰算法,计算访问成功率。
- FIFO算法
首先,我们将前4个页面分配到内存中:
70/128=0,页面0
305/128=2,页面2
215/128=1,页面1
321/128=2,页面2
访问成功率为4/4=100%。
接下来,当用户程序访问页面3时,需要将页面0替换出去。然后,用户程序访问页面4时,需要将页面1替换出去。接着,用户程序访问页面5时,需要将页面2替换出去。因此,需要将页面0、1、2依次替换出去,将页面3、4、5分别放入内存中。
当用户程序访问页面6时,需要将页面2替换出去,将页面6放入内存中。当用户程序访问页面7时,需要将页面3替换出去,将页面7放入内存中。当用户程序访问页面8时,需要将页面4替换出去,将页面8放入内存中。当用户程序访问页面9时,需要将页面5替换出去,将页面9放入内存中。当用户程序访问页面10时,需要将页面6替换出去,将页面10放入内存中。当用户程序访问页面11时,需要将页面7替换出去,将页面11放入内存中。因此,需要将页面2、3、4、5、6、7依次替换出去,将页面6、7、8、9、10、11分别放入内存中。
最后,当用户程序访问页面11时,需要将页面8替换出去,将页面11放入内存中。访问成功率为4/12=33.33%。
- LRU算法
首先,我们将前4个页面分配到内存中:
70/128=0,页面0
305/128=2,页面2
215/128=1,页面1
321/128=2,页面2
访问成功率为4/4=100%。
接下来,当用户程序访问页面3时,需要将页面0替换出去。然后,用户程序访问页面4时,需要将页面1替换出去。接着,用户程序访问页面5时,需要将页面2替换出去。因此,需要将页面0、1、2依次替换出去,将页面3、4、5分别放入内存中。
当用户程序访问页面6时,需要将页面3替换出去,将页面6放入内存中。当用户程序访问页面7时,需要将页面4替换出去,将页面7放入内存中。当用户程序访问页面8时,需要将页面5替换出去,将页面8放入内存中。当用户程序访问页面9时,需要将页面6替换出去,将页面9放入内存中。当用户程序访问页面10时,需要将页面7替换出去,将页面10放入内存中。当用户程序访问页面11时,需要将页面8替换出去,将页面11放入内存中。因此,需要将页面3、4、5、6、7、8依次替换出去,将页面6、7、8、9、10、11分别放入内存中。
最后,当用户程序访问页面11时,需要将页面9替换出去,将页面11放入内存中。访问成功率为4/12=33.33%。
综上所述,FIFO和LRU淘汰算法的访问成功率均为33.33%。
阅读全文