收藏 分销(赏)

操作系统:页式管理的分配与回收算法(C语言).doc

上传人:仙人****88 文档编号:8101433 上传时间:2025-02-04 格式:DOC 页数:5 大小:27KB
下载 相关 举报
操作系统:页式管理的分配与回收算法(C语言).doc_第1页
第1页 / 共5页
操作系统:页式管理的分配与回收算法(C语言).doc_第2页
第2页 / 共5页
操作系统:页式管理的分配与回收算法(C语言).doc_第3页
第3页 / 共5页
操作系统:页式管理的分配与回收算法(C语言).doc_第4页
第4页 / 共5页
操作系统:页式管理的分配与回收算法(C语言).doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

1、 操作系统:页式管理的分配与回收算法(C语言)#include#include/#include/#includewindows.h/#includeos.h#define n 64/实验中假定主存的长度#define m 4/实验中假定每个作业分得主存块块数int pm;/定义页structshort int lnumber;/页号short int flag;/表示该页是否在主存,“1”表示在主存,“0”表示不在主存short int pnumber;/该页所在主存块的块号short int write;/该页是否被修改过,“1”表示修改过,“0”表示没有修改过short int dnum

2、ber;/该页存放在磁盘上的位置,即磁盘块号short int times;/被访问的次数,用于LRU算法pagen;/定义页表/各个函数的实现如下:void computer()int i;for(i=0;in;i+)pagei.lnumber = i;pagei.flag = 0;pagei.pnumber = 10000;/用10000表示为空pagei.write = 0;pagei.dnumber = i;pagei.times = 0;/初始化页表for(i=0;im;i+)pagei.pnumber = i;for(i=0;im;i+)pi = i;pagei.flag = 1;

3、/初始化页 void showpagelist() int i;printf(页号t是否在主存中t块号t是否被修改过t磁盘块号t访问次数n);for(i=0;in;i+)printf(%dt%d %dt%d %d t%dn,pagei.lnumber,pagei.flag,pagei.pnumber,pagei.write,pagei.dnumber,pagei.times);void showpage() int i;for(i=0;i 10;/得到页号printf(页号为:%dn,logicNumber);innerAddress = logicAddress & 0x03ff;/得到页内

4、地址printf(页内地址为:%dn,innerAddress);for(i=0;in;i+)if(logicNumber=(unsigned)pagei.lnumber)if(pagei.flag = 1)printf(请求的页面在主存中!n);pagei.times+;physicsNumber = pagei.pnumber;/由页号得到块号printf(请求的主存块号为:%dn,physicsNumber);physicsAddress = physicsNumber 10 |innerAddress;/得到物理地址printf(请求的物理地址为:%dn,physicsAddress)

5、;break;else printf(请求的页面不在主存中! 将进行缺页中断处理!n请选择算法!n);printf(1.先进先出n2.最近最少用!n请选择置换算法n);scanf(%d,&method);if(method = 1) /采用先进先出算法printf(采用先进先出算法!n);fail = phead;printf(第:%d页将被替换n,fail);phead = logicNumber;head = (head+1) % m;if(pagefail.write = 1)printf(第:%d页曾被修改过n,fail);pagefail.flag = 0;pagelogicNumb

6、er.flag = 1;pagelogicNumber.write = 0;pagelogicNumber.pnumber = pagefail.pnumber;pagefail.pnumber = 10000;pagelogicNumber.times+;break;else if(method = 2) /采用最近最少用算法printf(采用最近最少用算法!n);for(i=0;in;i+)if(pagei.flag = 1)if(pagei.timestimes)times = pagei.times;temppage = pagei.lnumber;printf(第:%d页将被替换n,

7、temppage);for(i=0;im;i+)if(pi = temppage)pi = logicNumber;if(pagetemppage.write = 1)printf(第:%d页曾被修改过n,temppage);pagetemppage.flag = 0;pagelogicNumber.flag = 1;pagelogicNumber.write = 0;pagelogicNumber.pnumber = pagetemppage.pnumber;pagetemppage.pnumber = 10000;pagelogicNumber.times+;break;else prin

8、tf(你输入有误,即将退出!);exit(1);void main()char c,d,temp;computer();showpage();showpagelist();T:transformation();printf(是否显示页和页表?(y/n));scanf(%c,&temp);/忽略回车scanf(%c,&c);scanf(%c,&temp);/忽略回车switch(c)case y:showpage();showpagelist();case n:printf(是否继续进行请求分页?(y/n));scanf(%c,&d);if (d=Y|d=y)goto T;else if (d=N|d=n)exit(1);else printf(输入错误!n);default:printf(输入错误!n);

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 教育专区 > 小学其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服