(操作系统)模拟操作系统的页面置换

一、   需求分析

设计程序模拟先进先出(FIFO)置换算法,最佳(OPT)置换算法和最近最少用(LRU)置换算法的工作过程。假设内存中分配给每个进程的最小物理块数为m,在进程运行过程中要访问的页面个数为n,页面访问序列为P1, … ,Pn,分别利用不同的页面置换算法调度进程的页面访问序列,给出页面访问序列的置换过程,计算每种算法缺页次数和缺页率。

程序的设计主要是测试先进先出FIFO,最佳置换OPT和最近最少用LRU页面置换算法的效率以及过程,对于程序员设计有很多帮助,不同的场合用不同的算法可以提高程序的效率。

二、详细设计

1、数据结构

   int a[320];//存放320条指令

   int p;//存放页大小

   int page[320];//存放合并后要使用的页号

   int PageNumber;//存放页号数量

   int piece;//存放块数

2、算法流程图

a.先进先出(FIFO)置换算法:


b.最近最少用(LRU)置换算法:


c.最佳(OPT)置换算法:


三、 软件测试              

1、如图一所示,通过随机数产生一个指令序列,共320条指令。指令的地址按下述原则生成:

A:50%的指令是顺序执行的

B:25%的指令是均匀分布在前地址部分

C:25%的指令是均匀分布在后地址部分

具体的实施方法是:

A:在[0,319]的指令地址之间随机选取一起点m

B:顺序执行一条指令,即执行地址为m+1 的指令

C:在前地址[0,m+1]中随机选取一条指令并执行,该指令的地址为m'

D:顺序执行一条指令,其地址为m'+1

E:在后地址[m'+2,319]中随机选取一条指令并执行 F:重复步骤A-E,直到320 次指令


图1.指令地址

2、如图2所示,页面大小的取值范围为1K,2K,4K,8K,16K。按照页面大小将指令地址转化化为页号。对于相邻相同的页号,合并为一个。


图2.合并后的页地址流

3.选择不同的块数和不同的页面置换算法会得出不同的缺页率,为了方便观察比较,下面选取相同的块数(4块)和不同的页面置换算法,求出缺页率。如图3-a,3-b,3-c所示:


</

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java图形化界面实现以下要求,我上传给大家一同分享。 通过随机数产生一个指令序列 320 指令指令的地址按下述原则生成: (1):在[0,319]的指令地址之间随机选取一起点 m。 (2):顺序执行一指令,即执行地址为 m+1 的指令 。 (3):在前地址[0,m+1]随机选取一指令并执行,该指令的地址为 m' 。 (4):顺序执行一指令,其地址为 m'+1。 (5):在后地址[m'+2,319]随机选取一指令并执行。 (6):重复步骤 (1)—(6),直到生成 320 指令。 2、将指令序列转换为地址流,比如:页面大小为 1K,用户内存容量 4 到 32 ,用户虚存容量为 32K;在用户虚存,按每 K存放 10 指令排列虚存地址。即 320 指令在虚存的存放方为: 第 0 -第 9 指令为第 0 (对应虚存地址为[0,9])。 第 10 -第 19 指令为第 1 (对应虚存地址为[10,19]) 。 ……………………………… 第 310 -第 319 指令为第 31(对应虚存地址为[310,319])。 按以上方,用户指令可组成 32。 3、页面大小的取值范围分别为 1K,2K,4K,8K,16K;按照页面大小将指令地址转化为号;对于相邻相同的号,合并为一个。 4、分配给程序的内存块数取值范围为 1 块、2块,一直到程序的页面数。 5、分别采用 FIFO 和 LRU 算法对序列进行调度,并计算出对应的缺断率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值