《计算机操作系统原理 ch8 设备管理.ppt》由会员分享,可在线阅读,更多相关《计算机操作系统原理 ch8 设备管理.ppt(166页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第八章 设备管理n概述 nI/O控制方式n缓冲技术 n设备分配 nI/O进程控制n设备驱动程序n磁盘存储器管理概述n1 设备的分类 n2 设备管理的目标 n3 设备管理的功能和任务 n4 设备管理数据结构 1 设备的分类1、按传输速率分n低速设备:每秒几个到数百字节。如Modemn中速设备:每秒数千到数万字节。如打印机n高速设备:每秒数百K到数兆。如磁盘、磁带2、按信息交换的单位分类n字符设备:I/O传输的单位是字节,如打印机、modem等。特征:速率较低、中断驱动。n块设备:I/O传输的单位是块,如磁盘、磁带。特征:速率高(几兆)、可随机访问任一块、DMA方式驱动。3.按资源管理方式分类n独
2、占型设备:在任一段时间内最多有一个进程占用它,字符设备及磁带机属独占型设备。即临界资源。n共享型设备:多个进程对它的访问可以交叉进行,除磁带机外的块设备属共享设备n虚拟设备:在一类设备上模拟另一类设备,常用共享设备模拟独占设备,用高速设备模拟低速设备,被模拟的设备称为虚拟设备2 设备管理的目标(1 1)、)、设备独立性设备独立性所谓设备独立性:用户在编制程序时,使用逻辑设备名,由系统实现从逻辑设备到物理设备(实际设备)的转换。用户能独立于具体物理设备而方便的使用设备。两种类型的设备独立性n独立于同一类设备中的某台具体设备。如果一个系统中有若干台相同的设备,用户编程时不指定使用哪一个具体的设备,
3、而仅说明要使用哪一类设备,系统根据当前这一类设备的具体状况给用户分配一台具体的设备。用户不用关心他所使用的到底是哪一台设备。n独立于不同类型的设备。例如有一程序要求输入信息,可以从各种不同类型的输入设备上给程序输入数据,则称该程序是独立于不同类型的输入设备的。又如在MS-DOS系统中,程序的I/O操作不必指出在哪台设备上进行,一般情况下是从键盘上输入数据,而在显示器上输出数据。但用户可以做一次联机操作命令Ctrl+P,则输出数据可以在打印机上打印出来。(2 2)、提高设备利用率)、提高设备利用率n提高设备的使用效率是操作系统设备管理的重要目标。n为达到此目标除了要合理分配和使用外部设备外,还应
4、努力提高设备同CPU的并行程度。与此有关的技术有:通道技术和缓冲技术。(3 3)、设备的统一管理)、设备的统一管理外设的种类繁多,特性各异,主要差别反映在以下几个方面:n速度:不同的设备处理和传递信息的速度差别甚大,如键盘每秒钟只能处理几个或几十个字符,而磁盘的处理速度可达几十MB/Sn传递单位:有的设备以字符为单位传递信息,如键盘。有的以字符块为单位传递信息,如磁盘。n操作方法和特性:各种设备都有自己的特性和操作方法,如卡片机中的卡片不能倒退,磁带机可反绕,磁盘可随机存取。n出错条件:各种设备的出错条件不同,有的可能产生奇偶错,打印机可能产生无纸错等。设备管理程序力图隐蔽上述各种设备的差别,
5、向用户提供统一的设备使用接口,这会给系统的设计带来困难,但方便了用户。如UNIX系统把外设作为特别文件处理,把设备看作文件,用操作文件的方法来操作设备,这极大地方便了用户。这种设备管理方法无疑是个重大的突破。3设备管理的功能和任务设备管理是对计算机输入输出系统的管理,是操作系统中最具多样性和复杂性的部分。其主要任务是:(1)选择和分配输入输出设备以进行数据传输操作;(2)控制输入输出设备和CPU(或内存)之间交换数据;(3)为用户提供友好的透明接口,把用户和设备硬件特性分开,使得用户在编制应用程序时不必涉及具体设备,系统按用户要求控制设备工作。另外,这个接口还为新增加的用户设备提供一个和系统核
6、心相连接的入口,以便用户开发新的设备管理程序;(4)提高设备和设备之间、CPU和设备之间,以及进程和进程之间的并行操作度,以使操作系统获得最佳效率。为了完成上述主要任务,设备管理程序一般要提供下述功能:(1)提供和进程管理系统的接口。当进程要求设备资源时,该接口将进程要求转达给设备管理程序;(2)进行设备分配。按照设备类型和相应的分配算法把设备和其他有关的硬件分配给请求该设备的进程,并把未分配到所请求设备或其他有关硬件的进程放入等待队列;(3)实现设备和设备、设备和CPU等之间的并行操作。这需要有相应的硬件支持。除了装有控制状态寄存器、数据缓冲寄存器等的控制器之外,对应于不同的输入输出(I/O
7、)控制方式,还需要有DMA通道等硬件。从而,在设备分配程序根据进程要求分配了设备、控制器和通道(或DMA)等硬件之后,通道(或DMA)将自动完成设备和内存之间的数据传送工作,从而完成并行操作的任务。在没有通道(或DMA)的系统里,则由设备管理程序利用中断技术来完成上述并行操作;(4)进行缓冲区管理。一般来说,CPU的执行速度和访问内存速度都比较高,而外部设备的数据流通速度则低得多(例如键盘),为了减少外部设备和内存与CPU之间的数据速度不匹配的问题,系统中一般设有缓冲区(器)来暂放数据。设备管理程序负责进行缓冲区分配、释放及有关的管理工作。4 设备管理数据结构1.设备控制表DCT(Device
8、 Control Table)设备控制表DCT反映设备的特性、设备和I/O控制器的连接情况。包括设备标识、使用状态和等待使用该设备的进程队列等。系统中每个设备都必须有一张DCT,且在系统生成时或在该设备和系统连接时创建,但表中的内容则根据系统执行情况而被动态地修改。DCT包括以下内容:(1)设备标识符,设备标识符用来区别设备。(2)设备类型,反映设备的特性,例如是终端设备、块设备或字符设备等。(3)设备地址或设备号,由计算机原理课可知,每个设备都有相应的地址或设备号。这个地址既可以是和内存统一编址的,也可以是单独编址的。(4)设备状态,指设备是处理工作还是空闲中。(5)等待队列指针,等待使用该
9、设备的进程组成等待队列,其队首和队尾指针存放在DCT中。(6)I/O控制器指针,该指针指向该设备相连接的I/O控制器。2.系统设备表SDT(System Device Table)系统设备表SDT整个系统一张,它记录已被连接到系统中的所有物理设备的情况,并为每个物理设备设一表项。SDT的每个表项包括的内容有:(1)DCT指针,该指针指向有关设备的设备控制表。(2)正在使用设备的进程标识。(3)设备类型和设备标识符,该项的意义与DCT中的相同。SDT的主要意义在于反映系统中设备资源的状态,即系统中有多少设备,有多少是空闲的,而又有多少已分配给了哪些进程。3.控制器表COCT(COntroler
10、Control Table)COCT也是每个控制器一张,它反映I/O控制器的使用状态以及和通道的连接情况等(在DMA方式时,该项是没有的)。4.通道控制表CHCT(CHannel Control Table)该表只在通道控制方式的系统中存在,也是每个通道一张。CHCT包括通道标识符、通道忙/闲标识、等待获得该通道的进程等待队列的队首指针与队尾指针等SDT,DCT,COCT及CHCT如图所示。显然,一个进程只有获得了通道、控制器和所需设备三者之后,才具备了进行I/O操作的物理条件。数据结构表数据结构表I/O控制方式n1 循环测试I/O方式 n2 I/O中断方式 n3 DMA方式 n4 通道方式
11、1 循环测试I/O方式早期,I/O控制器是OS同硬件之间的接口。它有两个寄存器:数据缓冲寄存器、控制寄存器。控制寄存器有几个重要的信息位:启动位、完成位、忙位。CPU外部设备控控制制逻逻辑辑电电路路控制寄存器控制寄存器I/O控制器控制器数据寄存器数据寄存器工作过程以输入为例1、把启动位置12、反复测试完成位,为0转2,为1转33、把数据从数据缓冲区中读走。浪费大量浪费大量CPU时间时间2 I/O中断方式I/O控制器能发中断。工作过程:1、把启动位置1,本进程(A)变为等待状态,转进程调度,调度另一进程B。2、输入完成时,控制器发出中断,中断B,通过中断进入中断处理程序。3、在中断处理程序中把数
12、据缓冲寄存器中的数取走,放入内存特定位置M,唤醒等待进程A,中断返回到B的断点继续执行。4、在以后的某个时刻OS调度要求输入的进程A。A从M取数处理。分析同前相比,CPU利用率大大提高。缺点:每台设备每输入输出一个字节的数据都有一次中断。如果设备较多时,中断次数会很多,使CPU的计算时间大大减少。为减少中断对CPU造成的负担,可采用DMA方式和通道方式。3 DMA方式控制器功能更强,除有中断功能外,还有一个DMA控制机构。在DMA控制器的控制下,设备同主存之间可成批交换数据,不用CPU干预。工作过程1、当进程要求输入时,把要求传送的内存始址(M)和要传的字节数送入DMA的内存地址寄存器和传送字
13、数寄存器2、把启动位置1。设备开始工作。进程(A)挂起。调度另一进程(B)3、一批数据输入完成后,DMA中断B,转向中断处理程序。4、中断处理程序唤醒A,返回B的断点继续执行。5、以后OS调度A运行时,A从M处取数据处理。DMA方式与中断的主要区别n中断方式是在数据缓冲寄存区满后,发中断请求,CPU进行中断处理 DMA方式则是在所要求传送的数据块全部传送结束时要求CPU进行中断处理 大大减少了CPU进行中断处理的次数n中断方式的数据传送是由CPU控制完成的 而DMA方式则是在DMA控制器的控制下不经过CPU控制完成的CPU向控制器发出启动向控制器发出启动DMA通知和有关参数通知和有关参数控制器
14、向内存发出询问请求控制器向内存发出询问请求访问内存(读、写)访问内存(读、写)计数器减计数器减1结束否结束否发中断发中断NYDMA的实现流程4 通道方式1、I/O系统结构在大型计算机系统中较为典型的I/O系统结构是主机、通道、控制器和外部设备。外外部部设设备备通通常常由由机机械械的的和和电电子子的的两两部部分分组组成成,电子部分构成控制器,也叫适配器。电子部分构成控制器,也叫适配器。一一个个控控制制器器可可交交替替地地控控制制几几台台同同类类设设备备,例例如一个磁盘控制器可以控制两台磁盘驱动器。如一个磁盘控制器可以控制两台磁盘驱动器。在在没没有有通通道道的的计计算算机机系系统统中中,中中央央处
15、处理理机机是是通过控制器控制通过控制器控制I/OI/O操作的。操作的。在采用了中断技术以后,中央处理机和外部设在采用了中断技术以后,中央处理机和外部设备已能在一定程度上并行工作,但每传一个信备已能在一定程度上并行工作,但每传一个信息单位(一个字节或一个字符块),就要插入息单位(一个字节或一个字符块),就要插入一次中断处理,每次中断处理一次中断处理,每次中断处理CPU少则要执行少则要执行几十条指令,多则要执行上千条指令,当一个几十条指令,多则要执行上千条指令,当一个系统配置的设备较多时,系统配置的设备较多时,I/O操作较为频繁的操作较为频繁的情况下,情况下,CPU可能完全陷入可能完全陷入I/O处
16、理,这样会处理,这样会大大地降低计算机系统的效率,解决的方法就大大地降低计算机系统的效率,解决的方法就是用到通道技术。是用到通道技术。为为使使中中央央处处理理机机从从繁繁忙忙的的I/OI/O处处理理中中摆摆脱脱出出来来,现现代代大大、中中型型计计算算机机系系统统中中设设置置了了专专门门的的处处理理I/OI/O操操作作的的处处理理机机,并并把把这这种种处处理理机机称称为为通通道道。通通道道在在CPUCPU的的控控制制下下独独立立地地执执行行通通道道程程序序,对对外外部部设设备备的的I/OI/O操操作作进进行行控控制制,以以实实现内存与外设之间成批的数据交换。现内存与外设之间成批的数据交换。通道通
17、道=I/OI/O处理机处理机 2、通道概念 当当完完成成CPUCPU交交给给的的任任务务后后,向向CPUCPU发发出出中中断断信信号号,请请求求CPUCPU的的处处理理。这这样样就就使使得得CPUCPU基基本本上上摆摆脱脱了了I/OI/O操操作作的的处处理理工工作作,提提高高了了CPUCPU与与设设备备之之间间的的并行程序,从而提高了整个计算机系统的效率。并行程序,从而提高了整个计算机系统的效率。通通道道程程序序是是由由通通道道指指令令组组成成,一一个个通通道道可可以以分分时时的的方方式式执执行行几几道道程程序序。每每道道程程序序控控制制一一台台外外部设备,因此部设备,因此每道通道程序称为子通
18、道每道通道程序称为子通道。3、通道的种类n字节多路通道:字字节节多多路路通通道道是是以以字字节节为为基基本本传传输输单单位位,当当一一子子通通道道控控制制的的某某台台外外设设交交换换了了一一个个字字节节后后,就就转转向向下下一一个个子子通通道道,以以控控制制下下一一台台设设备备传传送送一一个个字字节节。这这就就实实现现了了子子通通道道的的循循环环轮轮转转,以以达达到到多多路路控控制制的的目目的的,字字节节多多路路通通道道主主要要用用来来控控制制低低速速、并并且且以以字字节节为为基基本本传传送送单单位位的的设设备备。如打印机。如打印机。n选择通道:这这种种通通道道一一次次执执行行一一个个通通道道
19、程程序序,控控制制一一台台设设备备连连续续地地传传送送一一批批数数据据,当当一一个个程程序序执执行行完后,才转向下一个程序。完后,才转向下一个程序。n优点:传输速度高。优点:传输速度高。n缺点:一次只能控制一台设备进行缺点:一次只能控制一台设备进行I/OI/O操作。操作。它主要用来控制高速外设。如磁盘。它主要用来控制高速外设。如磁盘。选择通道选择通道 n数组多路通道:这这种种通通道道是是上上述述两两种种通通道道的的折折中中,可可以以分分时时的的方方式式执执行行多多道道程程序序,每每道道程程序序可可传传送送一一组组数数据据。它它主主要要用用于于中中速速设设备备的的控控制制。如如磁磁带带机。机。在
20、一大型系统中可以同时存在这三种类型的通道以便控制各种不同类型的设备。4、通道指令和通道程序 通道有它自己的指令系统,用这些指令编写的程序叫通道程序,通道只能执行通道程序,不可能执行用户进程。通道程序保存在内存中5、通道的工作过程某某进进程程在在运运行行过过程程中中,若若提提出出了了I/OI/O请请求求,则则通通过过系系统统调调用用进进入入操操作作系系统统,系系统统首首先先为为I/OI/O操操作作分分配配通通道道和和外外设设,然然后后按按I/OI/O请请求求生生成成通通道道程程序序并并存存入入内内存存,把把起起始始地地址址送送入入通通道道的的首首地地址址寄寄存存器器(CAWCAW),接着接着CP
21、UCPU发出启动通道的指令。发出启动通道的指令。中央处理机启动通道后,通道的工作过程为:n根根据据CAWCAW,从从内内存存取取出出通通道道指指令令,送送入入通通道道控控制制字字寄寄存存器器(CCWCCW),并并修修改改CAWCAW,使使其其指指向向下下一条通道指令。一条通道指令。n执执行行CCWCCW中中的的通通道道指指令令,进进行行实实际际的的I/OI/O操操作作,执执行行完完毕毕后后,如如果果还还有有下下一一条条指指令令,则则返返回回前前一步,否则转下一步。一步,否则转下一步。n发出中断信号通知发出中断信号通知CPU通道程序已执行完成。通道程序已执行完成。通道的发展n新的通道思想综合了许
22、多新的技术新的通道思想综合了许多新的技术n在个人计算机中,芯片组中有专门的在个人计算机中,芯片组中有专门的I/O处理芯片,称为处理芯片,称为IOP(IO Processor),),发挥通道的作用发挥通道的作用nIBM 390 中,沿用了输入输出通道概念中,沿用了输入输出通道概念 IBM于于1998年推出光纤通道技术(称为年推出光纤通道技术(称为FICON),),可通可通过过 FICON 连接多达连接多达127个大容量个大容量I/O设备。传输速度是设备。传输速度是333MHzs,未来将达到未来将达到1GHzs。光纤通道技术具有数据传输速率高、传输距离远,可简化光纤通道技术具有数据传输速率高、传输
23、距离远,可简化大型存储系统设计的优点大型存储系统设计的优点 在大容量高速存储,如大型数据库、多媒体、数字影像等在大容量高速存储,如大型数据库、多媒体、数字影像等应用领域,有广泛前景应用领域,有广泛前景缓冲技术n1 引言 n2 常用的缓冲技术 1 引言缓缓冲冲技技术术的的目目的的是是为为了了提提高高中中央央处处理理机机与外设的并行程度。与外设的并行程度。计计算算机机系系统统中中的的各各种种设设备备(包包括括中中央央处处理理机机)的的运运行行速速度度差差异异甚甚大大,CPUCPU的的运运行行速速度度是是以以微微秒秒甚甚至至以以纳纳秒秒计计,而而设设备备的的运运行行速速度度则则是是以以毫毫秒秒甚甚至
24、至以以秒秒计计;(速速度度的差异的差异)另另一一方方面面系系统统的的负负荷荷也也不不均均匀匀,有有时时处处理理机机进进行行大大量量的的计计算算工工作作,没没有有I/OI/O操操作作,有有时时又又会会进进行行大大量量的的I/OI/O操操作作,这这两两个个极极端端都都会会造造成成系系统统中中的的一一些些设设备备过过于于繁繁忙忙,一一部部分分设设备备过过于于空空闲闲,严严重重地地影影响响CPUCPU与与外设的并行工作。外设的并行工作。n为此人们提出用缓冲技术来匹配CPU与设备的速度的差异和负荷的不均匀,从而提高处理机与外设的并行程度。n凡是数据到达和离去速度不匹配的地方均可采用缓冲技术。n缓缓冲冲技
25、技术术可可以以用用硬硬件件缓缓冲冲器器来来实实现现,在在设设备备控控制制器器中中有有硬硬件件缓缓冲冲器器,通通常常容容量量较小,一般为较小,一般为1 1个字节。个字节。n软件缓冲技术是应用广泛的一种缓冲技软件缓冲技术是应用广泛的一种缓冲技术,它由缓冲区和对缓冲区的管理两部术,它由缓冲区和对缓冲区的管理两部分组成。分组成。2 常用的缓冲技术单缓冲双缓冲环形缓冲缓冲池(1)、单缓冲最简单的一种缓冲形式。当进程发出一I/O请求时,OS为之分配一缓冲区。对于输入:设备先将数据送入缓冲区,OS再将数据传给进程。对于输出:进程先将数据传入缓冲区,OS再将数据送出到设备。思考n单缓冲能加快进程的执行速度吗?
26、(2)、双缓冲技术为了加快输入输出速度,引入双缓冲技术。原理:设置两个缓冲区设置两个缓冲区buf1和和buf2。读入数据读入数据时,首先输入设备向时,首先输入设备向buf1填入数据,然后进程填入数据,然后进程从从buf1提取数据,在进程从提取数据,在进程从buf1提取数据的提取数据的同时。输入设备向同时。输入设备向buf2中填数据。当中填数据。当buf取空取空时,进程又从时,进程又从buf2中提取数据,与此同时输入中提取数据,与此同时输入设备向设备向buf1填数。如此交替使用两个缓冲区,填数。如此交替使用两个缓冲区,使使CPU和设备的并行操作的程度进一步提高。和设备的并行操作的程度进一步提高。
27、(3)、环形缓冲技术当生产和消费数据的速度基本匹配时,双缓冲能获得较好效果。但若两者速度相差甚远时,效果不太理想。但随着缓冲区的数量增加,使情况有所改善。因此引入环形缓冲技术。环环形形缓缓冲冲技技术术是是在在主主存存中中分分配配一一组组大大小小相相等等的的存存储区作为缓冲区,并将这些缓冲区链接起来。储区作为缓冲区,并将这些缓冲区链接起来。系系统统中中有有个个缓缓冲冲区区链链首首指指针针,指指向向第第一一个个缓缓冲冲区区,每每个个缓缓冲冲区区中中有有一一个个指指向向下下一一个个缓缓冲冲区区的的指指针针,最最后后一一个个缓缓冲冲区区中中的的指指针针指指向向第第一一个个缓缓冲冲区区,从从而而形形成成
28、环环形形缓缓冲冲区区链链。如如图图所所示示。系系统统可可循循环环使使用用这这些些缓缓冲冲区区。环环形形缓缓冲冲区区用用于于输输入入(输输出出)时,还要有两个指针时,还要有两个指针ININ和和OUTOUT。图nININ指指向向可可接接收收数数据据的的空空闲闲缓缓冲冲区区的的首首址址,OUTOUT指指针针指指向装好数据且未取走的缓冲区首址。向装好数据且未取走的缓冲区首址。n系系统统初初启启时时,指指针针被被初初始始化化为为ININ和和OUTOUT与与首首指指针针STARTSTART相等,即相等,即START=IN=OUTSTART=IN=OUT。n对对于于输输入入信信息息而而言言,设设备备接接收收
29、信信息息时时,信信息息输输入入到到ININ指指向向的的缓缓冲冲区区,当当一一个个缓缓冲冲区区装装满满后后,ININ指指针针指指向下一个空闲缓冲区向下一个空闲缓冲区;n当从缓冲区中提取信息时,提取由当从缓冲区中提取信息时,提取由OUT指向的缓冲指向的缓冲区中的信息,提取完毕,将区中的信息,提取完毕,将OUT指针指向下一个装指针指向下一个装满信息的缓冲区。满信息的缓冲区。n系系统统必必须须考考虑虑到到这这种种方方案案的的约约束束条条件件,即即INOUTINOUT(初始状态除外初始状态除外)。n从从设设备备输输入入信信息息的的操操作作和和提提取取信信息息的的操操作作共共用用环环形形缓缓冲冲时时有有一
30、一定定的的同同步步关关系系:OUTINOUThinput_buf(in,hin);将hin放入in队列get_buf(in,number);将number作为sinsin-cpuput_buf(em,sin);将sin放入em队列输出get_buf(em,number);取空白number缓冲区作为hout;put_buf(out,hout);将hout放入out队列get_buf(out,number);将number作为soutsout-设备put_buf(em,sout);将sout放入em队列显然,对于各缓冲队列中缓冲区的排列以及每次取出和插入缓冲队列区的顺序都应有一定的规则。最简单的
31、方法是FIFO,即先来先出的排列方法。采用FIFO方法,过程put_buf每次把缓冲区插入相应缓冲队列的队尾,而过程get_buf则取出相应缓冲队列的第一个缓冲区,从而get_buf中的第二个参数number可以省略。而且,采用FIFO方法也省略了对缓冲队列的搜索时间。过程add_buf(type,number)和take_buf(type,number)分别用来把缓冲区number插入type队列和从type队列中取出缓冲区number。它们分别被过程get_buf和put_buf调用,其中,take_buf返回所取缓冲区number的指针,而add_buf则将给定缓冲区number的指针链
32、入队列。下面给出过程get_buf和put_buf的描述。首先,设互斥信号量S(type),其初值为1。设描述资源数目的信号量RS(type),其初值为n(n为type队列长度)。get_buf(type,number):beginP(RS(type)P(S(type)Pointer of buffer(number)=take_buf(type,number)V(S(type)endput_buf(type,number):beginP(S(type)add_buf(type,number)V(S(type)V(RS(type)end设 备 分 配n1 设备分配原则n2 设备分配方式n3 设
33、备分配算法n4 设备分配技术1.设备分配原则设备分配的原则是根据设备特性、用户要求和系统配置情况决定的。设备分配的总原则是既要充分发挥设备的使用效率,尽可能的让设备忙,但又要避免由于不合理的分配方法造成进程死锁;另外还要做到把用户程序和具体物理设备隔离开来,即用户程序面对的是逻辑设备,而分配程序将在系统把逻辑设备转换成物理设备之后,再根据要求的物理设备号进行分配如图所示。设备分配流程图设备分配流程图2.设备分配方式静态分配:在在作作业业级级进进行行的的,当当一一个个作作业业运运行行之之前前由由系系统统一一次次分分配配满满足足需需要要的的全全部部设设备备,这这些些设设备备一一直直为为该该作作业业
34、占占用用,直直到到作作业业撤撤消消。这这种种分分配配不不会会出出现现死死锁锁,但但设设备备的利用效率较低。的利用效率较低。动态分配在进程运行的过程中进行的,当进程需在进程运行的过程中进行的,当进程需要使用设备时,通过系统调用命令向系要使用设备时,通过系统调用命令向系统提出设备请求,系统按一定的分配策统提出设备请求,系统按一定的分配策略给进程分配所需设备,一旦使用完毕略给进程分配所需设备,一旦使用完毕立即释放。显然这种分配方式有利于提立即释放。显然这种分配方式有利于提高设备的使用效率,但会出现死锁,这高设备的使用效率,但会出现死锁,这是应力求避免的。是应力求避免的。3.设备分配算法n1、先请求先
35、服务n2、优先级高的优先服务先请求先服务当有多个进程对某一设备提出I/O请求时,或者是在同一设备上进行多次I/O操作时,系统按提出I/O请求的先后顺序,将进程发出的I/O请求命令排成队列,其队首指向被请求设备的DCT。当该设备空闲时,系统从该设备的请求队列的队首取下一个I/O请求消息,将设备分配给发出这个请求消息的进程。优先级高者先服务优先级高者指发出I/O请求命令的进程。这种策略和进程调度的优先数法是一致的,即进程的优先级高,它的I/O请求也优先予以满足。对于相同优先级的进程来说,则按先请求先服务策略分配。因此,优先级高者先服务策略把请求某设备的I/O请求命令按进程的优先级组成队列,从而保证
36、在该设备空闲时,系统能从I/O请求队列队首取下一个具有最高优先级进程发来的I/O请求命令,并将设备分配给发出该命令的进程。4.设备分配技术根根据据设设备备的的特特性性把把设设备备分分成成独独占占设设备备、共共享设备和虚拟设备三种。享设备和虚拟设备三种。针对这三种设备采用三种分配技术针对这三种设备采用三种分配技术:n独享分配n共享分配n虚拟分配独享分配n独独占占型型设设备备有有行行打打印印机机,键键盘盘,显显示示器器。磁磁带带机可作为独占设备,也可作为共享设备。机可作为独占设备,也可作为共享设备。n若若对对这这些些设设备备不不采采用用独独享享分分配配就就会会造造成成混混乱乱。因因此此对对独独占占
37、设设备备一一般般采采用用独独享享分分配配,即即当当进进程程申申请请独独占占设设备备时时,系系统统把把设设备备分分配配给给这这个个进进程程,直到进程释放设备。直到进程释放设备。共享分配n共享设备包括磁盘,磁带和磁鼓。共享设备包括磁盘,磁带和磁鼓。n对对这这类类设设备备的的分分配配是是采采用用动动态态分分配配的的方方式式进进行行的的,当当一一个个进进程程要要请请求求某某个个设设备备时时,系系统统按按照照某某种种算算法法立立即即分分配配相相应应的的设设备备给给请请求求者者,请请求求者使用完后立即释放。者使用完后立即释放。虚拟分配n系系统统中中独独占占设设备备的的数数量量总总是是有有限限的的,这这些些
38、独独占占设设备备一一旦旦分分配配给给某某个个进进程程往往往往只只有有很很少少时时间间在在工工作作,许许多多时时间间一一直直处处于于空空闲闲状状态态。而而别别的的进进程程又又因因得得不不到到相相应应的的设设备备而而不不能能运运行行,因因此此严严重地影响到整个计算机系统的效率。重地影响到整个计算机系统的效率。n从从另另一一个个角角度度来来说说,独独占占设设备备一一般般是是低低速速的的,若若采采用用联联机机操操作作,也也会会增增加加进进程程的的运运行行时时间间,影响计算机系统的效率。影响计算机系统的效率。n为为提提高高计计算算机机系系统统的的效效率率,提提出出了了在在高高速速共共享享设设备备上上模模
39、拟拟低低速速设设备备功功能能的的技技术术,称称为为虚虚拟拟设设备技术。备技术。虚拟分配是针对虚拟设备而言的。虚拟分配是针对虚拟设备而言的。其实现的过程是:当当用用户户(或或进进程程)申申请请独独占占设设备备时时。系系统统给给它它分分配配共共享享设设备备的的一一部部分分存存储储空空间间。当当程程序序要要与与设设备备交交换换信信息息时时,系系统统就就把把要要交交换换的的信信息息存存放放在在这这部部分分存存储储空空间间。在在适适当当的的时时候候再再将将存存储空间的信息传输到相应的设备上去处理。储空间的信息传输到相应的设备上去处理。如系统打印信息时,就把要打印的信息送到某个如系统打印信息时,就把要打印
40、的信息送到某个存储空间中去,然后由系统在适当时机把存储存储空间中去,然后由系统在适当时机把存储空间上的信息送到打印机上打印出来。这个时空间上的信息送到打印机上打印出来。这个时机可能是打印机空闲或打印机完成了一用户的机可能是打印机空闲或打印机完成了一用户的信息输出之后。信息输出之后。通常人们把共享设备中代替独占设备的那部分存通常人们把共享设备中代替独占设备的那部分存储空间和相应的控制结构称为储空间和相应的控制结构称为虚拟设备虚拟设备,并把,并把对这类设备的分配称作虚拟分配。对这类设备的分配称作虚拟分配。SPOOLing系统Simultaneaus Periphernal Operations O
41、n-Line(外部设备同时联机操作)。n在单道批处理时期,用脱机在单道批处理时期,用脱机I/O可以提高可以提高CPU利用率。多道出现后可以利用一道程序来模拟利用率。多道出现后可以利用一道程序来模拟脱机脱机I/O中的卫星机,这样可实现在主机控制中的卫星机,这样可实现在主机控制下的脱机下的脱机I/O功能。功能。n我们把这种在联机情况下实现的同时外围操作我们把这种在联机情况下实现的同时外围操作称为称为SPOOLing,也称为也称为假脱机操作假脱机操作。SPOOLing系统的组成n1、输入井和输出井n2、输入缓冲区和输出缓冲区n3、输入进程和输出进程SPOOLing系统工作原理n作业执行前预先将程序和
42、数据输入到输入井中作业执行前预先将程序和数据输入到输入井中n作业运行后,使用数据时,从输入井中取出作业运行后,使用数据时,从输入井中取出n作业执行不必直接启动外设输出数据,只需将这些作业执行不必直接启动外设输出数据,只需将这些数据写入输出井中数据写入输出井中n作业全部运行完毕,再由外设输出全部数据和信息作业全部运行完毕,再由外设输出全部数据和信息好处:好处:实现了对作业输入、组织调度和输出的统一管理实现了对作业输入、组织调度和输出的统一管理使外设在使外设在CPUCPU直接控制下,与直接控制下,与CPUCPU并行工作(假脱机)并行工作(假脱机)输入装置输入装置输入装置输入装置通通道道通通道道输出
43、装置输出装置输出装置输出装置通通 道道 主机系统主机系统输入管输入管 输出管输出管理模块理模块 理模块理模块外外 存存输入井输入井 输出井输出井 SPOOLing系统系统图示SPOOLing系统的特点1、提高了、提高了I/O速度速度2、将独占设备改造为共享设备、将独占设备改造为共享设备3、实现了虚拟设备功能、实现了虚拟设备功能I/O进程控制I/O控制的引入系统在何时分配设备,在何时申请缓冲,和由哪个进程进行中断响应呢?另外,尽管CPU向设备或通道发出了启动指令,设备的启动以及I/O控制器中有关寄存器的值由谁来设置呢?这些都是前面的讨论中没有解决的问题。从用户进程的输入输出请求开始,给用户进程分
44、配设备和启动有关设备进行I/O操作,以及在I/O操作完成之后响应中断,进行善后处理为止的整个系统控制过程称为I/O控制。I/O控制的功能如图所示。I/O控制的功能I/O控制过程首先收集和分析调用I/O控制过程的原因:是外设来的中断请求?还是进程来的I/O请求?然后分别调用不同的程序模块进行处理。上图中各子模块的功能:I/O请求处理是用户进程和设备管理程序接口的一部分,它把用户进程的I/O请求变换为设备管理程序所能接受的信息。一般来说,用户的I/O请求包括:所申请进行I/O操作的逻辑设备名、要求的操作、传送数据的长度和起始地址等。I/O请求处理模块对用户的I/O请求进行处理。它首先将I/O请求中
45、的逻辑设备名转换为对应的物理设备名;然后,检查I/O请求命令中是否有参数错误;在I/O请求命令参数正确时,它把该命令插入指向相应DCT 的I/O请求队列;然后启动设备分配程序。在有通道的系统中,I/O请求处理模块还将按I/O请求命令的要求编制出通道程序。在设备分配程序为I/O请求分配了相应的设备、控制器和通道之后,I/O控制模块还将启动缓冲管理模块为此次I/O传送申请必要的缓冲区,以保证I/O传送的顺利完成。缓冲区的申请也可在设备分配之前进行。例如UNIX系统首先请求缓冲区,然后把I/O请求命令写到缓冲区中并将该缓冲区挂到设备的I/O请求队列上。另外,在数据传送结束后,外设发出中断请求,I/O
46、控制过程将调用中断处理程序和做出中断响应。对于不同的中断,其善后处理不同。例如处理结束中断时,要释放相应的设备、控制器和通道,并唤醒正在等待该操作完成的进程。另外,还要检查是否还有等待该设备的I/O请求命令。如有,则要通知I/O控制过程进行下一个I/O传送。I/O控制的实现I/O控制过程在系统中可以按三种方式实现:(1)作为请求I/O操作的进程的一部分实现。这种情况下,请求I/O操作的进程应具有良好的实时性,且系统应能根据在中断信号的内容准确地调度到请求所对应I/O操作的进程占据处理机,因为在大多数情况下,当一个进程发出I/O请求命令之后,都被阻塞睡眠。(2)作为当前进程的一部分实现。作为当前
47、进程的一部分实现时,不要求系统具有高的实时性。但由于当前进程与完成的I/O操作无关,所以当前进程不能接受I/O请求命令的启动I/O操作。不过,当前进程可以在接收到中断信号后,将中断信号转交给I/O控制模块处理,因此,如果让请求I/O操作的进程调用I/O操作控制部分(I/O请求处理、设备分配、缓冲区分配等),而让当前进程负责调用中断处理部分也是一种可行的I/O控制方案。(3)I/O控制由专门的系统进程I/O进程完成。在用户进程发出I/O请求命令之后,系统调度I/O进程执行,控制I/O操作。同样,在外设发出中断请求之后,I/O进程也被调度执行以响应中断。I/O请求处理模块、设备分配模块以及缓冲区管
48、理模块和中断原因分析、中断处理模块和后述的设备驱动程序模块等都是I/O进程的一部分。I/O进程也可分为三种方式实现。即:a.每类(个)设备设一专门的I/O进程,且该进程只能在系统态下执行。b.整个系统设一I/O进程,全面负责系统的数据传送工作。又可把I/O进程分为输入进程和输出进程。c.每类(个)设备设一个专门的I/O进程,但该进程既可在用户态也可在系统态下执行。设备驱动程序设备驱动程序是驱动物理设备和DMA控制器或I/O控制器等直接进行I/O操作的子程序的集合。负责设置相应设备有关寄存器的值,启动设备进行I/O操作,指定操作的类型和数据流向等。为了对驱动程序进行管理,系统中设置有设备开关表D
49、ST。设备开关表中给出相应设备的各种操作子程序的入口地址,例如打开、关闭、读、写和启动设备子程序的入口地址。一般设备开关表是二维结构,其中的行和列分别表示设备类型和驱动程序类型。设备开关表也是I/O进程的一个数据结构。I/O控制过程为进程分配设备和缓冲区之后,可以使用设备开关表调用所需的驱动程序进行I/O操作。磁盘存储器管理n1 磁盘概述n2 磁盘调度算法n3 磁盘容错技术n4 文件系统性能的改善n5 数据一致性控制目前,几乎所有随机存取的文件,都是存放在磁盘上,磁盘I/O速度的高低将直接影响文件系统的性能。硬盘分为两种:n固定头磁盘:每个磁道设置一个磁头,变换磁道时不需要磁头的机械移动,速度
50、快但成本高n移动头磁盘:一个盘面只有一个磁头,变换磁道时需要移动磁头,速度慢但成本低1 磁盘概述柱面柱面扇区扇区磁臂磁臂磁头磁头侧视图磁道磁道扇区扇区俯视图信息记录在磁道上,多个盘片,正反两面都用来记录信息,每面一个磁头所有盘面中处于同一磁道号上的所有磁道组成一个柱面每个扇区大小为512字节 物理地址形式:柱面号 磁头号 扇区号柱面、磁头、扇区典型参数20G:39813 柱面 16 头 63 扇区60G:28733 柱面 16 头 255 扇区由三个动作组成:n寻道:磁头移动定位到指定磁道n旋转延迟:等待指定扇区从磁头下旋转经过n数据传输:数据在磁盘与内存之间的实际传输磁盘的访问过程n寻道时间