请求分页式存储管理程序.doc

请求分页式存储管理程序.doc

ID:58648315

大小:101.00 KB

页数:8页

时间:2020-10-16

请求分页式存储管理程序.doc_第1页
请求分页式存储管理程序.doc_第2页
请求分页式存储管理程序.doc_第3页
请求分页式存储管理程序.doc_第4页
请求分页式存储管理程序.doc_第5页
资源描述:

《请求分页式存储管理程序.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、操作系统实验报告——请求页式存储管理算法班级:计1009学号:姓名:*******二零一二年十二月一、实验目的   通过一个简单的内存页面调度算法的实现,理解内存页面的机理。掌握几种页面置换算法的实现方法,通过实验比较各种调度算法的优劣。二、实验内容[问题描述]设计一个请求页式存储管理方案,为简单起见。页面淘汰算法采用FIFO页面淘汰算法,并且在淘汰一页时,只将该页在页表中修改状态位。而不再判断它是否被改写过,也不将它写回到辅存。[基本要求]页面尺寸1K,输入进程大小(例如5300bytes),对页表进行初始化,页表结构:

2、页号物理块号状态位02True(在主存)112False(在辅存)304False(在辅存)5False(在辅存)系统为进程分配3个物理块(页框),块号分别为0、1、2,页框管理表(空闲块表):物理块号是否空闲0true1true2true任意输入一个需要访问的指令地址流(例如:3635、3642、1140、0087、1700、5200、4355,输入负数结束),打印页表情况。每访问一个地址时,首先要计算该地址所在的页的页号,然后查页表,判断该页是否在主存——如果该页已在主存,则打印页表情况;如果该页不在主存且页框未满,则

3、调入该页并修改页表,打印页表情况;如果该页不在主存且页框已满,则按FIFO页面淘汰算法淘汰一页后调入所需的页,修改页表,打印页表情况;存储管理算法的流程图如下:打印页表淘汰一页后调入所需的页,修改页表调入该页并修改页表页框未满该页已是否在主存计算页号,查页表结束0<=地址<=进程大小输入要访问的地址开始输入进程大小,对页表进行初始化是是是三、程序及运行情况#include#include#definek1024//页面尺寸#defineX10#defineY10intH;//用于接收进

4、程的大小inth;typedefstructform{intpage;intpno;intstate;}Form;typedefstructPform{intpno;intstate;}PForm;Formform[X];PFormpform[Y];voidinitForm()//初始化{inti;printf("请输入进程的大小:");scanf("%d",&H);h=H/k;h--;if(h%k!=0){h=h+1;}for(i=0;i<=h;i++)//初始化页表{form[i].page=i;form[i].pno

5、=-1;//页表内物理块为-1,表示为分配物理块form[i].state=0;//页表初始状态为0,表示页表不在内存}for(i=0;i<3;i++)//初始化页框{pform[i].pno=i;pform[i].state=0;//页框初始状态为0,表示物理块空闲}}voidinput(){intb,i,n;intm=0,p=0;printf("请输入要访问的地址:");scanf("%d",&b);if((b<0)

6、

7、(b>H)){exit(0);}else{i=b/k;//求要访问的地址为第几页if(b%k==0)

8、i--;//因为页号从0开始printf("该地址所在页号为:%d",i);if(form[i].state==0)//若该页不在主存{while(m<3)//查看物理块是否有空闲{if(pform[m].state==1){m++;p++;}else{pform[m].state=1;form[i].pno=pform[m].pno;form[i].state=1;break;}}if(p==3)//若页框已满,则回收最早拥有物理块的页号所分配的物理块{for(m=0;m

9、=0){form[m].pno=-1;form[m].state=0;}if(form[m].pno==1)form[m].pno=0;if(form[m].pno==2)form[m].pno=1;form[i].pno=2;form[i].state=1;}}}printf("页号物理块状态位");for(m=0;m<=h;m++){printf("%d%d%d",m,form[m].pno,form[m].state);}printf("是否继续访问?1、是2、否");scanf("%d",&n);if(

10、n==1){input();}else{exit(0);}}}voidmain(){inti;initForm();printf("页表初始化:");printf("页号物理块状态位");for(i=0;i<=h;i++){printf("%d%d%d",form[i].page,form[

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。