操作系统虚拟程序实验报告.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
操作系统虚拟程序实验报告   实验报告   课程名称计算机操作系统实验名称班级学号   姓名成绩指导教师赵安科实验日期XX年5月28日   一.实验题目:虚拟页式管理   二.实验内容:模拟请求页式存储管理中硬件的地址转换和缺页中断处理三.实验要求:   ①设计一个地址转换程序来模拟硬件的地址转换和缺页中断。当访问的页   在主存时则形成绝对地址,但不去模拟指令的执行,可以输出转换后的绝对地址来表示一条指令已执行完成。当访问的页不在主存中时,则输出“*页号”来表示硬件产生了一次缺页中断。模拟地址转换流程见图1。   ②编制一个FIFO页面调度程序;FIFO页面调度算法总是先调出作业中最先进入主存中的哪一页。因此可以用一个数组来表示页号队列。数组中每个元素是该作业已在主存中的页面号,假定分配给作业的页架数为m,且该作业开始的m页已装入主存,则数组可由m个元素构成。   P[0],P[1],P[2],?,P[m-1]   它们的初值为P[0]:=0,P[1]:=1,P[2]:=2,?,P[m-1]:=m-1用一指针K指示当要调入新页时应调出的页在数组中的位置,K的初值为“0”,当产生缺页中断后,操作系统总是选择P[K]所指出的页面调出,然后执行:   P[K]:=要装入的新页页号K:=(k+1)modm   在实验中不必实际地启动磁盘执行调出一页和装入一页的工作,而用输出“OUT调出的页号”和“IN要装入的新页页号”来模拟一次调出和装入过程,模拟程序的流程图见附图1。   按流程控制过程如下:   ?1存指令提示:输入指令的页号和页内偏移和是否存指令?,若d为-1则结   ?0非存指令束,否则进入流程控制过程,得P1和d,查表在主存时,绝对地址=P1×1024+d   ③假定主存中页架大小为1024个字节,现有一个共7页的作业,其副本已在磁盘上。系统为该作业分配了4个页架,且该作业的第0页至第3页已装入内   依次执行上述指令调试你所设计的程序。   ④为进一步考察程序的执行,可自行确定若干组指令,运行程序,核对执行结果。   四.实验步骤:   根据实验要求考虑实验中所用到的数据结构,对照页表和指令表模拟指令执行的顺序,为编写程序做准备。   上机编写程序,定义数组c,用来存储已在主存中的页面,定义指针k,用来指向要调出的页面,当指令不在时,调出页面,调入进入页面,同时指针加1,二位数组a,表示页表的属性,二维数组b,表示指令列表,根据页面动态调入的过程中,修改对应的标志位,直到指令查询查询结束为止。   调试对应的程序,人工模拟指令的执行过程,对比程序的实际运行结果,判断程序是否有不足和错误之处。   总结实验不足之处,理解掌握FIFO指令的动态执行过程,为以后更深入的理解计算机操作系统打下基础。五.程序中所用数据结构及说明:   实验中定义了一个一维整形数组c[4],用来存储已在主存中的页面号,同时定义指针k,用来指向要调出的页面,当查询的指令不在时,调出对应的页面,调入需要进入的页面,同时指针加1,指向下一个要调出的页面,由于主存只分配4个页架,所以当k=4时,指针k需重新置0。定义二维数组a[7][5]用来表示页表中7条指令的状态,页面动态调入的过程中修改对应的标志位,二维数组b[12][3]用来表示指令列表,若是存指令,修改对应的标志位,若不是存指令,则不变,直到查询结束为止。其中s为需要输入查询的指令号,须在while循环中不断的输入查询。六.程序清单及描述:#includeintmain(void){   intc[4]={0,1,2,3};//已存入主存中的页号,用数组表示intf=1;//f为标记,判断是否在主存中ints;//输入指令号int   a[7][5]={{0,1,5,0,011},{1,1,8,0,012},{2,1,9,0,013},{3,1,1,0,021},{4,0,-1,0,022},{5,0,-1,0,023},{6,0,-1,0,121}};//页表   int   b[12][3]={{0,0,70},{0,1,50},{0,2,15},{1,3,21},{0,0,56},{0,6,40},{0,4,53},{0,5,23},{1,1,37},{0,2,78},{0,4,1},{1,6,84}};//页面走向   couts;   for(i=0;i   #include   main()   {   inti,pid;   for(i=1;i 5,编写一个程序。父进程创建两个子进程,父子进程之间利用管道进行通信。要求能显示父进程、子进程各自的信息,体现通信效果。   思考:①什么是管道?进程如何利用它进行通信的?解释一下实现方法。   ②修改睡眠时机、睡眠长度,看看会有什么变化

文档评论(0)

sanshengyuan + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档