ImageVerifierCode 换一换
格式:DOC , 页数:13 ,大小:67.50KB ,
资源ID:3860208      下载积分:8 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/3860208.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(请求分页式存储管理的地址转换过程实现.doc)为本站上传会员【人****来】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

请求分页式存储管理的地址转换过程实现.doc

1、第2部分、请求分页式存储管理的地址转换过程实现: ●基本要求:在第1部分实验基础上实现进程的分页式内存分配和地址转换过程,并进一步实现请求分页式存储分配和地址转换过程。页面置换算法至少应实现先进先出(FIFO)、最近最久未使用(LRU)等算法。 ●参考学时:16学时 ●实验提示: 1、 建立一个位示图,用来模拟内存的分配情况,位示图的位数与设定的物理块个数相同。程序启动时可利用一组随机0和1填充位示图,表示内存已被占用情况。 假设内存容量为64K,块大小为1K,则共有64个块,对应的位示图可能的值如下: 第0字节 1 0 1 1 0 0 1 1 第2字节 1 1 1 0 0

2、 1 1 1 第4字节 0 0 0 1 1 1 1 1 第6字节 1 1 1 1 1 0 0 0 第1字节 0 1 1 0 1 1 0 0 第3字节 1 0 0 0 0 1 1 1 第5字节 0 1 1 1 0 0 1 1 第7字节 0 0 0 0 0 0 0 1 该位示图表示内存的2(0字节第2位)、3(0字节第3位)、6(0字节第6位)、8(1字节第0位)、9(1字节第1位)、12(1字节第4位)、15(1字节第7位)…等块没有被占用。 2、 创建进程时输入进程大小,并根据程序中设定的物理块大小为进程分配物理块,同时建立页表。例如,在上图基础上,若要建立一个大小

3、为5000字节的进程,则: l 计算出该进程共有“向上取整(5000/1024)=5”个页,需要占用5个内存块; l 建立空的页表,即长度为5的一维整数数组; l 从位示图中找出前5个“0”位在整个位示图中的位置号(即i字节j位为0,则该位的位置为8*i+j),并将这些号依次填入页表中,同时把前5个“0”改为“1”,以示对应内存块已经分配。 3、 输入当前执行进程所要访问的逻辑地址,并将其转换成相应的物理地址。 4、 进程退出时,根据其页表内容向位示图反向回填“1”。 5、 扩充页表,将其变成支持请求和置换功能的二维页表(增加存在位等)。创建进程时可装入固定的前三页(或键盘输入初始

4、装入页数,不同进程的装入个数可以不同),其余页装入到置换空间内(置换空间大小应为内存空间大小的1.5倍,对其还需建立独立的位示图)。 6、 分别采用FIFO和LRU置换算法对地址转换过程中遇到的缺页现象进行页面置换,可将多次地址转换过程中所涉及到的页号视为进程的页面访问序列,从而计算置换次数和缺页率。 import java.util.Vector; import java.io.*; class Process{ Page []PageTable; Vector PageQueue; private int size; private int Pageco

5、unt; private String name; double visit; double replacement; public void setPage(Page []PageTable) { this.PageTable=new Page[PageTable.length]; for(int i=0;i

6、[PageNum].getBlockNum(); } public void setSize(int size) { this.size=size; } public void setPagecount(int Pagecount) { this.Pagecount=Pagecount; } public int getPagecount() { return Pagecount; } { visit=0; replacement=0; } public Process() { } public Process(

7、String name){ this.name=name; } public String toString(){ return name; } } class Page { int flag; int blockNum; int writed;//xiu gai wei int accessfield;//fang wen zi duan int swapsapce_blockno;//wai cun dizhi int t; { blockNum=0; writed=0; accessfield=0; t=0;

8、 } public Page() { flag=1; swapsapce_blockno=-1; } public Page(int flag,int swapsapce_blockno) { this.flag=flag; this.swapsapce_blockno=swapsapce_blockno; } public int getBlockNum() { return blockNum; } public int getFlag() { return flag; } } class OS2 {

9、 public static Vector ready,blocked; public static Process running; public static BufferedReader br; static int [][]a=new int[8][8]; static int[][]d=new int[10][10];//置换空间 static int count=0; public OS2() { ready=new Vector(); blocked=new Ve

10、ctor(); br=new BufferedReader(new InputStreamReader(System.in)); for(int i=0;i

11、nt j=0;j

12、 while(true){ System.out.println("======================================================================="); System.out.println("1:进程创建 "); System.out.println("2:进程到时 "); System.out.println("3:进程阻塞 "); System.out.println("4:进程唤醒 "); System.out.println("

13、5:进程结束 "); System.out.println("6:逻辑地址转换为物理地址 "); System.out.println("7:查看页表"); System.out.println("8:显示位示图和置换空间"); System.out.println("9:查看置换次数和缺页率"); System.out.println("0:退出-->"); try{ int i=Integer.parseInt(br.readLine()); switch(i){

14、 case 0: System.exit(0); case 1: createNewProcess(); break; case 2: switchCurrentProcess(); break; case 3: blockCurrentProcess(); break; case 4: wakeupBlockedProcess();

15、break; case 5: terminateCurrentProcess(); break; case 6: transform(); break; case 7: showPage(); break; case 8: System.out.println("位示图----------------"); print(a); S

16、ystem.out.println("置换空间--------------"); print(d); break; case 9: look(); break; } } catch(Exception e){ System.out.println(e); } System.out.println("执行进程:"+(running==null?"none":running)); System.o

17、ut.print("就绪进程:"); printList(ready); System.out.print("阻塞进程:"); printList(blocked); } } public static void printList(Vector v){ for(int i=0;i

18、oid createNewProcess(){ try{ System.out.print("进程名称:"); String name=br.readLine(); Process process=new Process(name); ready.add(process); System.out.print("进程大小:"); double size=Integer.parseInt(br.readLine()); int numPage=0; numPage=(int

19、)Math.ceil(size/1024); process.setPagecount(numPage); Page []P=new Page[numPage]; process.PageQueue=new Vector(); st: for(int i=0;i

20、Page p1=new Page(); //P[count]=p1; P[count]=new Page(); P[count].blockNum=8*i+j; process.PageQueue.add(P[count]); P[count].t=3-count; count++; a[i][j]=1; if(count==numPage) { break

21、st; } } else { for(int m=0;m

22、 P[count].blockNum=-1; P[count].swapsapce_blockno=8*m+n; count++; d[m][n]=1; if(count==numPage) { count=0; break st; } } } } }

23、 } } } if(running==null){ running=(Process)ready.elementAt(0); ready.removeElementAt(0); } process.setPage(P); } catch(Exception e){ System.out.println(e); } } public static void switchCurrentProcess(){

24、 if(running!=null) ready.add(running); if(ready.size()>0){ running=(Process)ready.elementAt(0); ready.removeElementAt(0); } else running=null; } public static void blockCurrentProcess(){ if(running!=null) { blocked.add(running

25、); } if(ready.size()>0) { running=(Process)ready.elementAt(0); ready.removeElementAt(0); } else { running=null; } } public static void wakeupBlockedProcess() { if(blocked.size()>0){ //running=(Process)blocked.elementAt(

26、0); ready.add((Process)blocked.elementAt(0)); blocked.removeElementAt(0); if(running==null) { running=(Process)ready.elementAt(0); ready.removeElementAt(0); } } else { //blocked=null; } } public static void terminateCurre

27、ntProcess() { whileExit(); if(running!=null) { running=null; } if(ready.size()>0) { running=(Process)ready.elementAt(0); ready.removeElementAt(0); } else if(blocked.size()>0){ running=(Process)blocked.elementAt(0); blocked.remov

28、eElementAt(0); } else { running=null; } } public static void transform() { try { if(running!=null) { System.out.print("输入逻辑地址:"); int LogicAdds=Integer.parseInt(br.readLine()); int PageNumber=LogicAdds/1024; if(PageNumber>running

29、getPagecount()-1) { while(true) { //if(PageNumber>running.getPagecount()-1) { System.out.println("逻辑地址超出范围,请重新输入:"); LogicAdds=Integer.parseInt(br.readLine()); PageNumber=LogicAdds/1024; if(PageNumber<=running.getPagecount()-1) {

30、 break; } //} } } int offset=LogicAdds%1024; int PageBlockNum=running.getPageBlock(PageNumber); ++running.PageTable[PageNumber].accessfield; ++running.visit; if(running.PageTable[PageNumber].getFlag()==0) { ++running.

31、replacement; System.out.println("请选择你所想要置换的算法(提示:1代表FIFO算法,2代表LRU算法):"); int ch=Integer.parseInt(br.readLine()); if(ch==1) { System.out.println("正在FIFO置换算法,对地址进行转换"); Fifo(PageNumber); } else { System.out.println("正在LRU置换算法,对地址进行转换")

32、 Lru(PageNumber); } int PhyAdds=(running.getPageBlock(PageNumber))*1024+offset; System.out.println("物理地址:"+PhyAdds); } else { int PhyAdds=(running.getPageBlock(PageNumber))*1024+offset; System.out.println("物理地址:"+PhyAdds); }

33、 } else { System.out.println("no running process"); } } catch(Exception e) { System.out.println(e); } } public static void whileExit() { for(int i=0;i

34、PageTable[i].blockNum/8; int n=running.PageTable[i].blockNum%8; a[m][n]=0; } else { int m=running.PageTable[i].swapsapce_blockno/8; int n=running.PageTable[i].swapsapce_blockno%8; d[m][n]=0; } } } public static void Fifo(int PageNumber) { r

35、unning.PageTable[PageNumber].blockNum=((Page)running.PageQueue.elementAt(0)).blockNum; st:for(int i=0;i0) { d[i][j]=1; ((Page)running.PageQueue.elementAt(0)).flag=0; ((Page)ru

36、nning.PageQueue.elementAt(0)).blockNum=-1; ((Page)running.PageQueue.elementAt(0)).writed=0; ((Page)running.PageQueue.elementAt(0)).accessfield=0; ((Page)running.PageQueue.elementAt(0)).swapsapce_blockno=8*i+j; ((Page)running.PageQueue.elementAt(0)).t=0; running.Pag

37、eQueue.removeElementAt(0); running.PageQueue.add(running.PageTable[PageNumber]); break st; } } } //sb:for(int m=0;m

38、 //running.PageTable[PageNumber].blockNum=8*m+n; running.PageTable[PageNumber].writed=0; //++running.PageTable[q].accessfield; //running.PageTable[q].swapsapce_blockno=8*m+n; // break sb; //} // } // } } public static void Lru(int PageNumber) {//proce

39、ss.PageTable[count].t int k=getPageTime(); st:for(int i=0;i

40、ssfield=0; running.PageTable[k].swapsapce_blockno=8*i+j; running.PageTable[k].t=1; break st; } } } sb:for(int m=0;m

41、ing.PageTable[PageNumber].blockNum=running.PageTable[k].blockNum; running.PageTable[PageNumber].writed=0; //++running.PageTable[q].accessfield; //running.PageTable[q].swapsapce_blockno=8*m+n; break sb; } } } for(int i=0;i

42、 if(i!=k) { ++running.PageTable[i].t; } } } public static int getPageTime() { int max=running.PageTable[0].t; int place=0; for(int i=0;i

43、 return place; } public static void print(int [][]a) { for(int i=0;i

44、ning process"); return; } System.out.println("页号 "+"块号 "+"状态位 "+" 修改位 "+" 访问字段 "+"外存地址 "); for(int i=0;i

45、tem.out.print(" "+running.PageTable[i].writed); System.out.print(" "+running.PageTable[i].accessfield); System.out.println(" "+running.PageTable[i].swapsapce_blockno); } } public static void look() { System.out.println("置换次数:"+running.replacement); System.out.println("访问

46、次数:"+running.visit); if(running.visit!=0.0) { System.out.println("缺页率"+(running.replacement*100)/running.visit+"%"); } System.out.println("缺页率akjsnala5ds435ax1"); } public static void main(String[]args) { new OS2().go(); } } 3、通过活动,使学生养成博览群书的好习惯。 B比率分析法和比较分

47、析法不能测算出各因素的影响程度。√ C采用约当产量比例法,分配原材料费用与分配加工费用所用的完工率都是一致的。X C采用直接分配法分配辅助生产费用时,应考虑各辅助生产车间之间相互提供产品或劳务的情况。错 C产品的实际生产成本包括废品损失和停工损失。√ C成本报表是对外报告的会计报表。× C成本分析的首要程序是发现问题、分析原因。× C成本会计的对象是指成本核算。× C成本计算的辅助方法一般应与基本方法结合使用而不单独使用。√ C成本计算方法中的最基本的方法是分步法。X D当车间生产多种产品时,“废品损失”、“停工损失”的借方余额,月末均直接记入该产品的产品成本 中。×

48、 D定额法是为了简化成本计算而采用的一种成本计算方法。× F“废品损失”账户月末没有余额。√ F废品损失是指在生产过程中发现和入库后发现的不可修复废品的生产成本和可修复废品的修复费用。X F分步法的一个重要特点是各步骤之间要进行成本结转。(√) G各月末在产品数量变化不大的产品,可不计算月末在产品成本。错 G工资费用就是成本项目。(×) G归集在基本生产车间的制造费用最后均应分配计入产品成本中。对 J计算计时工资费用,应以考勤记录中的工作时间记录为依据。(√) J简化的分批法就是不计算在产品成本的分批法。(×) J简化分批法是不分批计算在产品成本的方法。对 J加班加点工资

49、既可能是直接计人费用,又可能是间接计人费用。√ J接生产工艺过程的特点,工业企业的生产可分为大量生产、成批生产和单件生产三种,X K可修复废品是指技术上可以修复使用的废品。错 K可修复废品是指经过修理可以使用,而不管修复费用在经济上是否合算的废品。X P品种法只适用于大量大批的单步骤生产的企业。× Q企业的制造费用一定要通过“制造费用”科目核算。X Q企业职工的医药费、医务部门、职工浴室等部门职工的工资,均应通过“应付工资”科目核算。X S生产车间耗用的材料,全部计入“直接材料”成本项目。X S适应生产特点和管理要求,采用适当的成本计算方法,是成本核算的基础工作。(×)

50、W完工产品费用等于月初在产品费用加本月生产费用减月末在产品费用。对 Y“预提费用”可能出现借方余额,其性质属于资产,实际上是待摊费用。对 Y引起资产和负债同时减少的支出是费用性支出。X Y以应付票据去偿付购买材料的费用,是成本性支出。X Y原材料分工序一次投入与原材料在每道工序陆续投入,其完工率的计算方法是完全一致的。X Y运用连环替代法进行分析,即使随意改变各构成因素的替换顺序,各因素的影响结果加总后仍等于指标的总差异,因此更换各因索替换顺序,不会影响分析的结果。(×) Z在产品品种规格繁多的情况下,应该采用分类法计算产品成本。对 Z直接生产费用就是直接计人费用。X Z逐步

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

关于我们      便捷服务       自信AI       AI导航        抽奖活动

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

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

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

关注我们 :微信公众号    抖音    微博    LOFTER 

客服