操作系统原理实验题_第1页
操作系统原理实验题_第2页
操作系统原理实验题_第3页
操作系统原理实验题_第4页
操作系统原理实验题_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、操作系统原理实验考核方式与基本要求:1) 按要求设计相应的模拟系统并上机调试运行2) 写出详细的实验报告,实验报告要求如下:(1)实验题目。(2)程序中使用的数据结构及符号说明。(3)流程图。(4)打印一份源程序并附上注释。(5)打印程序运行时的初值和运行结果。实验报告可参考附录a中的规范进行编写。基本要求: 4人为一小组,采取课内上机和业余上机相结合的方式进行,在规定时间内每个小组以实验报告形式上交实验(设计)结果并上机演示说明。 进程管理 模拟pv操作同步机构,且用pv操作解决生产者消费者问题。 银行家算法 模拟分页式存储管理中硬件的地址转换和产生缺页中断 用先进先出(fifo)页面调度算

2、法处理缺页中断 用最近最少用(lru)页面调度算法处理缺页中断 设计一个按优先数调度算法实现处理器调度的进程 设计一个按时间片轮转法实现处理器调度的程序 模拟实现一个简单的固定(或可变)分区存储管理系统 模拟实现单通路i/o系统中的设备分配程序实验一 进程管理1实验内容至少要有:创建新的进程;查看运行进程;换出某个进程;杀死运行进程以及进程之间通信等功能。 进程管理2实验提示pcb结构通常包括以下信息:进程名,进程优先数,轮转时间片,进程所占用的cpu时间,进程的状态,当前队列指针等。可根据实验的不同,pcb结构的内容可以作适当的增删。例:实验运行结果* 进程演示系统 * 1.创建新的进程 2

3、.查看运行进程 3.换出某个进程 4.杀死运行进程 5.进程之间通信 6.退出系统 *请选择(16)然后根据你选择的不同,出现不同的结果。实验二 同步机构1、实验内容 第一题:模拟pv操作同步机构,且用pv操作解决生产者消费者问题。 第二题:银行家算法2实验提示第一题:在系统初始化时应把信号量semaphore定义为某个类型,为简单起见,在模拟实验中可把上述的semaphore直接改成integer。生产者消费者问题。假定有一个生产者和消费者,生产者每次生产一件产品,并把生产的产品存入共享缓冲器以供消费者取走使用。消费者每次从缓冲器内取出一件产品去消费。禁止生产者将产品放入已满的缓冲器内,禁止

4、消费者从空缓冲器内取产品。假定缓冲器内可同时存放10件产品。进程控制块pcb。在模拟实验中,假设进程控制块的结构如下图所示。其中进程的状态有:运行态、就绪态、等待态和完成态。当进程处于等待态时,在进程控制块pcb中要说明进程等待原因(在模拟实验中进程等待原因为等待信号量s1或s2);当进程处于等待态或就绪态时,pcb中保留了断点信息,一旦进程再度占有处理器则就从断点位置继续运行;当进程处于完成状态,表示进程执行结束。进程名状态等待原因断点 处理器的模拟。计算机硬件提供了一组机器指令,处理器的主要职责是解释执行机器指令。为了模拟生产者和消费者进程的并发执行,我们必须模拟一组指令和处理器职能。模拟

5、的指令功能p(s)执行p操作原语v(s)执行v操作原语putbin:=product;in:=(in+1) mod 10getx:=bout;out:=(out+1) mod 10produce输入一个字符放入c中consume打印或显示x中的字符goto lpc: lnop空操作模拟的处理器指令模拟的一组指令见上图,其中每条指令的功能由一个过程来实现。用变量pc来模拟“指令计数器”,假设模拟的指令长度为1,每执行一条模拟指令后,pc加1,指出下一条指令地址。使用模拟的指令,可把生产者和消费者进程的程序表示为下图的形式。序号生产者程序消费者程序0producep(s2)1p(s1)get2pu

6、tv(s1)3v(s2)consume4goto 0goto 0 生产者和消费者程序定义两个一维数组pa0.4和sa0.4,每一个pai存放生产者程序中的一条模拟指令执行的入口地址;每个sai存放消费者程序中的一条模拟指令执行的入口地址。于是模拟处理器执行一条指令的过程为:取出pc之值,按papc 或sapc得模拟指令执行的入口地址,将pc之值加1,转向由入口地址确定的相应的过程执行。第二题:编写银行家算法,要求对于书上例题给出的资源分配表,可以对输入各种请求进行安全性判断,最后给出安全序列或者不能分配的原因。实验三 虚拟存储器1、实验内容模拟分页式虚拟存储管理中硬件的地址转换和缺页中断,以及

7、选择页面调度算法处理缺页中断。 第一题:模拟分页式存储管理中硬件的地址转换和产生缺页中断。 第二题:用先进先出(fifo)页面调度算法处理缺页中断。 第三题:用最近最少用(lru)页面调度算法处理缺页中断。2实验提示第一题提示(1) 分页式虚拟存储系统是把作业信息的副本存放在磁盘上,当作业被选中时,可把作业的开始几页先装入主存且启动执行。为此,在为作业建立页表时,应说明哪些页已在主存,哪些页尚未装入主存,页表的格式为:页号标志主存块号在磁盘上的位置其中,标志-用来表示对应页是否已经装入主存,标志位=1,则表示该页已经在主存,标志位=0,则表示该页尚未装入主存。主存块号-用来表示已经装入主存的页

8、所占的块号。在磁盘上的位置-用来指出作业副本的每一页被存放在磁盘上的位置。(2) 作业执行时,指令中的逻辑地址指出了参加运算的操作存放的页号和单元号,硬件的地址转换机构按页号查页表,若该页对应标志为“1”,则表示该页已在主存,这时根据关系式: 绝对地址=块号×块长+单元号计算出欲访问的主存单元地址。如果块长为2的幂次,则可把块号作为高地址部分,把单元号作为低地址部分,两者拼接而成绝对地址。若访问的页对应标志为“0”,则表示该页不在主存,这时硬件发“缺页中断”信号,由操作系统按该页在磁盘上的位置,把该页信息从磁盘读出装入主存后再重新执行这条指令。(3) 设计一个“地址转换”程序来模拟硬

9、件的地址转换工作。当访问的页在主存时,则形成绝对地址,但不去模拟指令的执行,而用输出转换后的地址来代替一条指令的执行。当访问的页不在主存时,则输出“* 该页页号”,表示产生了一次缺页中断。(4) 假定主存的每块长度为128个字节;现有一个共七页的作业,其中第0页至第3页已经装入主存,其余三页尚未装入主存;该作业的页表为:015011118012219013311021400225002360121如果作业依次执行的指令序列为:操作页号单元号操作页号单元号+070移位4053+150+5023×215存1037存321取2078取056+4001640存6084(5) 运行设计的地址转

10、换程序,显示或打印运行结果。因仅模拟地址转换,并不模拟指令的执行,故可不考虑上述指令序列中的操作。第二题提示:(1) 在分页式虚拟存储系统中,当硬件发出“缺页中断”后,引出操作系统来处理这个中断事件。如果主存中已经没有空闲块,则可用fifo页面调度算法把该作业中最先进入主存的一页调出,存放到磁盘上,然后再把当前要访问的页装入该块。调出和装入后都要修改页表中对应页的标志。(2) fifo页面调度算法总是淘汰该作业中最先进入主存的那一页,因此可以用一个数组来表示该作业已在主存的页面。假定作业被选中时,把开始的m个页面装入主存,则数组的元素可定为m个。例如: p0,p1,.,pm-1其中每一个pi(

11、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”表示未修改过

12、,格式为:页号 标志 主存块号 修改标志 在磁盘上的位置由于是模拟调度算法,所以,不实际启动输出一页和装入一页的程序,而用输出调出的页号和装入的页号来代替一次调出和装入的过程。把第一题中程序稍作修改,与本题结合起来,fifo页面调度模拟算法如图2-2。(4) 磁盘上,在磁盘上的存放地址以及已装入主存的页和作业依次执行的指令序列都同第一题中(4)所示。于是增加了“修改标志”后的初始页表为: 页号 标志 主存块号 修改标志 在磁盘上的位置015 0011118 0012219 0013311 002140 002250 002360 0121按依次执行的指令序列,运行你所设计的程序,显示或打印每次

13、调出和装入的页号,以及执行了最后一条指令后的数组p的值。(5) 为了检查程序的正确性,可再任意确定一组指令序列,运行设计的程序,核对执行的结果。第三题: 提示(1) 在分页式虚拟存储系统中,当硬件发出“缺页中断”后,引出操作系统来处理这个中断事件。如果主存中已经没有空闲块,则可用lru页面调度算法把该作业中最先进入主存的一页调出,存放到磁盘上,然后再把当前要访问的页装入该块。调出和装入后都要修改页表中对应页的标志。(2) lru页面调度算法总是淘汰该作业中距现在最久没有访问过的那一页,因此可以用一个数组来表示该作业已在主存的页面。数组中的第一个元素总是指出当前刚访问的页号,因此最久没被访问的页

14、总是由最后一个元素指出。如果主存中只有四块空闲块且执行第一题提示(4)假设的指令序列,采用lru页面调度算法,那么在主存中的页面变化情况如下:306451246230645134123064512012306451编制一个lru页面调度程序,为了提高系统效率,如果应淘汰的页在执行中没有修改过,则可不必把该页调出。参看第二题中提示(3)。模拟调度算法不实际启动输出一页和装入一页的程序,而用输出调出的页号和装入的页号来代替。(3) 按第一题中提示(4)的要求,建立一张初始页表,表中为每一页增加“修改标志”位(参考第二题中提示(4)。然后按依次执行的指令序列,运行你所设计的程序,显示或打印每次调出和

15、装入的页号,以及执行了最后一条指令后的数组中的值。(4) 为了检查程序的正确性,可再任意确定一组指令序列,运行设计的程序,核对执行的结果。实验四 处理器调度1、实验内容选择一个调度算法,实现处理器调度。 第一题:设计一个按优先数调度算法实现处理器调度的进程。 第二题:设计一个按时间片轮转法实现处理器调度的程序。2、实验提示第一题提示:(1) 假定系统有五个进程,每一个进程用一个进程控制块pcb来代表。进程控制块的格式为: 进程名指针要求运行时间优先数状态其中,进程名-作为进程的标识,假设五个进程的进程名分别是p1,p2,p3,p4,p5。指针-按优先数的大小把五个进程连成队列,用指针指出下一个

16、进程的进程控制块 首地址,最后一个进程中的指针为“0”。要求运行时间-假设进程需要运行的单位时间数。优先数-赋予进程的优先数,调度时总是选取优先数大的进程先执行。状态-可假设有两种状态,“就绪”状态和“结束“状态,五个进程的初始状态都为“就绪”状态,用“r”表示,当一个进程运行结束后,它的状态变为“结束”, 用“e”表示。(2) 在每次运行你所设计的处理器调度程序之前,为每个进程任意确定它的“优先数”和“要求运行时间”。为了调度方便,把五个进程按给定的优先数从大到小连成队列,用一单元指出队首进程,用指针指出队列的连接情况。(3) 处理器调度总是选队首进程运行。采用动态改变优先数的办法,进程每运

17、行一次优先数就减“1”。由于本实验是模拟处理器调度,所以,对被选中的进程并不实际的启动运行,而是执行: 优先数1 要求运行时间1来模拟进程的一次运行。提醒注意的是:在实际的系统中,当一个进程被选中运行时,必须恢复进程的现场,它占有处理器运行,直到出现等待事件或运行结束。在这里省去了这些工作。(4) 进程运行一次后,若要求运行时间0,则再将它加入队列(按优先数大小插入,且置队首标志);若要求运行时间=0,则把它的状态修改为“结束”,且退出队列。(5) 若“就绪”状态的进程队列不为空,则重复上面(4)和(5)的步骤,直到所有进程都成为“结束”状态。(6) 在所设计的程序中应有显示或打印语句,能显示

18、或打印每次被选中进程的进程名以及运行一次后进称对列的变化。为五个进程任意确定一组“优先数”和“要求运行时间”,启动所设计的处理器调度程序,显示或打印逐次被选中进程的进程名以及进程控制块的动态变化过程。第二题提示(1) 假定系统有五个进程,每一个进程用一个进程控制块pcb来代表。进程控制块的格式为: 进程名指针要求运行时间已运行时间状态其中,进程名-作为进程的标识,假设五个进程的进程名分别是q1,q2,q3,q4,q5。指针-进程按顺序排成循环队列,用指针指出下一个进程的进程控制块首地址,最后一个进程中的指针指出第一个进程的进程控制块首地址。要求运行时间-假设进程需要运行的单位时间数。已运行时间

19、-假设进程已经运行的单位时间数,初始值为“0”。状态-有两种状态,“就绪”状态和“结束”状态,初始状态都为“就绪”,用“r”表示,当一个进程运行结束后,它的状态变为“结束”,用“e”表示。(2) 每次运行你所设计的处理器调度程序之前,为每个进程任意确定它的“要求运行时间”。把五个进程按顺序排成循环队列,用指针指出队列连接情况。另用一标志单元记录轮到运行的进程。(3) 处理器调度总是选择标志单元指示的进程运行。由于本实验是模拟处理器调度的功能,所以,对被选中的进程并不实际启动运行,而是执行: 已运行时间+1来模拟进程的一次运行,表示进程已经运行过一个单位的时间。请注意:在实际的系统中,当一个进程

20、被选中运行时,必须置上该进程可以运行的时间片值,以及恢复进程的现场,让它占有处理器运行,直到出现等待事件或运行满一个时间片。在这里省去了这些工作,仅用“已运行时间+1”来表示进程已经运行满一个时间片。(4) 进程运行一次后,应把该进程的进程控制块中的指针值送到标志单元,以指示下一个轮到运行的进程。同时,应判断该进程的要求运行时间与已运行时间,若该进程要求运行时间已运行时间,则表示它尚未执行结束,应待到下一轮时再运行。若该进程的要求运行时间=已运行时间,则表示它已经执行结束,应把它的状态修改为“结束”(e)且退出队列。此时,应把该进程的进程控制块中的指针值送到前面一个进程的指针位置。(5) 若“

21、就绪”状态的进程队列不为空,则重复上面(4)和(5)的步骤,直到所有进程都成为“结束”状态。(6) 在所设计的称序中应有显示或打印语句,能显示或打印每次被选中进程的进程名以及运行一次后进称对列的变化。(7) 为五个进程任意确定一组“要求运行时间”,启动所设计的处理器调度程序,显示或打印逐次被选中进程的进程名以及进程控制块的动态变化过程。实验五 主存储器空间的分配与回收一实验内容(九)模拟实现一个简单的固定(或可变)分区存储管理系统二实验要求本实验要求完成如下任务:(1) 建立相关的数据结构,作业控制块、已分配分区及未分配分区;(2) 实现一个分区分配算法,如首次适应分配算法或最优适应分配算法;(3) 实现一个分区回收算法;(4) 给定一批作业/进程,选择一个分配或回收算法,实现分区存储的模拟管理。实验六 设备管理一实验内容(十)编写单通路i/o系统中的设备分配程序。二实验要求 (1) 设计: 系统

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论