操作系统页面置换算法实验报告 16281027

本文是一份关于操作系统页面置换算法的实验报告,包括最佳置换算法、FIFO、LRU、改进型Clock和PBA页面缓冲算法的实现与性能比较。实验基于局部随机工作集,通过缺页率评估各算法表现,结果显示最佳置换算法性能最优。
摘要由CSDN通过智能技术生成

操作系统 页面置换算法 实验报告 16281027

1.实验目的及基本要求

设计和实现最佳置换算法、先进先出置换算法、最近最久未使用置换算法、页面缓冲置换算法;
通过页面访问序列随机发生器实现对上述算法的测试及性能比较。

2.页面置换算法背景知识说明
(1)请求分页虚拟内存管理
在这里插入图片描述

(2)工作集与缺页率
多数程序都显示出高度的局部性,也就是说,在一个时间段内,一组页面被反复引用。
这组被反复引用的页面随着时间的推移,其成员也会发生变化。有时这种变化是剧烈的,有时则是渐进的,我们把这组页面集合称为工作集。

缺页率 = 缺页中断次数/页面总访问次数。

3.课题假设前提说明
页表用整数数组或结构数组来表示。
页面访问序列串是一个整数序列,整数的取值范围为0到 N - 1。
页面访问序列串中的每个元素 p 表示对页面 p 的一次访问。

符合局部访问特性的随机工作集的生成算法:
确定虚拟内存的尺寸 N,工作集的起始位置 p,工作集中包含的页数e,
工作集移动率m(每处理 m个页面访问则将起始位置 p +1),以及一个范围在 0 和 1 之间的值 t;
生成m个取值范围在 p 和 p + e间的随机数,并记录到页面访问序列串中;
生成一个随机数 r,0 ≤ r ≤ 1;
如果 r < t,则为 p 生成一个新值,否则 p = (p + 1) mod N;
如果想继续加大页面访问序列串的长度,返回第2步,否则结束。

4.算法说明
(1)最佳置换算法optimal OPT
选择永不使用或是在最长时间内不再被访问(即距现在最长时间才会被访问)的页面淘汰出内存。
OPT属于理想化算法,具有最好性能(对于固定分配页面方式,本法可保证获得最低的缺页率),但实际上却无法实现,主要用于算法评价参照。

(2)先进先出置换算法 FIFO
选择最先进入内存即在内存驻留时间最久的页面换出到外存。进程已调入内存的页面按进入先后次序链接成一个队列,并设置替换指针以指向最老页面。
该算法简单直观,但不符合进程实际运行规律,性能较差,故实际应用极少。

(3)最近最久未使用置换算法 LRU
以“最近的过去”作为“最近的将来”的近似,选择最近一段时间最长时间未被访问的页面淘汰出内存。适用于各种类型的程序,性能较好,但需要较多的硬件支持。

(4)改进型Clock算法
① 从查寻指针当前位置起扫描内存分页循环队列,选择A=0且M=0的第一个页面淘汰;
若未找到,转②;
② 开始第二轮扫

一、实验题目:页面置换算法(请求分页) 二、实验目的: 进一步理解父子进程之间的关系。 1) 理解内存页面调度的机理。 2) 掌握页面置换算法的实现方法。 3) 通过实验比较不同调度算法的优劣。 4) 培养综合运用所学知识的能力。 页面置换算法是虚拟存储管理实现的关键,通过本次试验理解内存页面调度的机制,在模拟实现FIFO、LRU等经典页面置换算法的基础上,比较各种置换算法的效率及优缺点,从而了解虚拟存储实现的过程。将不同的置换算法放在不同的子进程中加以模拟,培养综合运用所学知识的能力。 三、实验内容及要求 这是一个综合型实验,要求在掌握父子进程并发执行机制和内存页面置换算法的基础上,能综合运用这两方面的知识,自行编制程序。 程序涉及一个父进程和两个子进程。父进程使用rand()函数随机产生若干随机数,经过处理后,存于一数组Acess_Series[]中,作为内存页面访问的序列。两个子进程根据这个访问序列,分别采用FIFO和LRU两种不同的页面置换算法对内存页面进行调度。要求: 1) 每个子进程应能反映出页面置换的过程,并统计页面置换算法的命中或缺页情况。 设缺页的次数为diseffect。总的页面访问次数为total_instruction。 缺页率 = disaffect/total_instruction 命中率 = 1- disaffect/total_instruction 2)将为进程分配的内存页面数mframe 作为程序的参数,通过多次运行程序,说明FIFO算法存在的Belady现象。
本实验使用一下算法 使用rand()函数随机产生页面号,用数组装入页面号,模拟页面调入内存中发生页面置换的过程。 整个过程,都是使用数组来实现每个算法,模拟队列,模拟堆栈的功能,实现每一个置换算法。 页面置换算法 最佳置换算法(OPT):选择永不使用或是在最长时间内不再被访问(即距现在最长时间才会被访问)的页面淘汰出内存。用于算法评价参照。 随机置换算法 (S):产生一个取值范围在0和N-1之间的随机数,该随机数即可表示应被淘汰出内存的页面。 先进先出置换算法(FIFO):选择最先进入内存即在内存驻留时间最久的页面换出到外存。 最近最久未使用置换算法(LRU): 以“最近的过去”作为“最近的将来”的近似,选择最近一段时间最长时间未被访问的页面淘汰出内存 Clock置换算法:为进入内存的页面设置一个访问位,当内存中某页被访问,访问位置一,算法在选择一页淘汰时,只需检查访问位,若为0,则直接换出,若为1,置该访问位为0,检测内存中的下一个页面的访问位。 改进型Clock置换算法: ①从查寻指针当前位置起扫描内存分页循环队列,选择A=0且M=0的第一个页面淘汰;若未找到,转② ② 开始第二轮扫描,选择A=0且M=1的第一个页面淘汰,同时将经过的所有页面访问位置0;若不能找到,转①
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值