实际操作系统OperatingSystem_第1页
实际操作系统OperatingSystem_第2页
实际操作系统OperatingSystem_第3页
实际操作系统OperatingSystem_第4页
实际操作系统OperatingSystem_第5页
已阅读5页,还剩70页未读 继续免费阅读

下载本文档

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

文档简介

1、实际操作系统OperatingSystem教学目的 通过对本章地讲解是学生理解并掌握设备管理的功能、I/O控制方式、缓冲区管理、设备管理,以及磁盘存储管理。 本章重点:输入输出控制方式缓冲区的管理设备分配和设备处理磁盘调度虚拟设备本章难点: 对通道的理解Spooling技术。第5章 设备管理 5.1 I/O系统5.2 I/O控制方式5.3 缓冲管理5.4 设备分配5.5 I/O软件5.1 I/O系统1.基本概念I/O系统:在操作系统中负责管理输入输出设备的部分称为I/O系统。I/O系统的基本功能:是为数据传输选择输入输出设备;在选定的输入输出设备和CPU(或主存)之间交换数据。操作系统内核通过

2、设备驱动程序与外部设备进行交互。驱动程序是设备与内核其他部分之间的唯一接口。文件系统是对设备操作的组织与抽象,而设备操作则是对文件操作的最终实现。 设备分类 按信息组织方式按信息组织方式字符设备(字符设备(character devicecharacter device) 块设备(块设备(block deviceblock device) 有结构,可寻址有结构,可寻址 按设备使用的可共享性按设备使用的可共享性 独占设备独占设备 共享设备共享设备 虚拟设备虚拟设备 按设备的使用特性按设备的使用特性存储设备存储设备输入输入/ /输出设备输出设备 5.1.1 I/O 5.1.1 I/O体系结构体系结

3、构 在计算机系统中,数据信息是通过数据通道在在计算机系统中,数据信息是通过数据通道在CPUCPU、RAM RAM 和和I/OI/O设备之间流动的。这些数据通道又称设备之间流动的。这些数据通道又称为总线。为总线。总线 数据总线:指用来并行传送数据的一组线。数据总线:指用来并行传送数据的一组线。 地址总线:指用来并行传送地址的一组线。地址总线:指用来并行传送地址的一组线。 控制总线:指用来并行传送控制信息的一组线。控制总线:指用来并行传送控制信息的一组线。 1.总线I/OI/O总线是用来连接总线是用来连接CPUCPU和和I/OI/O设备的总线。每个设备的总线。每个I/OI/O设备都依设备都依次连接

4、到次连接到I/OI/O总线上,这种连接使用了有总线上,这种连接使用了有3 3个元素的硬件构个元素的硬件构件层次:件层次:I/OI/O端口、端口、I/OI/O接口和设备控制器。接口和设备控制器。 5.1.1 I/O 5.1.1 I/O体系结构体系结构CPUCPUI/OI/O总线总线I/OI/O端口端口I/OI/O接口接口I/OI/O控制器控制器I/OI/O端口端口I/OI/O设备设备图图5.1 PC5.1 PC的的I/OI/O体系结构体系结构总线 (1)I/O端口(I/O port),即为连接到I/O总线上的设备的I/O地址。 例IBM PC 体系结构中的I/O地址空间,一共有65536个8位的

5、I/O端口。CPU在执行指令时,使用地址总线选择所请求的I/O端口,使用数据总线在CPU寄存器和I/O端口之间传送数据。若I/O端口能被映射到内存物理地址空间,CPU和I/O设备之间的通信就可以通过使用对内存进行操作的汇编语言指令(如,mov、and、or等等)来实现。现代的硬件设备倾向于把I/O端口映射到内存物理地址空间。 为了实现起来方便,操作系统设计者把每个设备的I/O端口都组织成一组专用寄存器:控制寄存器、状态寄存器、输入寄存器、输出寄存器。 (2)I/O接口起翻译器的作用:把I/O端口中的值转换成设备所需要的命令和数据;检测设备状态的变化,并对设备状态寄存器(某一I/O端口)进行相应

6、地更新。I/O接口通过一条IRQ线连接到可编程中断控制器上,以使它代表相应的设备发出中断请求。有两种类型的接口:专用I/O接口和通用I/O接口。 专用I/O接口:专用于特定的硬件设备。有时专用I/O接口与设备控制器处于同一块卡中。 通用I/O接口:是用于连接外部设备的。并口可用于连接打印机、可移动磁盘、扫描仪、备份设备、其他计算机等等。 (3)设备控制器的主要作用:对从I/O接口接收到的高级命令进行解释,并通过向设备发送适当的电信号序列强制设备执行特定的操作;对从设备接收到的电信号进行转换和适当地解释,并通过I/O接口修改状态寄存器的值。复杂的设备通常需要设备控制器来驱动,而较简单的设备可以没

7、有设备控制器,如可编程中断控制器、可编程间隔定时器。所有的PC机都包含DMAC(Direct Memory Access Controller)辅助处理器。DMA(直接内存访问)作为一种输入输出方式,主要用来连接高速外围设备,如磁盘、磁带等,控制数据在RAM和I/O设备之间传送。5.1.2 I/O系统的功能 1.概述 在计算机系统中,I/O设备是人机对话的界面和接口,而计算机系统的I/O设备种类繁多,千差万别。另外,CPU性能高,而I/O设备性能低,属于低速设备,因此I/O设备的性能常常成为系统性能的瓶颈。 用户对I/O设备的使用要求是方便、高效、安全和正确。I/O系统的功能也就应该在计算机硬

8、件结构提供的既定设备范围及其连接模式下,完成用户对I/O设备的使用要求。系统的功能(1)方便性:为了让用户能方便使用I/O设备,提供简便易用的对逻辑设备进行逻辑操作的抽象接口;实现抽象接口到物理接口的转化,即将高级逻辑操作转化为低级物理操作。抽象接口除了掩蔽硬件细节外还要掩蔽依赖于硬件的软件技术细节。设备抽象接口是由设备管理功能接口和文件系统功能接口共同提供的,更准确地说,设备抽象接口包含在文件系统统一接口中。抽象接口使广义的设备独立性成为可能,向用户展示一个大大简化了的计算环境观点,同时,抽象接口也是提高效率技术的前提。广义的I/O设备独立性是指整个设备管理功能的抽象接口,程序不关心物理设备

9、的操作和组织细节,而只看到具有逻辑名称和逻辑性质的逻辑设备和逻辑操作,不关心具体I/O设备是哪一个具体设备或是哪一个文件,设备改变而程序不变,不必修改,也不必重新编译。用户不必关心设备的改变,这一事实所带来的问题应该由操作系统来管理。所使用的设备的变化对程序是透明的。块设备的设备独立性是由文件系统的文件目录概念提供的。(2)效率:非系统用户关心其程序的运行效率,系统用户关心系统的利用率;非系统用户不希望程序等待设备,系统用户不希望设备等待程序。在现代操作系统中,已引入了大量的技术以提高设备与CPU的效率,例如中断、缓冲、DMA、通道等。因此,操作系统设备管理的一个主要功能是采用各种纯软件或与硬

10、件配合的软件技术来提高设备效率和与此相关的系统效率,提供物理I/O设备的共享并优化这些设备的使用,同时借助抽象接口使得这些优化技术得以在内部实施而对用户透明。(3)保护:用户希望能安全正确地使用设备,即希望由设备传送或管理的数据应该是安全的,不被破坏和泄密。 另外,对设备拥有所有权的用户希望设备不能被破坏。 系统如何阻止用户访问他们无权访问的设备呢?微机系统多半不设保护,任何进程能做它想做的任何事情。在大多数主机系统中,用户进程对I/O设备的访问完全被禁止。在UNIX系统中,对应于I/O设备的特别文件受一般的rwx位保护。系统管理员据此为每台设备确定适当的授权。计算机系统对I/O设备的控制方式

11、有:程序轮询方式程序中断方式DMA(直接存储器访问)控制方式通道控制方式。 5.2 I/O5.2 I/O控制方式控制方式【输入/输出控制-程序直接控制方式】 程序直接控制方式是指由程序直接控制内存或CPU和外围设备之间进行信息传送的方式。通常又称为“忙等”方式或循环测试方式。 在数据传送过程中,必不可少的一个硬件设备是I/O控制器,它是操作系统软件和硬件设备之间的接口,它接收CPU的命令,并控制I/O设备进行实际的操作。CPUCPU执行执行A A进程进程外设外设I/OI/O控制器控制器发命令发命令传数据传数据图5.2 程序直接控制方式程序直接控制方式下输出数据时的工作过程。 把一个启动位为“1

12、”的控制字写入该设备的控制状态寄存器。 将需输出数据送到数据缓冲寄存器。测试控制状态寄存器中的“完成位”,若为0,转 ,否则转。 输出设备将数据缓冲寄存器中的数据取走进行实际的输出。程序直接控制方式优缺点程序直接控制方式优缺点 在程序在程序I/OI/O方式中,由于方式中,由于CPUCPU的高速性和的高速性和I/OI/O设备的设备的低速性,低速性, 致使致使CPUCPU的绝大部分时间都处于等待的绝大部分时间都处于等待I/OI/O设备完成数据设备完成数据I/OI/O的循环测试中,的循环测试中, 造成对造成对CPUCPU的极的极大浪费。大浪费。该方式优点:简单,易于理解。该方式优点:简单,易于理解。

13、 图5.3 程序I/O方式流程图 【输入/输出控制-中断控制方式】 (1)进程需要数据时,将允许启动和允许中断的控制字写入设备控制状态寄存器中,启动该设备进行输入操作。 (2)该进程放弃处理机,等待输入的完成。操作系统进程调度程序调度其他就绪进程占用处理机。 (3)当输入完成时,输入设备通过中断请求线向CPU发出中断请求信号。CPU在接收到中断信号之后,转向中断处理程序。 (4)中断处理程序首先保护现场,然后把输入缓冲寄存器中的数据传送到某一特定单元中去,同时将等待输入完成的那个进程唤醒,进入就绪状态,最后恢复现场,并返回到被中断的进程继续执行。 (5)在以后的某一时刻,操作系统进程调度程序选

14、中提出的请求并得到获取数据的进程,该进程从约定的内存特定单元中取出数据继续工作。 在在I/OI/O设备输入每个数据的过程中,由于无须设备输入每个数据的过程中,由于无须CPUCPU干预,干预,因而可使因而可使CPUCPU与与I/OI/O设备并行工作。仅当输完一个数据时,才设备并行工作。仅当输完一个数据时,才需需CPUCPU花费极短的时间去做些中断处理。可见,这样可使花费极短的时间去做些中断处理。可见,这样可使CPUCPU和和I/OI/O设备都处于忙碌状态,从而提高了整个系统的资源利用设备都处于忙碌状态,从而提高了整个系统的资源利用率及吞吐量。率及吞吐量。例如,从终端输入一个字符的时间约为例如,从

15、终端输入一个字符的时间约为100 ms100 ms, 而将字符送而将字符送入终端缓冲区的时间小于入终端缓冲区的时间小于 0.1 ms0.1 ms。 若采用程序若采用程序I/OI/O方式,方式,CPUCPU约有约有 99.9 ms99.9 ms的时间处于忙的时间处于忙等待中。等待中。 采用中断驱动方采用中断驱动方式后,式后,CPUCPU可利用这可利用这 99.9 ms99.9 ms的时间去做其它事情,而仅用的时间去做其它事情,而仅用 0.1 ms0.1 ms的时间来处理由控制器发来的中断请求。的时间来处理由控制器发来的中断请求。 可见,中断可见,中断驱动方式可以成百倍地提高驱动方式可以成百倍地提

16、高CPUCPU的利用率。的利用率。 图 中断方式流程图 DMA方式又称直接存储器访问(Direct Memory Access)方式。其基本思想是在外设和主存之间开辟直接的数据交换通路。DMA方式的特点是: (1)数据传送的基本单位是数据块。 (2)所传送的数据是从设备送内存,或者相反。 (3)仅在传送一个或多个数据块的开始和结束时,才需中断CPU,请求干预,整块数据的传送是在DMA控制器控制下完成的。 可见,DMA方式较之中断驱动方式,又是成百倍地减少了CPU对I/O的干预,进一步提高了CPU与I/O设备的并行操作程度。【输入输入/ /输出控制输出控制- - DMA方式方式】图图5.5 DM

17、A控制器与其他部件的关系控制器与其他部件的关系DMA控制器的组成控制器的组成 图 5.6 DMA控制器的组成 DRMARDCCRI/O控制逻辑主机控制器接口 控制器与块设备接口count内存CPU命令系统总线DMA控制器 为了实现在主机与控制器之间成块数据的直接交换,为了实现在主机与控制器之间成块数据的直接交换, 必须必须在在DMADMA控制器中设置如下四类寄存器:控制器中设置如下四类寄存器: (1) (1) 命令命令/ /状态寄存器状态寄存器CRCR。用于接收从。用于接收从CPUCPU发来的发来的I/OI/O命令或命令或有关控制信息,有关控制信息, 或设备的状态。或设备的状态。 (2) (2

18、) 内存地址寄存器内存地址寄存器MARMAR。在输入时,它存放把数据从设备。在输入时,它存放把数据从设备传送到内存的起始目标地址;在输出时,它存放由内存到设备传送到内存的起始目标地址;在输出时,它存放由内存到设备的内存源地址。的内存源地址。 (3) (3) 数据寄存器数据寄存器DRDR。用于暂存从设备到内存,或从内存到。用于暂存从设备到内存,或从内存到设备的数据。设备的数据。 (4) (4) 数据计数器数据计数器DCDC。 存放本次存放本次CPUCPU要读或写的字要读或写的字( (节节) )数。数。 DMA工作过程工作过程 图 5.7 DMA方式的工作流程 MAR设置 A R 和 D C 初值

19、启动 D MA传送命令挪用存储器周期传送数据字存储器地址增1字计数寄存器减1D C 0?请求中断在继续执行用户程序的同时,准备又一次传送否是MAR【输入/输出控制- 通道控制方式】 I/OI/O通道方式是通道方式是DMADMA方式的发展,它可进一步减少方式的发展,它可进一步减少CPUCPU的干预,的干预,即把对一个数据块的读即把对一个数据块的读( (或写或写) )为单位的干预,减少为对一组为单位的干预,减少为对一组数据块的读数据块的读( (或写或写) )及有关的控制和管理为单位的干预。及有关的控制和管理为单位的干预。 同同时,又可实现时,又可实现CPUCPU、通道和、通道和I/OI/O设备三者

20、的并行操作,从而更设备三者的并行操作,从而更有效地提高整个系统的资源利用率。有效地提高整个系统的资源利用率。例如,当例如,当CPUCPU要完成一组相关的读要完成一组相关的读( (或写或写) )操作及有关控制时,操作及有关控制时,只需向只需向I/OI/O通道发送一条通道发送一条I/OI/O指令,以给出其所要执行的通道指令,以给出其所要执行的通道程序的首址和要访问的程序的首址和要访问的I/OI/O设备,通道接到该指令后,通过设备,通道接到该指令后,通过执行通道程序便可完成执行通道程序便可完成CPUCPU指定的指定的I/OI/O任务。任务。 通道是专门负责输入/输出的硬件I/O处理器图5.8 通道方

21、式的数据传送结构 通道控制部件:通道地址字CAW:记录下一条通道指令存放的地址。通道命令字CCW:保存正在运行的通道指令。通道状态字CSW:记载通道、控制器、设备的状态。通道数据字CDW:暂存内存和设备之间I/O传输的数据。 按CAW取通道指令送入CCW中 CAW+1 CAW 是通道结束命令?是向主机发向主机发 中断中断否否 执行此命令执行此命令图5.9 通道程序执行过程通道控制方式的数据传输过程如下: (1)当进程要求设备输入时,CPU发指令指明I/O操作、设备号和对应通道。(2)对应通道收到CPU发来的启动指令后,读出内存中的通道指令程序、设置对应设备的控制状态寄存器的初值。(3)设备按通

22、道指令的要求,把数据送往内存指定区域。(4)若传送结束,I/O控制器通过中断请求线发中断信号请求CPU做中断处理。(5)中断处理结束后,CPU返回到被中断进程处继续执行。(6)当进程调度程序选中这个已得到数据的进程后,才能进行加工处理。 在现代OS中,几乎所有的I/O设备在与处理机(内存)交换数据时,都使用了缓冲区。缓冲就是在通信问题中为了通信双方的速度匹配而引入的一个中间层次,这个层次的速度比通信双方中较慢的一方快,而与较快的一方更匹配。1 1、引入缓冲的主要目的有以下几点、引入缓冲的主要目的有以下几点: :&缓和处理机和缓和处理机和I/OI/O设备间速度不匹配的矛盾设备间速度不匹配的矛盾&

23、减少对减少对CPUCPU的中断次数的中断次数&提高提高CPUCPU和和I/OI/O设备之间的并行性设备之间的并行性5.3 5.3 缓冲管理缓冲管理单缓冲单缓冲双缓冲双缓冲循环缓冲循环缓冲缓冲池缓冲池纯硬件缓冲区纯硬件缓冲区软件缓冲区软件缓冲区( (设在内存系统空设在内存系统空间中间中) )缓冲区缓冲区实现实现CacheCache设备缓冲区设备缓冲区I/OI/O缓冲缓冲区个数区个数&按照缓冲所在的位置分,缓冲区可分为:按照缓冲所在的位置分,缓冲区可分为: CACHECACHE;I/OI/O设备或控制器内部的纯硬件缓冲区,如打印设备或控制器内部的纯硬件缓冲区,如打印机内部的硬件缓冲区;机内部的硬件

24、缓冲区;I/OI/O在内存开设的缓冲区,如在内存开设的缓冲区,如OSOS在内存开设的在内存开设的I/OI/O缓冲区和缓冲区和文件系统缓冲区;文件系统缓冲区;脱机与假脱机技术实质上也属于缓冲技术,它是为慢速脱机与假脱机技术实质上也属于缓冲技术,它是为慢速I/OI/O设备在外存开设的缓冲区。设备在外存开设的缓冲区。 2 2、缓冲区分类:、缓冲区分类:缓冲技术-单缓冲 单缓冲是操作系统提供的最简单的一种缓冲形式。单缓冲是指在设备和处理机之间设置一个缓冲。设备和处理机交换数据时,先把被交换数据写入缓冲区,之后需要数据的设备或处理机再从缓冲区取走数据。设备和处理机对缓冲区的操作是串行的。单缓冲工作示意如

25、下图 工作区处理 (C)缓冲区传送 (M)输入 (T)I/O 设备(a)T1M1C1T2M2C2T3M3C3T4t(b)用户进程图5.10 单缓冲工作示意图缓冲技术-双缓冲 双缓冲方式和单缓冲方式相比,虽然双缓冲方式能进一步提高CPU和外设的并行程度,并能使输入设备和输出设备并行工作,但是在实际系统中很少采用这一方式,这是因为在计算机系统中的外设很多,又有大量的输入和输出,同时双缓冲很难匹配设备和CPU的处理速度。因此现代计算机系统中一般使用环形缓冲或缓冲池结构。双缓冲是指在应用程序进程发出双缓冲是指在应用程序进程发出I/OI/O请求时,在内请求时,在内存为之分配两个缓冲区,以便加快存为之分配

26、两个缓冲区,以便加快I/OI/O速度并提速度并提高设备利用率。高设备利用率。工作区用户进程缓冲区1缓冲区2I/O 设备T1(缓冲1)M1C1M2C2M3C3T2(缓冲2)T3(缓冲3)M4C4T4(缓冲4)(a)(b)图 5.11 双缓冲工作示意图 缓冲技术-环形缓冲循环缓冲是指引入多个缓冲区并将之组织成环形。用作输入循环缓冲是指引入多个缓冲区并将之组织成环形。用作输入的循环缓冲,输入进程不断地向环形缓冲中的下一个空缓的循环缓冲,输入进程不断地向环形缓冲中的下一个空缓冲输入数据,计算进程不断地从中取走数据并计算。循环冲输入数据,计算进程不断地从中取走数据并计算。循环缓冲也仅适用于某个特定的输入

27、输出进程和计算进程,属缓冲也仅适用于某个特定的输入输出进程和计算进程,属于专用缓冲。于专用缓冲。RGGGRG165423NextiNextgRGGGRC165423NextiNextgcurrent计算进程下一个可计算进程下一个可用的缓冲区指针用的缓冲区指针输入进程下次可输入进程下次可用缓冲区指针用缓冲区指针计算进程正在计算进程正在使用缓冲区使用缓冲区指针指针图5.12 循环缓冲示意图缓冲技术- 缓冲池现代的操作系统通常将多个缓冲区组织成缓冲池,供多个进程在I/O操作时共享,以提高缓冲区的利用率。在缓冲池中,可能有的缓冲区为空,有的缓冲区装满输入数据,有的缓冲区装满输出数据。为了便于管理,操作

28、系统内核可将相同类型的缓冲区链接在一起,从而形成多个缓冲队列 。图图5.13 缓冲区队列缓冲区缓冲区队列缓冲区缓冲池的组成缓冲池的组成空闲缓冲区、装输入数据的缓冲区和装输出数空闲缓冲区、装输入数据的缓冲区和装输出数据的缓冲区。据的缓冲区。图图5.14 缓冲池的缓冲池的工作缓冲区工作缓冲区缓冲池的工作方式 缓冲区可以在收容输入、提取输入、收容输出和提取输出四种方式下工作。hinsoutsinhout收容输入提取输出用户程序提取输入收容输出缓冲池对缓冲池的操作由如下几个过程组成:1、从缓冲区队列中取出一个缓冲区的过程Takebuf(type)。2、把缓冲区插入到相应的缓冲队列的过程Addbuf(t

29、ype,number)。3、进程申请缓冲区用的过程Getbuf(type,number)。4、进程将缓冲区插入到相应缓冲区队列的过程Putbuf(type,workbuf)。Type: 缓冲队列类型 number: 缓冲区号 workbuf: 工作缓冲区类型图图4-4 Getbuf4-4 Getbuf与与PutbufPutbuf流程图流程图Getbuf(type):P(S2(type)P(S1(type)按照type在相应队列上取队首缓冲区V(S1(type)Putbuf(type,num):P(S1(type)V(S1(type)V(S2(type)按照type将num号缓冲区挂到对应缓冲队

30、列图 设备分配技术设备依据使用特性可分为共享设备技术、独占设备技术和虚拟设备技术。共享设备技术适用于可共享设备,独占设备技术适用于可共享设备和独占设备,虚拟设备技术适用于独占设备。具体内容如下: 独占设备技术:对独享设备,系统一般采用静态分配方式。即在一个作业执行前,将它所需要使用的这类设备分配给它,当作业结束撤离时,才将分配给它的独享设备收回。 独占设备每次只能分配给一个进程使用,这种使用特性隐含着死锁的必要条件,所以在考虑独占设备的分配时,一定要结合有关防止和避免死锁的安全算法。5.4 5.4 设备分配设备分配共享设备技术:对共享设备的分配一般采用动态分配这一方式 。在解决设备与CPU的速

31、度匹配问题上,为了使设备和CPU的利用率达到最大程度,系统希望根据每个设备的特征来全局调度设备的操作。 常见的设备分配方法有两种1.先来先服务2.优先级高者优先虚拟设备技术:系统中的独占设备是有限的,往往不能满足诸多进程的要求,会引起大量进程由于等待某些独占设备而阻塞。另一方面,申请到独占设备的进程在其整个运行期间虽然占有设备,利用率却常常很低,设备经常处于空闲状态。解决的办法,就是用共享设备操作来模拟独占设备的操作,以提高系统效率和设备利用率。这种技术就称为虚拟设备技术,实现这一技术的软、硬件系统被称为假脱机(Simultaneous Peripheral Operation On Line

32、, SPOOL)系统,又叫SPOOLing系统. 脱机输入输出技术为了解决人机矛盾及CPU和I/O设备间速度不匹配的矛盾,50年代末出现了该技术。事先将装有用户程序和数据的纸带(卡片)装入纸带输入机,在一台外围机的控制下把纸带上的数据(程序)输入到磁带上。当CPU需要这些数据时再从磁带上高速的调入内存。类似的,当CPU需要输出时可由CPU直接高速的把数据从内存送到磁带上,然后再在另一台外围机的控制下,将磁带上的结果通过相应的输出设备输出。输入设备输入设备外围机外围机磁盘磁盘磁盘磁盘磁盘磁盘外围机外围机主机主机磁盘磁盘输出设备输出设备由于程序和数据的输入和输出都是在外围机的控制下完成的,由于程序

33、和数据的输入和输出都是在外围机的控制下完成的,或者说他们是在脱离主机的情况下进行的,所以称为脱机输入或者说他们是在脱离主机的情况下进行的,所以称为脱机输入输出方式。输出方式。图图5.16 脱机脱机I/O示意图示意图SPOOLing系统的组成: (1)输入井和输出井:这是在磁盘上开辟出来的两个存储区域。输入井模拟脱机输入时的磁盘,用于收容I/O设备输入的数据。输出井模拟脱机输出时的磁盘,用于收容用户程序的输出数据。(2)输入缓冲区和输出缓冲区:这是在内存中开辟的两个缓冲取区。输入缓冲区用于暂存由输入设备送来的数据,以后再传送到输入井。输出缓冲区用于暂存从输出井送来的数据,以后再传送到输出设备。

34、(3)输入进程和输出进程:输入进程模拟脱机输入时的外围控制机,将用户要求的数据从输入机通过输入缓冲区再送到输入井。当CPU需要输入数据时,直接从输入井读如内存。输出进程模拟脱机输出时的外围控制机,把用户要求输出的数据,先从内存送到输入井,待输出设备空闲时,再将输出井中的数据经过输出缓冲区送到输出设备上。 SPOOLing系统的组成如图所示。该系统必须有高速块设备的支持,该高速块设备通常是指磁盘。SPOOLing技术需要在磁盘上开辟两个大的存储空间,分别用作输入井和输出井。输入井模拟脱机输入时的磁盘,收容从输入设备输入的数据。 内存内存输入进程输入进程输出进程输出进程输入缓冲区输入缓冲区输出缓冲

35、区输出缓冲区磁盘磁盘输入井输入井输出井输出井输入设备输入设备输出设备输出设备图图5.17 SPOOLing5.17 SPOOLing系统的组成系统的组成例如:共享打印机请求打印队列这是由若干张请求打印表所形成的队列,系统为每个请求打印的进程建立一张请求打印表。参见P190OS&设备分配设备分配 在计算机系统中,在计算机系统中,I/OI/O设备的数量是有限的。在多道程设备的数量是有限的。在多道程序环境中,用户不能自行使用系统中的设备。进程首先需序环境中,用户不能自行使用系统中的设备。进程首先需要向设备管理程序提出申请,然后由设备分配程序按照一要向设备管理程序提出申请,然后由设备分配程序按照一定的

36、分配算法给进程分配必要的资源。如果进程的申请没定的分配算法给进程分配必要的资源。如果进程的申请没有成功,就要在资源的等待队列中排队等待,直到获得所有成功,就要在资源的等待队列中排队等待,直到获得所需的资源。需的资源。 (1 1)设备管理的数据结构)设备管理的数据结构: :操作系统为了实现对设备的操作系统为了实现对设备的管理和分配,需要对每台设备的情况进行登记,即对所管管理和分配,需要对每台设备的情况进行登记,即对所管理的对象建立相应的数据结构,如设备控制表(理的对象建立相应的数据结构,如设备控制表(DCTDCT)、控)、控制器控制表(制器控制表(COCTCOCT)、通道控制表()、通道控制表(

37、CHCTCHCT)和系统设备表)和系统设备表(SDTSDT)。图)。图5-185-18给出了这些表的数据结构。给出了这些表的数据结构。 图图5.18 5.18 设备管理的数据结构设备管理的数据结构SDTSDT表项表项1 1表项表项i i设备类设备类设备标识设备标识驱动程序入口驱动程序入口DCTDCT指针指针DCTDCT设备类型设备类型设备状态设备状态COCTCOCT指针指针设备等待队列设备等待队列COCTCOCT控制器标识控制器标识控制器状态控制器状态CHCTCHCT指针指针控制器等待队列控制器等待队列CHCTCHCT通道标识通道标识通道状态通道状态COCTCOCT指针指针通道等待队列通道等待

38、队列设备、控制器、通道的等待队列是由等待分配资源的进程控制块组成的,其组织方式可以按照先来先服(FCFS)的顺序,也可以按照优先级顺序。 (2)设备分配的原则:提高设备的利用率;避免不合理的分配方式造成的系统死锁或系统工作紊乱。与进程的调度相似,设备的分配也需要一定的策略,通常采用先来先服务(FCFS)和优先级高者优先等。独占设备每次只能分配给一个进程使用。虚拟设备的分配同共享设备。设备分配设备分配 静态分配静态分配 : :动态分配动态分配 : :在用户级进行的,执行之前,由系统一次在用户级进行的,执行之前,由系统一次分配给该程序所需要的全部资源,分配之分配给该程序所需要的全部资源,分配之后,

39、资源就一直为该程序所占用,直到执后,资源就一直为该程序所占用,直到执行完。该法无死锁。行完。该法无死锁。 在进程执行过程中根据执行需要进行设备在进程执行过程中根据执行需要进行设备分配。当进程需要设备时,通过系统调用分配。当进程需要设备时,通过系统调用命令向系统提出设备请求,由系统按照事命令向系统提出设备请求,由系统按照事先规定的策略给进程分配所需要的设备。先规定的策略给进程分配所需要的设备。一旦用完,便立即释放。一旦用完,便立即释放。I/O软件被组织成为一系列的层,即采用层次结构。I/O软件一般分为四层:中断处理程序,设备驱动程序,独立于设备的系统软件以及用户空间的I/O软件。从功能上看,设备

40、无关层是I/O管理的主要部分;从代码量上看,驱动层是I/O管理的主要部分。各层之间的界面并不是死的,各层之间的确切界面是依赖于具体系统的。 I/O软件设计的一个关键目标是设备独立性。除了直接与设备打交道的低层软件之外,其他部分的软件不依赖于硬件。I/O软件独立于设备,当I/O设备更新时,没有必要重新编写全部设备软件。在一些操作系统中,只要安装了相应的设备驱动程序,就可以很方便地安装好新的I/O设备。甚至不必重新编译就能将设备管理程序移到别处执行。 5.5 I/O软件I/O设备管理软件一般分为四层:中断处理程序,设备驱动程序,与设备无关的系统软件以及用户空间的I/O软件。其中低层与硬件相关,把硬

41、件与较高层次的软件隔离开来。而最高层软件则向用户提供一个友好的、统一的接口。 图总结了图总结了I/OI/O系统软件的层次。图中的箭头给出了系统软件的层次。图中的箭头给出了I/OI/O部分的控部分的控制流。制流。 用户空间软件用户空间软件独立于设备的系统软件(设备独立性软件)独立于设备的系统软件(设备独立性软件)设备驱动程序设备驱动程序中断处理程序中断处理程序硬件硬件 图图5.19 I/O5.19 I/O系统的分层及各层的主要功能系统的分层及各层的主要功能 I/O I/O请求请求 I/O I/O回答回答5.5.1 中断处理程序 1.1.中断和中断的分类中断和中断的分类 中断是指计算机在执行期间,

42、系统内发生任何非寻中断是指计算机在执行期间,系统内发生任何非寻常的或非预期的急需处理事件,使得常的或非预期的急需处理事件,使得CPUCPU暂时中断当前暂时中断当前的执行程序而转去执行相应的事件处理程序,待处理的执行程序而转去执行相应的事件处理程序,待处理完毕后又返回原来被中断处继续执行或调度新的进程完毕后又返回原来被中断处继续执行或调度新的进程执行。执行。 开中断和关中断是为了保证某段程序执行的原子性。开中断和关中断是为了保证某段程序执行的原子性。中断又分为外中断和内中断。外中断是指来自处理器中断又分为外中断和内中断。外中断是指来自处理器和内存之外的中断,如和内存之外的中断,如I/OI/O设备

43、发出的设备发出的I/OI/O中断等。内中断等。内中断是指在处理器和内存内部产生的中断,又称为陷中断是指在处理器和内存内部产生的中断,又称为陷阱(阱(traptrap)。)。2.处理器与I/O设备之间数据传输 I/O I/O系统采用了中断方式来控制系统采用了中断方式来控制I/OI/O设备和内存与设备和内存与CPUCPU之之间的数据传送。在硬件结构上,这种方式要求间的数据传送。在硬件结构上,这种方式要求CPUCPU与与I/OI/O设备设备(或控制器)之间有相应的中断请求线,而且在(或控制器)之间有相应的中断请求线,而且在I/OI/O设备控设备控制器的控制状态寄存器上有相应的中断允许位。制器的控制状

44、态寄存器上有相应的中断允许位。 在中断方式下,在中断方式下,CPUCPU与与I/OI/O设备之间数据传输的步骤:设备之间数据传输的步骤:(1 1)某个进程需要数据时,处理器发出指令启动)某个进程需要数据时,处理器发出指令启动I/OI/O设备准设备准备数据。同时,该指令还打开备数据。同时,该指令还打开I/OI/O设备控制状态寄存器中的设备控制状态寄存器中的中断允许位,以便在需要时,中断程序可以被调度执行。中断允许位,以便在需要时,中断程序可以被调度执行。(2)该进程放弃处理器,等待相关I/O操作完成,此时进程调度程序会调度其他就绪进程使用处理器。另一种方式是该进程在能够运行的情况下将继续运行,直

45、到中断信号来临。 (3)当I/O操作完成时,I/O设备控制器通过中断请求线向处理器发出中断信号。处理器收到中断信号后,转向预先设计好的中断处理程序对数据传送工作进行相应的处理。(4)得到数据的进程,转入就绪状态。在随后的某个时刻,进程调度程序会选中该进程继续工作。3.中断处理过程 I/O设备完成了I/O操作后,控制器便向CPU发出一中断请求,CPU响应中断后便转向中断处理程序。无论是哪种I/O设备,其中断处理程序的处理过程大体相同,其步骤如下: (1)CPU响应中断后,则关中断,使其进入不可再次响应中断的状态。(2)当中断处理程序开始执行时,用信号或信号量机制,将处于阻塞状态的设备驱动程序进程

46、唤醒。(3)保护被中断进程的执行现场。即将当前处理机状态字PSW、程序计数器PC以及被中断进程的CPU现场(包含所有的CPU寄存器)等都保存到中断栈中。 (4)分析中断原因,调用相应的设备中断处理程序。由处理器对各个中断源进行测试,以确定引起本次中断的I/O设备,并发送应答信号给发中断请求信号的进程,使之消除该中断请求信号,然后将中断处理程序的入口地址装入到程序计数器中,使处理机转向中断处理程序。(5)执行中断处理程序。该程序从设备控制器中读出设备状态。若是正常完成中断,则驱动程序进程便可做结束处理;若还有命令,可再向控制器发送新的命令。若是异常中断,则根据发生异常的原因做相应处理。(6)恢复

47、被中断进程的现场或调度新进程占据处理器。(7)开中断,CPU继续执行。 5.5.2 5.5.2 设备驱动程序设备驱动程序1.1.设备驱动程序的特点设备驱动程序的特点(1 1)设备驱动程序是在请求)设备驱动程序是在请求I/OI/O的进程和设备控制器之间的一的进程和设备控制器之间的一个通信程序。它把进程的个通信程序。它把进程的I/OI/O请求传送给设备控制器,然后把设请求传送给设备控制器,然后把设备控制器中所记录的设备状态、备控制器中所记录的设备状态、I/OI/O操作完成情况传回请求操作完成情况传回请求I/OI/O的进程。的进程。 (2 2)它与)它与I/OI/O设备的特性紧密相关,对于不同类型的

48、设备,应设备的特性紧密相关,对于不同类型的设备,应配置不同的驱动程序。配置不同的驱动程序。 (3 3)它与)它与I/OI/O控制方式紧密相关,常用的设备控制方式为中断控制方式紧密相关,常用的设备控制方式为中断驱动和驱动和DMADMA方式。方式。(4 4)设备驱动程序与)设备驱动程序与I/OI/O设备的硬件结构密切联系。其中全部设备的硬件结构密切联系。其中全部是依赖于设备的代码。设备驱动程序是操作系统中唯一知道设是依赖于设备的代码。设备驱动程序是操作系统中唯一知道设备控制器细节及其用途的部分。备控制器细节及其用途的部分。 2.2.设备驱动程序的处理过程设备驱动程序的处理过程 (1 1)将接收到的

49、抽象请求转换为具体要求。)将接收到的抽象请求转换为具体要求。 (2 2)检查用户)检查用户I/OI/O请求的合法性。一个请求的合法性。一个I/OI/O设备设备只能完成一组特定的功能,若超出这些特定的功只能完成一组特定的功能,若超出这些特定的功能,则认为这次能,则认为这次I/OI/O请求非法。请求非法。 (3 3)读出和检查设备的状态。在启动设备之前,)读出和检查设备的状态。在启动设备之前,要从设备控制器的状态寄存器中读出设备的状态。要从设备控制器的状态寄存器中读出设备的状态。若设备正处于空闲状态,则可以启动该设备进行若设备正处于空闲状态,则可以启动该设备进行I/OI/O操作。操作。 (4)向设

50、备控制器发出控制命令。驱动程序向控制器中的命令寄存器传送控制命令,启动I/O设备。随后的I/O是在设备控制器的控制下进行的。若I/O操作所要完成的工作较多,需要一定的时间,驱动程序进程会把自己阻塞起来,直到中断到来时才被唤醒。若I/O操作毫无拖延地完成,驱动程序无需阻塞。(5)对各种可能的有关设备排队、挂起、唤醒等操作进行处理。(6)及时响应由控制器发来的中断请求,并根据中断类型调用相应的中断处理程序进行处理。5.5.3 独立于设备的系统软件 独立于设备的系统软件应该实现的功能有,与设备驱动独立于设备的系统软件应该实现的功能有,与设备驱动程序的统一接口、设备命名、设备保护、提供与设备无关的程序

51、的统一接口、设备命名、设备保护、提供与设备无关的逻辑块、缓冲、块设备的存储分配、独占设备的分配与释放、逻辑块、缓冲、块设备的存储分配、独占设备的分配与释放、处理错误。处理错误。 1.1.设备命名设备命名 在操作系统的在操作系统的I/OI/O软件中,对软件中,对I/OI/O设备进行了统一命名,由设备进行了统一命名,由独立于设备的系统软件负责把设备的符号名映射到相应的设备独立于设备的系统软件负责把设备的符号名映射到相应的设备驱动上。在驱动上。在LinuxLinux系统中,像系统中,像/dev/hda5/dev/hda5这样的设备名,唯一地这样的设备名,唯一地确定了一个特殊文件的确定了一个特殊文件的i i节点,这个节点,这个i i节点包含了主设备号和次节点包含了主设备号和次设备号。主设备号用于寻找正确的设备驱动程序,次设备号提设备号。主设备号用于寻找正确的设备驱动程序,次设备号提供了设备驱动程序的有关参数,用来确定要读写的具体设备。供了设备驱动程序的有关

温馨提示

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

评论

0/150

提交评论