请求页式存储管理.doc

请求页式存储管理.doc

ID:51390026

大小:147.50 KB

页数:7页

时间:2020-03-23

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

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

1、计算机操作系统实验报告实验三:一:内存页面调度算法的实现实验目的:理解内存页面的机理。掌握几种页面置换算法的实现方法通过实验比较各种调度算法的优劣二、请求页式存储管理[问题描述]设计一个请求页式存储管理方案,为简单起见。页面淘汰算法采用FIFO页面淘汰算法,并且在淘汰一页时,只将该页在页表屮修改状态位。而不再判断它是否被改写过,也不将它写冋到辅存。[基本要求]页血尺寸1K,输入进程大小(例如53OObytes),对页表进行初始化,页表结构:页号物理块号状态位02True(在主存)112False(在辅存)304False(在辅存)5False(在辅存)系

2、统为进程分配3个物理块(页框),块号分别为0、1、2,页框管理表(空闲块表):物理块号是否空闲0true1true2true任意输入一个需要访问的指令地址流(例如:3635、3642、1140、0087.1700、5200、4355,输入负数结束),打印页表情况。每访问一个地址时,首先要计算该地址所在的页的页号,然后杏页表,判断该页是否在主存——如果该页已在主存,则打印页表情况;如果该页不在主存且页框未满,则调入该页并修改页表,打印页表情况;如果该页不在主存且页框已满,则按FIFO页面淘汰算法淘汰一页后调入所需的页,修改页表,打印页表情况;存储管理算法的

3、流程图如下:开始▼▼调入该页并修改页表淘汰一页后调入所需的页,修改页表•C:360DOWNLOADSDebugjcgl.exe-••G360DOWNLOADSDebugjcgl.exe-输入要访间的地址=5555ERRORPleaseinputtheaddressagain:(Y/N)y在辅存7CTQ实验结果分析:输入进程大小4455,如果输入访问地址大于4455,则显示ERROR,输入小于等于他并且大于0的地址,则可以根据计算页号从而分配。然后再判断是否在主存,若是则打印页表,若否,在判断是否在辅存,是,调入页表,否,采用先进先出算法淘汰一

4、页最先进入的页面,调入所需页。这里采用count计数进行判断。请输入进程大小:4455■S否要输入访冋地址*(V/N)y输入要访冋的地址汚555PDDAQjbftXz>•Pleaseinputth©addressagain:1234醫升霸羈薯;状态,1是否继续输入(V/H)y输入要访问的地址:2345输入要访冋的地址£344野了矗霭鷺状态,1是否继续输入(V/H)y输入要访冋的地址:88页在主存,打印页表:实验代码:#include#include#defineHJSY#defineNOTBUSY01structPa

5、ge{intPNumber;intENumber;intG)unt;boolSate;〃页号〃物理块号〃计数器//状态位}Page[6]={{023,true},{1,1,2,true},{2厂1,0,false}J3,0J,true},{4,-lQfalse},{5厂1,0,false}};〃对页表进行初始化〃利用结构体数组存储页表structPhysical{intH^umber;intSate;〃物理块号//状态位}Physical[3]={{0,l},{l,l},{2,l}};〃利用结构体数纽•初始化页框intinainO{intP,BNumbe

6、r;inti,j,k;charc;intMaxSize,MaxCount=0;printf("请输入进程大小:”);scanf(”%d”,&MaxSize);〃输入进程大小printf(”是否要输入访问地址:(Y/N)”);scanf(M%sf,,&c);while(c==,Y,llc='y,){intAddress;printf(H输入要访问的地址:”);scanf(“%d”,&Address);//输入要访问的地址while(Address<0IIAddress>MaxSize){printf(HERRORn);printf("Pleas

7、einputtheaddressagain:”);scanf("%d",&Address);P=Address/1024;for(i=0;i<=5;i++){讦(Page[i].PNumber==P&&Page[i].State==true)//在页表屮并在主存屮{printf(n页在主存,打印页表:“);printf(n页号:%d物理块号:%d状态:%d",Page[i].PNumber,Page[i].BNumber,Page[i].State);for(i=0;i<=5;i++){讦(Page

8、iJ.PNumber==P&&Page[i

9、.

10、State==false){printf(°在辅存”);〃判断页面是否己满i

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

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

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