欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    操作系统实验要求.doc

    • 资源ID:60098773       资源大小:202KB        全文页数:26页
    • 资源格式: DOC        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    操作系统实验要求.doc

    实验一 银行家算法2一、目的和要求2二、实验内容2三、说明2四、实验总结与体会3实验二 进程同步9一、实验内容9二、实验目的9三、实验题目9四、实验报告12实验三 虚拟存储器16一、实验内容16二、实验目的16三、实验题目16四、实验报告22实验四 磁盘驱动调度23一、实验内容23二、实验目的23三、实验题目23四、实验报告25实验一 银行家算法一、目的和要求 银行家算法是避免死锁的一种重要方法,本实验要求用高级语言编写和调试一个简单的银行家算法程序。加深了解有关资源申请、避免死锁等概念,并体会和了解死锁和避免死锁的具体实施方法。二、实验内容 1设计进程对各类资源最大申请表示及初值确定。 2设定系统提供资源初始状况。 3设定每次某个进程对各类资源的申请表示。 4编制程序,依据银行家算法,决定其申请是否得到满足。三、说明算法设计思路:银行家算法又称“资源分配拒绝”法,其基本思想是,系统中的所有进程放入进程集合,在安全状态下系统受到进程的请求后试探性的把资源分配给他,现在系统将剩下的资源和进程集合中其他进程还需要的资源数做比较,找出剩余资源能满足最大需求量的进程,从而保证进程运行完成后还回全部资源。这时系统将该进程从进程集合中将其清除。此时系统中的资源就更多了。反复执行上面的步骤,最后检查进程的集合为空时就表明本次申请可行,系统处于安全状态,可以实施本次分配,否则,只要进程集合非空,系统便处于不安全状态,本次不能分配给他,请进程等待。1数据结构 假设有n个进程m类资源,则有如下数据结构: MAXn*m n个进程对m类资源的最大需求量AVAILABLEm 系统可用资源数 ALLOCATIONn*m n个进程已经得到m类资源的资源量 NEEDn*m n个进程还需要m类资源的资源量2银行家算法 设进程I提出请求Requestm,则银行家算法按如下规则进行判断。 (1)如果Requestm<=NEEDI,m,则转(2);否则,出错。(2)如果Requestm<=AVAILABLE,则转(3);否则,出错。 (3)系统试探分配资源,修改相关数据: AVAILABLE=AVAILABLE-REQUEST ALLOCATION=ALLOCATION+REQUEST NEED=NEED-REQUEST (4)系统执行安全性检查,如安全,则分配成立;否则试探险性分配作废,系统恢复原状,进程等待。 3安全性检查 (1)设置两个工作向量WORK=AVAILABLE;FINISHn=FALSE (2)从进程集合中找到一个满足下述条件的进程,FINISHi=FALSE NEED<=WORK如找到,执行(3);否则,执行(4)(3)设进程获得资源,可顺利执行,直至完成,从而释放资源。 WORK=WORK+ALLOCATIONFINISH=TRUE GO TO 2 (4)如所有的进程Finishn=true,则表示安全;否则系统不安全。 四、实验总结与体会源程序示例:#define n 5#define m 3main()/* void input(int *av,int *al,int *need);*/* int read_req(int *request,int *k);*/* int security(int *av,int *al,int *need);*/ int requestm,Availablem,Allocnm,Neednm; int i,j,k,t=0; input(Available,Alloc,Need); while(1) t=0; if(read_req(request,&k) break; for(i=0;i<m;i+) if(!(requesti<=Needk-1i) printf("nillegal!");t=1;break; if(t)continue; for(i=0;i<m;i+) if(!(requesti<=Availablei) printf("nzuce!");t=1;break; if(t)continue; for(i=0;i<m;i+) Availablei=Availablei-requesti; Allock-1i=Allock-1i+requesti; Needk-1i=Needk-1i-requesti; if(security(Available,Alloc,Need)printf("ncomplete fengpei!"); else for(i=0;i<m;i+) Availablei=Availablei+requesti; Allock-1i=Allock-1i-requesti; Needk-1i=Needk-1i+requesti; printf("n Cann't complete!"); input(int *av,int *al,int *ned) int i,j; printf("ninput Available:n"); for(i=0;i<m;i+) scanf("%d",av+i); printf("ninput Alloc:"); for(i=0;i<n;i+) for(j=0;j<m;j+) scanf("%d",al+i*m+j); printf("ninput Need:"); for(i=0;i<n;i+) for(j=0;j<m;j+) scanf("%d",ned+i*m+j);int read_req(int *request,int *k) int i,j=0; printf("ninput process and request:"); scanf("%d",k); for(i=0;i<m;i+) scanf("%d",request+i); if(requesti=0)j+; if(j=3)return 1; else return 0;int security(int *av,int *al,int *need) int i,j,t,r,workm; char Fn; for(i=0;i<n;i+) Fi='f' for(i=0;i<m;i+) worki=(*(av+i); for(i=0;i<n;i+) for(j=0;j<n;j+) if(Fj='t')continue; t=0; for(r=0;r<m;r+) if(*(need+j*m+r)<=workr) t+; if(t=3) for(r=0;r<m;r+) workr=workr+(*(al+j*m+r); Fj='t' break; t=1; for(i=0;i<n;i+) if(Fi='f')t=0;break; if(t)return 1; else return 0; 实验二 进程同步一、实验内容模拟实现用同步机构避免并发进程执行时可能出现的与时间有关的错误。二、实验目的进程是程序在一个数据集合上运行的过程,进程是并发执行的,也即系统中的多个进程轮流地占用处理器运行。我们把如干个进程都能进行访问和修改地那些变量成为公共变量。由于进程是并发执行的,所以,如果对进程访问公共变量不加限制,那么就会产生“与时间有关”的错误,即进程执行后,所得到的结果与访问公共变量的时间有关。为了防止这类错误,系统必须要用同步机构来控制进程对公共变量的访问。一般说,同步机构是由若干条原语同步原语所组成。本实验要求学生模拟PV操作同步机构的实现,模拟进程的并发执行,了解进程并发执行时同步机构的作用。三、实验题目模拟PV操作同步机构,且用PV操作解决生产者消费者问题。提示:(1) PV操作同步机构,由P操作原语和V操作原语组成,它们的定义如下:P操作原语P(s):将信号量s减去1,若结果小于0,则执行原语的进程被置成等待信号量s的状态。V操作原语V(s):将信号量s加1,若结果不大于0,则释放一个等待信号量s的进程。这两条原语是如下的两个过程:procedure p (var s: semaphore);begin s:=s-1;if s<0 then W(s)end pprocedure v (var s: semaphore);begin s: =s+1;if s<=0 then R(s)end V其中W(s)表示将调用过程的进程置为等待信号量s的状态;R(s)表示释放一个等待信号量s的进程。在系统初始化时应把semaphore定义为某个类型,为简单起见,在模拟实验中可把上述的semaphore直接改成integer。(2)生产者消费者问题。假定有一个生产者和消费者,生产者每次生产一件产品,并把生产的产品存入共享缓冲器以供消费者取走使用。消费者每次从缓冲器内取出一件产品去消费。禁止生产者将产品放入已满的缓冲器内,禁止消费者从空缓冲器内取产品。假定缓冲器内可同时存放10件产品。那么,用PV操作来实现生产者和消费者之间的同步,生产者和消费者两个进程的程序如下:B:array 0.9 of products;s1,s2: semaphore;IN, out; integer;IN:=0;out:=0;cobeginprocedure producer;c: products;beginL1:produce (c);p (s1);BIN:=C;IN:=(IN+1)mod 10;v(s2);goto L1end;procedure consumer;x: products;beginL2:P(s2);x:=Bout;out:=(out+1) mod 10;v(s1);consume(x);goto L2end;coend其中的semaphore和products是预先定义的两个类型,在模拟实现中semaphore用integer或char等代替。(3)进程控制块PCB。为了纪录进程执行时的情况,以及进程让出处理器后的状态,断点等信息,每个进程都有一个进程控制块PCB。在模拟实验中,假设进程控制块的结构如图4-1。其中进程的状态有:运行态、就绪态、等待态和完成态。当进程处于等待态时,在进程控制块PCB中要说明进程等待原因(在模拟实验中进程等待原因为等待信号量s1或s2);当进程处于等待态或就绪态时,PCB中保留了断点信息,一旦进程再度占有处理器则就从断点位置继续运行;当进程处于完成状态,表示进程执行结束。进程名状态等待原因断点 图4-1 进程控制块结构(4)处理器的模拟。计算机硬件提供了一组机器指令,处理器的主要职责是解释执行机器指令。为了模拟生产者和消费者进程的并发执行,我们必须模拟一组指令和处理器职能。模拟的一组指令见图4-2,其中每条指令的功能由一个过程来实现。用变量PC来模拟“指令计数器”,假设模拟的指令长度为1,每执行一条模拟指令后,PC加1,指出下一条指令地址。使用模拟的指令,可把生产者和消费者进程的程序表示为图4-3的形式。定义两个一维数组PA0.4和SA0.4,每一个PAi存放生产者程序中的一条模拟指令执行的入口地址;每个SAi存放消费者程序中的一条模拟指令执行的入口地址。于是模拟处理器执行一条指令的过程为:取出PC之值,按PAPC 或SAPC得模拟指令执行的入口地址,将PC之值加1,转向由入口地址确定的相应的过程执行。(5)程序设计本实验中的程序由三部分组成:初始化程序、处理器调度程序、模拟处理器指令执行程序。各部分程序的功能及相互间的关系由图4-4至图4-7指出。模拟的指令功能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空操作图4-2 模拟的处理器指令序号生产者程序消费者程序0produceP(s2)1P(s1)GET2PUTV(s1)3V(s2)consume4goto 0goto 0图4-3 生产者和消费者程序初始化程序:模拟实验的程序从初始化程序入口启动,初始化工作包括对信号量S1、S2赋初值,对生产者、消费者进程的PCB初始化。初始化后转向处理器调度程序,其流程如图4-4处理器调度程序:在计算机系统中,进程并发执行时,任一进程占用处理器执行完一条指令后就有可能被打断而让出处理器由其他进程运行。故在模拟系统中也类似处理,每当执行一条模拟的指令后,保护当前进程的现场,让它成为非运行状态,由处理器调度程序按随机数再选择一个就绪进程占用处理器运行。处理器调度程序流程见图4-5。开始初始化信号量S1,S2S1:=10,S2:=0处理器调度程序生产者和消费者进程的PCB中状态为就绪,断点为0将现行进程置为生产者进程,PC:=0结束图 4-4 初始化流程模拟处理器指令执行程序:按“指令计数器”PC之值执行指定的质量,且PC加1指向下一条指令。模拟处理器指令执行的程序流程见图4-6和4-7。另外,为了使得模拟程序有一个结束条件,在图4-6中附加了“生产者运行结束”的条件判断,模拟时可以采取人工选择的方法实现。图4-7给出了P(S)和V(S)模拟指令执行过程的流程。其他模拟指令的执行过程已在图4-2中指出。四、实验报告(1) 实验题目。(2) 编写源程序并附上注释。(3) 从键盘上输入一组字符,由生产者每次读入一个字符供消费者输出。运行模拟程序,打印依次读入的字符和消费者输出的字符。(4) 把生产者和消费者进程中的P操作、V操作都改成空操作指令,观察在两者不同步的情况下可能出现的与时间有关的错误。打印依次读入的字符和消费者输出的字符。开始随即选择就绪进程作为现行进程模拟处理器指令执行程序将现行进程状态改为运行态现行进程PCB的断点值=>PC结束保护现场,PC=>当前进程PCB的断点有就绪进程?否是图4-5处理器调度程序流程P(s)GOTO空操作PutGETproduceconsumeV(s)开始j:=PC按j转向各模拟指令对应的过程现行进程为生产者?否是j:=SAij:=PAiPC:=i+1置现行进程为就绪态返回生产者运行结束?置生产者进程为完成态是否图 4-6 模拟处理器指令执行开始SS+1将调用V(s)过程的进程置为就绪找一个等待s信号量的进程置为就绪态S<0返回否是开始SS-1将调用P(s)过程的进程置为就绪将调用P(s)过程的进程置为等待信号量s的状态S<0返回否是(1)模拟P(S) (2)模拟V(S)图 4-7 模拟PV操作的执行实验三 虚拟存储器一、实验内容模拟分页式虚拟存储管理中硬件的地址转换和缺页中断,以及选择页面调度算法处理缺页中断。二、实验目的在计算机系统中,为了提高主存利用率,往往把辅助存储器(如磁盘)作为主存储器的扩充,使多道运行的作业的全部逻辑地址空间总和可以超出主存的绝对地址空间。用这种办法扩充的主存储器称为虚拟存储器。通过本实验帮助同学理解在分页式存储管理中怎样实现虚拟存储器。三、实验题目本实验有三道题目,其中第一题必做,第二,三题中可任选一个。第一题:模拟分页式存储管理中硬件的地址转换和产生缺页中断。提示(1) 分页式虚拟存储系统是把作业信息的副本存放在磁盘上,当作业被选中时,可把作业的开始几页先装入主存且启动执行。为此,在为作业建立页表时,应说明哪些页已在主存,哪些页尚未装入主存,页表的格式为:页号标志主存块号在磁盘上的位置其中,标志-用来表示对应页是否已经装入主存,标志位=1,则表示该页已经在主存,标志位=0,则表示该页尚未装入主存。主存块号-用来表示已经装入主存的页所占的块号。在磁盘上的位置-用来指出作业副本的每一页被存放在磁盘上的位置。(2) 作业执行时,指令中的逻辑地址指出了参加运算的操作存放的页号和单元号,硬件的地址转换机构按页号查页表,若该页对应标志为“1”,则表示该页已在主存,这时根据关系式: 绝对地址=块号×块长+单元号计算出欲访问的主存单元地址。如果块长为2的幂次,则可把块号作为高地址部分,把单元号作为低地址部分,两者拼接而成绝对地址。若访问的页对应标志为“0”,则表示该页不在主存,这时硬件发“缺页中断”信号,有操作系统按该页在磁盘上的位置,把该页信息从磁盘读出装入主存后再重新执行这条指令。(3) 设计一个“地址转换”程序来模拟硬件的地址转换工作。当访问的页在主存时,则形成绝对地址,但不去模拟指令的执行,而用输出转换后的地址来代替一条指令的执行。当访问的页不在主存时,则输出“* 该页页号”,表示产生了一次缺页中断。该模拟程序的算法如图2-1。开始取一条指令取指令中访问的页号 查页表 否是该页标志=1?形成绝对地址输出“*”页号表示发生缺页中断输出绝对地址有后继指令?取下一条指令结束图2-1 地址转换模拟算法(4) 假定主存的每块长度为128个字节;现有一个共七页的作业,其中第0页至第3页已经装入主存,其余三页尚未装入主存;该作业的页表为:015011118012219013311021400225002360121如果作业依次执行的指令序列为:操作页号单元号操作页号单元号+070移位4053+150+5023×215存1037存321取2078取056+4001640存6084(5) 运行设计的地址转换程序,显示或打印运行结果。因仅模拟地址转换,并不模拟指令的执行,故可不考虑上述指令序列中的操作。第二题:用先进先出(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。(4) 磁盘上,在磁盘上的存放地址以及已装入主存的页和作业依次执行的指令序列都同第一题中(4)所示。于是增加了“修改标志”后的初始页表为: 页号 标志 主存块号 修改标志 在磁盘上的位置015 0011118 0012219 0013311 002140 002250 002360 0121按依次执行的指令序列,运行你所设计的程序,显示或打印每次调出和装入的页号,以及执行了最后一条指令后的数组P的值。(5) 为了检查程序的正确性,可再任意确定一组指令序列,运行设计的程序,核对执行的结果。开始取一条指令取指令中访问的页号L 查页表 否(产生缺页中断)是该页标志=1?形成绝对地址是是存指令?置L页修改标志为“1”否输出绝对地址有后继指令?否是结束模拟硬件地址转换取下一条指令模拟FIFO页面调度j:=Pkj页修改标志为1输出“out j”(接下页)(接上页)输出“in L”修改页表Pk:=L, k:=(k+1) mod m图2-2 FIFO页面调度模拟算法第三题:用最近最少用(LRU)页面调度算法处理缺页中断。提示(1) 在分页式虚拟存储系统中,当硬件发出“缺页中断”后,引出操作系统来处理这个中断事件。如果主存中已经没有空闲块,则可用LRU页面调度算法把该作业中最先进入主存的一页调出,存放到磁盘上,然后再把当前要访问的页装入该块。调出和装入后都要修改页表页表中对应页的标志。(2) LRU页面调度算法总是淘汰该作业中距现在最久没有访问过的那一页,因此可以用一个数组来表示该作业已在主存的页面。数组中的第一个元素总是指出当前刚访问的页号,因此最久没被访问的页总是由最后一个元素指出。如果主存中只有四块空闲块且执行第一题提示(4)假设的指令序列,采用LRU页面调度算法,那麽在主存中的页面变化情况如下:306451246230645134123064512012306451(3) 编制一个LRU页面调度程序,为了提高系统效率,如果应淘汰的页在执行中没有修改过,则可不必把该页调出。参看第二题中提示(3)。模拟调度算法不实际启动输出一页和装入一页的程序,而用输出调出的页号和装入的页号来代替。把第一题中的程序稍作改动,与本题集合起来,LRU页面调度模拟算法如图2-3。(4) 按第一题中提示(4)的要求,建立一张初始页表,表中为每一页增加“修改标志”位(参考第二题中提示(4)。然后按依次执行的指令序列,运行你所设计的程序,显示或打印每次调出和装入的页号,以及执行了最后一条指令后的数组中的值。(5) 为了检查程序的正确性,可再任意确定一组指令序列,运行设计的程序,核对执行的结果。开始取一条指令取指令中访问的页号L 查页表 否(产生缺页中断)是该页标志=1?形成绝对地址是是存指令?否置L页修改标志为“1”输出绝对地址否有后继指令?是结束模拟硬件地址转换取下一条指令模拟LRU页面调度j:=被淘汰的页号(接下页)(接上页)输出“out j”j页修改标志为1输出“in L”调整数组,j退出数组,L数组第一个元素中修改页表图2-3 LRU页面调度算法四、实验报告(1) 实验题目(第二题或第三题)。(2) 程序中使用的数据结构及符号说明。(3) 打印一份源程序并附上注释。(4) 打印初始页表,每次调出(要调出一页时)和装入的页号,执行最后一条指令后在主存中的页面号(即数组的值)。思考题如果你有兴趣的话,可把两种页面调度算法都做一下,比较两种调度算法的效率(哪种调度算法产生缺页中断的次数少);分析在什麽情况下采用哪种调度算法更有利?实验四 磁盘驱动调度一、实验内容模拟电梯调度算法,实现对磁盘的驱动调度。二、实验目的 磁盘是一种高速、大容量、旋转型、可直接存取的存储设备。它作为计算机系统的辅助存储器,担负着繁重的输入输出任务、在多道程序设计系统中,往往同时会有若干个要求访问磁盘的输入输出请求等待处理。系统可采用一种策略,尽可能按最佳次序执行要求访问磁盘的诸输入输出请求。这就叫驱动调度,使用的算法称为驱动调度算法。驱动调度能降低为若干个输入输出请求服务所需的总时间,从而提高系统效率。本实验要求学生模拟设计一个驱动调度程序,观察驱动调度程序的动态运行过程。通过实验使学生理解和掌握驱动调度的职能。三、实验题目模拟电梯调度算法,对磁盘进行移臂和旋转调度。提示:(1)磁盘是可供多个进程共享的存储设备,但一个磁盘每时刻只能为一个进程服务。当有进程在访问某个磁盘时,其他想访问该磁盘的进程必须等待,直到磁盘一次工作结束。当有多个进程提出输入输出要求而处于等待状态时,可用电梯调度算法从若干个等待访问者中选择一个进程,让它访问磁盘。选择访问者的工作由“驱动调度”进程来完成。 由于磁盘与处理器是可以并行工作的、所以当磁盘在作为一个进程服务时,占有处理器的另一进程可以提出使用磁盘的要求,也就是说,系统能动态地接收新的输入输出请求。为了模拟这种情况,在本实验中设置了一个“接收请求”进程。“驱动调度”进程和“接收请求”进程能否占有处理器运行,取决于磁盘的结束中断信号和处理器调度策略。在实验中可用随机数来模拟确定这两个进程的运行顺序,以代替中断处理和处理器调度选择的过程。因而,程序的结构可参考图31(2)“接收请求”进程建立一张“请求I/O”表,指出访问磁盘的进程要求访问的物理地址,表的格式为:进程名柱面号磁道号物理记录号初始化输入在0,1区间内的一个随机数随机数>1/2开始驱动调度接受请求继续?结束是是否否图31 程序结构假定某个磁盘组共有200个柱面,由外向里顺序编号(0199),每个柱面上有20个磁道,编号为019,每个磁道分成8个物理记录,编号07。进程访问磁盘的物理地址可以用键盘输入的方法模拟得到。图32是“接收请求”进程的模拟算法。在实际的系统中必须把等待访问磁盘的进程排入等待列队,由于本实验模拟驱动调度,为简单起见,在实验中可免去队列管理部分,故设计程序时可不考虑“进程排入等待队列”的工作。(3)“驱动调度”进程的功能是查“请求I/O”表,当有等待访问磁盘的进程时,按电梯调度算法从中选择一个等待访问者,按该进程指定的磁盘物理地址启动磁盘为其服务。对移动臂磁盘来说,驱动调度分移臂调度和旋转调度。电梯调度算法的调度策略是与移动臂的移动方向和移动臂的当前位子有关的,所以每次启动磁盘时都应登记移动臂方向和当前位子。电梯调度算法是一种简单而实用的驱动调度方法,这种调度策略总是优先选择与当前柱面号相同的访问请求,从这些请求中再选择一个能使旋转距离最短的等待访问者。如果没有与当前柱面号相同的访问请求,则根据移臂方向来选择,每次总是沿臂移动方向选择一个与当前柱面号最近的访问请求,若沿这个方向没有访问请求时,就改变臂的移动方向。这种调度策略能使移动臂的移动频率极小,从而提高系统效率。用电梯调度算法实现驱动调度的模拟算法如图33。 开始有请求?输入:进程名物理地址进程排入等待队列登记“请求I/O表返回是否 图 32 “接收请求”模拟算法(4)图31中的初始化工作包括,初始化“请求I/O”表,置当前移臂方向为里移;置当前位置为0号柱面,0号物理记录。程序运行前可假定“请求I/O”表中已经有如干个进程等待访问磁盘。在模拟实验中,当选中一个进程可以访问磁盘时,并不实际地启动磁盘,而用显示:“请求I/O”表;当前移臂方向;当前柱面号,物理记录号来代替图33中的“启动磁盘”这项工作。四、实验报告(1)实验题目。(2)程序中使用的数据结构及其说明。(3)打印一份源程序并附上注释。(4)打印驱动调度进程每次选择访问请求前的“请求I/O”表以及每次选中的进程名、访问的柱面号、物理记录号和当前移臂方向(用up代表里移,down代表外移。打印格式为:“请求I/O”表进程名 柱面号 物理记录号 方向开始查”请求I/O表”否是有等待访问者?有与当前柱面号相同的访问者?否是返回选择能使旋转距离最短的访问者当前移臂方向是向里移?否是有比当前柱面号大的访问请求?有比当前柱面号小的访问请求?否是是置当前移臂方向为向里移置当前移臂方向为向外移从大于当前柱面号的访问请求中选择一个最小者从大于当前柱面号的访问请求中选择一个最小者添加当前位置:柱面号;物理记录号启动磁盘,被选中者退出“请求I/O表”图3-3 电梯调度模拟算法返回

    注意事项

    本文(操作系统实验要求.doc)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开