收藏 分销(赏)

计算机操作系统教程 第9章 设备管理.pdf

上传人:曲**** 文档编号:4901566 上传时间:2024-10-18 格式:PDF 页数:84 大小:6.32MB
下载 相关 举报
计算机操作系统教程 第9章 设备管理.pdf_第1页
第1页 / 共84页
计算机操作系统教程 第9章 设备管理.pdf_第2页
第2页 / 共84页
计算机操作系统教程 第9章 设备管理.pdf_第3页
第3页 / 共84页
计算机操作系统教程 第9章 设备管理.pdf_第4页
第4页 / 共84页
计算机操作系统教程 第9章 设备管理.pdf_第5页
第5页 / 共84页
点击查看更多>>
资源描述

1、学出版社第9章设备管理9.1引言92数据传送控制方式9.3 中断技术9.4 缓冲技术9.5 设备分配9.6 I/O进程控制97设备驱动程序本章小结习题高华大学出版社.1111设备管理是操作系统的重要组成部分之一。本章主 要讨论设备管理的基本概念,包括中断、缓冲、设 备分配和控制等。9.1 引言9.1.1 设备的类别外部设备:它包括常用的输入输出设备、外存设备以及终 端设备等。外部设备多样化、复杂化和智能化。除了硬件 设备之外,以某种硬件设备为基础的虚拟设备和仿 真设备技术也得到了广泛应用。例如,虚终端技术 和仿真终端技术等。实际上,近年来最为流行的窗 口系统中的X-WINDOW等都是作为一种设

2、备和操 作系统相连的。这使得设备管理变得越来越复杂化。设备的分类按设备的使用特性分:可分为存储设备、输入输出设备、终端设 备以及脱机设备清监LF磁带 _卜黑”软盘硬盘其他(磁鼓,光盘等)一输入/输出设备一外部设备一键盘一打印机一显示器一图形输入/输出设备图像输入/输出设备 一绘图机一音声输入/输出设备 一网络通信板其他I-会话型I通用终端批处理型 终端设备-1-智能终端专用终端 1虚终端脱机设备图81按使川特性对外部设备的分类高华大学出版社-3 幅国.11H系统设备和用户设备系统设备:是指那些在操作系统生成时就已配置好的各种标准设备。例如,键盘、打印机以及文件存储设备等用户设备:是那些在系统生

3、成时没有配置,而由用户自己安装配置 后由操作系统统一管理的设备。例如,网络系统中的各种 网板、实时系统中的A/D、D/A变换器、图像处理系统的图 像设备等。由于设备管理程序是和硬件打交道的,因此,不同的 设备硬件对应于不同的管理程序。不过,对于同类设备来 说,由于设备的硬件特性十分相似,从而可以利用相同的 管理程序或只需做很少的修改即可。周与会:学圉制照t 癫爆胡按信息组织方式设备例如,UNIX系统就把外部设备画分为字符设备 和块设备。键盘、终端、打印机等以字符为单位组 织和处理信息的设备被称为字符设备;而磁盘、磁带等以字符块为单位组织和处理 信息的设备被称为块设备。信单弓二学出版社 歌赫/氟

4、厢酶糠阴龈MHHH9.1.2 设备管理的功能和彳壬务”也修喀设备管理是对计算机输入输出系统的管理,是 操作系统中最具多样性和复杂性的部分。其主要任 务是:(1)选择和分配输入输出设备以进行数据传输操作;(2)控制输入输出设备和CPU(或内存)之间交换数 据;(3)为用户提供友好的透明接口,把用户和设备硬件 特性分开,使得用户在编制应用程序时不必涉及具 体设备,系统按用户要求控制设备工作。另外,这 个接口还为新增加的用户设备提供一个和系统核心 相连接的入口,以便用户开发新的设备管理程序;(4)提高设备和设备之间、CPU和设备之间,以及进 程和进程之间的并行操作度,以使操作系统获得最高华大学出版社

5、-S 题施.1111为了完成上述主要任务,设备管理程序一般要提供 下述功能:(1)提供和进程管理系统的接口。(2)进行设备分配。(3)实现设备和设备、设备和CPU等之间的并行操作。这需要有相应的硬件支持。除了装有控制状态寄存 器、数据缓冲寄存器等的控制器之外,对应于不同 的输入输出(I/O)控制方式,还需要有DMA通道等 硬件。从而,在设备分配程序根据进程要求分配了 设备、控制器和通道(或DMA)等硬件之后,通 道(或DMA)将自动完成设备和内存之间的数据 传送工作,从而完成并行操作的任务。在没有通道(或DMA)的系统里,则由设备管理程序利用中 断技术来完成上述并行操作;(4)进行缓冲区管理。

6、为了减少外部设备和内存与 CPU之间的数据速度不匹配的问题,系统中一般设 有缓冲区(器)来暂放数据。设备管理程序负责进 行缓冲区分配、释放及有关的管理工作。介绍:各种输入输出的控制方式缓冲区管理、中断、陷入以及软中断等基本概念。设备分配原则及有关分配算法I/O进程的概念及设备驱动过程与小匕一1 m出上;i 9.2 一薮据传送控制方式设备管理的主要任务之一是控制设备和内存或CPU 之间的数据传送。选择和衡量控制方式有如下几条原则:(1)数据传送速度足够高,能满足用户的需要但又不 丢失数据;系统开销小,所需的处理控制程序少;(3)能充分发挥硬件资源的能力,使得I/O设备尽量忙,而CPU等待时间少。

7、为了控制I/O设备和内存之间 的数据交换,每台外围设备都按一定规律编码。而 且,设备和内存与CPU之间有相应的硬件接口支持 同步控制、设备选择以及中断控制。外围设备和内存之间的常用数据传送控制方式有4种o即:(1)程序直接控制方式;(2)中断控制方式;(3)DMA方式;(4)通道方式。9.2.1 程序直接控制方式就是由用户进程来直接控制内存或CPU和外围 设备之间的信息传送。这种方式的控制者是用户进程。当用户进程需 要数据时,它通过CPU发出启动设备准备数据的启 动命令Start”,然后,用户进程进入测试等待状 态。在等待时间内,CPU不断地用一条测试指令检 查描述外围设备的工作状态的控制状态

8、寄存器。而 外围设备只有将数据传送的准备工作作好之后,才 将该寄存器置为完成状态。从而,当CPU检测到控 制状态寄存器为完成状态,也就是该寄存器发出“Done”信号之后,设备开始往内存或CPU传送数 据。反之,当用户进程需要向设备输出数据时,也 必须同样发启动命令启动设备和等待设备准备好之高华大学出版社 HOB嬲 III11除了控制状态寄存器之外,在I/O控制器中还有一类 称为数据缓冲寄存器的寄存器。在CPU与外围设备 之间传送数据时,输入设备每进行一次操作,首先 把所输入的数据送入该寄存器,然后,CPU再把其 中数据取走。反之,当CPU输出数据时,也是先把 数据输出到该寄存器之后,再由输出设

9、备将其取走。只有数据装入该寄存器之后,控制状态寄存器的值 才会发生变化。程序直接控制方式的控制流程如图 8.2 o涓华外围设备CPU(b)(a)图8.2程序直接控制方式程序直接控制方式虽然控制简单,也不需要多少硬 件支持,但是,明显地存在下述缺点:CPU和外围设备只能串行工作。CPU在一段时间内只能和一台外围设备交换数据 信息,从而不能实现设备之间的并行工作;(3)由于程序直接控制方式依靠测试设备标志触发器 的状态位来控制数据传送,因此无法发现和处理 由于设备或其他硬件所产生的错误。所认,程序 直接控制方式只适用于那些CPU执行速度较慢,而且外围设备较少的系统。清华大学阳艇社 演的眦的方次HH

10、MMH9.2.2 中断方式为了减少程序直接控制方式中CPU等待时间以及提 高系统的并行工作程度,中断(interrupt)方式被用 来控制外围设备和内存与CPU之间的数据传送。这 种方式要求CPU与设备(或控制器)之间有相应的中 断请求线,而且在设备控制器的控制状态寄存器的 相应的中断允许位。中断方式的传送结构如图8.3 所示。Int:信号线图8.3中断控制方式的传送结构高华大学出版社.III 从而,数据的输入可按如下步骤操作。(1)首先,进程需要数据时,通过CPU发出“Start指令启动 外围设备准备数据。该指令同时还将控制状态寄存器中的 中断允许位打开,以便在需要时,中断程序可以被调用执

11、行。(2)在进程发出指令启动设备之后,该进程放弃处理机,等待 输入完成。从而,进程调度程序调度其他就绪进程占据处 理机。(3)当输入完成时,I/O控制器通过中断请求线向CPU发出中 断信号。CPU在接收到中断信号之后,转向预先设计好的 中断处理程序对数据传送工作进行相应的处理。(4)在以后的某个时刻,进程调度程序选中提出请求并得到了 数据的进程,该进程从约定的内存特定单元中取出数据继 续工作。设备CPU图8.4中断控制方式的处理过程 尽管中断方式CPU的利用率大大提高且能支持多道 程序和设备的并行操作,但仍然存在着许多问题 首先,由于在I/O控制器的数据缓冲寄存器装满数据 之后将会发生中断,而

12、且数据缓冲寄存通常较小,因此,在一次数据传送过程中,发生中断次数较多。这将耗去大量的CPU处理时间。另外,现代计算机系统通常配置有各种各样的外围 设备。如果这些设备通过中断处理方式进行并行操 作,则由于中断次数的急剧增加而造成CPU无法响 应中断和出现数据丢失现象。另外,在中断控制方式时,我们都是假定外围设备 的速度非常低,而CPU处理速度非常高。如果外围 设备的速度也非常高,则可能造成数据缓冲寄存器 的数据由于CPU来不及取走而丢失。)育工户/一-户 mi 川;,工,:J f/r f,:rr;S门*:TfFr v*/Z rr*;7 v f/,r”*r?-:+/,9.2.3 DMA方式(直接存

13、取方式)基本思想:在外围设备和内存之间开辟直接的数据交换通 路。在DMA方式中,I/O控制器具有比中断方式和 程序直接控制方式时更强的功能。除了控制状态寄 存器和数据缓冲寄存器之外,DMA控制器中还包 括传送字节计数器、内存地址寄存器等。这是因为 DMA方式窃取或挪用CPU的一个工作周期把数据 缓冲寄存器中的数据直接送到内存地址寄存器所指 向的内存区域。DMA方式除了在数据块传送开始时需要CPU 的启动指令和在整个数据块传送结束时需发中断通 知CPU进行中断处理之外,不再像中断控制方式时 那样需要CPU的频繁干涉。DMA存取方式的结构 如图8.5所示。淆f公二学出茂社I/O设备T-夕,数据 一

14、DMA控制器-内存断仪启位(I-11J控制状态寄存器数据缓冲寄存器 传送字节数计数器 内存地址寄存器图8.5 DMA方式的传送结构/J I/n”jDMA方式的数据输入处理过程如下:(1)当进程要求设备输入数据时,CPU把准备存放输 入数据的内存始址以及要传送的字节数分别送入 DMA控制器中的内存地址寄存器和传送字节计数 器;另外,还把控制状态寄存器中的中断允许位和 启动位置1;从而启动设备开始进行数据输入。高华大学出版社-S 题施.1111(2)发出数据要求的进程进入等待状态,进程调度程 序调度其他进程占据CPU。(3)输入设备不断地挪用CPU工作周期,将数据缓冲 寄存器中的数据源源不断地写入

15、内存,直到所要求 的字节全部传送完毕。(4)DMA控制器在传送字节数完成时通过中断请求线 发出中断信号,CPU在接收到中断信号后转中断处 理程序进行善后处理。(5)中断处理结束时,CPU返回被中断进程处执行或 被调度到新的进程上下文环境中执行。DMA方式的处理过程如图8.6所示o设备 CPU图8.6 DMA方式的数据传送处理过程DMA方式与中断方式的一个主要区别是:中断方式时是在数据缓冲寄存器满之后发中断 要求CPU进行中断处理。DMA方式则是在所要求转送的数据块全部传送 结束时要求CPU进行中断处理。DMA就大大减少了 CPU进行中断处理的次数另一个主要区别:中断方式的数据传送是在中断处理时

16、由CPU控 制完成的。DMA方式是在DMA控制器的控制下不经过CPU 控制完成的。这就排除了因并行操作设备过多时CPU来不及 处理或因速度不匹配而造成数据丢失等现象。DMA方式仍存在着一定的局限性:首先,DMA方式对外围设备的管理和某些操作 仍由CPU控制。多个DMA控制器的同时使用显然会引起内存地 址的冲突并使得控制过程进一步复杂化。同时,多个DMA控制器的同时使用也是不经济的o 因此,在大中型计算机系统中(近年来甚至在那些 要求I/O能力强的微机系统中),除了设置DMA器 件之外,还设置专门的硬件装置通道。清华大学出版苞:蒲9.2.4通道控制方式通道控制(channel control)方

17、式与DMA方式相类似,也 是一种以内存为中心,实现设备和内存直接交换数据的控 制方式。与DMA方式不同的是:在DMA方式中,数据的传送方向、存放数据的内存始 址以及传送的数据块长度等都由CPU控制,而在通道方式 中,这些都由专管输入输出的硬件通道来进行控制。另外,与DMA方式时每台设备至少一个DMA控制器相 比,通道控制方式可以做到一个通道控制多台设备与内存 进行数据交换,从而,通道方式进一步减轻了CPU的工作 负担和增加了计算机系统的并行工作程度。高华大学出版社-8.Uli通道是一个独立于CPU的专管输入输出控制的 处理机,它控制设备与内存直接进行数据交换。它 有自己的通道指令,这些通道指令

18、受CPU启动,并 在操作结束时向CPU发中断信号。在通道控制方式中,I/O控制器中没有传送字 节计数器和内存地址寄存器;但多了通道设备控制 器和指令执行机构。在通道方式下,CPU只需发出 启动指令,指出通道相应的操作和I/O设备,该指 令就可启动通道并使该通道从内存中调出相应的通 道指令执行。高华大学出版社-S题施.Uli通道指令一般包含有被交换数据在内存中应占据的 位置、传送方向、数据块长度以及被控制的I/O设 备的地址信息、特征信息等,通道指令在通道中没 有存储部件时存放在内存中。通道指令的格式一般由操作码、读、写或控制、计 数段(数据块长度)以及内存地址段和结束标志等组 成。通道指令在进

19、程要求数据时由系统自动生成。例如:write 0 0 250 1850 write 1 1 250 720是两条把一个记录的500个字符分别写入从内存地址 1850开始的250个单元和从内存地址720开始的250 个单元中。其中假定write操作码后的“1”是通道 指令结束标志,而另一个“1”则是记录结束标志。该指令中省略了设备号和设备特征。匕一一二v.子口川/T!另外,一个通道可以以分时方式同时执行几个通道 指令程序。按照信息交换方式不同,一个系统中可设立三种类 型的通道:即字节多路通道、数组多路通道和选择通道。it n IT清华尤学出版苞 就电嬲式tjf耘ggHMM字节多路通道以字节为单位

20、传送数据,它主要用来 连接大量的低速设备,如终端、打印机等。数组多路通道以块为单位传送数据,它具有传送速 率高和能分时操作不同的设备等优点。数组多路通道主要用来连接中速块设备,如磁带机 等选择通道一次只能执行一个通道指令程序。所以,选择通道一次只能控制一台设备进行I/O操作。并 以块为单位成批传送数据。受选择通道控制的外设 有磁盘机等数组多路通道和字节多路通道都可以分时执行不同 的通道指令程序。选择通道具有传送速度高的特点,因而它被用来连 接高速外部设备。通道控制方式的数据输入处理过程可描述如下:当进程要求设备输入数据时,CPU发Start指令指 明I/O操作、设备号和对应通道。对应通道接收到

21、CPU发来的启动指令Start之后,把存放在内存中的通道指令程序读出,设置对应设 备的I/O控制器中的控制状态寄存器。清华二醇蜀航羽,5sBMMMH(3)设备根据通道指令的要求,把数据送往内存中指 定区域。(4)若数据传送结束,I/O控制器通过中断请求线发中 断信号请求CPU做中断处理。第5步与DMA方式时相同,即中断处理结束后CPU返 回被中断进程处继续执行。在(1)中要求数据的进程只有在调度程序选中它之后,才能对所得到的数据进行加工处理。另外,在许多情况下,人们可从CPU执行的角度描 述中断控制方式、DMA方式或通道控制方式的控 制处理过程。作为一个例子,这里给出通道控制方 式的描述过程。

22、Channel control procedure:repeatIR-M pcpc pc+1execute(IR)if require accessing with I/O Devicethen Command(I/0 operation,Address of I/O device5channel)fiif I/O Done Interrupt then Call Interrupt processing control fi until machine haltInterrupt processing control procedure 其中IR代表指令寄存器,pc代表程序计数器,而fi则

23、表示if.then条件语句的结束。关于interrupt processing control部分,在下面的章节中将进一步讨 论。清华大学别版社 J 1ggi解J a-J J J K J:.J,/,;yf,.匚二三):,/F 1-:-3 ,从上节可以看出,除了程序直接控制方式之外,无 论是中断控制方式、DMA方式还是通道控制方式,都需在设备和CPU之间进行通信,由设备向CPU发 中断信号之后,CPU接收相应的中断信号进行处理。这几种方式的区别:只是中断处理的次数、数据传送方式以及控制 指令的执行方式等。在计算机系统中,除了上述I/O中断之外,还 存在着许多其他的突发事件,例如电源掉电、程序 出

24、错等,这些也会发出中断信号通知CPU做相应的 处理。本节进一步讨论中断问题。j*jJ/-tj 犬!,二y j RjJ!,1FI.-中断(Interrupt)是指计算机在执行期间,系统内发生任 何非寻常的或非预期的急需处理事件,使得CPU暂时 中断当前正在执行的程序而转去执行相应的事件处理 程序,待处理完毕后又返回原来被中断处继续执行或 调度新的进程执行的过程。引起中断发生的事件被称为中断源。中断源向CPU发出的请求中断处理信号称为中断请求而CPU收到中断请求后转相应的事件处理程序称为中断 响应。清华文学出版社,漆/IW舞嗣界占J.二J,1 i .J 9、/J、.jr j,.,Ji J jr,*

25、w 二)三在有些情况下,尽管产生了中断源和发出了中断请求,但CPU内部的处理机状态字PSW的中断允许位已被清除,从而不允许CPU响应中断。这种情况称为禁止中断。CPU禁止中断后只有等到PSW的中断允许位被重新设置后才 能接收中断。禁止中断也称为关中断,PSW的中断允许位 的设置也被称为开中断。中断请求、关中断、开中断等都由硬件实现。开中断和关中断是为了保证某些程序执行的原子性。除了禁止中断的概念之外,还有一个比较常用的概念是 中断屏蔽。中断屏蔽是指在中断请求产生之后,系统用软件方式有选择 地封锁部分中断而允许其余部分的中断仍能得到响应。谓华大学出振苞=觑嬲11I II中断屏蔽是通过每一类中断源

26、设置一个中断屏蔽触 发器来屏蔽它们的中断请求而实现的。不过,有些中断请求是不能屏蔽甚至不能禁止的,也就是说,这些中断具有最高优先级。不管CPU是 否是关中断的,只要这些中断请求一旦提出,CPU 必须立即响应。例如,电源掉电事件所引起的中断 就是不可禁止和屏蔽中断。9.3.2中断的分类与优先级根据系统对中断处理的需要,操作系统一般对中断 进行分类并对不同的中断赋予不同的处理优先级,以便在不同的中断同时发生时,按轻重缓急进行处 理。根据中断源产生的条件,可把中断分为外中断和内中断。外中断:指来自处理机和内存外部的中断,包括I/O设 备发出的I/O中断、外部信号中断(例如用户键入 ESC键)、各种定

27、时器引起的时钟中断以及调试程 序中设置的断点等引起的调试中断等。外中断在狭 义上一般被称为中断。内中断:主要指在处理机和内存内部产生的中断。内中断一般称为陷阱(trap)。它包括程序运算引起的 各种错误,如地址非法、校验错、页面失效、存取 访问控制错、算术操作溢出、数据格式非法、除数 为零、非法指令、用户程序执行特权指令、分时系 统中的时间片中断以及从用户态到核心态的切换等 都是陷阱的例子。为了按中断源的轻重缓急处理响应中断,操作系统 对不同的中断赋予不同的优先级。为了禁止中断或 屏蔽中断,CPU的处理机状态字PSW中也设置有 相应的优先级。如果中断源的优先级高于PSW的 优先级,则CPU响应

28、该中断源的中断请求,反之,CPU屏蔽该中断源的中断请求。I J f-i j I.r 7 IMI 1 各中断源的优先级在系统设计时给定,在系统运行 时是固定的。而处理机的优先级则根据执行情况由 系统程序动态设定。中断和陷阱还有如下主要区别:(1)陷阱通常由处理机正在执行的现行指令引起,而 中断则是由与现行指令无关的中断源引起的。陷阱处理程序提供的服务为当前进程所用,而中 断处理程序提供的服务则不是为了当前进程的。(3)CPU在执行完一条指令之后,下一条指令开始之 前响应中断,而在一条指令执行中也可以响应陷阱。例如执行指令非法时,尽管被执行的非法指令不能 执行结束,但CPU仍可对其进行处理。在有的

29、系统中,陷阱处理程序被规定在各自的进程 上下文中执行,而中断处理程序则在系统上下文中9.3.3 软中断中断和陷阱都可以看作是硬中断,因为这些中 断和陷阱要通过硬件产生相应的中断请求。软中断则不然,它是通信进程之间用来模拟硬中断 的一种信号通信方式。软中断与硬中断相同的地方是:其中断源发中断请求或软中断信号后,CPU或 接收进程在适当的时机自动进行中断处理或完成软 中断信号所对应的功能。“适当的时机”是表示接收软中断信号的进程不 一定正好在接收时占有处理机,而相应的处理必须 等到该接收进程得到处理机之后才能进行。如果该 接收进程是占据处理机的,那么,与中断处理相同,该接收进程在接收到软中断信号后

30、将立即转去执行高华大学出版社-S 题施.1111需要说明的一点是,在有些系统中,大部分的陷阱 是转化为软中断处理的。由于陷阱主要与当前执行进程有关,因此,如果当 前执行指令产生陷阱的话,则向当前执行进程自身 发出一个软中断信号从而立即进入陷阱处理程序。9.3.4 中断处理过程一旦CPU响应中断,转入中断处理程序,系统就开 始进行中断处理。下面说明中断处理过程:CPU检查响应中断的条件是否满足。CPU响应中断的条件是:有来自于中断源的中断请求、CPU允许中断。如果CPU响应中断,则CPU关中断,使其进入不 可再次响应中断的状态。(3)保存被中断进程现场。为了在中断处理结束后能 使进程正确地返回到

31、中断点,系统必须保存当前 处理机状态字PSW和程序计数器PC等的值。这 些值一般保存在特定堆栈或硬件寄存器中。(4)分析中断原因,调用中断处理子程序。在多个中 断请求同时发生时,处理优先级最高的。高华大学出版社 二|.Uli(5)执行中断处理子程序。对陷阱来说,在有些系统 中则是通过陷阱指令向当前执行进程发软中断信号 后调用对应的处理子程序执行。(6)退出中断,恢复被中断进程的现场或调度新进程 占据处理机。(7)开中断,CPU继续执行。W厂学出:图8.8中断处理过程写二字出版社有些系统中只在保存和恢复现场时禁止中断,而在 执行中断处理子程序时屏蔽中断。上面描述了中断处理过程的各个步骤。下面从C

32、PU处理的角度出发来形式化地描述一下I/O 中断处理的控制过程,I/O Interrupt processing control:beginunusable I/O Interrupt flag save status of interrupt program if Input Device i Readythen Call Input Device i Control fiif Output Device i Readythen Call Output Device i Control fi if Data Deliver Donethen Call Data Deliver Done Co

33、ntrol fi restore CPU statusreset I/O Interrupt flag endInput Device i Control:.Output Device i Control:.Data Deliver Done Control:.9.4 缓冲技术9.4.1 缓冲的引入例如,当计算进程阵发性地把大批量数据输出到 打印机上打印时,由于CPU输出数据的速度大大高 于打印机的打印速度,因此,CPU只好停下来等待。反之,在计算进程进行计算时,打印机又因无数据 输出而空闲无事。外围设备与处理机速度不匹配的问题可以采用设置 缓冲区(器)的方法解决。每一字出版社从减少中断的次数

34、看,也存在着引入缓冲区 的必要性。在中断方式时,如果在I/O控制器中增 加一个100个字符缓冲器,则由前面各字对中断方 式的描述可知,I/O控制器对处理机的中断次数将 降低100倍,即等到能存放100个字符的字符缓冲区 装满之后才向处理机发一次中断。这将大大减少处 理机的中断处理时间。即使是使用DMA方式或通道方式控制数据传送时,如果不划分专用的内存区或专用缓冲器来存放数据 的话,也会因为要求数据的进程所拥有的内存区不 够或存放数据的内存始址计算困难等原因而造成某 个进程长期占有通道或DMA控制器及设备,从而 产生所谓瓶颈问题。清单大学出版泡 茄/yMMH为了匹配外设与CPU之间的处理速度,为

35、了减 少中断次数和CPU的中断处理时间,同时也是为了 解决DMA或通道方式时的瓶颈问题,在设备管理 中引入了用来暂存数据的缓冲技术。根据I/O控制方式,缓冲的实现方法有两种:一种是采用专用硬件缓冲器,例如I/O控制器 中的数据缓冲寄存器。另一种方法是在内存画出一个具有n个单元的 专用缓冲区,以便存放输入输出的数据。内存缓冲 区又称软件缓冲。9.4.2 缓冲的种类根据系统设置的缓冲器的个数,可把缓冲技术分为:单缓冲、双缓冲和多缓冲以及缓冲池几种。单缓冲:是在设备和处理机之间设置一个缓冲器。设备 和处理机交换数据时,先把被交换数据写入缓冲器,然后,需要数据的设备或处理机从缓冲器取走数据由于缓冲器属

36、于临界资源,即不允许多个进程 同时对一个缓冲器操作,因此,设备和设备之间不 能通过单缓冲达到并行操作。解决两台外设、打印机和终端之间的并行操作问题 的办法是设置双缓冲。有了两个缓冲器之后,CPU 可把输出到打印机的数据放入其中一个缓冲器(区),让打印机慢慢打印:然后,它又可以从另一个为终清华尤学出版社 辱版赚痛翱解罪绯双缓冲并不能用于实际系统中的并行操作。这是因为计算机 系统中的外围设备较多,另外,双缓冲也很难匹配设备和处 理机的处理速度。现代计算机系统中一般使用多缓冲或缓冲池结构。多缓冲:是把多个缓冲区连接起来组成两部分:一部分专门用于输入另一部分专门用于输出的缓冲结构缓冲池:则是把多个缓冲

37、区连接起来统一管理,既可用于输入又 可用于输出的缓冲结构。显然,无论是多缓冲,还是缓冲池,由于缓冲器是临界资源,在使用缓冲区时都有一个申请、释放和互斥的问题。下面 以缓冲池为例,介绍缓冲的管理。每一字出版社9.4.3 缓冲池的管理L缓冲池的结构缓冲池由多个缓冲区组成。一个缓冲区由两部分组成:一部分是用来标识该缓冲器和用于管理的缓冲首部另一部分是用于存放数据的缓冲体这两部分有一一对应的映射关系。对缓冲池的管理 是通过对每一个缓冲器的缓冲首部进行操作实现的。设备号数据块号缓冲器号互斥标识位 连接指针清华尤学出胧社系统把各缓冲区按其使用状况连成三种队列:(1)空白缓冲队歹Uem,其队首指针为F(em

38、),队尾指 针为L(em);(2)装满输入数据的输入缓冲队列in,其队首指针为F(in),队尾指针为L(in);(3)装满输出数据的输出缓冲队列out,其队首指针为 F(out),队尾指针为L(out)o其队列构成如图8.10所示。F(em)F(out)缓冲区先L(out)图8.10缓冲区队列除了三种缓冲队列之外,系统(或用户进程)从这三种 队列中申请和取出缓冲区,并用得到的缓冲区进行 存数、取数操作,在存数、取数操作结束后,再将 缓冲区放入相应的队列。这些缓冲区被称为工作缓 冲区。在缓冲池中,有4种工作缓冲区,即:(1)用于收容设备输入数据的收容输入缓冲区hin;(2)用于提取设备输入数据的

39、提取输入缓冲区sin;(3)用于收容CPU输出数据的收容输出缓冲区hout;(4)用于提取CPU输出数据的提取输出缓冲区sout。缓冲池的工作缓冲区如图8.11所示。缓冲池图8.11缓冲池的工作缓冲区对缓冲池的管理由如下几个操作组成:少三种缓冲区队列中按一定的选取规则取出一个 缓冲区的过程take_buf(type);(2)把缓冲区按一定的选取规则插入相应的缓冲区队 列的过程 add_buf(type,number);(3)供进程申请缓冲区用的过程get_buf(type,niimber);(4)供进程将缓冲区放入相应缓冲区队列的过程put_buf(type,work_buf)。其中,参数ty

40、pe表示缓冲队列类型,number为缓冲 区号,而work_buf则表示工作缓冲区类型。使用这几个操作,缓冲池的工作过程可描述如下:高华大学出版社-S 题施.11H 首先,输入进程调用get_buf(em,number)过程从空白 缓冲区队列中取出一不缓冲号为number的空白缓 冲区,将其作为收容输入缓冲区him当hin中装满 了由输入设备输入的数据之后,系统调用过程 put_buf(in,hin)将该缓冲区插入输入缓冲区队列in 中。另外,当进程需要输出数据时,输出进程经过缓冲 管理程序调用过程get_buf(em,number)从空白缓冲 区队列中取出一个空缓冲区number彳乍为收容输

41、 出缓冲区hout,待hout中装满输出数据之后,系统 再调用过程put_buf(out,hout)将该缓冲区插入输出 缓冲区队列out。高华大学出版社-8.Uli对缓冲区的输入数强和输出数据的提取也是由过程 get buf和put buf实现的 o get_buf(out,number)M 输由缓冲队歹中取出装满输出量据的缓冲区 number,将其作为sout。当sout中数据输出完毕时,系统调用过程put_buf(em,sout)将该缓冲区插入空 白缓冲队列。而get_buf(in,number)则从输入缓冲 队列中取出一个装满输入数据的缓冲区number作 为输入缓冲区sin,当CPU从

42、中提取完所需数据之 后,系统调用过程put_buf(em,sin)将该缓冲区释放 和插入空白缓冲队列em中。显然,对于各缓冲队列中缓冲区的排列以及每次取 出和插入缓冲队列区的顺序都应有一定的规则。最 简单的方法是FIFO,即先来先出的排列方法。采 用FIFO方法,过程put_buf每次把缓冲区插入相应 缓冲队列的队尾,而出呈gejbuf则取出相应缓冲 队列的第一个缓冲区,从而gejbuf中的第二个参 数number可以省略。而且,采用FIFO方法也省略 了对缓冲队列的搜索时间。过程 add_buf(type,number)和 take_buf(type,number)分别再耒把缓冲区numbe

43、r插入type戒司和从type仄 列中取出缓冲区number。它们分别被过程get_buf 和put_buf调用,其中,take_buf返回所取缓冲向 number的指针,而add_buf则将给定缓冲区number 的指针链入队列。一高华大学出版社-S 初嬲糠liBMMBBIWi I1 i下面给出过程get_buf和put_buf的描述。首先,设互斥信存量S(typ-,其初值为1。设描述资源数目的信号量RS(type),其初值为n(ii为type队列长度)。get_buf(type,number):beginP(RS(type)P(S(type)Pointer of buffer(number

44、)=take_buf(type5number)V(S(type)end信华之学出版社put_buf(type,number):beginP(S(type)add_buf(type5number)V(S(type)V(RS(type)end清华文学出施社 =墨;.f f 2,事 产 FTy?/L.Q J;/|rF p *9.5 设备分配由于设备、控制器和通道资源的有限性,不是 每一个进程随时随地都能得到这些资源。进程必须 首先向设备管理程序提出资源申请,然后,由设备 分配程序根据相应的分配算法为进程分配资源。如 果申请进程得不到它所申请的资源时,将被放入资 源等待队列中等待,直到所需要的资源被释

45、放。下面,讨论设备分配和管理的数据结构、分配策略 原则以及分配算法等。*士于尸J 三 IlXAx/*J、UR Jr-u7-2 上9.5.1 设备分配用数据结构设备的分配和管理通过下列数据结构进行。1.设备控制表DCT(Device Control Table)设备控制表DCT反映设备的特性、设备和I/O控制器 的连接情况。包括设备标识、使用状态和等待使用 该设备的进程队列等。系统中每个设备都必须有一 张DCT,且在系统生成时或在该设备和系统连接时 创建,但表中的内容则根据系统执行情况而被动态 地修改。DCT包括以下内容:(1)设备标识符,设备标识符用来区别设备。(2)设备类型,反映设备的特性,

46、例如是终端设备、块设备或字符设备等。(3)设备地址或设备号,由计算机原理课可知,每个 设备都有相应的地址或设备号。这个地址既可以是 和内存统一编址的,也可以是单独编址的。(4)设备状态,指设备是处理工作还是空闲中。(5)等待队列指针,等待使用该设备的进程组成等待 队列,其队首和队尾指针存放在DCT中。(6)I/O控制器指针,该指针指向该设备相连接的I/O 控制器。2.系统设备表SDT(System Device Table)系统设备表SDT整个系统一张,它记录已被连接到系 统中的所有物理设备的情况,并为每个物理设备设 一表项。SDT的每个表项包括的内容有:(l)DCT指针,该指针指向有关设备的

47、设备控制表。(2)正在使用设备的进程标识。(3)设备类型和设备标识符,该项的意义与DCT中的 相同。SDT的主要意义在于反映系统中设备资源的状态,即 系统中有多少设备,有多少是空闲的,而又有多少 已分配给了哪些进程。清修文学出版社 二号书耽责既j.)J/.产j;yjTff,_/y J/./日,64*7O7J/上月寸士力*:,_ZA/?/J、三py*Xr/J 了 T少三Z72.设备分配策略与进程调度相似,动态设备分配也是基于一定的分 配策略的。常用的分配策略有先请求先分配、优先 级高者先分配策略等。(1)先请求先分配当有多个进程对某一设备提出I/O请求时,或者是在 同一设备上进行多次I/O操作时

48、,系统按提出I/O请 求的先后顺序,将进程发出的I/O请求命令排成队 歹U,其队首指向被请求设备的DCT。当该设备空闲 时,系统从该设备的请求队列的队首取下一个I/O 请求消息,将设备分配给发出这个请求消息的进程。优先级高者先分配优先级高者指发出I/O请求命令的进程。这种 策略和进程调度的优先数法是一致的,即进程的优 先级高,它的I/O请求也优先予以满足。对于相同优先级的进程来说,则按先请求先分 配策略分配。因此,优先级高者先分配策略把请求 某设备的I/O请求命令按进程的优先级组成队列,从而保证在该设备空闲时,系统能从I/O请求队列 队首取下一个具有最高优先级进程发来的I/O请求 命令,并将设

49、备分配给发出该命令的进程。学出血社9.5.3设备分配算法根据设备分配策略和原则,使用系统提供的SDT、DCT、COCT及CHCT等数据结构,当某个进程提出 I/O设备请求之后,就可按上图8.13所示流程进行 设备分配。5吉住大学6家十 一一./月点公十少儿宝注工SINGHUAUNIVEBSJTY R旗SS9.6 I/O进程控制9.6.1 I/O控制的引入系统在何时分配设备,在何时申请缓冲,和由 哪个进程进行中断响应呢?尽管CPU向设备或通道发出了启动指令,设备 的启动以及I/O控制器中有关寄存器的值由谁来设 置呢?I/O控制:从用户进程的输入输出请求开始,给用户进程 分配设备和启动有关设备进行

50、I/O操作,以及在I/O 操作完成之后响应中断,进行善后处理为止的整个 系统控制过程高华方学出版社8.6.2 I/O控制的功能I/O控制的功能如图8.14所示。外设中断请求 用户进程I/O请求图8.14I/O控制的功能清华大学出版社j-777/r工fK*y u p7*y3C?.f?一二.9.6.3 I/O控制的实现I/O控制过程在系统中可以按三种方式实现:作为请求I/O操作的进程的一部分实现。这种情况 下,请求I/O操作的进程应具有良好的实时性,且 系统应能根据在中断信号的内容准确地调度到请求 所对应I/O操作的进程占据处理机,因为在大多数 情况下,当一个进程发出I/O请求命令之后,都被 阻塞

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服