好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

实验报告样本OS.pdf

9页
  • 卖家[上传人]:zxc****hhs
  • 文档编号:276974107
  • 上传时间:2022-04-13
  • 文档格式:PDF
  • 文档大小:588.32KB
  • / 9 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 操作系统实验报告样本1 操作系统实验报告内容(1) 基本信息:完成人姓名、学号、报告日期(2) 实验内容(3) 实验目的(4) 实验题目(5) 设计思路和流程图(6) 主要数据结构及其说明(7) 源程序并附上注释(8) 程序运行时的初值和运行结果(9) 实验体会:实验中遇到的问题及解决过程、实验中产生的错误及原因分析、实验的体会及收获、对做好今后实验提出建设性建议等实验报告可以书面或电子文档形式提交2 操作系统实验报告样本样本 1一、实验内容模拟分页式虚拟存储管理中硬件的地址转换和缺页中断,以及选择页面调度算法处理缺页中断二、实验目的在计算机系统中,为了提高主存利用率,往往把辅助存储器(如磁盘) 作为主存储器的扩充, 使多道运行的作业的全部逻辑地址空间总和可以超出主存的绝对地址空间用这种办法扩充的主存储器称为虚拟存储器通过本实验理解在分页式存储管理中怎样实现虚拟存储器三、实验题目本实验有三个题目第一题:模拟分页式存储管理中硬件的地址转换和产生缺页中断设计思路、数据结构、流程图:(1) 分页式虚拟存储系统是把作业信息的副本存放在磁盘上,当作业被选中时,可把作业的开始几页先装入主存且启动执行。

      为此,在为作业建立页表时,应说明哪些页已在主存,哪些页尚未装入主存,页表的格式为:页号标志主存块号在磁盘上的位置其中,标志用来表示对应页是否已经装入主存,标志位=1,则表示该页已经在主存,标志位 =0,则表示该页尚未装入主存主存块号用来表示已经装入主存的页所占的块号在磁盘上的位置用来指出作业副本的每一页被存放在磁盘上的位置2) 作业执行时,指令中的逻辑地址指出参加运算的操作数存放的地址,该地址被解释为页号和单元号,硬件的地址转换机构按页号查页表,若该页对应标志为“1” ,则表示该页已在主存,这时根据关系式:绝对地址 =块号块长 +单元号计算出欲访问的主存单元地址如果块长为2 的幂次, 则可把块号作为高地址部分,把单元号作为低地址部分,两者拼接而成绝对地址按计算出的绝对地址可以取到操作数,完成一条指令的执行若访问的页对应标志为“0” ,则表示该页不在主存,这时硬件发“缺页中断” 信号, 由操作系统按该页在磁盘上的位置,把该页信息从磁盘读出装入主存后再重新执行这条指令3) 设计一个“地址转换”程序来模拟硬件的地址转换工作当访问的页在主存时,则形成绝对地址, 但不去模拟指令的执行,而用输出转换后的地址来代替一条指令的执行。

      当访问的页不在主存时,则输出 “* 该页页号”,表示产生了一次缺页中断该模拟程序的算法如图 14) 假定主存的每块长度为128 个字节;现有一个共七页的作业,其中第0 页至第 3 页已经装入主存,其余三页尚未装入主存;该作业的页表为:页号标志主存块号在磁盘上的位置0 1 5 011 1 1 8 012 2 1 9 013 3 1 1 021 4 0 022 5 0 023 6 0 121 图 1 地址转换模拟算法如果作业依次执行的指令序列为:操作页号单元号操作页号单元号+ 0 070 移位4 053 + 1 050 + 5 023 2 015 存1 037 存3 021 取2 078 取0 056 + 4 001 - 6 040 存6 084 运行设计的地址转换程序,显示或打印运行结果因仅模拟地址转换,并不模拟指令的执行,故可不考虑上述指令序列中的操作第二题:用先进先出(FIFO )页面调度算法处理缺页中断设计思路、数据结构、流程图:(1) 在分页式虚拟存储系统中,当硬件发出“缺页中断”后,引出操作系统来处理这个中断事件如果主存中已经没有空闲块,则可用FIFO 页面调度算法把该作业中最先进入主存的一页调出, 存放到磁盘上。

      然后再把当前要访问的页装入该块调出和装入后都要修改页表中对应页的标志2) FIFO 页面调度算法总是淘汰该作业中最先进入主存的那一页,因此可以用一个数组来表示该作业已在主存的页面假定作业被选中时,把开始的m 个页面装入主存,则数组的元素可定为m 个例如:P0 ,P1, , Pm-1 其中每一个Pi (I=0, 1, , m-1) 表示一个在主存中的页面号它们的初值为:P0 : =0, P1 : =1, , Pm-1 : =m-1 用一指针K 指示当要装入新页时,应淘汰的页在数组中的位置,K 的初值为“ 0” 当产生缺页中断后,操作系统选择Pk 所指出的页面调出,然后执行:Pk : =要装入页的页号k:= (k+1) mod m 再由装入程序把要访问的一页信息装入到主存中重新启动刚才那条指令执行3) 编制一个FIFO 页面调度程序,为了提高系统效率,如果应淘汰的页在执行中没有修改过, 则可不必把该页调出(因在磁盘上已有副本)而直接装入一个新页将其覆盖因此在页表中增加是否修改过的标志,为“1”表示修改过,为“0”表示未修改过,格式为:页号标志主存块号修改标志在磁盘上的位置由于是模拟调度算法,所以, 不实际地启动调出一页和装入一页的程序,而用输出调出的页号和装入的页号来代替一次调出和装入的过程。

      把第一题中程序稍作改动,与本题结合起来,FIFO 页面调度模拟算法如图2图 2 FIFO 页面调度模拟算法(4) 如果一个作业的副本已在磁盘上,在磁盘上的存放地址以及已装入主存的页和作业依次执行的指令序列都同第一题中(4)所示于是增加了“修改标志”后的初始页表为:页号标志主存块号修改标志在磁盘上的位置0 1 5 0 011 1 1 8 0 012 2 1 9 0 013 3 1 1 0 021 4 0 0 022 5 0 0 023 6 0 0 121 按依次执行的指令序列,运行你所设计的程序,显示或打印每次调出和装入的页号,以及执行了最后一条指令后的数组P 的值5) 为了检查程序的正确性,可再任意确定一组指令序列,运行设计的程序,核对执行的结果第三题:用最近最少用(LRU)页面调度算法处理缺页中断设计思路、数据结构、流程图:(1) 在分页式虚拟存储系统中,当硬件发出“缺页中断”后,引出操作系统来处理这个中断事件如果主存中已经没有空闲块,则可用LRU 页面调度算法把该作业中距现在最久没有被访问过的一页调出,存放到磁盘上 然后再把当前要访问的页装入该块调出和装入后都要修改页表中对应页的标志。

      2) LRU 页面调度算法总是淘汰该作业中距现在最久没被访问过的那页,因此可以用一个数组来表示该作业已在主存的页面数组中的第一个元素总是指出当前刚访问的页号,因此最久没被访问过的页总是由最后一个元素指出如果主存只有四块空闲块且执行第一题中提示( 4)假设的指令序列,采用LRU 页面调度算法,那么在主存中的页面变化情况如下:3 0 6 4 5 1 2 4 6 2 3 0 6 4 5 1 2 4 1 2 3 0 6 4 5 1 2 0 1 2 3 0 6 4 5 1 当产生缺页中断后,操作系统总是淘汰由最后一个元素所指示的页,再把要访问的页装入淘汰页所占的主存块中,页号登记到数组的第一个元素中,重新启动刚才那条指令执行3) 编制一个LRU 页面调度程序,为了提高系统效率,如果淘汰的页在执行中没有修改过, 则可不必把该页调出参看第二题中提示(3) 模拟调度算法不实际地启动调出一页和装入一页的程序而用输出调出的页号和装入的页号来代替把第一题中程序稍作改动,与本题结合起来,LRU 页面调度模拟算法如图34) 按第一题中提示(4)的要求,建立一张初始页表,页表中为每一页增加“修改标志”位(参考第二题中提示(4) ) 。

      然后按依次执行的指令序列,运行设计的程序,显示或打印每次调出和装入的页号,以及执行了最后一条指令后数组中的值5) 为了检查程序的正确性,可再任意确定一组指令序列,运行设计的程序,核对执行的结果图 3 LRU 页面调度模拟算法四打印的源程序及附上的注释略五打印的程序运行时初值和运行结果略样本 2一、实验内容模拟电梯调度算法,实现对磁盘的驱动调度二、实验目的磁盘是一种高速、大容量、 旋转型、 可直接存取的存储设备它作为计算机系统的辅助存储器, 担负着繁重的输入输出任务,在多道程序设计系统中,往往同时会有若干个要求访问磁盘的输入输出请求等待处理系统可采用一种策略,尽可能按最佳次序执行要求访问磁盘的诸输入输出请求,这就叫驱动调度,使用的算法称驱动调度算法驱动调度能降低为若干个输入输出请求服务所需的总时间,从而提高系统效率本实验模拟设计一个驱动调度程序,观察驱动调度程序的动态运行过程三、实验题目模拟电梯调度算法,对磁盘进行移臂调度和旋转调度设计思路、数据结构、流程图:(1) 磁盘是可供多个进程共享的存储设备,但一个磁盘每个时刻只能为一个进程服务当有进程在访问某个磁盘时,其它想访问该磁盘的进程必须等待,直到磁盘一次工作结束。

      当有多个进程提出输入输出请求而处于等待状态时,可用电梯调度算法从若干个等待访问者中选择一个进程,让它访问磁盘选择访问者的工作由“驱动调度”进程来完成由于磁盘与处理器是可以并行工作的,所以当磁盘在为一个进程服务时,占有处理器的另一进程可以提出使用磁盘的要求,也就是说, 系统能动态地接收新的输入输出请求为了模拟这种情况,在本实验中设置一个“接收请求”进程驱动调度” 进程和 “接收请求” 进程能否占有处理器运行,取决于磁盘的结束中断信号和处理器调度策略在实验中可用随机数来模拟确定这两个进程的运行顺序,以代替中断处理和处理器调度选择进程的过程因而,程序的结构可参考图1图 1 程序结构(2) “接收请求”进程建立一张“请求I/O”表,指出等待访问磁盘的进程要求访问的物理地址,表的格式为:进程名柱面号磁道号物理记录号假定某个磁盘组共有200 个柱面,由外向里顺序编号(0-199) ,每个柱面上有20 个磁道,编号为 0-19,每个磁道分成8 个物理记录,编号0-7进程访问磁盘的物理地址可以用键盘输入的方法模拟得到图2 是“接收请求”进程的模拟算法图 2 “接收请求”模拟算法在实际的系统中必须把等待访问磁盘的进程排入等待队列,由于本实验模拟驱动调度,为简单起见,在实验中可免去队列管理部分,故设计程序时可不考虑“进程排入等待队列”的工作。

      3) “驱动调度”进程的功能是查“请求I/O ”表,当有等待访问磁盘的进程时,按电梯调度算法从中选择一个等待访问者,按该进程指定的磁盘物理地址启动磁盘为其服务对移动臂磁盘来说,驱动调度分移臂调度和旋转调度电梯调度算法的调度策略是与移动臂的移动方向和移动臂的当前位置有关的,所以每次启动磁盘时都应登记移臂方向和当前位置 电梯调度算法是一种简单而实际上用的驱动调度算法,这种调度策略总是优先选择与当前柱面号相同的访问请求,从这些请求中再选择一个能使旋转距离最短的等待访问者如果没有与当前柱面号相同的访问请求,则根据移臂方向来选择,每次总是沿臂移动方向选择一个与当前柱面号最近的访问请求,若沿这个方向没有访问请求时,就改变臂的移动方向这种调度策略能使移动臂的移动频率极小化,从而提高系统效率用电梯调度算法实现驱动调度的模拟算法如图34) 图 1 中的初始化工作包括,初始化“请求I/O”表,置当前移臂方向为里移;置当前位置为0 号柱面, 0 号物理记录程序运行前可假定“请求I/O”表中已经有若干个进程等待访问磁盘在模拟实验中, 当选中一个进程可以访问磁盘时,并不实际地启动磁盘,而用显示:“请求 I/O”表;当前移臂方向;当前柱面号,物理记录号来代替图3 中的“启动磁盘”这项工作。

      图 3 电梯调度模拟算法(4) 打印驱动调度进程每次选择访问请求的“请求I/O”表以及每次选中的进程名、访问的柱面号、物理记录号和当前移臂方向(用up 代表里移, down 代表外移)打印格式为:“请求 I/O”表进程名柱面号物理记录号方向四打印的源程序及附上的注释略五打印的程序运行时初值和运行结果略。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.