操作系统——页面置换

一、页面置换算法

\(1.\)最佳\((OPT)\)页面置换算法

将以后永不使用或在(未来)最长时间内不会被访问的页面置换。

假定系统为某进程分配了三个物理块,并考虑有以下页面号引用串:\(1、2、3、4、1、2、5、1、4、2\)

程序运行时,先将\(1、2、3\)三个页面装入内存。

之后进程要访问页面4,出现了缺页现象,即内存中没有页面4,会产生缺页中断。

置换掉内存中页面3,因为之后都不在使用。(当前内存中页面有\(1、2、4\))

接下来是页面\(1、2\),已在内存中,因此不会产生缺页中断。

访问页面5(当前内存中页面有\(1、2、4\)),缺页,将置换掉页面2,因为页面2是三个页面中最晚被访问的。

置换图如下:

最佳页面置换

\(2.\)先进先出\((FIFO)\)页面置换算法

置换最先进入内存的页面

假定系统为某进程分配了三个物理块,并考虑有以下页面号引用串:\(1、2、3、4、1、2、5、1、4、2\)

程序运行时,先将\(1、2、3\)三个页面装入内存。

访问页面4,出现缺页现象,则置换页面1。因为页面1是最先进入内存的。

其余页面相同。

置换图如下:

先进先出页面置换算法

\(3.\)最近最久未使用\(LRU\)页面置换算法

赋予每个页面一个访问字段,用来记录一个页面自上次被访问以来所经理的时间\(t\)

每次淘汰\(t\)最大的一个页面。

假定系统为某进程分配了三个物理块,并考虑有以下页面号引用串:\(1、2、3、4、2、3、5\)

程序运行时,先将\(1、2、3\)三个页面装入内存。

程序要访问页面4,出现缺页现象,置换页面1,因为页面1是当前内存中 未使用时间最长的。(当前内存中有页面\(4、2、3\)

程序依次访问页面2和页面3。

程序页面访问页面5,页面4是 未使用时间最长的。故置换页面4;

置换图如下:

最近最久未使用页面置换算法

二、考研真题

\(1.\)

题目

有一个请求分页式虚拟存储器系统,分配给某进程3个物理块,开始时内存中预装入第\(1,2,3\)个页面,该进程的页面访问序列为\(1,2,4,2,6,2,1,5,6,1\)

\((1)\)若采用最佳页面置换算法,则访问过程中发生的缺页率为多少?

\((2)\)若采用\(LRU\)页面置换算法,则访问过程中发生的缺页率为多少?

解答

\((1)\)最佳页面置换算法

程序请求页面1,页面2,未发生缺页现象。(当前内存中页面有\(1、2、3\))

程序请求页面4,发生缺页现象,置换页面3。(当前内存中页面有\(1、2、4\))

程序请求页面2,未发生缺页现象。

程序请求页面6,发生缺页现象,置换页面4。(当前内存中页面有\(1、2、6\))

程序请求页面2,页面1,未发生缺页现象。

程序请求页面5,发生缺页现象,置换页面2。(当前内存中页面有\(1、5、6\))

程序请求页面6,页面1,未发生缺页现象。

置换图如下:

OSP198.18.1

访问次数为:10

缺页次数:3

缺页率:\(3/10=30\%\)

\((2)\)\(LRU\)页面置换算法

程序请求页面1,页面2,未发生缺页现象。(当前内存中页面有\(1、2、3\))

程序请求页面4,发生缺页现象,置换页面3。(当前内存中页面有\(1、2、4\))

程序请求页面2,未发生缺页现象。

程序请求页面6,发生缺页现象,置换页面1。(当前内存中页面有\(6、2、4\))

程序请求页面2,未发生缺页现象。

程序请求页面1,发生缺页现象,置换页面4。(当前内存中页面有\(6、2、1\))

程序请求页面5,发生缺页现象,置换页面6。(当前内存中页面有\(5、2、1\))

程序请求页面6,发生缺页现象,置换页面2。(当前内存中页面有\(5、6、1\))

程序请求页面1,未发生缺页现象。

置换图如下:

OSP198.18.2

访问次数为:10

缺页次数:5

缺页率:\(5/10=50\%\)

posted @ 2024-07-06 21:45  Gu_diao  阅读(44)  评论(0编辑  收藏  举报