您好,欢迎访问三七文档
1第5章设备管理2本质主要内容5.1I/O系统5.2I/O控制方式5.3缓冲管理5.4设备分配5.5设备处理5.6磁盘存储器管理3设备管理的任务和功能设备管理的任务提高设备的利用率设备独立性…………5.1I/O系统4设备管理的功能提供和进程管理系统的接口进行设备分配设备控制是设备管理的另一功能,它包括设备驱动和设备中断处理,具体的工作过程是在设备处理的程序中发出驱动某设备工作的I/O指令后,再执行相应的中断处理进行缓冲区管理5按使用特性分类按这种方法可把I/O设备分为存储设备和输入/输出(I/O)设备、终端设备和脱机设备按传输的信息特点分类按这种方法可将I/O设备分为字符设备和块设备。按设备的共享属性分类按这种观点可将I/O设备分为独占设备、共享设备和虚拟设备三种。5.1.1I/O设备6按设备的从属关系分类按这种观点可将外部设备分为系统设备和用户设备两种。系统设备:操作系统生成时就纳入系统管理范围的设备就是系统设备,通常也称为“标准设备”。比如键盘,显示器、打印机和磁盘驱动器等。用户设备:在完成任务过程中,用户特殊需要的设备称为用户设备。由于这些是操作系统生成时未经登记的非标准设备,因此对于用户来说,需要向系统提供使用该设备的有关程序(如设备驱动程序等);对于系统来说,需要提供接纳这些设备的手段,以便将它们纳入系统的管理。比如对于MS-DOS,可以在CONFIG.SYS文件中,通过使用命令DEVICE,把特定的设备驱动程序装入到内存,以便把某一个设备(如鼠标、扫描仪等)配置到计算机中。7设备接口主机是通过总线和接口部件与外部设备连接的。设备接口,视其类型的不同,规模可大可小。在巨型机和大型机中,接口是可以执行I/O程序的通道;而在微机中,接口也叫接口板、适配器,功能和规模都比通道要小得多。不管何种类型的接口,都是主机与外部设备之间的中介部件,它接受主机命令,传递I/O信息,反映外部设备的状态,对主机与外部设备的信息交换过程实施具体的控制。85.1.2设备控制器CPU与I/O设备之间的硬件接口,接收从CPU发来的命令,并去控制一个或多个设备设备控制器的基本功能接收和识别命令数据交换标识和报告设备状态地址识别数据缓冲差错控制9设备控制器的组成命令寄存器与具体的I/O请求有关,数据寄存器和状态寄存器则与完成数据的传输更加密切:数据寄存器:该寄存器是用来存放传输的数据的。对于输入设备,总是把所要输入的数据送入该寄存器,然后由CPU从中取走;反之,对于输出设备输出数据时,也是先把数据送至该寄存器,再由设备输出。状态寄存器:该寄存器是用来记录设备当前所处状态的。对于输入设备,在启动输入后,只有设备把数据读到数据寄存器,它才会将状态寄存器置成“完成(Done)”状态;对于输出设备,在启动输出后,只有设备让数据寄存器做好了接收数据的准备,它才会把状态寄存器置成“准备就绪”状态。105.1.3I/O通道通道是一种特殊的处理机,它具有执行I/O指令的能力,并通过执行通道程序来控制I/O操作。通道不同与一般的处理机:通道的指令类型单一,主要局限于与I/O操作有关的指令通道没有自己的内存,通道所执行的通道程序是存放在主机的内存中的,即通道与CPU共享内存。通道的类型:字节多路通道选择通道数组多路通道11通道是通过执行通道程序,并与设备控制器来共同实现对I/O设备的控制的,通道程序是由一系列的通道指令(或称为通道命令)所构成通道指令与一般的机器指令不同,每条通道指令应包含以下的内容:操作码:它规定指令所执行的操作,如读、写等。内存地址:标明数据传送时内存的首址。计数:表示传送数据的字节数。通道程序结束位R0,表示通道程序是否结束。记录结束标志R1,表示所处理的记录是否结束。125.1.4系统总线系统总线ISAEISAVESAPCI135.2I/O(数据传送)控制方式程序直接控制方式中断控制方式DMA方式通道控制方式14程序直接控制方式程序直接控制方式是指由用户进程直接控制内存或CPU和外围设备之间进行信息传送的方式。通常又称为“忙—等”方式或循环测试方式。早期的计算机系统中所用的方式在数据传送过程中,必不可少的一个硬件设备是设备控制器,它是操作系统软件和硬件设备之间的接口,它接收CPU的命令,并控制I/O设备进行实际的操作。对于CPU,设有两条硬指令,一条是启动输入/输出的指令,比如记为Start。另一条是测试设备控制器中状态寄存器内容的指令,比如记为Test。15程序直接控制方式的工作过程。这种数据传输方式,就是指用户进程使用Start指令启动设备后,不断地执行Test指令,去测试所启动设备的状态寄存器。只有在状态寄存器出现了所需要的状态后,才停止测试工作,完成输入/输出。由于数据传送过程中输入和输出的情况比较类似,下面只给出输出数据时的工作过程。(1)把一个启动位为“1”的控制字写入该设备的控制状态寄存器。(2)将需输出数据送到数据缓冲寄存器。(3)测试控制状态寄存中的“完成位”,若为0,转(2),否则转(4)。(4)输出设备将数据缓冲寄存器中的数据取走进行实际的输出。16中断控制方式所谓“中断”,是一种使CPU暂时中止正在执行的程序而转去处理特殊事件的操作。能够引起中断的事件称为“中断源”,它们可能是计算机的一些异常事故或其他内部原因(比如缺页),更多的是来自外部设备的输入输出请求。程序中产生的中断或由CPU的某些错误结果(如计算溢出)产生的中断称为“内中断”;由外部设备控制器引起的中断成为“外中断”。为了减少程序循环测试方式中CPU进行的测试和等待时间,为了提高系统并行处理的能力,利用设备的中断能力来参与数据传输是一个很好的方法。这时,一方面要在CPU与设备控制器之间连有中断请求线路;另一方面要在设备控制器的状态寄存器中增设“中断允许位”。1718(1)进程需要数据时,将允许启动和允许中断的控制字写入设备控制状态寄存器中,启动该设备进行输入操作。(2)该进程放弃处理机,等待输入的完成。操作系统进程调度程序调度其他就绪进程占用处理机。(3)当输入完成时,输入设备通过中断请求线向CPU发出中断请求信号。CPU在接收到中断信号之后,转向中断处理程序。(4)中断处理程序首先保护现场,然后把输入缓冲寄存器中的数据传送到某一特定单元中去,同时将等待输入完成的那个进程唤醒,进入就绪状态,最后恢复现场,并返回到被中断的进程继续执行。(5)在以后的某一时刻,操作系统进程调度程序选中提出的请求并得到获取数据的进程,该进程从约定的内存特定单元中取出数据继续工作。19DMA方式DMA方式又称直接存储器访问(DirectMemoryAccess)方式。其基本思想是在外设和主存之间开辟直接的数据交换通路。DMA方式的特点是:(1)数据传送的基本单位是数据块。(2)所传送的数据是从设备送内存,或者相反。(3)仅在传送一个或多个数据块的开始和结束时,才需中断CPU,请求干预,整块数据的传送是在DMA控制器控制下完成的。2021DMA控制器中包含有四个寄存器:数据缓冲寄存器,控制状态寄存器,内存地址寄存器和传送字节数计数器。在数据传输之前,将根据I/O命令参数对这些寄存器进行初始化。每个字节传输后,地址寄存器内容自动增1,字节计数器自动减1。22通道控制方式通道控制方式与DMA方式相类似,也是一种内存和设备直接进行数据交换的方式。与DMA方式不同的是,在通道控制方式中,数据传送方向存放数据的内存始址及传送的数据块长度均由一个专门负责输入/输出的硬件——通道来控制。另外,DMA方式每台设备至少需要一个DMA控制器,而通道控制方式中,一个通道可控制多台设备与内存进行数据交换。23通道方式是DMA方式的发展,可进一步减少CPU的干预,即把对一个数据块的读(或写)为单位的干预,减少为对一组数据块的读(或写)及有关的控制和管理为单位的干预可实现CPU、通道和I/O设备三者的并行工作24通道方式的数据传送结构25通道控制方式的数据过程(1)当进程要求设备输入时,CPU发指令指明I/O操作、设备号和对应通道。(2)对应通道收到CPU发来的启动指令后,读出内存中的通道指令程序、设置对应设备的控制状态寄存器的初值。(3)设备按通道指令的要求,把数据送往内存指定区域。(4)若传送结束,I/O控制器通过中断请求线发中断信号请求CPU做中断处理。(5)中断处理结束后,CPU返回到被中断进程处继续执行。(6)当进程调度程序选中这个已得到数据的进程后,才能进行加工处理。265.3缓冲技术5.3.1缓冲的引入“缓冲”即是过渡一下的意思。引入缓冲的主要目的:缓和处理机和I/O设备间速度不匹配的矛盾:在计算机系统的输入/输出中,由于CPU的处理速度很快,而设备的工作速度相对较慢,快和慢之间为了匹配,就需要缓冲。否则,快者就不得不等待慢者,从而影响了快者速度的发挥减少对CPU的中断次数,放宽对中断响应时间的限制:若I/O操作每传输一个字节就产生一次中断,那么系统花费在I/O处理上的时间就会直线上升。但如果我们设置4个字节的缓冲区,等放满4个字节后才产生一次中断,那么中断次数就会减少,系统花费在中断处理上的时间也就明显减少。提高CPU和I/O设备之间的并行性27可见,在处理I/O时,引入缓冲技术是非常有必要的。通过缓冲,能够调节计算机系统各部分的负荷,使CPU和外部设备的工作都尽量保持在一个较为平稳的良好状态。缓冲的实现有两种方法:一种是采用专门的硬件寄存器,比如设备控制器里的数据寄存器,这是“硬件缓冲”;另一种是在内存储器中开辟出n个单元,作为专用的I/O缓冲区,以便存放输入/输出的数据,这种内存缓冲区就是“软件缓冲”。由于硬件缓冲价格较贵,因此在I/O管理中,主要采用的是软件缓冲。285.3.2缓冲的种类根据系统设置缓冲区的个数,可以分为单缓冲、双缓冲、多缓冲以及缓冲池等四种。单缓冲:只为设备设置一个缓冲区的情形称为“单缓冲”。是操作系统提供的最简单的一种缓冲形式。每当一个进程发出一个I/O请求时,操作系统便在主存中为之分配一缓冲区,该缓冲区用来临时存放输入/输出数据。如:下图(a)表示单缓冲的工作示意,它表示产生数据者(即生产者)不是把数据直接送给接收数据者(即接收者),而是把数据送入到所设置的缓冲区中。接收数据者总是从缓冲区中去取所需要的数据。2930双缓冲:为I/O设备设置两个缓冲区,就称为“双缓冲”。解决外设之间并行工作的最简单的办法是设置双缓冲。在双缓冲方案中,具体的做法是为输入或输出操作设置两个缓冲区buffer1和buffer2。如图(b):它表示产生数据的生产者总是先把产生的数据送入缓冲区1中,下一次把产生的数据送入缓冲区2中;接收者总是先从缓冲区1中取数据,再从缓冲区2中取数据。所以,整个I/O的路线是先1后2,并且交替进行。双缓冲方式和单缓冲方式相比,虽然双缓冲方式能进一步提高CPU和外设的并行程度,并能使输入设备和输出设备并行工作,但是在实际系统中很少采用这一方式,这是因为在计算机系统中的外设很多,又有大量的输入和输出,同时双缓冲很难匹配设备和CPU的处理速度。因此现代计算机系统中一般使用多缓冲或缓冲池结构。31多缓冲:系统为同类型的I/O设备设置两个公共缓冲队列,一个专门用于输入,一个专门用于输出,这就是“多缓冲”。当输入设备进行输入时,就到输入缓冲首指针所指的缓冲区队列里申请一个缓冲区使用,使用完毕后仍归还到该队列;当输出设备进行输出时,就到输出缓冲首指针所指的缓冲区队列中申请一个缓冲区使用,使用完毕后仍归还到该队列。32缓冲池:系统为同类型的I/O设备设置一个公共缓冲队列,既用于输入,也用于输出。它是多缓冲的一种变异,以避免缓冲区使用上忙闲不均的现象。于是,在缓冲池中有3类缓冲区,一类现在用于输入;一类现在用于输出;还有一类为空闲,既可用于输入,也可用于输出。无论现在用于输入的还是用于输出的,它们在用完后,都归还到空闲的缓冲区队列中,受系统的
本文标题:第5章设备管理
链接地址:https://www.777doc.com/doc-1314313 .html