| 注册
home doc ppt pdf
请输入搜索内容

热门搜索

年终总结个人简历事迹材料租赁合同演讲稿项目管理职场社交

计算机操作系统实验三页面置换算法模拟实验

文***品

贡献于2020-10-09

字数:6201


计算机工程学院
实验报告书

课程名: 操作系统原理A
题 目: 虚拟存储器理
页面置换算法模拟实验
班 级:
学 号:
姓 名:

评语:






成绩: 指导教师:

批阅时间: 年 月 日







实验目求
1 目:
请求页式虚存理常虚拟存储理方案通请求页式虚存理中页面置换算法模拟助理解虚拟存储技术特点加深请求页式虚存理页面调度算法理解
2 求:
实验求C语言编程模拟拥干虚页进程定干实页中运行缺页中断发生时分FIFOLRU算法进行页面置换情形中虚页数事先定(例10)虚页访问页址流(长度事先定例20次虚页访问)程序机产生事先保存文件中求程序运行时屏幕显示出置换程中状态信息输出访问结束时页面命中率程序应允许通该进程分配实页数较两种置换算法稳定性
二实验说明
1.设计中虚页实页表示
设计利C语言结构体描述虚页实页结构

pn
pfn
time

pn
pfn
next
虚页结构 实页结构
虚页结构中pn代表虚页号10虚页pn取值范围0—9pfn代表实页号虚页未装入实页时项值1该虚页已装入某实页时项值装入实页实页号pfntime项FIFO算法中LRU中存放该虚页访问时间
实页结构中中pn代表虚页号表示pn代表虚页目前正放实页中pfn代表实页号取值范围(0—n1)动态指派实页数n决定next指实页结构体指针实页链表形式组织起关实页链表组织详见面第4点
2.关缺页次数统计
计算命中率需统计20次虚页访问中命中次数程序应设置计数器count统计虚页命中发生次数访问虚页pfn项值1表示虚页已装入某实页虚页命中count加1终命中率count20*100
3.LRU算法中久未页面确定
找久未虚页面程序中引入时间计数器countime访问虚页面时countime值加1然访问虚页time项值设置增值前countime值表示该虚页次访问时间LRU算法需置换时已分配实页虚页中找出time值虚页久未虚页面应该置换出
4.算法中实页组织
分配实页数n程序运行时户动态指派应链表组织动态产生实页调度算法实现方便考虑引入freebusy两链表:free链表组织未分配出实页首指针free_head初始时n实页处free链表中busy链表组织已分配出实页首指针busy_head尾指针busy_tail初始值null访问虚页实页中时产生缺页中断时free链表空取链表首指针指实页分配该虚页free链表空说明n实页已全部分配出时应进行页面置换:FIFO算法busy_head 指实页busy链表中取分配该虚页然该实页插入busy链表尾部LRU算法已分配实页虚页中找出time值虚页该虚页装载实页中置换出该实页中装入前正访问虚页
三程序流程图




四程序清单
#include
#include
*全局变量*
int mSIZE
*物理块数*
int pSIZE
*页面号引串数*
static int memery[10]{0}
*物理块中页号*
static int page[100]{0}
*页面号引串*
static int temp[100][10]{0}
*辅助数组*
*置换算法函数*
void FIFO()
void LRU()
void OPT()
*辅助函数*
void print(unsigned int t)
void designBy()
void download()
void mDelay(unsigned int Delay)
*函数*
void main()
{
int ikcode
printf(请输入物理块数(M<10):)
scanf(d&mSIZE)
printf(请输入页面号引串数(P<100):)
scanf(d&pSIZE)
puts(请次输入页面号引串(连续输入需隔开):)
for(i0i scanf(1d&page[i]) download()
do
{
puts(输入页面号引串:)
for(k0k<(pSIZE1)20k++)
{
for(i20*k(i {
if(((i+1)200)||(((i+1)20)&&(ipSIZE1)))
printf(d\npage[i])
else
printf(d page[i])
}
}
printf(* * * * * * * * * * * * * * * * * * * * * * *\n)
printf(* 请选择页面置换算法:\t\t\t *\n)
printf(* *\n)
printf(* 1先进先出(FIFO) 2久未(LRU) *\n)
printf(* 3退出 *\n)
printf(* * * * * * * * * * * * * * * * * * * * * * *\n)
printf(请选择操作:[ ]\b\b)
scanf(d&code)
switch(code)
{
case 1
FIFO()
break
case 2
LRU()
break
case 3
OPT()
break
case 4
system(cls)
system(color 0A)
exit(0)
default
printf(输入错误请重新输入:)
}
printf(意键重新选择置换算法:>>>)
getchar()
}
while (code4)
getchar()
}
*载入数*
void download() {
printf(\nFinish\n载入成功)
}
*设置延迟*
void mDelay(unsigned int Delay)
{
unsigned int i
for(Delay>0Delay)
{
for(i0i<124i++)
{
printf( \b)
}
}
}
*显示设计者信息*
void print(unsigned int t)
{
int ijkl int flag
for(k0k<(pSIZE1)20k++)
{
for(i20*k(i {
if(((i+1)200)||(((i+1)20)&&(ipSIZE1)))
printf(d\npage[i])
else
printf(d page[i])
}
for(j0j {
for(i20*k(i {
if(i>j)
printf( |d|temp[i][j]) else
printf( | |) }
for(imSIZE+20*k(i {
for(flag0l0l if(temp[i][l]temp[i1][l])
flag++
if(flagmSIZE)*页面物理块中*
printf( )
else
printf( |d|temp[i][j])
}
*行显示20*
if(i200)
continue
printf(\n)
}
}
printf(\n)
printf(缺页次数:d\t\tt+mSIZE)
printf(缺页率:dd\nt+mSIZEpSIZE)
printf(置换次数:d\t\tt)
printf(访问命中率:d\n(pSIZE(t+mSIZE))*100pSIZE)
printf(\n)
}
*计算程延迟*
void compute()
{
int i
printf(正进行相关计算请稍候)
for(i0i++<30printf(\b))
for(i0i++<30printf( ))
for(i0i++<30printf(\b))
}
*先进先出页面置换算法*
void FIFO()
{
int memery[10]{0}
int time[10]{0} *记录进入物理块时间*
int ijkm
int max0
*记录换出页*
int count0
*记录置换次数*
*前mSIZE数直接放入*
for(i0i {
memery[i]page[i]
time[i]i
for(j0j temp[i][j]memery[j]
}
for(imSIZEi {
*判断新页面号否物理块中*
for(j0k0j {
if(memery[j]page[i])
k++
}
if(kmSIZE)
*果物理块中*
{
count++
*计算换出页*
maxtime[0] for(m2m if(time[m] maxm
memery[max]page[i]
time[max]i
*记录该页进入物理块时间*
for(j0j temp[i][j]memery[j]
}
else
{
for(j0j temp[i][j]memery[j]
}
}
compute()
print(count)
}
*久未置换算法*
void LRU()
{
int memery[10]{0}
int flag[10]{0}
*记录页面访问时间*
int ijkm
int max0
*记录换出页*
int count0
*记录置换次数*
*前mSIZE数直接放入*
for(i0i {
memery[i]page[i]
flag[i]i
for(j0j temp[i][j]memery[j]
}
for(imSIZEi {
*判断新页面号否物理块中*
for(j0k0j {
if(memery[j]page[i])
k++
else
flag[j]i
*刷新该页访问时间*
}
if(kmSIZE)
*果物理块中*
{
count++
*计算换出页*
maxflag[0] for(m2m if(flag[m] maxm
memery[max]page[i]
flag[max]i *记录该页访问时间*
for(j0j temp[i][j]memery[j]
}
else
{
for(j0j temp[i][j]memery[j]
}
}
compute()
print(count)
}
*佳置换算法*
void OPT()
{
int memery[10]{0}
int next[10]{0}
*记录次访问时间*
int ijklm
int max
*记录换出页*
int count0
*记录置换次数*
*前mSIZE数直接放入*
for(i0i {
memery[i]page[i]
for(j0j temp[i][j]memery[j]
}
for(imSIZEi {
*判断新页面号否物理块中*
for(j0k0j {
if(memery[j]page[i])
k++
}
if(kmSIZE)
*果物理块中*
{
count++
*物理快中页次访问时间*
for(m0m {
for(li+1l if(memery[m]page[l])
break
next[m]l
}
*计算换出页*
maxnext[0]>next[1]01
for(m2m if(next[m]>next[max])
maxm
*次访问时间pSIZE置换物理块中第*
memery[max]page[i]
for(j0j temp[i][j]memery[j]
}
}
if(kmSIZE)
*果物理块中*
{
count++
*物理快中页次访问时间*
for(m0m {
for(li+1l if(memery[m]page[l])
break
next[m]l
}
*计算换出页*
maxnext[0]>next[1]01 for(m2m if(next[m]>next[max])
maxm
*次访问时间pSIZE置换物理块中第*
memery[max]page[i]
for(j0j temp[i][j]memery[j]
}
}
五程序运行结果
①FIFO

②LRU



六实验体会
做该次作业时候通课相关容温网络找资源解操作系统中页面调度算法程度解加深课程知识理解懂程序中算法实现程序中基实现求算法相关性分析基实现课程求  
次作业暴露某方面足处语言功底定足开始某算法够熟悉算法实现设计较复杂次程序存思想漏洞反映出次程序设计求定限制  

文档香网(httpswwwxiangdangnet)户传

《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档

下载文档,方便阅读与编辑

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 2 香币 [ 分享文档获得香币 ]

该文档为用户出售和定价!

购买文档

相关文档

操作系统 七次实验报告 常用页面置换算法模拟实验

操作系统课程第七次实验报告姓名学号系计算机任课教师指导教师评阅教师实验地点 综合楼B102 实验时间2012-9-26实验课表现出勤和个人表现Q1(15+15(组长评分)=30分)得分:实验总分(Q1+Q2+Q3+Q4)实验完成情况Q2(45分(组长与教师评分的加权平均))得分:实验编号与实验名称:实验七、常用页面置换算法模拟

文***品 3年前 上传746   0

合工大页面置换算法操作系统课程设计报告

计算机与信息学院《操作系统综合设计》报告设计题目:页面置换算法学生姓名:学 号:专业班级:计算机科学与技术班2015 年 X月一、设计题目 3二、开发环境与工具 3三、设计原理 31.最佳(Optimal)置换算法 32.先进先出(FIFO)页面置换算法 43.最近最久未使

文***品 3年前 上传558   0

页面置换算法实验(内含完整代码)

实验二 存储管理 一、 实验目的 通过模拟实现请求页式存储管理的几种基本页面置换算法,了解虚拟存储技术的特 点,掌握虚拟存储请求页式存储管理中几种基本页面置换算法的基本思想和实现过程, 并比较它们的效率。二、 实验内容 基于一个虚拟存储区和内存工作区,设计下述算法并计算访问命中率。 1、最佳淘汰算法(OPT) 2、先进先出的算法(FIFO) 3、最近最久未使用算法(LR

文***品 7个月前 上传172   0

操作系统实验三磁盘调度算法的实现

XX大学计算机与通信工程学院实验报告2013 至 2014 学年 第 一 学期课程名称操作系统学号 学生姓名 年级 专业 教学班号 实验地点 实验时间 2013年 月 日 第 节 至 月 日 第 节主讲教师 辅导教师 实验( 三 )实验名称磁盘调度算法的

文***享 3年前 上传479   0

进程调度算法的实现计算机操作系统课程设计

题目2 进程调度算法的实现2.1 题目的主要研究内容及预期达到的目标(1)设计进程控制块; (2)设计多个进程队列; (3)设计多个进程(≥20); (4)动态生成时间片、执行时间和优先级,将这些信息输出至文件中; (5)设计基于时间片的多优先级调度算法; (6)动态调度,并把所有调度信息输出至文件中。(7)理解进程调度相关理论;(8)掌握时间片调度原理;(9)掌握高优先级

文***品 3年前 上传586   0

操作系统实验四主存空间的分配与回收首次适应算法和循环首次适应算法

实验报告【实验名称】 首次适应算法和循环首次适应算法 【实验目的】理解在连续分区动态的存储管理方式下,如何实现主存空间的分配与回收。【实验原理】首次适应(first fit,FF)算法FF算法要求空闲分区链以地址递增的次序链接。在分配内存时,从链首开始顺序查找,直至找到一个大小能满足要求的空闲分区即可。然后再按照作业的大小,从该分区中划出一块内存空间,分配给请求者,

文***品 3年前 上传1048   0

操作系统实验报告C语言实现银行家算法

实 验 报 告题 目名 称C语言实现银行家算法院 系信息科学与工程学院班 级完成时间指导老师本次实验成绩组长联系电话邮件地址组员(姓名,学号)主要任务程序算法的编写、实现、运行调试组员(姓名,学号)主要任务实验报告的完成组员(姓名,学号)主要任务实验报告的完成

文***品 3年前 上传471   0

计算机操作系统内存分配实验报告

计算机操作系统内存分配实验报告一、实验目的熟悉主存的分配与回收。理解在不同的存储管理方式下,如何实现主存空间的分配与回收。掌握动态分区分配方式中的数据结构和分配算法及动态分区存储管理方式及其实现过程。二、实验内容和要求主存的分配和回收的实现是与主存储器的管理方式有关的。所谓分配,就是解决多道作业或多进程如何共享主存空间的问题。所谓回收,就是当作业运行完成时将作业或进程所占的主存空间归还

文***品 3年前 上传609   0

操作系统实验心得

操作系统实验心得  每一次课程设计度让我学到了在平时课堂不可能学到的东西。所以我对每一次课程设计的机会都非常珍惜。不一定我的课程设计能够完成得有多么完美,但是我总是很投入的去研究去学习。所以在这两周的课设中,熬了2个通宵,生物钟也严重错乱了。但是每完成一个任务我都兴奋不已。一开始任务是任务,到后面任务就成了自己的作品了。总体而言我的课设算是达到了老师的基本要求。总结一下有以下体会。  1

薛***帅 12年前 上传983   0

实验6FFT算法的应用

实验6 FFT算法的应用实验目的:加深对离散信号的DFT的理解及其FFT算法的运用。实验原理:N点序列的DFT和IDFT变换定义式如下: , 利用旋转因子具有周期性,可以得到快速算法(FFT)。 在MATLAB中,可以用函数X=fft(x,N)和x=ifft(X,N)计算N点序列的DFT正、反变换。例1 对连续的单一频率周期信号 按采样频率 采样,截取长度N分别选N =20和N

文***享 1年前 上传381   0

工商管理模拟实验报告

工商管理模拟实验报告 年    级:10春工商管理(本) 姓    名:      胡志元        学    号:  1037001211012     单    位:日照国际铁矿石交易中心 毕业学校:      日照电大      指导教师:      郑 红 梅      初评成绩:                      2012年5月13日  指

s***浩 11年前 上传12764   0

会计模拟实验报告

会计模拟实验报告所属课程名称: 会计模拟实验 姓 名: 专 业: 会计学 班 级: 级班 学 号: 时光飞

文***品 9个月前 上传181   0

基础会计模拟实验实习报告

基础会计模拟实验实习报告  不知不觉,为期一星期的基础会计模拟实验结束了,在这一星期的会计模拟实习中,使得我系统的对于老师讲的一些理论知识实践了一遍,加强了对理论知识的记忆,学到了许多书本上没有的知识,并且意识到只有把书本上学到的理论知识应用于实际的会计实务操作中去,才能真正掌握这门知识。这也是这次实习的目的。首先要取得相关的原始凭证,然后根据这些原始凭证,将其登记记账凭证。在根据记账凭证,

a***9 10年前 上传490   0

《计算机操作系统》试题库

1. 单项选择题(共200个题目)100236. 一般用户更喜欢使用的系统是(C )。 A.手工操作 B.单道批处理 C.多道批处理 D.多用户分时系统100237. 与计算机硬件关系最密切的软件是( D). A.编译程序 B.数据库管理程序 C.游戏程序 D.OS

w***2 2年前 上传677   0

操作系统课程设计银行家算法的模拟实现

操作系统课程设计报告专业计算机科学与技术学生姓名班级学号指导教师完成日期信息工程学院题目: 银行家算法的模拟实现 一、设计目的本课程设计是学习完“操作系统原理”课程后进行的一次全面的综合训练,通过课程设计,更好地掌握操作系统的原理及实现方法,加深对操作系统基础理论和重要算法的理解,加强学生的动手能力。

文***品 3年前 上传687   0

操作系统课程设计磁盘调度算法

操作系统课程设计磁盘调度算法目 录1 课程设计目的及要求……………………………………………………12 相关知识…………………………………………………………………13 题目分析…………………………………………………………………24 概要设计…………………………………………………………………2 4.1 先来先服务(FCFS)的设计思想………

文***享 3年前 上传549   0

操作系统课程设计银行家算法报告

《操作系统--银行家算法》课程设计报告姓 名: 学 号: 班 级:计科班 专 业:计算机科学与技术 指导教师: 时 间: 2009 XX大学 计

文***品 3年前 上传620   0

操作系统课程设计磁盘调度算法

《计算操作系统》课程设计报告 姓名: 班级:软件 学号: 指导老师:

文***品 3年前 上传462   0

《操作系统 银行家算法》课程设计报告

《操作系统--银行家算法》课程设计报告姓 名: 学 号: 班 级: 计科班 专 业:计算机科学与技术 XX大学 计算机科学与信息学院目 录1 课程设计目的 ………………………………………

文***品 3年前 上传812   0

银行家算法《操作系统》课程设计报告

《操作系统》课程设计报告课题: 银行家算法 专业计算机科学与技术学生姓名班级计算机学号指导教师信息工程学院一、实验要求和实验目的实验目的:本课程设计是学生学习完《操作系统原理》课程后,进行的一次全面的综合训练,通过课程设计,让学生更好地掌握操作系统

文***享 3年前 上传699   0

嵌入式操作系统实验指导

嵌入式操作系统实验指导书目 录实验一 Linux命令使用实验二 vi编辑器的使用实验三 shell编程实验(一)实验四 shell编程实验(二)实验五 Linux开发工具的使用实验六 Linux编程实验(一)实验七 Linux编程实验(二)实验八 Linux的系统及网络管理实验实验一 Linux命令使用班级:

文***享 1年前 上传369   0

操作系统实验心得(精选多篇)

操作系统实验心得(精选多篇)第一篇:操作系统实验心得每一次课程设计度让我学到了在平时课堂不可能学到的东西。所以我对每一次课程设计的机会都非常珍惜。不一定我的课程设计能够完成得有多么完美,但是我总是很投入的去研究去学习。所以在这两周的课设中,熬了2个通宵,生物钟也严重错乱了。但是每完成一个任务我都兴奋不已。一开始任务是任务,到后面任务就成了自己的作品了。总体而言我的课设算是达到了老师的基本

x***r 12年前 上传581   0

操作系统进程管理实验报告

操作系统进程管理实验报告实验一 进程管理1.实验目的:(1)加深对进程概念的理解,明确进程和程序的区别;(2)进一步认识并发执行的实质;(3)分析进程争用资源的现象,学习解决进程互斥的方法;(4)了解Linux系统中进程通信的基本原理。2.实验预备内容(1)阅读Linux的sched.h源码文件,加深对进程管理概念的理解;(2)阅读Linux的fork()源码文件,分析进程的

文***享 1年前 上传365   0

操作系统实验(进程调度+存储管理+磁盘调度++银行家算法+文件系统设计)

操作系统实验(进程调度+存储管理+磁盘调度++银行家算法+文件系统设计)实验三 进程调度一、 实验目的多道程序设计中,经常是若干个进程同时处于就绪状态,必须依照某种策略来决定那个进程优先占有处理机。因而引起进程调度。本实验模拟在单处理机情况下的处理机调度问题,加深对进程调度的理解。二、 实验要求1. 设计进程调度算法,进程数不定2. 包含几种调度算法,并加以实现3. 输出进程的调度

文***享 3年前 上传643   0

图象处理算法实验指导书

 图象处理算法实验指导书 实验一 静态图像采集 一、 实验目的 1. 了解DSK的工作原理。 2. 了解FPGA进行静态图像采集的工作原理。 3. 了解DSP的EDMA技术在静态数据采集中的作用。 4. 了解DSP的中断技术。 5. 了解SDRAM在静态视频数据采集中的作用。 6. 了解DSP

文***享 5年前 上传846   0