分页存储管理方式中,假如系统分配给一个作业的物理块数为3,并且此作业访问页面的顺序为2,3,2,1,5,2,4,5,3,2,5,2,试用FIFO和LRU淘汰算法分别计算出程序访问过程中所发生的缺页情况。
在分页存储管理方式中,FIFO和LRU是两种常见的页面淘汰算法。下面分别以FIFO和LRU算法为例,计算该作业访问过程中所发生的缺页情况。
假设该作业的页面大小为1,物理块数为3,访问页面的顺序为2, 3, 2, 1, 5, 2, 4, 5, 3, 2, 5, 2。
FIFO算法
使用FIFO算法时,系统分配给该作业的物理块数为3。当一个页面被访问时,如果该页面已经在物理块中,则不发生缺页中断;如果该页面不在物理块中,则将该页面调入物理块中。如果此时物理块已满,则需要淘汰一个页面。使用FIFO算法时,淘汰的页面是最早调入的页面。
按照上述规则,对该作业的访问过程进行模拟,得到如下结果:
访问页面 1 2 3 2 1 5 2 4 5 3 2 5 2
缺页次数 1 1 2 2 3 4 4 5 6 7 7 8 8
因此,使用FIFO算法时,该作业访问过程中共发生8次缺页。
LRU算法
使用LRU算法时,系统分配给该作业的物理块数为3。当一个页面被访问时,如果该页面已经在物理块中,则将该页面移动到物理块的最近访问位置;如果该页面不在物理块中,则将该页面调入物理块中。如果此时物理块已满,则需要淘汰一个页面。使用LRU算法时,淘汰的页面是最近最少使用的页面。
按照上述规则,对该作业的访问过程进行模拟,得到如下结果:
访问页面 1 2 3 2 1 5 2 4 5 3 2 5 2
缺页次数 1 1 2 2 3 4 4 5 6 7 7 7 7
因此,使用LRU算法时,该作业访问过程中共发生7次缺页。
综上所述,使用FIFO算法时,该作业访问过程中共发生8次