




免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验报告实验项目名称:虚拟页式管理 实验时间:2014.5.12实验室: K4-406 指导老师:李 芳一、实验目的了解通过利用操作系统调用实现用户程序分配内存以及回收所用内存的程序过程,加深对操作系统存储管理机制的理解二、实验内容通过阅读和分析实验程序,学习Windows程序设计、调试和运行的方法。 三、实验过程程序修改前,高6位为页号,低10位为页内偏移:源程序为:#include stdio.h#include iostream.h#define n 64 /*模拟实验中假定的页表长度*/#define length 10structint lnumber;/*页号*/int flag; /*表示该页是否在主存,1表示在主存中,0表示不在*/int pnumber;/*该页所在主存块的块号*/int write; /*该页是否被修改过,1表示修改过,0表示没有修改过*/int dnumber;/*该页存放在磁盘上的位置,即磁盘块号*/pagen; /*页表定义*/int m; /*m为该作业在主存中的主存块块数*/int page_length;/*页表实际长度*/int plength; /*存放在主存中页的页号*/int head; /*主存中页号队列*/void page_interrupt(int lnumber) int j; printf(发生缺页中断* %dn,lnumber);/*淘汰页*/ j=phead; phead=lnumber; head=(head+1)%m; if (pagej.write=1) printf(将页 %d写回磁盘第%d块n,j,pagej.dnumber); pagej.flag=0;/* 第j页存在标志改为0*/ pagelnumber.pnumber=pagej.pnumber; pagelnumber.flag=1;/* 第lnumber页存在标志改为1*/ pagelnumber.write=0;/* 第lunmber页修改标志改为0*/ printf(淘汰主存块%2d中的页%2d,从磁盘第%d块中调入页%2dn, pagej.pnumber,j,pagelnumber.dnumber,lnumber); /*缺页中断处理函数结束*/ void command( unsigned laddress,int write) unsigned paddress,ad,pnumber,lnumber; kk: /*取出逻辑地址laddress的页号lnumber(高6位)和页内地址ad*/ lnumber=laddress10; ad=laddress&0x3ff; if(lnumber=page_length) printf(不存在该页n); return; if(pagelnumber.flag=1) /*页在主存*/ pnumber=pagelnumber.pnumber;/* 从页表中取得块号*/ paddress=pnumber10|ad; /* 合并块号和块内地址形成物理地址paddress*/ printf(逻辑地址是:%x 对应物理地址是:%xn,laddress,paddress); if(write=1)/*如果需要写,修改页的修改标志位*/ pagelnumber.write=1; elsepage_interrupt(lnumber);/*缺页中断*/ goto kk; /*命令处理函数结束*/main( )int lnumber,flag,pnumber,write,dnumber;unsigned laddress;int i;/*输入页表的信息,页号从0开始,依次编号,创建页表page*/printf(输入页表的信息,创建页表(若页号为1,则结束输入))n);printf(输入页号和辅存地址:);scanf(%d%d,&lnumber,&dnumber);i=0;while(lnumber!=-1)pagei.lnumber=lnumber;pagei.flag=0;pagei.write=0;pagei.dnumber=dnumber;i+;printf(输入页号和辅存地址:);scanf(%d%d,&lnumber,&dnumber);page_length=i;printf(输入主存块号,主存块数要小于%d,(以1结束):,i);scanf(%d,&pnumber);m=0;head=0;while(pnumber!=-1)if(m10; ad=laddress&0x3ff; paddress=pnumber9; ad=laddress&0x1ff; paddress=pnumber9|ad; 结论:通过本次验证性实验,让我了解到了操作系统是如何进行虚拟页式管理的。当然在实验中我也遇到了许多问题。比如一开始我不清楚高地址6位与低地址10位是如何从逻辑地址转换到物理地址的;当发生缺页时,操作系统是如何进行处理的;修改程序时,将程序改为高地址7位表示页号与低地址9位表示页内偏移。最终我通过问老师弄清楚了这些问题。操作系统先建立页号与辅存的对应关系,再建立页号与主存块的对应关系页表。源程序高地址6位先找到页号,再根据低地址10位进行页内偏移;当发生缺页时,操作系统
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年临沂莒南县教体系统部分事业单位公开招聘教师(1名)考前自测高频考点模拟试题及完整答案详解
- 2025贵州惠水县公益性岗位招聘4人考前自测高频考点模拟试题及答案详解(考点梳理)
- 2025包头市喜桂图文化旅游开发有限公司招聘讲解员15人模拟试卷及答案详解(易错题)
- 2025年温州市卫生健康委员会直属卫生健康单位面向社会公开招聘116人考前自测高频考点模拟试题及答案详解(名师系列)
- 2025北京昌平区统计局招聘经济运行监测工作专班助统员1人考前自测高频考点模拟试题及答案详解(新)
- 2025河南省蓝天实验室招聘工作人员20人考前自测高频考点模拟试题完整参考答案详解
- 2025湖北天门市城市社区专职工作人员招聘59人模拟试卷及答案详解一套
- 2025江苏苏州市自来水有限公司专业化青年人才定岗特选录用人员考前自测高频考点模拟试题及答案详解1套
- 2025年玉环市经济和化局公开选聘工作人员1人模拟试卷(含答案详解)
- 2025年中国三峡新能源(集团)股份有限公司春季校园招聘笔试题库历年考点版附带答案详解
- 川贝母培训课件
- QGDW11059.2-2018气体绝缘金属封闭开关设备局部放电带电测试技术现场应用导则第2部分特高频法
- 2025-2030年汽车模具行业市场发展分析及竞争格局与投资战略研究报告
- 2025年云南省中考语文试卷真题(含答案逐题解析)
- CJ/T 514-2018燃气输送用金属阀门
- CJ/T 244-2016游泳池水质标准
- 环保型氟硅橡胶鞋垫行业跨境出海项目商业计划书
- 智能语音识别技术原理与应用课件
- 签约红娘合作协议书
- 2025年公共营养师考试题及答案
- 2024年09月山东枣庄市妇幼保健院青年就业见习拟录用笔试历年专业考点(难、易错点)附带答案详解
评论
0/150
提交评论