- 1、本文档共11页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
操作系统实验4-请求分页存储管理模拟实验精要
实验四
请求分页存储管理模拟实验
一:实验目的
通过对页面、页表、地址转换和页面置换过程的模拟,加深对请求分页存储管理系统的原理和实现技术的理解。
二:实验内容
假设每个页面可以存放10条指令,分配给进程的存储块数为4。
用C语言或Pascal语言模拟一进程的执行过程。设该进程共有320条指令,地址空间为32个页面,运行前所有页面均没有调入内存。模拟运行时,如果所访问的指令已经在内存,则显示其物理地址,并转下一条指令;如果所访问的指令还未装入内存,则发生缺页,此时需要记录缺页产生次数,并将相应页面调入内存,如果4个内存块已满,则需要进行页面置换。最后显示其物理地址,并转下一条指令。在所有指令执行完毕后,显示进程运行过程中的缺页次数和缺页率。
页面置换算法:分别采用OPT、FIFO、LRU三种算法。
进程中的指令访问次序按如下原则生成:
50%的指令??顺序执行的。
25%的指令是均匀分布在低地址部分。
25%的指令是均匀分布在高地址部分。
三:实验类别
分页存储管理
四:实验类型
模拟实验
五:主要仪器
计算机
六:结果
OPT:
LRU:
FIFO:
七:程序
# includestdio.h
# includestdlib.h
# includeconio.h
# define blocknum 4//页面尺寸大小
int m; //程序计数器,用来记录按次序执行的指令对应的页号
static int num[320]; //用来存储320条指令
typedef struct BLOCK //声明一种新类型--物理块类型
{
int pagenum; //页号
int accessed; //访问量,其值表示多久未被访问
}BLOCK;
BLOCK block[blocknum]; //定义一大小为8的物理块数组
void init() //程序初始化函数,对block初始化
{
for(int i=0;iblocknum;i++)
{
block[i].pagenum=-1;
block[i].accessed=0;
m=0;
}
}
int pageExist(int curpage)//查找物理块中页面是否存在,寻找该页面curpage是否在内存块block中,若在,返回块号
{
for(int i=0; iblocknum; i++)
{
if(block[i].pagenum == curpage )
return i; //在内存块block中,返回块号
}
return -1;
}
int findSpace()//查找是否有空闲物理块,寻找空闲块block,返回其块号
{
for(int i=0;iblocknum;i++)
{
if(block[i].pagenum==-1)
return i; //找到了空闲的block,返回块号
}
return -1;
}
int findReplace()//查找应予置换的页面
{
int pos = 0;
for(int i=0;iblocknum;i++)
{
if(block[i].accessed block[pos].accessed)
pos = i; //找到应该置换页面,返回BLOCK中位置
}
return pos;
}
void display()//显示物理块中的页面号
{
for(int i=0; iblocknum; i++)
{
if(block[i].pagenum != -1)
{
printf( %02d ,block[i].pagenum);
printf(%p |,block[i].pagenum);
}
}
printf(\n);
}
void randam()//产生320条随机数,显示并存储到num[320]
{
int flag=0;
printf(请为一进程输入起始执行指令的序号(0~320):\n);
scanf(%d,m);//用户决定的起始执行指令
printf(******进程中指令访问次序如下:(由随机数产生)*******\n);
for(int i=0;i320;i++)
{//进程中的320条指令访问次序的生成
num[i]=m;//当前执行的指令数,
if(flag%2==0)
m=++m%320;//顺序执行下一条指令
if(flag==1)
m=rand()%(m-1);//通过随机数,跳转到低地址部分[0,m-1]的一条指令处,设其序号为m1
if(flag==3)
m=m+1+(rand(
您可能关注的文档
- 操作系统 计算题精要.docx
- 防结冰涂层讲述.pptx
- 操作系统 页面置换C语言精要.doc
- 防触电事故应急预案讲述.doc
- 防范电动车火灾事故安全经验分享新版讲述.ppt
- 防翻架管厚优化--黄木彬讲述.pptx
- 操作系统 第7章文件精要.ppt
- 操作系统-----存储管理实验报告精要.doc
- 操作柱检修精要.ppt
- 防锈油的基本应用讲述.ppt
- 北师大版小学数学三年级上册《寄书》教学设计.docx
- 统编版(部编版)语文二年级上册《雪孩子》教学设计.docx
- 统编版(部编版)语文二年级上册《八角楼上》教学设计.docx
- 北师大版小学数学三年级上册《长方形周长》教学设计.docx
- 北师大版小学数学三年级上册《丰收了》教学设计.docx
- 统编版(部编版)语文二年级上册《夜宿山寺》教学设计.docx
- 统编版(部编版)语文二年级上册《风娃娃》教学设计.docx
- 统编版(部编版)语文二年级上册《朱德的扁担》教学设计.docx
- 统编版(部编版)语文二年级上册《难忘的泼水节》教学设计.docx
- 统编版(部编版)语文二年级上册《纸船和风筝》教学设计.docx
最近下载
- 常微分方程(第4版)王高雄教材习题详解.pdf
- GB50416-2017 煤矿井下车场及硐室设计规范.docx
- 部编版《道德与法治》一年级上册第2课《拉拉手交朋友》优秀课件.pptx
- 消费者行为学(上海外国语)中国大学MOOC慕课 客观题答案.docx
- 2024年秋季新人教道德与法治一年级上册全册课件(新版教材).pptx
- 中国老年心肺复苏急诊专家共识(2024)解读PPT课件.pptx VIP
- 幼儿园中班科学《数高楼》 课件.pptx VIP
- 洗洁精中的化学科普知识(课件)小学生拓展通用版.pptx
- SONYHDRXR260E中文操作说明书.pdf
- 新注册(备案)医疗器械耗材如何加入国家医保局目录新增编码和流水号.docx
文档评论(0)