FIFOLRUOPT页面调度算法及样例

Posted yutingliuyl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FIFOLRUOPT页面调度算法及样例相关的知识,希望对你有一定的参考价值。

网上非常多介绍3种页面置换算法的样例和过程是不对的, 本文依据《操作系统概念》第七版对三种算法做介绍,并给出正确的样例以验证算法。


一、FIFO先进先出页面置换算法,创建一个FIFO队列来管理内存中的全部页。

在计算缺页率的时候最好把每一次页面调度的队列写出来,这样不easy出错。

以下举例说明:

如果页帧为3,引用串为:7,0,1,2,0。3,0,4,2


页面走向:7。0。1,2。0,3。0,4,2。

               -----------------------------------------------

物理页:   7,7。7,2,2,2,2,4。4,

                       0,0,0。0,3,3,3,2,

                             1。1,1。1,0,0,0。


FIFO队列:7, 7。7,0。0,1,2,3。0,

                       0,0。1,1。2,3。0,4。

                             1。2,2,3,0,4,2,

首先7,0,1页面依次进入页帧,队列变为7,0,1,下一个引用2要调入。则队列头部的7出队。队列变为0,1,2,物理页内将7换成2。下一个引用0调入,已经存在页帧中。队列不变。下一个3调入,队列头的0出队,3入队列尾,队列变为1,2,3。页帧将0变为3。

后面同理依次进行。


二、LRU是Least Recently Used 最近最少使用算法 ( 待更新 )


三、OPT是最佳页面替换算法(待更新)



以下举一些样例及答案,可依据上述算法验证调度算法的正确性。


1、在一个请求分页系统中,假如一个作业的页面走向为:1,2,3。6,4,7。3。2,1,4,7,5,6,5,2,1。当分配给该作业的物理块数为4时,分别採用最佳置换算法、LRU和FIFO页面置换算法,计算訪问过程中所发生的缺页次数和缺页率。

答:最佳置换算法的情况例如以下表

页面走向

1

2

3

6

4

7

3

2

1

4

7

5

6

5

2

1

物理页0

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

物理页1

 

2

2

2

2

2

2

2

2

2

2

2

2

2

2

2

物理页2

 

 

3

3

3

3

3

3

3

4

4

5

5

5

5

5

物理页3

 

 

 

6

4

7

7

7

7

7

7

7

6

6

6

6

缺页否

Y

Y

Y

Y

Y

Y

N

N

N

Y

N

Y

Y

N

N

N

缺页次数为9。缺页率为9/16


LRU算法的情况例如以下表:

页面走向

1

2

3

6

4

7

3

2

1

4

7

5

6

5

2

1

物理页0

1

1

1

1

4

4

4

4

1

1

1

1

6

6

6

6

物理页1

 

2

2

2

2

7

7

7

7

4

4

4

4

4

2

2

物理页2

 

 

3

3

3

3

3

3

3

3

7

7

7

7

7

1

物理页3

 

 

 

6

6

6

6

2

2

2

2

5

5

5

5

5

缺页否

Y

Y

Y

Y

Y

Y

N

Y

Y

Y

Y

Y

Y

N

Y

Y

缺页次数为14,缺页率为14/16

FIFO算法的情况例如以下表:

页面走向

1

2

3

6

4

7

3

2

1

4

7

5

6

5

2

1

物理页0

1

1

1

1

4

4

4

4

4

4

4

5

5

5

5

5

物理页1

 

2

2

2

2

7

7

7

7

7

7

7

6

6

6

6

物理页2

 

 

3

3

3

3

3

2

2

2

2

2

2

2

2

2

物理页3

 

 

 

6

6

6

6

6

1

1

1

1

1

1

1

1

缺页否

Y

Y

Y

Y

Y

Y

N

Y

Y

N

N

Y

Y

N

N

N

缺页次数为10,缺页率为10/16


二、在一个请求分页系统中,假如一个作业的页面走向为:4,3,2,1,4,3,5,4,3,2,1,5。当分配给该作业的物理块数M4,分别採用最佳置换算法、LRUFIFO页面置换算法,计算訪问过程中所发生的缺页次数和缺页率。

答:最佳置换算法的情况例如以下表:

页面走向

4

3

2

1

4

3

5

4

3

2

1

5

物理页0

4

4

4

4

4

4

4

4

4

4

1

1

物理页1

 

3

3

3

3

3

3

3

3

3

3

3

物理页2

 

 

2

2

2

2

2

2

2

2

2

2

物理页3

 

 

 

1

1

1

5

5

5

5

5

5

缺页否

Y

Y

Y

Y

N

N

Y

N

N

N

Y

N

缺页次数为6,缺页率为6/12

LRU置换算法的情况例如以下表:

页面走向

4

3

2

1

4

3

5

4

3

2

1

5

物理页0

4

4

4

4

4

4

4

4

4

4

4

5

物理页1

 

3

3

3

3

3

3

3

3

3

3

3

物理页2

 

 

2

2

2

2

5

5

5

5

1

1

物理页3

 

 

 

1

1

1

1

1

1

2

2

2

缺页否

Y

Y

Y

Y

N

N

Y

N

N

Y

Y

Y

缺页次数为8,缺页率为8/12

FIFO算法的情况例如以下表:

页面走向

4

3

2

1

4

3

5

4

3

2

1

5

物理页0

4

4

4

4

4

4

5

5

5

5

1

1

物理页1

 

3

3

3

3

3

3

4

4

4

4

5

物理页2

 

 

2

2

2

2

2

2

3

3

3

3

物理页3

 

 

 

1

1

1

1

1

1

2

2

2

缺页否

Y

Y

Y

Y

N

N

Y

Y

Y

Y

Y

Y

缺页次数为10,缺页率为10/12

技术分享


技术分享


技术分享
















以上是关于FIFOLRUOPT页面调度算法及样例的主要内容,如果未能解决你的问题,请参考以下文章

进程/作业/页面调度算法

多目标进化算法详细讲解及代码实现(样例:MOEA/DNSGA-Ⅱ求解多目标(柔性)作业车间调度问题)

多目标进化算法详细讲解及代码实现(样例:MOEA/DNSGA-Ⅱ求解多目标(柔性)作业车间调度问题)

操作系统课程设计

页面调度先进先出算法(FIFO) 用C语言描述 欢迎高手前来挑战

Python模拟页面调度LRU算法