slide1 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
操作系统应用与配置 PowerPoint Presentation
Download Presentation
操作系统应用与配置

Loading in 2 Seconds...

play fullscreen
1 / 79

操作系统应用与配置 - PowerPoint PPT Presentation


  • 131 Views
  • Uploaded on

操作系统应用与配置. 第 6 章 设备管理. 引入. 操作系统的主要任务: 计算机软硬件资源管理 软件资源管理: CPU 资源管理: 内存资源管理: 其它外设管理: 方便用户使用计算机 用户界面与作业管理:. 文件系统 处理机管理 存储管理 设备管理 作业管理. 1 外设的用途与功能. 按用途可将外设分为以下两大类: 存储设备 是计算机保存信息的装置,读写速度较内存慢,但价格相对便宜,且品种多、容量大。例如:磁盘驱动器、磁带机、光驱等。 输入输出设备

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about '操作系统应用与配置' - barton


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide1

操作系统应用与配置

第6章 设备管理

slide2
引入
  • 操作系统的主要任务:
  • 计算机软硬件资源管理
    • 软件资源管理:
    • CPU资源管理:
    • 内存资源管理:
    • 其它外设管理:
  • 方便用户使用计算机
    • 用户界面与作业管理:

文件系统

处理机管理

存储管理

设备管理

作业管理

slide3
1 外设的用途与功能

按用途可将外设分为以下两大类:

  • 存储设备
    • 是计算机保存信息的装置,读写速度较内存慢,但价格相对便宜,且品种多、容量大。例如:磁盘驱动器、磁带机、光驱等。
  • 输入输出设备
    • 是计算机与外界交换信息的设备,主要有键盘、打印机、显示器、扫描仪、数字化仪、绘图仪、声卡、网卡、终端机等。

因此外设的重要功能是:计算机与外界的信息传送。

slide4
2 设备管理的主要任务

1)提高设备的利用率

即实现计算机与外界高效的信息传送。但是,需要降低CPU等核心资源的开销。实现这一目标的关键在于CPU与设备,以及设备与设备之间能否并行操作,从而达到充分利用外围设备资源的目的。

2)方便用户使用

即屏蔽设备的物理特性,使用户摆脱具体的物理设备的束缚。实现这一目标的关键在于将用户使用的逻辑设备转换成系统具体的物理设备

slide6
缺点
  • CPU和外围设备只能串行工作。由于CPU的处理速度要大大高于外围设备的数据传送和处理速度,所以,CPU的大量时间都处于等待和空闲状态。这使得CPU的利用率大大降低。
  • 不能实现设备之间的并行工作。由于CPU在一段时间内只能和一台外围设备交换数据信息。
  • 无法发现和处理由于设备或其他硬件所产生的错误。因为程序该控制方式只依靠测试设备标志触发器的状态位来控制数据传送。
slide8
中断方式的缺点
  • 由于I/O控制器的数据缓冲寄存器在装满数据之后将会发生中断,而且数据缓冲寄存通常较小,因此大量数据的传送过程将引发较多次中断,将耗去大量的CPU处理时间。
  • 现代计算机系统通常配置有较多各种各样的外围设备。若这些设备通过中断处理方式进行并行操作,则中断次数的急剧增加回造成CPU无法响应中断和出现数据丢失现象。
  • 如果外围设备的速度也非常高,则可能造成数据缓冲寄存器的数据由于CPU来不及取走而丢失。
slide10
DMA方式与中断方式的主要区别
  • 中断方式时是在数据缓冲寄存器满之后发中断要求进行中断处理,而DMA方则是在所要求转送的数据块全部传送结束时要求CPU进行中断处理。这就大大减少了CPU进行中断处理的次数。
  • 中断方式的数据传送是在中断处理时由CPU控制完成的,而DMA方式是在DMA控制器的控制下不经过CPU控制完成的。这就排除了因并行操作设备过多时CPU来不及处理或因速度不匹配而造成数据丢失等现象。

DMA 局限性:

  • DMA方式对外围设备的管理和某些操作仍由CPU控制。
  • 多个DMA控制器的同时使用可能会引起内存地址的冲突并使得控制过程进一步复杂化。
slide12
通道控制方式与DMA方式的不同
  • 在DMA方式中,数据的传送方向、存放数据的内存始址以及传送的数据块长度等都由CPU控制;而在通道方式中,这些都由专管输入输出的硬件——通道来进行控制。
  • DMA方式下每台设备至少一个DMA控制器,而通道控制方式可以做到一个通道控制多台设备与内存进行数据交换。
  • 从而,通道方式进一步减轻了CPU的工作负担和增加了计算机系统的并行工作程度。
slide13
6.1 引言

6.2 数据传送控制方式

6.3 中断技术

6.4 缓冲技术

6.5 设备分配

6.6I/O进程控制

6.7 设备驱动程序

slide14
6.1 引言
  • 在计算机系统中,除了CPU和内存之外,其他的大部分硬设备称为外部设备。它包括常用的输入输出设备、外存设备以及终端设备等。
  • 这些设备种类繁多,特性各异,操作方式的区别也很大,从而使得操作系统的设备管理变得十分复杂。
  • 从不同的视角出发,可将I/O设备分成不同类型。
6 1 1
6.1.1 设备类别
  • 按使用特性分类
  • 按设备的使用特性可将设备分为以下两大类:
  • 存储设备
    • 存储设备又称为外存或辅存,是计算机保存信息的装置,读写速度较内存慢,但价格相对便宜,且品种多、容量大。例如:磁盘驱动器、磁带机、光驱等。
  • 输入输出设备
    • 输入输出设备是计算机与外界交换信息的设备,主要有键盘、打印机、显示器、扫描仪、数字化仪、绘图仪、声卡、网卡、终端机等。
slide17
2.按设备所属关系分类
  • 按设备的从属关系,可把设备划分为系统设备和用户设备。
  • 系统设备是指那些在操作系统安装时就已配置好的各种标准设备。例如,键盘、打印机以及文件存储设备等。
  • 而用户设备则是那些在系统生成时没有配置,而由用户自己安装配置后由操作系统统一管理的设备。例如,网络系统中的各种网卡、实时系统中的A/D、D/A变换器、图像处理系统的图像设备等。
slide18
3. 从资源管理的角度分类
  • 独占设备一次只能让一道作业或进程独占使用的设备,如打印机等。
  • 共享设备可以让几个用户作业同时使用的设备,如磁盘等。
  • 虚拟设备用共享设备来模拟独占设备,提供共享功能。如网络打印机。
slide19
4. 按信息组织方式分类
  • 字符设备以字节为单位传输和处理数据的设备称为字符设备,如打印机、终端、键盘等低速设备。
  • 块设备数据块为单位传输传输和处理数据的设备称为块设备。 如磁盘、磁带等高速外存储器等。
6 1 2
6.1.2 设备管理的任务和功能
  • 主要任务
  • 设备管理的第一个目标是:提高设备的利用率。
  • 实现这一目标的关键在于CPU与设备,以及设备与设备之间能否并行操作,从而达到充分利用外围设备资源的目的。
  • 设备管理的第二个目标是:方便用户使用。为此,设备管理必须屏蔽设备的物理特性,使用户摆脱具体的物理设备的束缚。设备管理的任务之一就是将用户使用的逻辑设备转换成系统具体的物理设备。这也就是所谓的设备独立性。
slide21
2. 设备管理的功能
  • 监视系统中所有设备的状态。
  • 进行设备分配。按照设备类型和相应的分配算法把设备和其他有关的硬件分配给请求该设备的进程。
  • 实现设备和设备、设备和CPU等之间的并行操作。
  • 进行缓冲区管理。设备管理程序负责进行缓冲区分配、释放及有关的管理工作。
slide22
6.2 数据传送控制方式
  • 设备管理的基本功能之一是控制设备和内存或CPU之间的数据传送,本节将介绍几种常用的数据传送控制方式。
  • 选择和衡量控制方式有如下几条原则:
  • 数据传送速度足够高,能满足用户的需要但又不丢失数据;
  • 系统开销小,所需的控制处理程序少;
  • 能充分发挥硬件资源的能力,使得I/O设备尽量忙,而CPU等待时间少。
slide23

程序直接控制方式

  • 中断方式
  • DMA方式
  • 通道控制方式
  • 几种常用的I/O数据传送控制方式:
6 2 1
6.2.1 程序直接控制方式
  • 程序直接控制方式(programmed direct control)是由用户进程直接控制内存或CPU和外围设备之间的信息传送。这种方式的控制者是用户进程。
  • 基本思想:当用户进程需要输入或输出数据时,通过CPU发出启动设备准备传输数据的启动命令, CPU通过测试外围设备忙/闲状态,决定是否可以输入或输出数据。
  • 该方式简单、易于实现,无需多少硬件支持 。主要用于早期CPU速度较慢,设备较少的计算机系统。
slide26
缺点
  • CPU和外围设备只能串行工作。由于CPU的处理速度要大大高于外围设备的数据传送和处理速度,所以,CPU的大量时间都处于等待和空闲状态。这使得CPU的利用率大大降低。
  • 不能实现设备之间的并行工作。由于CPU在一段时间内只能和一台外围设备交换数据信息。
  • 无法发现和处理由于设备或其他硬件所产生的错误。因为程序该控制方式只依靠测试设备标志触发器的状态位来控制数据传送。
6 2 2
6.2.2 中断方式
  • 引入中断(interrupt)技术之后,程序中断方式被用来控制外围设备和内存与CPU之间的数据传送。
  • 这种方式要求CPU与设备之间有相应的中断请求线,而且在设备控制器的控制状态寄存器的相应的中断允许位。这样,I/O设备就有了向CPU反映自身状态的能力。仅当I/O操作正常或异常结束时才中断CPU。
  • 中断方式实现了一定程度上的并行操作。例如,行式针打每打印一行需要60ms,CPU只需0.1ms来处理I/O设备的中断,其余59.9ms可以用来处理别的事务。
slide29
中断方式数据输入
  • 当进程需要数据时,通过CPU发出指令启动外围设备准备数据,并将控制状态寄存器中的中断允许位打开。
  • 该进程阻塞,等待输入完成。从而,进程调度程序调度其他就绪进程占据处理机。
  • 当输入完成时,I/O控制器通过中断请求线向CPU发出中断信号。CPU在接收到中断信号之后,转向预先设计好的中断处理程序对数据传送工作进行相应的处理。
  • 在以后的某个时刻,进程调度程序唤醒等待该数据的进程,该进程从约定的内存特定单元中取出数据继续工作。
slide31
中断方式的缺点
  • 由于I/O控制器的数据缓冲寄存器在装满数据之后将会发生中断,而且数据缓冲寄存通常较小,因此大量数据的传送过程将引发较多次中断,将耗去大量的CPU处理时间。
  • 现代计算机系统通常配置有较多各种各样的外围设备。若这些设备通过中断处理方式进行并行操作,则中断次数的急剧增加回造成CPU无法响应中断和出现数据丢失现象。
  • 如果外围设备的速度也非常高,则可能造成数据缓冲寄存器的数据由于CPU来不及取走而丢失。
6 2 3 dma
6.2.3 DMA方式
  • 直接存储器存取(direct memory access,DMA)方式的基本思想是在外围设备和内存之间开辟直接的数据交换通路。
  • 在DMA方式中,I/O控制器具有比中断方式和程序直接控制方式时更强的功能。

DMA方式的传送结构

2 dma
2. DMA方式下的数据传输
  • ①当进程要求设备输入数据时,CPU把准备存放输入数据的内存始址及要传输的字节数分别送入DMA控制器的内存地址寄存器和传送字节计数器;并将控制/状态寄存器中的中断位和启动位置1,从而启动设备,开始数据输入。
  • ② 发出数据输入要求的进程进入阻塞状态, 进程调度程序调度其它进程占有CPU。
  • ③ 同时控制器从输入设备读入整块数据, 将数据从内部缓冲区源源不断地送入内存,直至所要求的字节数全部传送完毕。
  • ④ DMA控制器在传输完成时通过中断请求线发出中断信号, CPU接到中断信号后转中断处理程序进行相应处理。 
  • ⑤ 中断处理结束后, CPU返回被中断的进程或去运行重新被调度的进程。
slide35
DMA方式与中断方式的主要区别
  • 中断方式时是在数据缓冲寄存器满之后发中断要求进行中断处理,而DMA方则是在所要求转送的数据块全部传送结束时要求CPU进行中断处理。这就大大减少了CPU进行中断处理的次数。
  • 中断方式的数据传送是在中断处理时由CPU控制完成的,而DMA方式是在DMA控制器的控制下不经过CPU控制完成的。这就排除了因并行操作设备过多时CPU来不及处理或因速度不匹配而造成数据丢失等现象。

DMA 局限性:

  • DMA方式对外围设备的管理和某些操作仍由CPU控制。
  • 多个DMA控制器的同时使用可能会引起内存地址的冲突并使得控制过程进一步复杂化。
6 2 4
6.2.4 通道控制方式
  • 为了使CPU从繁杂的I/O工作中解脱出来,现代计算机设立了专门进行I/O数据控制的机构,叫做I/O通道。
  • 通道(channel)是一个独立于CPU的专门负责I/O控制的处理机,它控制设备与内存直接进行数据交换。
  • 通道有自己的通道指令,这些通道指令受CPU启动,并在操作结束时向CPU发中断信号。
  • 因此通道控制方式与DMA方式相类似,也是一种以内存为中心,实现设备和内存直接交换数据的控制方式。
slide38
通道方式下的数据传输过程
  • 当进程要求设备输入时,CPU发出启动指令,指明I/O操作、设备号和相应通道。
  • 对应通道收到CPU发来的启动指令后,读出内存中的通道指令程序、设置对应设备的I/O控制器的控制状态寄存器。
  • 设备按通道指令的要求,把数据送往内存指定区域。
  • 当传送结束时,I/O控制器发出中断信号请求CPU做中断处理。
  • 中断处理结束后,CPU返回到被中断进程处继续执行。
slide39
通道控制方式与DMA方式的不同
  • 在DMA方式中,数据的传送方向、存放数据的内存始址以及传送的数据块长度等都由CPU控制;而在通道方式中,这些都由专管输入输出的硬件——通道来进行控制。
  • DMA方式下每台设备至少一个DMA控制器,而通道控制方式可以做到一个通道控制多台设备与内存进行数据交换。
  • 从而,通道方式进一步减轻了CPU的工作负担和增加了计算机系统的并行工作程度。
slide40
通道指令程序
  • 在通道控制方式中,I/O控制器中没有传送字节计数器和内存地址寄存器;但设置了通道设备控制器和指令执行机构。
  • 通道的操作是由专门的通道指令程序来控制的。
  • 通道指令一般包含有被交换数据在内存中应占据的位置、数据传送方向、数据块长度以及被控制的I/O设备的地址信息、特征信息等。
  • 由于通道中没有主存储器,所以通道指令程序存放在内存中。
  • 通道指令程序在进程要求数据时由系统自动生成。
slide41
通道指令的分类
  • 计算机系统的I/O处理机具有如下三类基本通道操作指令:
  • 数据传送类, 如读、 写、 反读、 断定(检验设备状态);
  • 设备控制类, 如控制换页、 磁带反绕等; 
  • 转移类, 即通道程序内部的控制转移。
slide42
通道指令的格式
  • 通道指令的格式由四个字段组成:
  • 操作码(0~7) : 表示通道要执行的命令;
  • 数据主存始址:表示本命令要访问的主存数据区的起始地址;
  • 标志位(32~47,只使用了 32~36 位,其余置 0):有程序结束标志P和记录结束标志R等;
  • 字节计数(48~63 位):规定了数据块的长度。

0 7 8 31 32 47 48 63

slide43
通道的分类
  • 以字节为单位交叉地传送数据,它主要用来连接大量的低速设备,如终端、打印机等。
  • 可连接多个子通道,同时控制多台设备。
  • 以数据块为单位成批传送数据,每次传送一批数据,但一次只能控制一台设备进行I/O操作。
  • 具有传送速度高的特点,因而被用来连接磁盘机等高速外部设备。可连接多多台设备。
  • 当完成一台设备的I/O操作后再选择另一台设备。
  • 按照信息交换方式不同,一个系统中可设立三种类型的通道:
  • 字节多路通道
  • 数据选择通道
  • 数组多路通道
  • 以块为单位传送数据,它具有传送速率高和能分时操作不同的设备等优点,是字节多路通道和选择通道的综合。
  • 数组多路通道主要用来连接中速块设备,如磁带机等。
slide44
6.3 中断技术

6.3.1 中断的基本概念

  • 中断(Interrupt)是指计算机在运行期间,系统内发生任何非寻常的或非预期的急需处理事件,使得CPU暂时中断当前正在执行的程序而转去执行相应的事件处理程序,待处理完毕后又返回原来被中断位置继续执行或调度新的进程执行的过程。
  • 引起中断发生的事件被称为中断源。中断源向CPU发出的请求中断处理信号称为中断请求,而CPU收到中断请求后转相应的事件处理程序称为中断响应。
slide45
程序状态字PSW
  • 程序状态字PSW是用来控制指令执行顺序,保留和指示与当前执行程序有关的状态寄存器,其主要内容有:指令地址、条件码、目态/管态、等待/计算、中断码、中断屏蔽位等。
  • 不同的计算机硬件类型,对应的PSW格式略有不同。
  • 中断响应的过程,就是交换新旧PSW的过程。当中断响应时,将PSW寄存器的当前内容(旧PSW )保存起来,将要执行的程序的PSW内容送入PSW寄存器中。
6 3 2
6.3.2 中断的分类和优先级
  • 根据中断源的性质,把中断分为:
  • 外中断指来自处理机和内存外部的中断,包括I/O设备发出的I/O中断、外部信号中断(例如用户键入ESC)、各种定时器引起的时钟中断以及调试程序中设置的断点等引起的调试中断等。
  • 内中断主要指在处理机和内存内部产生的中断。内中断一般称为陷讲(trap)或异常(exception)。它包括机器故障、程序运算错误、用户程序执行特权指令、分时系统中的时间片中断以及从用户态到核心态的切换等都是陷讲的例子。
slide47
中断和陷讲的主要区别
  • 陷讲通常由处理机正在执行的现行指令引起,而中断则是由与现行指令无关的中断源引起的。
  • 陷讲处理程序提供的服务为当前进程所用,而中断处理程序提供的服务则不是为了当前进程的。
  • CPU在执行完一条指令之后,下一条指令开始之前响应中断,而在一条指令执行中也可以响应陷讲。
  • 在有的系统中,陷讲处理程序被规定在各自的进程现场中执行,而中断处理程序则在系统现场中执行。
slide48
中断的处理优先级
  • 为了按中断源的轻重缓急处理响应中断,操作系统对不同的中断赋予不同的优先级。例如,在UNIX系统申,外中断和陷讲的优先级共分为8级。
  • 为了禁止中断或屏蔽中断,CPU的程序状态字PSW中也设置有相应的优先级。如果中断源的优先级高于PSW的优先级,则CPU响应该中断源的中断请求,反之,CPU屏蔽该中断源的中断请求。
  • 各中断源的优先级在系统设计时给定,在系统运行时是固定的。而处理机的优先级则根据执行情况由系统程序动态设定。
slide49
中断处理过程
  • 首先,CPU检查响应中断的条件是否满足。CPU响应中断的条件是:有来自于中断源的中断请求且CPU允许中断。
  • 如果CPU响应中断,则CPU关中断,使其进入不可再次响应中断的状态。
  • 保存被中断进程现场。系统必须将当前处理机状态字PSW和程序计数器PC等的值保存在特定堆栈或硬件寄存器中,以便在中断处理结束后能使进程正确地返回到中断点。
slide50
分析中断原因,调用中断处理子程序。在多个中断请求同时发生时,处理优先级最高的中断源发出的中断请求。分析中断原因,调用中断处理子程序。在多个中断请求同时发生时,处理优先级最高的中断源发出的中断请求。
  • 执行中断处理子程序。对陷讲来说,在有些系统中则是通过陷讲指令向当前执行进程发软中断信号后调用对应的处理子程序执行。
  • 退出中断,恢复被中断进程的现场或调度新进程占据处理机。
  • 开中断,CPU继续执行。

中断处理过程

slide51
6.4 缓冲技术
  • 引入缓冲的目的:
  • 缓解CPU和外围设备之间速度不匹配的问题 ,以提高资源的利用率;
  • 减少对CPU的中断次数 ,同时解决DMA或通道方式的瓶颈问题;
  • 提高CPU和I/O设备之间的并行性。
  • 因此,在操作系统中,为了实现数据的I/O操作,凡是数据到达率与离去率不匹配的地方都采用了缓冲技术。

6.4.1 缓冲的引入

  • 虽然中断、DMA和通道控制技术实现了设备之间、设备和CPU之间的并行操作,但由于CPU的处理速度远远高于设备的传输速度,因此很多时候CPU不得不停下来等待设备工作。
  • 这限制了和处理机连接的外设台数,且在中断方式时可能造成数据丢失。
  • 同时DMA和通道也可能成为输入输出过程中的瓶颈。
slide52
缓冲的种类
  • 根据I/O控制方式,缓冲区的设置方法有:
    • 硬件缓冲:设置在硬件设备中的专用缓冲区,例如I/O控制器中的数据缓冲寄存器。
    • 软件缓冲:在内存开辟出一部分专用空间,以存放输入输出的数据。
  • 根据系统设置的缓冲器的个数,可把缓冲技术分为以下几种 :
    • 单缓冲、双缓冲、多缓冲和缓冲池。
slide53
单缓冲与双缓冲
  • 单缓冲是在设备和处理机之间设置的一个缓冲器。
  • 设备和处理机交换数据时,先把被交换据写入缓冲器,然后,需要数据的设备或处理机从缓冲器取走数据。
  • 由于缓冲器属于临界资源,即不允许多个进程同时对一个缓冲器操作,因此,尽管单缓冲能匹配设备和处理机的处理速度,但是,设备和设备之间不能通过单缓冲达到并行操作。
  • 双缓冲是为实现两台外设和CPU之间的并行操作而设置的。有了两个缓冲器之后,CPU可把输出到打印机的数据放入其中一个缓冲器,让打印机慢慢打印;然后,它又可以从另一个为终端设置的缓冲器中读取所需要的输入数据。
slide54
多缓冲
  • 为了实现大量数据的输入/输出,增加缓冲区的数目就形成多缓冲。
  • 多个大小相同的缓冲区连接起来组成两部分,一部分专门用于输入,另一部分专门用于输出。
  • 在多缓冲结构中,每个缓冲区都设有一个指针,用来指向下一个缓冲区,而最后一个缓冲区的指针又指向第一个缓冲区,形成环形,故又称环形缓冲。
slide55

Current

Nexti

Nextg

多缓冲的组成结构
  • 在多缓冲结构中的缓冲区分为空白缓冲区、装满数据的缓冲区和现行工作缓冲区,分别用三个指针指示:
6 4 3
6.4.3 缓冲池
  • 缓冲池则是将多个缓冲区连接成一个完整的区域,其中每个区既可以作为输入又可以作为输出用。多缓冲及缓冲池是系统中的共享资源,可供各进程使用,由系统统一分配和管理。它的使用必须互斥地进行。
slide57
缓冲池中的三个队列
  • 缓冲池中有三种类型的缓冲区,分别链接形成三个队列:
  • 空缓冲区队列emq: 由空白缓冲区所链成的队列
  • 输入队列inq: 由装满输入数据的缓冲区所链成的队列;
  • 输出队列outq: 由装满输出数据的缓冲区所链成的队列。

缓冲首部 缓冲池

slide58
四个工作缓冲区
  • 缓冲池中还有四个现行工作缓冲区:
  • 收容输入缓冲区hin
    • 用于收容设备输入的数据 
  • 提取输入缓冲区sin
    • 用于提取设备输入的数据 
  • 收容输出缓冲区hout
    • 用于收容CPU的输出数据 
  • 提取输出缓冲区sout
    • 用于提取CPU的输出数据 

缓冲池的工作缓冲区

slide59

缓冲池的工作原理

 系统开始启动时,所有缓冲区全部排入em队列中。

 当有输入任务时,收容输入进程执行读数操作时,自动从em队列的队首取下一空闲缓冲区,将输入数据装入其中,待满后排入in队列尾部。并对em队列长度和in队列长度作减一、加一操作。

 当有输出任务时,收容输出进程从em队列中取下一个空闲缓冲区,将输出数据装入,满后排入队列尾部。让em队列长度和out队列长度作减一、加一操作。

slide60

当系统要从输入缓冲区为用户进程取数时,由提取输入进程从in队列中取出一缓冲区,将其中的数据复制到用户指定的区域。并将该缓冲区排如em队列的尾部,同时,in队列数减一,em队列数加一。

 当系统要从输出缓冲区输出数时,由提取输出进程从out队列中取出一缓冲区,将其中的数据送给输出设备进行操作。然后将该缓冲区排如em队列的尾部,同时,out队列数减一,em队列数加一。

slide61
6.5 设备分配
  • 设备管理的重要功能之一是进行设备分配。
  • 在配置有通道的计算机系统中,设备分配程序至少应解决以下三个问题: 
    • 是否能为I/O请求提供可用的通路?
    • 是否有一条以上的通路可用?
    • 如果当前尚无通路可用, 那么何时通路才能空闲?
  • 因此,系统必须了解所有的设备、控制器和通道的状态。
6 5 1
6.5.1 设备分配用的数据结构
  • 设备分配管理程序通过下列数据结构来管理所有设备和相关硬件的状态信息。
  • 设备控制表DCT(Device Control Table)
  • 系统设备表SDT(System Device Table)
  • 控制器控制表COCT(Controller Control Table)
  • 通道控制表CHCT(Channel Control Table)
1 dct
1. 设备控制表DCT
  • 设备控制表DCT反映设备的特性、设备和I/O控制器的连接情况。
  • 其中包含设备类型、设备标识符、设备使用状态、与设备相连的控制器控制表指针、重复执行次数和时间,以及等待使用该设备的进程队列首尾指针等信息。
  • 系统中每个设备都必须有一张DCT,且在系统生成时或在该设备和系统连接时创建,但表中的内容则根据系统执行情况而被动态地修改。
2 sdt
2. 系统设备表SDT
  • 整个系统设置了一张系统设备表SDT,它记录了连接到系统中的所有物理设备的情况,并为每个物理设备设一表项。
  • 每个表项包含有设备类型、设备标识符、 正在使用该设备的进程的标识符、 DCT表指针等信息。
  • 系统设备表SDT的主要意义在于反映了系统中设备资源的状态,即系统中有多少设备,有多少是空闲的,而又有多少已分配给了哪些进程。
3 coct
3. 控制器控制表COCT
  • 系统为每个控制器建立了一张控制器控制表COCT ,它反映了每个I/O控制器的使用状态。
  • 其中包含控制器标识符、控制器状态、等待使用该控制器的进程队列首尾指针,以及和通道的连接情况等信息。
4 chct
4. 通道控制表CHCT
  • 在通道控制方式的系统中,为每个通道建立了一张通道控制表CHCT。它反映了每个通道的使用状态。
  • 其中包含通道标识符、通道状态、等待获得该通道的进程队列的首尾指针等信息。
slide67

设备类型

SDT

DCT集合

设备标识符

表项1

设备类型

DCT1

设备状态

……

设备标识符

……

COCT表指针

表项i

进程标识符

DCTi

等待队列首指针

……

DCT表指针

……

等待队列尾指针

……

复执次数或时间

COCT集合

CHCT集合

COCT1

控制器标识符

CHCT1

通道标识符

……

控制器状态

……

通道状态

COCTi

CHCT表指针

CHCTi

等待队列首指针

……

等待队列首指针

……

等待队列尾指针

等待队列尾指针

各表之间的连接关系
6 5 2
6.5.2 设备分配的原则
  • 在多进程的系统中,由于进程数多于设备数,就必然要引起进程对资源的争夺。
  • 为使系统有条不紊地工作,系统必须具有一套合理的设备分配原则。
  • 设备分配的总原则是既要充分发挥设备的使用效率,尽可能的让设备忙,但又要避免由于不合理的分配方法造成进程死锁 。
  • 操作系统的I/O调度程序根据设备分配的原则采取相应的分配策略和算法。
slide69

设备分配的基本要求:

设备分配受设备的固有特性,设备在系统中的配置数量,用户应用需求等多方面的限制。不同类型的设备在分配上所采取的方式不同,算法的设计思路上也不可能一致,但不论形式上千差万别,在实质上所追求的都是两方面的目标。

在系统方面,最大限度地发挥设备的效率,分配尽量合理化,避免分配完成后使占用的进程组出现不安全性,引发死锁现象;

从用户一方考虑,应使分配体现设备独立性,使用户面对的是逻辑设备,与物理设备结合不紧密,减轻用户编程的负担,提高应用程序的灵活性。围绕这样的目标,在设计操作系统的设备分配算法时,应权衡各方面的要求,作出合理的分配方案的设计。

slide70

设备分配方式:

在设备分配中起作用的分配方式主要有两种:静态分配与动态分配。

静态分配方式主要适用对独占型设备的分配,这种类型的分配在使用上必须是互斥地占用,所以往往是在某个作业执行之前,根据作业需求,全部一次性分出,当作业撤离时,再由系统收回。由于是预分配,一般不会引起不安全因素。这种方式主要用于分配设备,而对数量较少的通道和设备控制器的分配不能采用此方式。

动态分配的方式则是由进程在执行中再来动态申请外设,资源分配的灵活性大,利用率高。在此方式下,设备不是进行预分配,而是用时才分,运行中的进程当需要与外界交换信息时,通过执行系统中的访管指令,形成访管中断,系统响应后进入访管中断处理,启动分配程序工作,完成分配任务。

slide71

分配策略

(1)先请求先分配

当若干进程申请某一设备的请求得不到满足时,必须排入等队列中。这些进程由于申请的有先后次序,故排入等待队列的次序也是不相同的。当该设备被归还给系统后,就可以重新分配,此时,系统按进程在等待队列中排队的先后次序,将设备分给最早排入队列的那个进程。

(2)优先级高优先分配

在此分配对策中,进程的优先级起了决定作用。当从等待某设备的进程队列中挑选下一个可占用设备的进程时,按进程所具有的优先级处理。高优先级的进程先分配,同优先级的,先申请先分配。

slide72

设备分配算法:

在具有通道的I/O系统中,分配算法对各资源的分配顺序为: (a)设备 、 (b )控制器、 ( c )通道。具体分配流程图如下:

6 6 i o
6.6I/O进程控制
  • 所谓I/O控制是指从用户进程的输入输出请求开始,给用户进程分配设备和启动有关设备进行I/O操作,以及在I/O操作完成之后响应中断,进行善后处理为止的整个系统控制过程。
  • I/O控制过程在系统中可以按三种方式实现:
  • 作为请求I/O操作的进程的一部分实现。
  • 作为当前进程的一部分实现。
  • I/O控制由专门的系统进程——I/O进程完成。
slide76
I/O进程的实现
  • I/O进程也可分为三种方式实现:
  • 每类(个)设备设一专门的I/O进程,且该进程只能在系统态下执行。
  • 整个系统设一专门的I/O进程,全面负责系统的数据传送工作。由于现代计算机系统设备十分复杂,I/O进程的负担很重,因此,又可把I/O进程分为输入进程和输出进程。
  • 每类(个)设备设一个专门的I/O进程,但该进程既可在用户态也可在系统态下执行。
slide77
6. 7 设备驱动程序
  • 当系统响应了用户进程发出的I/O请求,就为该进程分配设备及相应的控制器和通道。此后,便在设备处理程序控制下,进行I/O操作。设备处理程序也称为设备驱动程序。
  • 设备驱动程序是驱动物理设备和DMA控制器或I/O控制器等直接进行I/O操作的子程序的集合。负责设置相应设备有关寄存器的值,启动设备进行I/O操作,指定操作的类型和数据流向等。
slide78
设备驱动程序的功能
  • 根据用户的I/O请求,构造相应的I/O驱动程序,在具有通道的系统中,即为通道程序。
  • 执行启动I/O的指令,以启动指定的通道和设备,从而执行通道程序进行I/O操作。对于非通道结构的计算机,直接通过系统调用命令来执行相应的I/O驱动程序(其中系统调用参数由用户的I/O请求提供)。
  • 当I/O操作完成或异常时,I/O设备或通道向CPU发出I/O中断请求。I/O中断处理程序唤醒请求I/O的其它进程,使其继续执行。