1、 设备管理设备管理设备管理设备管理管理的是计算机系统的重要资源,用户无权直接管理的是计算机系统的重要资源,用户无权直接使用。使用。设备管理的一个重要任务设备管理的一个重要任务设备管理的一个重要任务设备管理的一个重要任务:是按照一定的算法在各进程间:是按照一定的算法在各进程间调度和分配设备。调度和分配设备。另外,设备管理还要按照用户要求启动具体设备,完成数另外,设备管理还要按照用户要求启动具体设备,完成数据传输操作,并且处理设备的中断。据传输操作,并且处理设备的中断。还有,如何利用虚拟技术使独享设备还有,如何利用虚拟技术使独享设备“变为变为”共享设备,共享设备,使一台物理设备使一台物理设备“变为
2、变为”多台逻辑设备。多台逻辑设备。5.1 5.1 设备管理概述设备管理概述一、设备管理的分类 1.1.按从属关系分类按从属关系分类系系统统设设备备:指指在在操操作作系系统统生生成成时时已已经经登登记记在在系系统统中中的的标标准准设备。如键盘、显示器、打印机等。设备。如键盘、显示器、打印机等。用用户户设设备备:指指操操作作系系统统生生成成时时未未登登记记入入系系统统的的非非标标准准设设备备。如鼠标、绘图仪、扫描仪等。如鼠标、绘图仪、扫描仪等。2.2.按传输速率分类按传输速率分类低速、中速、高速设备(指传输速率)低速、中速、高速设备(指传输速率)3.3.按使用特性分类按使用特性分类存储设备、存储设
3、备、I/OI/O设备设备(1 1 1 1)独占设备:)独占设备:)独占设备:)独占设备:指指在在一一段段时时间间内内只只允允许许一一个个用用户户(进进程程)访访问问的的设设备备,大大多多数数低低速速的的I/OI/O设设备备。如如用用户户终终端端、打打印印机机等等属属于于这这类类设设备备。因因为为独独占占设设备备属属于于临临界界资资源源,所所以以多多个个并并发发进进程程必必须互斥地访问独占设备。须互斥地访问独占设备。4.4.按设备共享属性分类按设备共享属性分类 (*)(2 2 2 2)共享设备:)共享设备:)共享设备:)共享设备:指在一段时间内允许多个进程同时访问的设备。指在一段时间内允许多个进
4、程同时访问的设备。显显然然,共共享享设设备备必必须须是是可可寻寻址址的的和和可可随随机机访访问问的的设设备备,典典型的共享设备是磁盘。型的共享设备是磁盘。(3 3 3 3)虚拟设备:)虚拟设备:)虚拟设备:)虚拟设备:指通过虚拟技术将一台独占设备变换为若干台供多个用户指通过虚拟技术将一台独占设备变换为若干台供多个用户(进程)共享的逻辑设备。一般可以利用假脱机(进程)共享的逻辑设备。一般可以利用假脱机(SPOOLingSPOOLing)技术实现虚拟设备。)技术实现虚拟设备。二、设备管理的功能二、设备管理的功能 (1 1)设备分配和回收。)设备分配和回收。按照设备类型和相应的分配算按照设备类型和相
5、应的分配算法决定将法决定将I/OI/O设备分配给哪一要求使用该设备的进程。凡未设备分配给哪一要求使用该设备的进程。凡未分配到所需设备的进程被放入一个等待队列。分配到所需设备的进程被放入一个等待队列。(2 2)设设备备处处理理。设设备备处处理理程程序序实实现现CPUCPU和和设设备备控控制制器器之之间间的的通通信信。即即当当CPUCPU向向设设备备控控制制器器发发出出I/OI/O指指令令时时,设设备备处处理理程程序序应应启启动动设设备备进进行行I/OI/O操操作作,并并能能对对设设备备发发来来的的中中断断请请求求作出及时的响应和处理。作出及时的响应和处理。(3 3)实现其他功能。)实现其他功能。
6、包括对缓冲区的管理功能及实现设备独立性。包括对缓冲区的管理功能及实现设备独立性。三、设备管理的目标三、设备管理的目标 (1 1)提高设备的利用率。)提高设备的利用率。应应尽尽量量提提高高CPUCPU与与I/OI/O设设备备之之间间的的并并行行操操作作程程度度,主主要要利利用的技术有:中断技术、用的技术有:中断技术、DMADMA技术、通道技术和缓冲技术。技术、通道技术和缓冲技术。(2 2)为用户提供方便、统一的界面。)为用户提供方便、统一的界面。所谓方便,是指用户能独立于具体设备的复杂物理特性所谓方便,是指用户能独立于具体设备的复杂物理特性之外而方便使用设备。所谓统一,是指对不同的设备尽量使之外
7、而方便使用设备。所谓统一,是指对不同的设备尽量使用统一的操作方式,例如各种字符设备用一种用统一的操作方式,例如各种字符设备用一种I/OI/O操作方式。操作方式。这就要求用户操作的是简便的逻辑设备,而具体的这就要求用户操作的是简便的逻辑设备,而具体的I/OI/O物理物理设备有操作系统去实现,这种性能常常被称为设备的独立性。设备有操作系统去实现,这种性能常常被称为设备的独立性。5.2 5.2 设备设备I/OI/O方式方式 1 1、询询问问(QueryQuery):询询问问方方式式又又称称程程序序直直接接控控制制方方式式,在在这这种种方方式式下下,输输入入输输出出指指令令或或询询问问指指令令测测试试
8、一一台台设设备备的的忙忙闲闲标标志志位位,决决定定主主存存储储器器和和外外围围设设备备是是否否交交换换一一个个字字符符或或一一个个字字。实实时时系系统统中中必必需需采采用用,在在一一般般简简单单系系统统中中也也广广泛泛采采用用,但但系系统统开开销销较较大大。CPUCPU和和I/OI/O设设备备串串行行工工作作,每每次次进进行行输入输出工作,都需要由主机输入输出工作,都需要由主机CPUCPU干预;干预;2 2、中中断断(interruptinterrupt):CPUCPU启启动动I/OI/O设设备备后后,不不必必查查询询I/OI/O设设备备是是否否就就绪绪,继继续续执执行行现现行行程程序序,直直
9、到到在在启启动动指指令令后后的的某某条条指指令令,响响应应了了I/OI/O中中断断请请求求,CPUCPU才才转转至至I/OI/O中中断断处处理理程程序序执执行行。中中断断工工作作主主要要由由中中断断请请求求、中中断断响响应应和和中中断断服服务务处处理理组组成成。“中中断断”的的产产生生使使管管理理工工作作更更能能“自自动动化化”。I/OI/O操操作作直直接接由由CPUCPU控控制制,每每传传送送一一个个字字符符或或字字,要要发发生一次中断,仍然消耗大量生一次中断,仍然消耗大量CPUCPU时间。时间。医生查房(医生查房(“询问询问”),以便及时掌握病情。病床旁),以便及时掌握病情。病床旁红灯是紧
10、急请求医生的按钮(红灯是紧急请求医生的按钮(“中断请求中断请求”)。常规医)。常规医疗处理医生委托护士(疗处理医生委托护士(“硬通道硬通道”)去做。但护士只有)去做。但护士只有执行权而无修改权。执行权而无修改权。4 4、通通道道(ChannelChannel):又又称称输输入入输输出出处处理理器器。完完成成主主存存和和外外设设之之间间的的信信息息传传送送,与与CPUCPU并并行行工工作作,解解决决了了输输入入输输出出操操作作的的独独立立性性和和各各部部件件工工作作的的并并行行性性。当当输输入入输输出出操操作作完完成成,通通道道发发出出操操作作结结束束中中断断时时,CPUCPU才才停停止止当当前
11、工作,转向处理输入输出操作结束事件。前工作,转向处理输入输出操作结束事件。3 3、DMA(Direct Memory Access):DMA(Direct Memory Access):直接存储器存取方式。直接存储器存取方式。主存和主存和I/OI/O设备之间有一条数据通路设备之间有一条数据通路,I/O,I/O设备能直接与设备能直接与主存交换数据而不占用主存交换数据而不占用CPUCPU,实际操作直接由,实际操作直接由DMADMA完成。完成。CPUCPU的利用率进一步提高。的利用率进一步提高。DMA方式与中断方式比较方式与中断方式比较(1)中断方式下中断方式下,CPU需要执行多条指令,占用一定需要
12、执行多条指令,占用一定的时间;而的时间;而DMA传送传送1个字节只占用个字节只占用CPU的的1个总线个总线周期,占用周期,占用CPU的时间少。的时间少。(2)DMA的响应速度比中断快。的响应速度比中断快。IO设备发出中断设备发出中断请求后,请求后,CPU要执行完当前指令后才给予响应,而要执行完当前指令后才给予响应,而DMA请求是在总线周期执行完后即可响应。请求是在总线周期执行完后即可响应。(3)对于快速的对于快速的IO设备,中断方式,其传输速度已设备,中断方式,其传输速度已无法满足要求。必须采用无法满足要求。必须采用DMA方式来完成快速方式来完成快速IO设备的数据传送的操作。设备的数据传送的操
13、作。通道技术通道技术1.1.通道的定义:通道的定义:通道(通道(ChannelChannel)是独立于)是独立于CPUCPU的专门负责数据输入的专门负责数据输入/输出传输工作的处理机,对外部设备实现统一管理,代替输出传输工作的处理机,对外部设备实现统一管理,代替CPUCPU对输入对输入/输出操作进行控制,从而使输入,输出操作可输出操作进行控制,从而使输入,输出操作可与与CPUCPU并行操作。并行操作。2.2.引入通道的目的引入通道的目的 为了使为了使CPUCPU从从I/OI/O事务中解脱出来,同时为了提高事务中解脱出来,同时为了提高CPUCPU与设备、设备与设备之间的并行工作能力。主要目的是启
14、与设备、设备与设备之间的并行工作能力。主要目的是启动外设时:动外设时:a.a.提高了控制器效率提高了控制器效率 b.b.提高可靠性提高可靠性 c.c.提高提高并行度。并行度。附附.设备控制器:设备控制器:I/OI/O设备通常包含一个机械部件和一个电设备通常包含一个机械部件和一个电子部件,电子部件称为设备控制器或适配器,在子部件,电子部件称为设备控制器或适配器,在PCPC中它中它通常是一块插入主板扩充槽的印刷电路板。通常是一块插入主板扩充槽的印刷电路板。4.4.通道工作原理通道工作原理 通道相当于一个功能简单的处理机,包含通道指令(空通道相当于一个功能简单的处理机,包含通道指令(空操作,读操作,
15、写操作,控制,转移操作),并可执行用这操作,读操作,写操作,控制,转移操作),并可执行用这些指令编写的通道程序。些指令编写的通道程序。(P39P39)3.3.通道的功能:通道的功能:执行通道程序,向控制器发出命令,并执行通道程序,向控制器发出命令,并具有向具有向CPUCPU发中断信号的功能。发中断信号的功能。一旦一旦CPUCPU发出指令,启动发出指令,启动通道,则通道独立于通道,则通道独立于CPUCPU工作。一个通道可连接多个控制工作。一个通道可连接多个控制器,一个控制器可连接多个设备,形成树形交叉连接器,一个控制器可连接多个设备,形成树形交叉连接设备驱动程序设备驱动程序设备驱动程序包括与设备
16、相关的代码,它的工作是:设备驱动程序包括与设备相关的代码,它的工作是:把把用用户户提提交交的的逻逻辑辑I/OI/O请请求求转转化化为为物物理理I/OI/O操操作作的的启启动动和和执执行行,如如设设备备名名转转化化为为端端口口地地址址、逻逻辑辑记记录录转转化化为为物理记录、逻辑操作转化为物理操作等。物理记录、逻辑操作转化为物理操作等。设备驱动程序从与设备无关的软件中接收抽象的设备驱动程序从与设备无关的软件中接收抽象的I/OI/O请请求,并执行之。如果请求到来时驱动程序空闲,则立求,并执行之。如果请求到来时驱动程序空闲,则立即执行。如果它正在处理另一条请求,它将该请求挂即执行。如果它正在处理另一条
17、请求,它将该请求挂在等待队列中。在等待队列中。设备的打开、关闭、读、写等操作是由设备驱动程序设备的打开、关闭、读、写等操作是由设备驱动程序完成的完成的。5.3 5.3 缓冲技术缓冲技术一、缓冲技术的基本思想:一、缓冲技术的基本思想:缓冲技术好比水库缓冲技术好比水库 在在CPUCPU和外设之间设立缓冲区,用以暂存和外设之间设立缓冲区,用以暂存CPUCPU和外设之间和外设之间交换的数据,从而缓和交换的数据,从而缓和CPUCPU与外设速度不匹配所产生的矛盾。与外设速度不匹配所产生的矛盾。凡是数据到达和离去速度不匹配的地方均可采用缓冲技凡是数据到达和离去速度不匹配的地方均可采用缓冲技术。术。在操作系统
18、中采用缓冲是为了实现数据的在操作系统中采用缓冲是为了实现数据的I/OI/O操作,以操作,以缓解缓解CPUCPU与外部设备之间速度不匹配的矛盾,提高资源利用与外部设备之间速度不匹配的矛盾,提高资源利用率。率。(1 1)改善)改善CPUCPU与与I/OI/O设备间速度不匹配的矛盾设备间速度不匹配的矛盾 例如,通常的程序都是时而时而输出。若没有缓冲,则例如,通常的程序都是时而时而输出。若没有缓冲,则程序在输出数据时,必然会由于打印机的速度跟不上程序在输出数据时,必然会由于打印机的速度跟不上CPUCPU,而使得而使得CPUCPU长时间地等待。长时间地等待。在计算阶段,打印机又空闲无事。在计算阶段,打印
19、机又空闲无事。在打印机或控制区中设置一缓冲区,用来快速暂存程序在打印机或控制区中设置一缓冲区,用来快速暂存程序输出的数据,以后再由打印机慢慢的从中取出数据打印。输出的数据,以后再由打印机慢慢的从中取出数据打印。这样就实现了这样就实现了CPUCPU与与I/OI/O设备之间的并行工作。设备之间的并行工作。(2)(2)减减少少对对CPUCPU的的中中断断频频率率,放放宽宽对对中中断断响响应应时间的限制时间的限制 如如果果I/OI/O操操作作每每传传送送1B1B就就要要产产生生一一次次中中断断,那那么么设设置置了了n n个个字字节节的的缓缓冲冲区区后后,则则可可以以等等到到缓缓冲冲区区满满才才产产生生
20、中中断断,这这样样中中断断次次数数就就减减少少到到1/n1/n,而而且且中中断断响响应应的的时时间间也也可可以以相应地放宽。相应地放宽。(3)(3)提高提高CPUCPU和和I/OI/O设备之间的并行性设备之间的并行性 缓冲的引入可显著提高缓冲的引入可显著提高CPUCPU和设备的并行操作程度,和设备的并行操作程度,提高系统的吞吐量和设备的利用率。提高系统的吞吐量和设备的利用率。二、缓冲技术的分类1 1、单缓冲、单缓冲 单缓冲是操作系统提供的最简单的一种缓冲形式。每当一个进程发单缓冲是操作系统提供的最简单的一种缓冲形式。每当一个进程发出一个出一个I/OI/O请求时,操作系统便在主存中为之分配一缓冲
21、区,该缓冲区用请求时,操作系统便在主存中为之分配一缓冲区,该缓冲区用来临时存放输入来临时存放输入/输出数据。输出数据。2 2、双缓冲、双缓冲 在双缓冲方案中,具体的做法是为输入或输出操作设置两个缓冲区在双缓冲方案中,具体的做法是为输入或输出操作设置两个缓冲区buffer1buffer1和和buffer2buffer2。该方式能进一步提高。该方式能进一步提高CPUCPU和外设的并行程度,并能使和外设的并行程度,并能使输入设备和输出设备并行工作,但是在实际系统中很少采用这一方式。输入设备和输出设备并行工作,但是在实际系统中很少采用这一方式。3 3、多缓冲、多缓冲 又称环形缓冲,环形缓冲技术是在主存
22、中分配一组大小相等的存储又称环形缓冲,环形缓冲技术是在主存中分配一组大小相等的存储区作为缓冲区,并将这些缓冲区链接起来,每个缓冲区中有一个指向下区作为缓冲区,并将这些缓冲区链接起来,每个缓冲区中有一个指向下一个缓冲区的指针,最后一个缓冲区的指针指向第一个缓冲区,这样一个缓冲区的指针,最后一个缓冲区的指针指向第一个缓冲区,这样n n个个缓冲区就成了一个环形。此外,系统中有个缓冲区链首指针指向第一个缓冲区就成了一个环形。此外,系统中有个缓冲区链首指针指向第一个缓冲区。缓冲区。4 4、缓冲池、缓冲池 从自由主存中分配一组缓冲区即可构成缓冲池。缓冲池中的缓冲区从自由主存中分配一组缓冲区即可构成缓冲池。
23、缓冲池中的缓冲区一般有以下三种类型:空闲缓冲区、装输入数据的缓冲区和装输出数据一般有以下三种类型:空闲缓冲区、装输入数据的缓冲区和装输出数据的缓冲区。的缓冲区。5.4 5.4 驱动调度技术驱动调度技术 作为辅存,磁盘是一类大容量高速旋转的存储设作为辅存,磁盘是一类大容量高速旋转的存储设备,在繁重的输入输出负载下,同时会有若干个输备,在繁重的输入输出负载下,同时会有若干个输入输出请求来到并等待处理,系统必须采用一种调入输出请求来到并等待处理,系统必须采用一种调度策略,使能按最佳次序执行要访问的诸请求,这度策略,使能按最佳次序执行要访问的诸请求,这就叫就叫驱动调度驱动调度。驱动调度能减少为若干输入
24、输出请求服务所需的驱动调度能减少为若干输入输出请求服务所需的总时间,从而提高系统效率。总时间,从而提高系统效率。一、驱动调度二、磁盘设备管理1 1、磁盘结构、磁盘结构 一般:硬盘、软盘、单片盘和多片盘固定头磁盘、移动一般:硬盘、软盘、单片盘和多片盘固定头磁盘、移动头磁盘头磁盘固定头磁盘:固定头磁盘:是指盘面上的每一条磁道都有一个读写是指盘面上的每一条磁道都有一个读写头,固定头磁盘由于成本较高而较少使用。头,固定头磁盘由于成本较高而较少使用。移动头磁盘:移动头磁盘:是指每个盘面只有一个读是指每个盘面只有一个读/写磁头,每执写磁头,每执行一次盘的操作都须先移动磁头,使其对准所要找的磁道,行一次盘的
25、操作都须先移动磁头,使其对准所要找的磁道,这称为寻找操作。这称为寻找操作。通常在计算机系统中所说的磁盘,是由若干片盘所组成通常在计算机系统中所说的磁盘,是由若干片盘所组成的磁盘迭,各盘片均安装在一个高速旋转的枢轴。读写头安的磁盘迭,各盘片均安装在一个高速旋转的枢轴。读写头安装在移动臂上,移动臂可沿盘半径方向移动。装在移动臂上,移动臂可沿盘半径方向移动。磁盘结构示意图磁盘结构示意图轴轴盘片组盘片组移动移动臂臂读写读写磁头磁头磁道磁道柱面柱面2 2、磁盘物理记录访问需要的三个参数、磁盘物理记录访问需要的三个参数(1 1)柱面号)柱面号 随随着着臂臂的的移移动动,各各盘盘面面所所有有的的读读写写头头
26、同同时时移移动动,并并定定位位在在同同样样的的垂垂直直位位置置的的磁磁道道上上,这这些些磁磁道道形形成成了了一一个个柱柱面面。通通常由外向里给各柱面依次编以顺序号,常由外向里给各柱面依次编以顺序号,0 0,1 1,2 2,。(2 2)磁头号)磁头号 将将一一个个磁磁盘盘迭迭的的全全部部有有效效盘盘面面从从上上至至下下依依次次编编以以顺顺序序号号,0 0,1 1,2 2,称为磁头号,因此盘面号与磁头号是相对的。,称为磁头号,因此盘面号与磁头号是相对的。(3 3)扇区号(块号)扇区号(块号)将各磁道分成若干个大小相等的扇区,并编以序号将各磁道分成若干个大小相等的扇区,并编以序号0 0,1 1,2
27、2,。3 3、扇区是磁盘存储和传送信息的基本单位、扇区是磁盘存储和传送信息的基本单位要在磁盘上访问一个扇区,必须给出其要在磁盘上访问一个扇区,必须给出其柱面号柱面号、磁头号和扇磁头号和扇区号区号,这样才能准确地定位要访问的扇区,这称为扇区的物,这样才能准确地定位要访问的扇区,这称为扇区的物理地址,即物理扇区号。由物理扇区号表示的扇区称为理地址,即物理扇区号。由物理扇区号表示的扇区称为绝对绝对绝对绝对扇区扇区扇区扇区。为了方便,操作系统通常将其转变为逻辑扇区号加以。为了方便,操作系统通常将其转变为逻辑扇区号加以管理。管理。编址方式为:编址方式为:在磁道上按扇区号增加,在柱面上按磁道号增在磁道上按
28、扇区号增加,在柱面上按磁道号增加,对整个磁道从柱面加,对整个磁道从柱面0 0到最后一个柱面增加。到最后一个柱面增加。例如,每磁道扇区数为例如,每磁道扇区数为S S,每个柱面的磁道数为,每个柱面的磁道数为T T,那么可将,那么可将柱面号为柱面号为i i,磁头号为,磁头号为j j,扇区号为,扇区号为k k的物理扇区转换为逻辑扇的物理扇区转换为逻辑扇区号为:区号为:b=k+S*(T*i+j)b=k+S*(T*i+j)。4.4.磁盘类型磁盘类型 1)1)固定头磁盘固定头磁盘 这这种种磁磁盘盘在在每每条条磁磁道道上上都都有有一一读读/写写磁磁头头,所所有有的的磁磁头头都都被被装装在在一一刚刚性性磁磁臂臂
29、中中。通通过过这这些些磁磁头头可可访访问问所所有有各各磁磁道道,并并进进行行并并行行读读/写写,有有效效地地提提高高了了磁磁盘盘的的I/OI/O速速度度。这这种种结结构构的的磁磁盘盘主主要用于大容量磁盘上。要用于大容量磁盘上。2)2)移动头磁盘移动头磁盘 每每一一个个盘盘面面仅仅配配有有一一个个磁磁头头,也也被被装装入入磁磁臂臂中中。为为能能访访问问该该盘盘面面上上的的所所有有磁磁道道,该该磁磁头头必必须须能能移移动动以以进进行行寻寻道道。可可见见,移移动动磁磁头头仅仅能能以以串串行行方方式式读读/写写,致致使使其其I/OI/O速速度度较较慢慢;但但由由于于其结构简单,其结构简单,故仍广泛应用
30、于中小型磁盘设备中。故仍广泛应用于中小型磁盘设备中。5.磁盘访问磁盘访问1)1)寻道时间寻道时间TsTs 这是指把磁臂这是指把磁臂(磁头磁头)移动到指定磁道上所经历的时间。移动到指定磁道上所经历的时间。该时间是启动磁臂的时间该时间是启动磁臂的时间s s与磁头移动与磁头移动n n条磁道所花费的时间条磁道所花费的时间之和,之和,即即 T Ts=s=m mn n+s s 寻道时间将随寻道距离的增加而增大,寻道时间将随寻道距离的增加而增大,大体上是大体上是530 ms530 ms。2)2)旋转延迟时间旋转延迟时间TT 这是指定扇区移动到磁头下面所经历的时间。对于硬盘,这是指定扇区移动到磁头下面所经历的
31、时间。对于硬盘,典型的旋转速度大多为典型的旋转速度大多为5400 r/min5400 r/min,每转需时,每转需时11.1 ms11.1 ms,平,平均旋转延迟时间均旋转延迟时间T T为为5.55 ms5.55 ms;3)3)传输时间传输时间T Tt t 这这是是指指把把数数据据从从磁磁盘盘读读出出或或向向磁磁盘盘写写入入数数据据所所经经历历的的时间。时间。T Tt t的大小与每次所读的大小与每次所读/写的字节数写的字节数b b和旋转速度有关:和旋转速度有关:其中,其中,r r为磁盘每秒钟的转数;为磁盘每秒钟的转数;N N为一条磁道上的字节数,为一条磁道上的字节数, 、磁盘引臂调度、磁盘引臂
32、调度1 1、“先来先服务先来先服务”算法算法-FCFS-FCFS 按照请求访问者到来的先后顺序为请求访问者服务,该算按照请求访问者到来的先后顺序为请求访问者服务,该算法简单,但由于移臂来回移动,增加了执行信息传输操作的法简单,但由于移臂来回移动,增加了执行信息传输操作的时间。时间。2 2、“最短查找时间优先最短查找时间优先”算法算法-SSTF-SSTF本算法考虑了各个请求之间的区别,总是先执行查找时间本算法考虑了各个请求之间的区别,总是先执行查找时间最短的那个磁盘请求,从而,较最短的那个磁盘请求,从而,较“先来先服务先来先服务”算法有较算法有较好的寻道性能。好的寻道性能。SSTF算法虽然能获得
33、较好的寻道性能,但却可能导致某个进程发生“饥饿”(Starvation)现 象。因为只要不断有新进程的请求到达,且其所要访问的磁道与磁头当前所在磁道的距离较近,这种新进程的I/O请求必须优先满足。3 3、SCANSCAN算法算法 也称电梯调度算法也称电梯调度算法 磁盘臂每次沿一个磁盘臂每次沿一个方向移动,扫过所方向移动,扫过所有柱面,遇到最近有柱面,遇到最近的的I/OI/O请求便进行处请求便进行处理,直到最后一个理,直到最后一个柱面后,再向相反柱面后,再向相反方向移动回来。方向移动回来。磁头双向移动磁头双向移动 4.4.循环扫描循环扫描(CSCAN)(CSCAN)算法算法 磁盘臂每次沿一个方磁
34、盘臂每次沿一个方向移动,扫过所有向移动,扫过所有柱面,遇到最近的柱面,遇到最近的I/OI/O请求便进行处理,请求便进行处理,直到最后一个柱面直到最后一个柱面后,磁头立即返回后,磁头立即返回到最里的欲访问磁到最里的欲访问磁道,亦即将最小磁道,亦即将最小磁道号紧接着最大磁道号紧接着最大磁道号构成循环,进道号构成循环,进行循环扫描。行循环扫描。磁头单向移动磁头单向移动 5.N-Step-SCAN5.N-Step-SCAN和和FSCANFSCAN调度算法调度算法 1)N-Step-SCAN 1)N-Step-SCAN算法算法 在在SSTFSSTF、SCANSCAN及及CSCANCSCAN几几种种调调度
35、度算算法法中中,都都可可能能出出现现磁磁臂臂停停留留在在某某处处不不动动的的情情况况,例例如如,有有一一个个或或几几个个进进程程对对某某一一磁磁道道有有较较高高的的访访问问频频率率,即即这这个个(些些)进进程程反反复复请请求求对对某某一一磁磁道道的的I/OI/O操操作作,从从而而垄垄断断了了整整个个磁磁盘盘设设备备。我我们们把把这这一一现现象象称称为为“磁磁臂臂粘粘着着”(Armstickiness)(Armstickiness)。在在高高密密度度磁磁盘盘上上容容易易出出现现此此情情况况。N N步步SCANSCAN算算法法是是将将磁磁盘盘请请求求队队列列分分成成若若干干个个长长度度为为N N的
36、的子子队队列列,磁磁盘盘调调度度将将按按FCFSFCFS算算法法依依次次处处理理这这些些子子队队列列。而而每每处处理理一一个个队队列列时时又又是是按按SCANSCAN算算法法,对对一一个个队队列列处处理理完完后后,再再处处理理其其他他队队列列。当当正正在在处处理理某某子子队队列列时时,如如果果又又出出现现新新的的磁磁盘盘I/OI/O请请求求,便便将将新新请请求求进进程程放放入入其其他他队队列列,这这样样就就可可避避免免出出现现粘粘着着现现象象。当当N N值值取取得得很很大大时时,会会使使N N步步扫扫描描法法的的性性能能接接近近于于SCANSCAN算算法法的的性性能能;当当N=1N=1时时,N
37、 N步步SCANSCAN算算法法便便蜕蜕化化为为FCFSFCFS算法。算法。2)FSCAN2)FSCAN算法算法 FSCANFSCAN算算法法实实质质上上是是N N步步SCANSCAN算算法法的的简简化化,即即FSCANFSCAN只只将将磁磁盘盘请请求求队队列列分分成成两两个个子子队队列列。一一个个是是由由当当前前所所有有请请求求磁磁盘盘I/OI/O的的进进程程形形成成的的队队列列,由由磁磁盘盘调调度度按按SCANSCAN算算法法进进行行处处理理。在在扫扫描描期期间间,将将新新出出现现的的所所有有请请求求磁磁盘盘I/OI/O的的进进程程,放放入入另另一一个个等等待待处处理理的的请请求求队队列列
38、。这这样样,所所有有的的新新请请求求都都将被推迟到下一次扫描时处理。将被推迟到下一次扫描时处理。5.N-Step-SCAN5.N-Step-SCAN和和FSCANFSCAN调度算法调度算法 5.5 设备分配(P18)通通常常用用户户不不指指定定特特定定的的设设备备,而而指指定定逻逻辑辑设设备备,使使得得用用户户作作业业和和物物理理设设备备独独立立开开来来,再再通通过过其其它它途途径径建建立立逻逻辑辑设设备备和和物物理理设设备备之之间间的的对对应应关关系系,称称这这种种特特性性为为“设设备备独立性独立性”。用用户户与与物物理理的的外外围围设设备备无无关关,系系统统增增减减或或变变更更外外围围设设
39、备备时程序不必修改;易于对付输入输出设备的故障。时程序不必修改;易于对付输入输出设备的故障。一、设备独立性 独独占占设设备备指指在在一一段段时时间间内内只只允允许许一一个个用用户户(进进程程)访访问问的的设设备备,大大多多数数低低速速的的I/OI/O设设备备。如如用用户户终终端端、打打印印机机等等属属于于这这类类设设备备。因因为为独独占占设设备备属属于于临临界界资资源源,所所以以多多个个并并发发进进程程必必须须互互斥斥地地访问独占设备。访问独占设备。一般采用静态分配方式,能防止死锁,但会降低设备的利用率。一般采用静态分配方式,能防止死锁,但会降低设备的利用率。二、设备分配(2 2 2 2)共享
40、设备的分配:)共享设备的分配:)共享设备的分配:)共享设备的分配:共共享享设设备备指指在在一一段段时时间间内内允允许许多多个个进进程程同同时时访访问问的的设设备备。显显然然,共共享享设设备备必必须须是是可可寻寻址址的的和和可可随随机机访访问问的的设设备备,典典型型的的共享设备是磁盘。共享设备是磁盘。一一般般不不必必进进行行分分配配或或采采用用静静态态分分配配方方式式(降降低低存存储储空空间间的的利利用率)。用率)。(1 1 1 1)独占设备的分配:)独占设备的分配:)独占设备的分配:)独占设备的分配:设备类表和设备表设备类表和设备表 为了有效实现设备地分配,系统中设有设备分配的数据为了有效实现
41、设备地分配,系统中设有设备分配的数据为了有效实现设备地分配,系统中设有设备分配的数据为了有效实现设备地分配,系统中设有设备分配的数据结构:设备类表和设备表。结构:设备类表和设备表。结构:设备类表和设备表。结构:设备类表和设备表。设备类表:设备类表:设备类表:设备类表:系统中有一张设备类表,每类设备对应于设备类系统中有一张设备类表,每类设备对应于设备类系统中有一张设备类表,每类设备对应于设备类系统中有一张设备类表,每类设备对应于设备类表中的一栏,通常包括以下内容:设备类、总台数、空闲台表中的一栏,通常包括以下内容:设备类、总台数、空闲台表中的一栏,通常包括以下内容:设备类、总台数、空闲台表中的一
42、栏,通常包括以下内容:设备类、总台数、空闲台数和设备起始地址等。数和设备起始地址等。数和设备起始地址等。数和设备起始地址等。设备表:设备表:设备表:设备表:每类设备都有各自的设备表,用来登记这类设备中每类设备都有各自的设备表,用来登记这类设备中每类设备都有各自的设备表,用来登记这类设备中每类设备都有各自的设备表,用来登记这类设备中每台设备的状态,通常包括以下内容:物理设备名、逻辑设每台设备的状态,通常包括以下内容:物理设备名、逻辑设每台设备的状态,通常包括以下内容:物理设备名、逻辑设每台设备的状态,通常包括以下内容:物理设备名、逻辑设备名、占有设备的进程号、已分配备名、占有设备的进程号、已分配
43、备名、占有设备的进程号、已分配备名、占有设备的进程号、已分配/未分配、好未分配、好未分配、好未分配、好/坏等。坏等。坏等。坏等。根据设备分配的数据结构,即设备类表和设备表中的信根据设备分配的数据结构,即设备类表和设备表中的信根据设备分配的数据结构,即设备类表和设备表中的信根据设备分配的数据结构,即设备类表和设备表中的信息,就可以设计出息,就可以设计出息,就可以设计出息,就可以设计出I/OI/OI/OI/O设备的分配设备的分配设备的分配设备的分配/去配流程,实现设备分配。去配流程,实现设备分配。去配流程,实现设备分配。去配流程,实现设备分配。5. 虚拟设备(P189)早期的计算机只能由一个用户独
44、占,后来,随着分时系统的早期的计算机只能由一个用户独占,后来,随着分时系统的出现,允许由多个用户共享一台主机。出现,允许由多个用户共享一台主机。类似的,一台只允许一个用户使用的独享设备能否通过某种类似的,一台只允许一个用户使用的独享设备能否通过某种技术把它改造成由多个用户共享的设备呢?技术把它改造成由多个用户共享的设备呢?采用联机同时外围设备操作采用联机同时外围设备操作(又称作假脱机操作又称作假脱机操作),使得每个,使得每个作业感到各自拥有独占使用的设备若干台。作业感到各自拥有独占使用的设备若干台。通过虚拟技术将一台独占设备变换为若干台供多个用户(进通过虚拟技术将一台独占设备变换为若干台供多个
45、用户(进程)共享的逻辑设备。程)共享的逻辑设备。SpoolingSpooling技术就是将一台独享设备改技术就是将一台独享设备改造成共享设备比较有效的虚拟技术。造成共享设备比较有效的虚拟技术。一、SPOOLing系统全名是全名是(SPOOLing,Simultaneous Peripheral(SPOOLing,Simultaneous Peripheral Operation On LineOperation On Line,联机同时外围操作联机同时外围操作,也称为虚拟也称为虚拟设备技术设备技术),是关于慢速字符设备如何与计算机主机,是关于慢速字符设备如何与计算机主机交换信息的一种技术。也叫
46、:假脱机技术。交换信息的一种技术。也叫:假脱机技术。定义:定义:spoolingspooling系统是系统是OSOS中采用的一项可以把独享中采用的一项可以把独享设备转变成具有共享特征的虚拟设备的技术,从而设备转变成具有共享特征的虚拟设备的技术,从而提高设备利用率。提高设备利用率。脱机输入输出技术脱机输入输出技术为了解决人机矛盾及为了解决人机矛盾及CPUCPU和和I/OI/O设备间速度不匹配的矛盾,设备间速度不匹配的矛盾,2020世纪世纪5050年代末出现了该技术。年代末出现了该技术。事先将装有用户程序和数据的纸带事先将装有用户程序和数据的纸带(卡片卡片)装入纸带输入机,装入纸带输入机,在一台外
47、围机的控制下把纸带上的数据在一台外围机的控制下把纸带上的数据(程序程序)输入到磁带上。输入到磁带上。当当CPUCPU需要这些数据时再从磁带上高速的调入内存。需要这些数据时再从磁带上高速的调入内存。类似的,当类似的,当CPUCPU需要输出时可由需要输出时可由CPUCPU直接高速的把数据从内存直接高速的把数据从内存送到磁带上,然后再在另一台外围机的控制下,将磁带上的送到磁带上,然后再在另一台外围机的控制下,将磁带上的结果通过相应的输出设备输出。结果通过相应的输出设备输出。输入设备输入设备外围机外围机磁盘磁盘磁盘磁盘磁盘磁盘外围机外围机主机主机磁盘磁盘输出设备输出设备 由于程序和数据的输入和输出都是
48、在外围机的控制下完成由于程序和数据的输入和输出都是在外围机的控制下完成的,或者说他们是在脱离主机的情况下进行的,所以称为脱机的,或者说他们是在脱离主机的情况下进行的,所以称为脱机输入输出方式。输入输出方式。脱机脱机I/OI/O示意图示意图SPOOLing系统的组成(1 1)输入井和输出井)输入井和输出井:这是在磁盘上开辟出来的两个存储区域。这是在磁盘上开辟出来的两个存储区域。输入井模拟脱机输入时的磁盘,用于收容输入井模拟脱机输入时的磁盘,用于收容I/OI/O设备输入的数据。设备输入的数据。输输出出井井模模拟拟脱脱机机输输出出时时的的磁磁盘盘,用用于于收收容容用用户户程程序序的的输输出出数数据据
49、。(2 2)输入缓冲区和输出缓冲区)输入缓冲区和输出缓冲区:这是在内存中开辟的两个缓冲取区。这是在内存中开辟的两个缓冲取区。输输入入缓缓冲冲区区用用于于暂暂存存由由输输入入设设备备送送来来的的数数据据,以以后后再再传传送送到到输输入入井井。输输出出缓缓冲冲区区用用于于暂暂存存从从输输出出井井送送来来的的数数据据,以以后后再再传送到输出设备。传送到输出设备。斯普林系统示意图斯普林系统示意图输入进程SPi输入进程SPo输入缓冲区Bi输出缓冲区Bo输入井输出井磁盘输入设备输出设备(3 3)输入进程和输出进程:)输入进程和输出进程:输入进程模拟脱机输入时的外围控制机,将用户要输入进程模拟脱机输入时的外围控制机,将用户要求的数据从输入机通过输入缓冲区再送到输入井。当求的数据从输入机通过输入缓冲区再送到输入井。当CPUCPU需要输入数据时,直接从输入井读如内存。输出进程模需要输入数据时,直接从输入井读如内存。输出进程模拟脱机输出时的外围控制机,把用户要求输出的数据,拟脱机输出时的外围控制机,把用户要求输出的数据,先从内存送到输入井,待输出设备空闲时,再将输出井先从内存送到输入井,待输出设备空闲时,再将输出井中的数据经过输出缓冲区送到输出设备上。中的数据经过输出缓冲区送到输出设备上。实现实现SpoolingSpooling系统要设计的程序及功能系统要设计的程序及功能 Spooling