版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实习五虚假储藏器实验报告实习五虚假储藏器实验报告18/18实习五虚假储藏器实验报告实习五虚假储蓄器一、实习内容模拟分页式虚假储蓄管理中硬件的地点变换和缺页中止,以及选择页面调动算法办理缺页中止。二、实习目的在计算机系统中,为了提升主存利用率,常常把协助储蓄器(如磁盘)作为主储蓄器的扩大,使多道运转的作业的所有逻辑地点空间总和能够高出主存的绝对地点空间。用这种方法扩大的主储蓄器称为虚假储蓄器。经过本实习帮助同学理解在分页式储蓄管理中怎样实现虚假储蓄器。三、实习题目本实习有三个题,此中第一题必做,第二、第三题中可任选一个。第一题:模拟分页式储蓄管理中硬件的地点变换和产生缺页中止。[提示]:(1)分页式虚假储蓄系统是把作业信息的副本寄存在磁盘上,看作业被选中时,可把作业的开始几页先装入主存且启动履行。为此,在为作业成立页表时,应说明哪些页已在主存,哪些页还没有装入主存,页表的格式为:页号标记主存块号在磁盘上的地点此中,标记——用来表示对应页能否已经装入主存,标记位=1,则表示该页已经在主存,标记位=0,则表示该页还没有装入主存。主存块号——用来表示已经装入主存的页所占的块号。在磁盘上的地点——用来指出作业副本的每一页被寄存在磁盘上的地点。(2)作业履行时,指令中的逻辑地点指出了参加运算的操作数寄存的页号和单元号,硬件的地点变换机构按页号查页表,若该页对应标记为“1”,则表示该页已在主存,这时根据关系式:绝对地点=块号块长+单元号计算出欲接见的主存单元地点。假如块长为2的幂次,则可把块号作为高地点部分,把单元号作为低地点部分,二者拼接而成绝对地点。按计算出的绝对地点能够取到操作数,完成一条指令的履行。若接见的页对应标记为“0”,则表示该页不在主存,这时硬件发“缺页中止”信号,由操作系统按该页在磁盘上的地点,把该页信息从磁盘读出装入主存后再从头履行这条指令。.专业学习资料(3)设计一个“地点变换”程序来模拟硬件的地点变换工作。当接见的页在主存时,则形成绝对地点,但不去模拟指令的履行,而用输出变换后的地点来取代一条指令的履行。当接见的页不在主存时,则输出“*该页页号”,表示产生了一次缺页中止。该模拟程序的算法如图5-1。(4)假定主存的每块长度为128个字节;现有一个共七页的作业,此中第0页至第3页已经装入主存,其他三页还没有装入主存;该作业的页表为:015011118012219013311021400225002360121假如作业挨次履行的指令序列为:操作页号单元号操作页号单元号+0070移位4053+1050+50232015存1037存3021取2078取0056+4001-6040存6084运转设计的地点变换程序,显示或打印运转结果。因仅模拟地点变换,其实不模拟指令的执行,故可不考虑上述指令序列中的操作。第二题:用先进先出(FIFO)页面调动算法办理缺页中止。.专业学习资料[提示]:在分式虚存系中,当硬件出“缺中止”后,引出操作系来理此中断事件。假如主存中已没有空,可用FIFO面度算法把作中最初入主存的一出,寄存到磁上。此后再把目前要的装入。出和装入后都要改正表中的志。(2)FIFO面度算法是裁汰作中最初入主存的那一,所以能够用一个数来表示作已在主存的面。假定作被中,把开始的m个面装入主存,数的元素可定m个。比方:P[0],P[1]⋯,P[m-1]此中每一个P[i](I=0,1,⋯,m-1)表示一个在主存中的面号。它的初:P[0]:=0,P[1]:=1,⋯,P[m-1]:=m-1用一指K指示当要装入新,裁汰的在数中的地点,K的初“0”。当生缺中止后,操作系P[k]所指出的面出,此后行:P[k]:=要装入的号k:=(k+1)modm再由装入程序把要的一信息装入到主存中。从头启才那条指令行。制一个FIFO面度程序,了提升系效率,假如裁汰的内行中没有改正,可不用把出(因在磁上已有副本)而直接装入一个新将其覆盖。所以在表中增添能否改正的志,“1”表示改正,“0”表示未改正,格式:号志主存号改正志在磁上的地点因为是模度算法,所以,不地启出一和装入一的程序,而用出出的.专业学习资料页号和装入的页号来取代一次调出和装入的过程。把第一题中程序稍作变动,与此题联合起来,FIFO页面调动模拟算法如图5-2。假如一个作业的副本已在磁盘上,在磁盘上的寄存地点以及已装入主存的页和作业挨次履行的指令序列都同第一题中(4)所示。于是增添了“改正标记”后的初始页表为:页号标记主存块号改正标记在磁盘上的地点0150011118001221900133110021400022500023600121按挨次履行的指令序列,运转你所设计的程序,显示或打印每次调出和装入的页号,以及履行了最后一条指令后的数组P的值。为了检查程序的正确性,可再随意确立一组指令序列,运转设计的程序,查对履行的结果。第三题:用近来最少用(LRU)页面调动算法办理缺页中止。[提示]:在分页式虚假储蓄系统中,当硬件发出“缺页中止”后,引出操作系统来办理这此中止事件。假如主存中已经没有安闲块,则可用LRU页面调动算法把该作业中距此刻最久没有被接见过的一页调出,寄存到磁盘上。此后再把目前要接见的页装入该块。调出和装入后都要改正页表中对应页的标记。(2)LRU页面调动算法老是裁汰该作业中距此刻最久没被接见过的那页,所以能够用一个数组来表示该作业已在主存的页面。数组中的第一个元素老是指出目前刚接见的页号,所以最久没被接见过的页老是由最后一个元素指出。假如主存只有四块安闲块且履行第一题中提示(4)假定的指令序列,采纳LRU页面调动算法,那么在主存中的页面变化状况以下:.专业学习资料306451246230645124123064512012306451当产生缺页中止后,操作系统老是裁汰由最后一个元素所指示的页,再把要接见的页装入裁汰页所占的主存块中,页号登记到数组的第一个元素中,从头启动刚才那条指令履行。编制一个LRU页面调动程序,为了提升系统效率,假如裁汰的页在履行中没有修悔过,则可不用把该页调出。参看第二题中提示(3)。模拟调动算法不实质地启动调出一页和装入一页的程序而用输出调出的页号和装入的页号来取代。把第一题中程序稍作改动,与此题联合起来,LRU页面调动模拟算法如图5-3。(4)按第一题中提示(4)的要求,成立一张初始页表,页表中为每一页增添“改正标志”位(参照第二题中提示(4))。此后按挨次履行的指令序列,运转设计的程序,显示或打印每次调出和装入的页号,以及履行了最后一条指令后数组中的值。为了检查程序的正确性,可再随意确立一组指令序列,运转设计的程序,查对履行的结果。源程序程序中使用的数据构造及符号说明typedefstruct//作业{charname[10];//作业名称intpageNum;//页号intoffset;//单元号,偏移位移}Job;typedefstruct//页表{intpageNum;//页号intmflag;//标记(能否在内存)intblockNum;//主存块号intalterFlag;//改正标记intposition;//在磁盘上的地点.专业学习资料}PageTable;打印一份源程序并附上说明#include<stdio.h>#include<string.h>typedefstruct//作业{charname[10];//作业名称intpageNum;//页号intoffset;//单元号,偏移位移}Job;typedefstruct//页表{intpageNum;//页号intmflag;//标记(能否在内存)intblockNum;//主存块号intalterFlag;//改正标记intposition;//在磁盘上的地点}PageTable;voidInitPageTable(PageTable*pt){intblockNum[5]={0,5,8,9,1};intposition[5]={0,11,12,13,21};for(inti=1;i<5;i++){pt[i].pageNum=i-1;pt[i].mflag=1;pt[i].blockNum=blockNum[i];pt[i].alterFlag=0;pt[i].position=position[i];}}voidInitJob(Job*job){constchar*name[12]={"+","+","*","存","取","-","移位","+","存","取","+","存"};.专业学习资料intpf[12]={0,1,2,3,0,6,4,5,1,2,4,6};intoffset[12]={70,50,15,21,56,40,53,23,37,78,1,84};for(inti=0;i<12;i++){strcpy(job[i].name,name[i]);job[i].pageNum=pf[i];job[i].offset=offset[i];}}voidFIFODiaoDu(Jobjob,PageTable*pt){if(pt[1].alterFlag==1)printf("页面%d已经被改正,故页面%d写回磁盘,页面%d调入内存\n",pt[1].pageNum,pt[1].pageNum,job.pageNum);elseprintf("页面%d调出内存,页面%d调入内存\n",pt[1].pageNum,job.pageNum);inttemp[2]={pt[1].blockNum,pt[1].position};//暂存调出页面信息,容纳新页for(inti=1;i<5;i++)//数组模拟内存中搁置页块行列,先进来的在队首,后进来的在队尾pt[i-1]=pt[i];pt[4].pageNum=job.pageNum;pt[4].blockNum=temp[0];pt[4].position=temp[1];if(strcmp(,"存")==0)//存操作,改正标记置1pt[4].alterFlag=1;elsept[4].alterFlag=0;}voidprintPageTable(PageTable*pt){printf("页号标记主存块号改正标记在磁盘上的地点\n");for(inti=1;i<5;i++)printf("%d%d%d%d%d\n",pt[i].pageNum,pt[i].mflag,pt[i].blockNum,pt[i].alterFlag,pt[i].position);}.专业学习资料voidprintJob(Job*job){printf("作业名页号单元号\n");for(inti=0;i<12;i++)printf("%4s%d%d\n",job[i].name,job[i].pageNum,job[i].offset);}intmain(void){Jobjob[12];InitJob(job);printf("作业挨次履行的指令序列:\n");printJob(job);PageTablept[5];InitPageTable(pt);printf("初始内存表:\n");printPageTable(pt);printf("\n作业履行开始*\n\n");for(inti=0;i<12;i++){intj=0;for(j=1;j<5;j++){if(job[i].pageNum==pt[j].pageNum)//作业所需页面在内存中{if(strcmp(job[i].name,"存")==0)//存操作改正指令置1pt[j].alterFlag=1;break;}}if(j==5)//缺页中止{printf("缺页中止\n");FIFODiaoDu(job[i],pt);//先进先出页面调动printf("作业\"%s\"从头履行\n",job[i].name);.专业学习资料i--;//该作业从头履行}else{printf("\t作业\"%s\"开始履行\n",job[i].name);printf("逻辑地点:页号%d,单元号%d\n",job[i].pageNum
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 快件揽收员岗前安全实操考核试卷含答案
- 地毯络筒工操作水平知识考核试卷含答案
- 冷食品制作工岗前前瞻考核试卷含答案
- 胶带机移设机司机诚信评优考核试卷含答案
- 剑麻纤维生产工班组建设能力考核试卷含答案
- 冷链物流员诚信品质竞赛考核试卷含答案
- 酒精酿造工测试验证知识考核试卷含答案
- 2024年平顶山职业技术学院辅导员招聘考试真题汇编附答案
- 2024年漯河职业技术学院辅导员考试参考题库附答案
- 老年人能力评估师班组协作强化考核试卷含答案
- 新生儿肺炎的治疗与护理
- 电缆局部放电试验报告模板
- 东莞初三上册期末数学试卷
- 人员技能矩阵管理制度
- T/CECS 10220-2022便携式丁烷气灶及气瓶
- 空调售后外包协议书
- 光伏防火培训课件
- 电视节目编导与制作(全套课件147P)
- 《碳排放管理体系培训课件》
- 2024年人教版八年级历史上册期末考试卷(附答案)
- 区间闭塞设备维护课件:表示灯电路识读
评论
0/150
提交评论