操作系统第六章输入输出系统管理和习题_第1页
操作系统第六章输入输出系统管理和习题_第2页
操作系统第六章输入输出系统管理和习题_第3页
操作系统第六章输入输出系统管理和习题_第4页
操作系统第六章输入输出系统管理和习题_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

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

文档简介

1、操作系统Operating Systems第六章输入输出系统管理和习题 6.7 缓冲区管理 缓冲的引入单缓冲和双缓冲循环缓冲缓冲池缓冲的引入缓和CPU与I/O设备间速度不匹配的矛盾凡在数据到达速率与其离去速率不同的地方,都可设置缓冲区。减少对CPU的中断频率,放宽对CPU中断响应时间的限制必须在每收到一位数据时,便中断一次CPU并在下位到来之前要求CPU进行中断处理,以取走输入的数据。01001位缓冲9.6 Kb(bit)/s(a)中断CPU的频率为,每100s中断一次CPUCPU必须在100 s内响应,否则数据会被冲掉1/(9.6*1024) 可以每收8位数据中断一次CPU,但在第9位数据到

2、来之间必须完成中断处理。8位缓冲寄存器送内存9.6 Kb/s(b)CPU每隔800 s 中断一次要求CPU必须在100 s 时间内予以响应0900800缓冲的引入可每收8位数据中断一次,允许CPU在下一个8位数据到来期间完成前8位数据的中断处理。提高CPU和I/O设备之间的并行性提高系统的吞吐量和设备的利用率8位缓冲寄存器9.6 Kb/s送内存(c)发出中断,响应时间可为800s单缓冲单缓冲数据处理时间约为maxC,T+M双缓冲-缓冲对换数据处理时间约为maxM+C,T保证块设备连续工作一块数据的传输和处理时间为T=max(C,T),如果CT,一块数据的传输和处理时间为max(C,T)+M =

3、C+M,这种情况下进程不必要等待I/O。CMT双机通信时缓冲区的设置只能实现单向的数据传输6.7.3 环形缓冲区用于装输入数据的空缓冲区已装满数据的缓冲区计算进程正在使用的现行工作缓冲区指示计算进程下一个可用缓冲区输入进程下次可用的空缓冲区R的指针计算进程正在使用的缓冲区C的指针2环形缓冲区的使用计算进程和输入进程利用下述过程来使用环形缓冲区:(1)Getbuf过程当计算进程要使用缓冲区中数据时,调用Getbuf过程当输入进程要使用空缓冲区来装入数据时,调用Getbuf(2) Releasebuf过程当计算进程把缓冲区中的数据提取完毕时当输入进程把缓冲区装满时当计算进程要使用缓冲区中数据时,可

4、调用Getbuf过程计算进程(1)NextgCurrentC计算进程从C提取数据当计算进程把C缓冲区中的数据提取完毕时,便调用Releasebuf过程,将缓冲区C释放。计算进程(2)CurrentRNextg计算进程从C提取完毕当输入进程要使用空缓冲区来装入数据时,调用Getbuf输入进程(1)NextiNextg输入进程用R来装数据当输入进程把缓冲区装满时,也应调用Releasebuf过程。输入进程(2)G输入进程已装满数据3进程同步输入进程和计算进程并行执行Nexti指针追上Nextg指针可用空缓冲区已满。输入进程应阻塞计算进程调用Releasebuf过程 将输入进程唤醒NextiNext

5、gGGG3进程同步Nextg指针追上Nexti指针装有输入数据的缓冲区都被抽空计算进程应阻塞输入进程调用Releasebuf过程 将计算进程唤醒NextiNextgRRR6.7.4 缓冲池(Buffer Pool)专用缓冲的利用率不高仅适用于某特定的I/O进程和计算进程消耗大量的内存空间缓冲池系统的公用资源,可供多个进程共享既能用于输入,也能用于输出缓冲池组成空(闲)缓冲区、装满输入数据的缓冲区、装满输出数据的缓冲区缓冲队列可将相同类型的缓冲区链成一个队列可形成以下三个队列:空缓冲队列emq、输入队列inq。、输出队列outq。四种工作缓冲区 用于收容输入数据的工作缓冲区hin;用于提取输入数

6、据的工作缓冲区sin;用于收容输出数据的工作缓冲区hout; 用于提取输出数据的工作缓冲区sout。 收容输入在输入进程需要输入数据时,调用Getbuf(emq)过程从空缓冲队列emq的队首摘下一空缓冲区,把它作为收容输入工作缓冲区hin。把数据输入其中,装满后再调用Putbuf(inq,hin)过程将该缓冲区挂在输入队列inq上。F(emq)L(emq)F(inq)L(inq)hin提取输入当计算进程需要输入数据时,调用Getbuf(inq)过程从输入队列inq的队首取得一个缓冲区,作为提取输入工作缓冲区(sin),计算进程从中提取数据计算进程用完该数据后,再调用Putbuf(emq,sin

7、)过程将该缓冲区挂到空缓冲队列emq上。 F(inq)L(inq)F(emq)L(emq)sin收容输出当计算进程需要输出时,调用Getbuf(emq)过程从空缓冲队列emq的队首取得一个空缓冲区,作为收容输出工作缓冲区hout。当其中装满输出数据后,调用Putbuf(outq,hout)过程,将该缓冲区挂在outq末尾F(emq)L(emq)F(outq)L(outq)hout提取输出由输出进程调用Getbuf(outq)过程从输出队列的队首取得一装满输出数据的缓冲区,作为提取输出工作缓冲区sout。在数据提取完后,再调用Putbuf(emq,sout)过程,将该缓冲区挂在空缓冲队列末尾。

8、F(outq)L(outq)F(emq)L(emq)sout6.8 磁盘存储器的性能和调度 6.8.1 磁盘性能描述1数据的组织和格式磁盘扇区一个扇区称为一个盘块(或数据块)磁盘结构每个盘面有一个读写磁头所有的读写磁头都固定在唯一的移动臂上同时移动在磁头位置下的所有磁道组成的圆柱体称柱面,磁盘磁盘性能简述2磁盘的类型固定头磁盘在每条磁道上都有一读/写磁头,所有的磁头都被装在一刚性磁臂中。这些磁头可访问所有各磁道,并进行并行读/写。这种结构的磁盘主要用于大容量磁盘上。 2) 移动头磁盘每一个盘面仅配有一个磁头,也被装入磁臂中。该磁头必须能移动以进行寻道。本节主要针对这类磁盘的I/O进行讨论。 3

9、 磁盘访问时间寻道时间移动磁头到指定磁道上所经历的时间;旋转延迟时间移动某扇区到磁头下所经历时间;传输时间从磁盘读或向磁盘写数据所经历时间;适当地集中数据(不要太零散)传输, 将有利于提高传输效率。 所读/写数据的多少无关6.8.2 早期的磁盘调度算法1先来先服务算法2最短寻道时间优先算法在访问磁盘的时间中,主要是寻道时间,因此,磁盘调度的目标就是使磁盘的平均寻道时间最少。先来先服务算法根据进程请求访问磁盘的先后次序进行调度优点:简单、公平,不会出现请求长期得不到满足缺点:未优化,平均寻道时间长磁盘调度:55 58 39 18 90 160 150 38 1840383955589010015

10、016018418先来先服务算法平均寻道长度:1461841123810150701607290211819393584555移动距离被访问的下一个磁道100道开始最短寻道时间优先算法SSTF要求访问的磁道与当前磁头所在的磁道距离最近优点:使每次寻道时间最短缺点:不能保证平均寻道时间最短;可能导致距离远的进程总也得不到服务0383955589010015016018418磁盘调度:55 58 39 18 90 160 150 38 184FCFS调度算法 SSTF调度算法100道开始被访问的下一个磁道移动距离5545583391918219072160701501038112184146平均寻

11、道长度:55.3100道开始被访问的下一个磁道移动距离90105832553391638118201501321601018424平均寻道长度:27.5进程“饥饿”现象SSTF算法可能导致某个进程发生“饥饿”现象。不断有新进程的请求到达,且其所要访问的磁道与磁头当前所在磁道的距离较近这种新进程的I/O请求必然优先满足。可防止老进程出现“饥饿”现象对SSTF算法略加修改后所形成的SCAN算法6.8.3 基于扫描的磁盘调度算法1扫描(SCAN)算法(电梯调度算法)2循环扫描(CSCAN)算法3. NStepSCan和FSCAN调度算法在访问磁盘的时间中,主要是寻道时间,因此,磁盘调度的目标就是使磁

12、盘的平均寻道时间最少。扫描(SCAN)算法不仅考虑欲访问的磁道与当前磁道的距离,更优先考虑的是磁头当前的移动方向又称为 “电梯调度算法”缺点:刚移过的磁道的等待时间长0255075100125150175200150160184905855383918扫描(SCAN)算法(电梯调度算法)55 58 39 18 90 160 150 38 184SCAN调度算法 SSTF调度算法100道开始被访问的下一个磁道移动距离90105832553391638118201501321601018424平均寻道长度:27.5100道开始,增加方向被访问的下一个磁道移动距离150501601018424909

13、4583255339163811820平均寻道长度:27.8“循环扫描”算法CSCAN规定磁头单向移动减少刚移过的磁道的等待时间“循环扫描”算法CSCAN55 58 39 18 90 160 150 38 1840255075100125150175200150160184905855383918SCAN调度算法 CSCAN调度算法100道开始,增加方向被访问的下一个磁道移动距离1505016010184249094583255339163811820平均寻道长度:27.8100道开始,增加方向被访问的下一个磁道移动距离1505016010184241816638203915516583903

14、2平均寻道长度:35.8N步SCAN算法“磁臂粘着”在SSTF、 SCAN及CSCAN几种调度算法中, 都可能出现磁臂停留在某处不动的情况N步SCAN算法将磁盘请求队列分成若干个长度为N的子队列,磁盘调度将按FCFS算法依次处理这些子队列。 每处理一个队列时又是按SCAN算法,对一个队列处理完后,再处理其他队列当N值很大时,N步扫描性能接近于SCAN性能;N=1, N步扫描性能便退化为FCFSFSCAN算法FSCAN算法是N步SCAN算法的简化只将磁盘请求队列分成两个子队列。一是由当前所有请求I/O的进程形成的队列由磁盘调度按SCAN算法进行处理。另一个等待处理的请求队列在扫描期间,新出现的所

15、有请求I/O的进程加入此队列1、下列哪一条不是磁盘设备的特点( )。 A 传输速率较高,以数据块为传输单位 B 一段时间内只允许一个用户(进程)访问 C I/O控制方式常采用DMA方 式 D 可以寻址,随机地读/写任意数据块2、目前广泛流行既可用于输入又可用于输出的( ),该缓冲中设置了多个可供若干进程共享的缓冲区。 A 单缓冲区 双缓冲区 环形缓冲区 缓冲池 BC、设从磁盘将一块数据传送到缓冲区所用时间为80s,将缓冲区中数据传送到用户区所用时间为40s,CPU处理数据所用时间为30s,则处理该数据,采用单缓冲传送某磁盘数据,系统所用总时间为( )。(A)120s (B)110s (C)15

16、0s (D)70sAmaxC,T+M80s40sC=30s、假定把磁盘上一个数据块中的信息输入到一双缓冲区的时间T为100s,将缓冲区中的数据传送到用户区的时间M为50s,而CPU对这一数据进行计算的时间C为50s。这样,系统对每一块数据的处理时间为( ) 。A 50s; B 100s; C 150s; D 200s; E 250s。maxM+C,TB100s50sC=50s5、假定磁盘有200 个柱面,编号0 - 199 ,当前存取臂的位置在143 号柱面上,并刚刚完成了125 号柱面的服务请求,如果请求队列的先后顺序是:86 , 147 , 91 , 177 , 94 , 150 , 10

17、2 , 175 , 130 ;试问:为完成上述请求,下列算法存取臂移动的总量是多少?并算出存取臂移动的顺序。(1)先来先服务算法FCFS(2)最短查找时间优先算法SSTF (3)扫描算法SCAN (电梯调度)(4)循环扫描算法(CSCAN)(5)比较上述算法答(1 )先来先服务算法FCFS 请求队列:86 , 147 , 91 , 177 , 94 , 150 , 102 , 175 , 130 依次为:143 -86 -147 -91 -177 -94 -150 -102 -175 -130 。(143-86)+(147-86)+(147-91)+(177-91)+(177-94)+(150

18、-94)+(150-102)+(175-102)+(175-130)=565 ( 2 )最短查找时间优先算法SSTF 为: 请求队列:86 , 147 , 91 , 177 , 94 , 150 , 102 , 175 , 130 依次为143-147 -150 -130 -102 -94 -91 -86 -175 -177移动的总量=162809511012514015517018520014315017513010294869186 , 147 , 91 , 177 , 94 , 150 , 102 , 175 , 130 147177移动的总量= 125电梯调度8095110125140

19、15517018520014315017513010294869186 , 147 , 91 , 177 , 94 , 150 , 102 , 175 , 130 147177CSCAN(循环扫描)FCFS根据进程请求访问磁盘的先后次序进行调度公平,不会出现请求长期得不到满足,有限等待SSTF利用局部性,要求访问的磁道与当前磁头所在的磁道距离最近可能导致距离远的进程总也得不到服务,饥饿SCAN/CSAN利用局部性,考虑欲访问的磁道与当前磁道的距离,还考虑磁头移动方向有限等待6、下列关于通道、设备、设备控制器三者之间的关系叙述中正确的是( )。 A 设备控制器可控制通道,设备在通道控制下工作 B

20、 通道控制设备控制器,设备在控制器下工作 C 设备控制器和通道可以分别控制设备 D 设备控制器控制通道和设备的工作B7、为实现设备分配,应为每类设备设置一张_;在系统中配置一张_;为实现设备的独立性,系统中应设置一张_。A.设备控制表 B.控制器控制表 C.系统设备表D.设备分配表 A.设备开关表 请求表 C.系统设备表D.逻辑设备表 ACD8、在I/O设备控制的发展过程中,最主要的推动因素是 _。使用户所编制的程序与实际使用的物理设备无关是由 _功能实现的。 : A 提高资源利用率; B 提高系统吞吐量; C 减少主机对I/O控制的干预; D 提高CPU与I/O设备的并行操作程度。 : A 设备分配; B 缓冲管理; C 设备管理; D 设备独立性; E 虚拟设备。CD9、从下列关于驱动

温馨提示

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

评论

0/150

提交评论