第 4章 设备管理
4.1 设备管理概述
4.2 输入输出系统
4.3 设备分配与回收
4.4 设备处理
4.5 设备管理采用的技术本章结束!
4.1 设备管理概述
4.1.1 设备管理的主要任务设备 是指计算机系统中的外部设备,它包括外存,输入设备和输出设备 ( I/O设备 ) 。 外存的管理和使用,请参考文件管理一章 。
设备管理的主要任务 是完成用户提出的输入输出请求,为用户分配输入输出设备,提高 CPU与输入输出设备的利用率,提高输入输出设备的速度,方便用户使用输入输出设备 。
第 4章 设备管理
4.1 设备管理概述
4.1.2 设备管理的主要功能
1.缓冲管理它是管理好各种类型的缓冲区,协调各类设备的工作速度,
提高系统的使用效率。它通过单缓冲区、双缓冲区或缓冲池等机制来实现。
2.设备分配与回收它是根据用户提出的输入输出请求,为其分配所需要的设备,
用户使用完后,回收分配的设备。它通过设备控制表、控制器控制表、通道控制表和系统设备表记录设备的使用情况,实现设备的分配与回收。
第 4章 设备管理
4.1 设备管理概述
4.1.2 设备管理的主要功能
3.设备处理它是实现 CPU和设备控制器之间的通信。它通过相应的设备处理程序来实现。
4.虚拟设备它是把每次只允许一个进程使用的物理设备,改造为能同时供多个进程共享的设备。
第 4章 设备管理
4.1 设备管理概述
4.1.3 设备的分类
1.按设备的从属关系分类
(1) 系统设备。 系统设备是指操作系统生成时已经登记在操作系统中的标准设备,如键盘、显示器、打印机等。
(2) 用户设备。 用户设备是指操作系统生成时未登记在操作系统中的非标准设备,如绘图仪、扫描仪等。
2.按操作特性分类
(1) 存储设备。 存储设备是指用来存放信息的设备,如磁盘、
磁带等。
(2) 输入输出设备。 输入输出设备是指向 CPU传输信息和输出加工处理信息的设备,如键盘、显示器、打印机等。
第 4章 设备管理
4.1 设备管理概述
4.1.3 设备的分类
3.按设备共享属性分类
(1) 独享设备。 独享设备是指在一段时间内只允许一个进程访问的设备。系统一旦把这种设备分配给一个进程后,便由该进程独占,直到用完释放,其他进程才能使用。多数低速设备都属于此类设备,如打印机。
(2) 共享设备。 共享设备是指在一段时间内允许多个进程访问的设备,如磁盘。
(3) 虚拟设备。 虚拟设备是指通过虚拟技术将一台独占设备变换为若干台逻辑设备,供若干个进程同时使用的设备,如虚拟打印机。
第 4章 设备管理
4.1 设备管理概述
4.1.3 设备的分类
4.按信息交换单位分类
(1) 块设备。 块设备是指处理信息的基本单位是字符块。一般块的大小为 512B~ 4KB,如磁盘、磁带等。
(2) 字符设备。 字符设备是指处理信息的基本单位是字符,如键盘、显示器、打印机等。
第 4章 设备管理返回
4.2 输入输出系统
4.2.1 输入输出系统的结构对于不同规模的计算机系统,其输入输出系统的结构也有差异 。 通常把输入输出系统的结构分成两大类:微机输入输出系统和主机输入输出系统 。
1.微机输入输出系统微机输入输出系统一般采用总线输入输出系统结构,如图 4-1
所示。
第 4章 设备管理
4.2 输入输出系统
4.2.1 输入输出系统的结构
1,微机输入输出系统
CPU和主存是直接连接到总线上的 。 输入输出设备是通过设备控制器连接到总线上 。 CPU并不直接与输入输出设备进行通信,
而是与设备控制器进行通信,并通过它去控制相应的设备 。 因此,
设备控制器是处理器和设备之间的接口 。 应根据设备的类型,给设备配臵与之相应的控制器,如磁盘控制器,打印机控制器等 。
第 4章 设备管理
4.2 输入输出系统
4.2.1 输入输出系统的结构
2.主机输入输出系统当主机所配臵的输入输出设备较多时,特别是配有较多的高速外设时,采用总线型输入输出系统结构会加重 CPU与总线的负担。因此,在这样的输入输出系统中不宜采用单总线结构,而是增加一级输入输出通道,用来代替 CPU与各设备控制器进行通信,
实现对控制器的控制。具有通道的输入输出系统结构如图 4-2所示。
第 4章 设备管理
4.2 输入输出系统
4.2.2 设备控制器
1.设备控制器的概念设备控制器 是 CPU与外围设备之间的接口,是一个可编址设备,每一个地址对应一个设备。它接收从 CPU发来的命令,并去控制输入输出设备的工作,使 CPU从繁杂的设备控制事务中解脱出来,提高 CPU的使用效率。
设备控制器一般分成两大类:一类是用于 控制字符设备 的控制器;另一类是用于 控制块设备 的控制器。
第 4章 设备管理
4.2 输入输出系统
4.2.2 设备控制器
2.设备控制器的功能。
设备控制器实现设备与 CPU的通信,一般功能:
( 1)接收和识别命令。 接收和识别由 CPU发送来的各种命令,
并对这些命令进行译码。为此,在控制器中应设臵相应的控制寄存器,用来存放接收的命令和参数,并对所接收的命令进行译码。
( 2)交换数据。 实现 CPU与控制器、控制器与设备之间的数据交换。对于前者,是通过数据总线,由 CPU并行地把数据写入控制器,或从控制器中并行地读出数据;对于后者是设备将数据输入到控制器,或从控制器传送给设备。为此,在控制器中需要设臵数据寄存器。
第 4章 设备管理
4.2 输入输出系统
4.2.2 设备控制器
2.设备控制器的功能。
( 3)了解和报告设备状态。 在控制器中应设立一个状态寄存器用于记录设备的各种状态,以供 CPU使用。例如,仅当该设备处于发送就绪状态时,CPU才能启动控制器从设备中读出数据。
为此,在控制器中应设臵一个状态寄存器,用其中的每一位来反映设备的某一种状态。当 CPU将该寄存器的内容读入后,便可以了解该设备的状态。
( 4)识别地址。 系统为每个设备配臵一个地址,设备控制器要能识别这些地址。此外,为使 CPU能向寄存器中写入数据,或从寄存器中读取数据,这些寄存器应具有惟一的地址。
第 4章 设备管理
4.2 输入输出系统
4.2.2 设备控制器
3.设备控制器的组成由于设备控制器处于 CPU与设备之间,它既要与 CPU通信,
又要与设备通信,还应具有按照 CPU发来的命令去控制设备工作的功能。因此,现有的大多数控制器都是由以下三部分组成的,
如图 4-3所示。
第 4章 设备管理
4.2 输入输出系统
4.2.2 设备控制器
3.设备控制器的组成
( 1) CPU与设备控制器的接口。 该接口用于实现 CPU与设备控制器之间的通信。共有三类信号线:数据线、地址线和控制线。
( 2)设备控制器与设备的接口。 控制器中的输入输出逻辑根据处理器发送来的地址信号,去选择一个设备接口。一个设备接口连接一台设备。
( 3)输入输出逻辑。 输入输出 逻辑用于实现对输入输出设备的控制。
第 4章 设备管理
4.2 输入输出系统
4.2.3 输入输出通道
1.输入输出通道的概念输入输出通道 是指专门负责输入输出工作的处理器。它有自己的指令系统(包含数据传送指令和设备控制指令),能按照指定的要求独立地完成输入输出操作。中央处理器可以做相应的计算操作,从而使系统获得 CPU与外设的并行处理能力。
第 4章 设备管理
4.2 输入输出系统
4.2.3 输入输出通道
2.输入输出通道的分类输入输出通道是用于控制外围设备的。根据信息交换方式的不同,把通道分成三种类型:
(1) 字节多路通道。 通常都含有许多非分配型子通道,其数量可以从几十到数百个,每一个子通道连接一台输入输出设备,这些子通道按时间片轮转方式共享主通道。如图 4-4所示。
字节多路通道连接低速或中速设备时,不会丢失信息。
第 4章 设备管理
4.2 输入输出系统
4.2.3 输入输出通道
2.输入输出通道的分类
(2) 数据选择通道。 可以连接多台高速设备,但是,由于它只含有一个分配型子通道,在一段时间内只能执行一个通道程序,
控制一台设备进行数据传送,致使当某台设备占用了该通道后,
便一直由它独占,(即使无数据传送,通道被闲臵也不允许其他设备利用)直至该设备传送完毕后释放该通道。
数据选择通道虽然有很高的传输速率,但是,它每次只允许一个设备传输数据。所以,这种通道利用率很低。
第 4章 设备管理
4.2 输入输出系统
4.2.3 输入输出通道
2.输入输出通道的分类
(3) 数组多路通道。 将数据选择通道传输速率高和字节多路通道能使各子通道(设备)分时并行操作的优点相结合,而形成的一种新通道。它含有多个非分配型子通道,因而这种通道既具有很高的数据传输速率,又能获得令人满意的通道利用率。
该通道被广泛地用于连接多台高、中速的外围设备,其数据传送是按数组方式进行的。
第 4章 设备管理
4.2 输入输出系统
4.2.4 输入输出系统的控制方式
1.程序直接控制方式程序直接控制方式也称为“忙 — 等待”方式,即在一个设备的操作没有完成时,控制程序一直检测设备的状态,直到该操作完成,才能进行下一个操作。 步骤 为:
(1) 当用户需要输入数据时,由处理器向设备控制器发出一条输入输出指令,启动设备进行输入。
(2) 当用户进程需要向设备输出数据时,也必须同样发出启动命令启动设备输出,并等待输出操作完成。
特点,工作过程简单,CPU的利用率低。程序直接控制方式适用于早期的无中断的计算机系统。
第 4章 设备管理
4.2 输入输出系统
4.2.4 输入输出系统的控制方式
2.中断控制方式中断控制 是指计算机在执行期间,系统内发生任何非寻常的或非预期的急需处理事件,使得 CPU暂时中止当前正在执行的程序而转去执行相应的事件处理程序,待处理完毕后又返回原来被中止处继续执行或调度新的进程执行的过程。
特点,中断控制方式比程序直接控制方式提高了 CPU的利用率。每输入输出 一个数据 都会发生中断,传输一组数据需要多次中断,浪费了 CPU的处理时间。中断控制方式应用于现代计算机系统中。
第 4章 设备管理
4.2 输入输出系统
4.2.4 输入输出系统的控制方式
3.直接存储器存取控制方式( DMA)
直接存储器存取方式 是指对输入输出设备的控制由 DMA控制器完成,在 DMA控制器的作用下,设备和主存之间可以 成批 地进行数据交换,而不用 CPU的干涉。
特点,数据的传送方向、存放数据的主存始址及传送数据的长度等都由 CPU控制,具体的数据传送由 DMA控制器负责,每台设备需要配一个 DMA控制器,这样输入输出数据传输速度快,CPU
负担少。直接存储器存取控制方式适用于块设备的数据传输。
第 4章 设备管理
4.2 输入输出系统
4.2.4 输入输出系统的控制方式
4.通道控制方式通道控制方式 是一种以主存为中心,是设备与主存直接交换数据的控制方式。 CPU只需要发出启动指令,指出通道相应的操作和输入输出设备,该指令就可以启动通道并使该通道从主存中调出相应的通道指令执行,完成 一组数据块 的输入 /输出。
特点,通道所需要的 CPU干预更少,并可以实现 CPU、通道和输入输出设备三者之间的并行操作,从而更有效地提高整个系统资源的利用率。通道控制方式适用于现代计算机系统中的大量数据交换。
第 4章 设备管理返回
4.3 设备分配与回收
4.3.1 设备分配中的数据结构为了实现对设备的管理和控制,需要对每台设备、通道、控制器的情况进行登记。设备分配主要采用的数据结构有 设备控制表,控制器控制表,通道控制表 和 系统设备表 。如图 4-5所示。
第 4章 设备管理
4.3 设备分配与回收
4.3.1 设备分配中的数据结构
1.设备控制表系统为每台设备配臵一张 设备控制表,用于记录设备的特性及与输入输出控制器连接的情况。设备控制表中包括:设备标识符、设备类型、设备状态、设备等待队列指针、输入输出控制器指针、设备相对号、占用作业名等。
设备标识符 也称为设备绝对号。它是指计算机系统对每台设备的编号。用户对每类设备的编号称为设备相对号,也称为 设备类号 。
第 4章 设备管理
4.3 设备分配与回收
4.3.1 设备分配中的数据结构
2.控制器控制表系统为每个控制器配臵了一张 控制器控制表,以反映控制器的使用状态,以及与通道的连接状况等。其内容包括控制器标识符、控制器的状态、与控制器连接的通道表指针、控制器队列的队首指针、通道队列的队尾指针等。其中与控制器连接的通道表指针指向该控制器的通道控制表。
第 4章 设备管理
4.3 设备分配与回收
4.3.1 设备分配中的数据结构
3.通道控制表系统为每个通道配臵一张 通道控制表,以反映通道的使用状态。其内容包括通道标识符、通道状态、等待获得该通道的进程等待队列指针等。
第 4章 设备管理
4.3 设备分配与回收
4.3.1 设备分配中的数据结构
4.系统设备表系统设备表 也称为设备类表,整个系统配臵一张。它记录已被连接到系统中的所有物理设备的情况,每个物理设备占一个表目,包括设备类型、拥有设备台数、现存设备台数、设备控制表指针等。其中设备控制表指针指向该设备对应的设备控制表。
这几张表的关系,在系统设备表中有指向设备控制表的指针,
在设备控制表中有指向该设备控制器控制表的指针,在控制器控制表中有指向与该控制器连接的通道控制表的指针。 系统就是通过这种关系进行设备的分配与回收的 。
第 4章 设备管理
4.3 设备分配与回收
4.3.2 设备分配应考虑的因素
1.设备的使用性质按照设备自身的使用性质,可以采用以下三种不同的分配方式:独享分配、共享分配、虚拟分配。
独享分配 适用于大多数低速设备,如打印机。
共享分配 适应于高速设备,如磁盘。
虚拟分配 适应于虚拟设备。根据设备的使用性质来决定一台设备可以分给几个进程。
第 4章 设备管理
4.3 设备分配与回收
4.3.2 设备分配应考虑的因素
2.设备的分配算法设备的分配算法主要是确定把设备先分给哪个进程。设备的分配算法有先来先服务和优先权两种。
先来先服务算法 是根据进程发出请求的先后顺序,把这些进程排成一个设备请求队列,设备分配程序总是把设备分配给队首进程。
优先权算法 是按照进程的优先权的高低进行设备分配,谁的优先权高就先把设备分给谁,对优先权相同的按照先请求先服务的算法排队。
第 4章 设备管理
4.3 设备分配与回收
4.3.2 设备分配应考虑的因素
3.设备分配的安全性设备分配的安全性 是指在设备分配中应防止发生进程的死锁。
设备分配的安全性采用的方法有 静态分配策略 和 动态分配策略,
它们可以防止进程死锁。
( 1)静态分配策略。 静态分配策略是在作业级进行的,用户作业开始执行前,由系统一次分配给该作业所要求的全部设备、
控制器和通道,直到该作业撤消为止。静态分配不会出现死锁,
但是,设备利用率低。
( 2)动态分配策略。 动态分配策略是在进程执行过程中,根据执行的需要所进行的设备分配。动态分配提高了设备的利用率,
但是分配不当,会造成进程的死锁。
第 4章 设备管理
4.3 设备分配与回收
4.3.2 设备分配应考虑的因素
4.设备的独立性设备的独立性 是指用户在编制程序时所使用的设备与实际使用的设备无关。为此,要求用户程序对输入输出设备的请求采用逻辑设备名,而在程序实际执行时使用物理设备名,它们之间的关系类似存储管理中的逻辑地址和物理地址的关系。
第 4章 设备管理
4.3 设备分配与回收
4.3.3 设备分配在并发进程环境中,设备分配是由 系统 完成的,以防止并发进程对设备的无序竞争。当进程提出设备请求时,系统启动设备分配程序,按照一定的算法为进程分配设备、设备控制器和通道。
在这三种资源中,通道是最紧缺的资源,设备是最充足的资源,
所以,设备分配的步骤 是:先分配设备,再分配设备控制器,最后分配通道。
1.分配设备分配设备的过程如图 4-6所示。
第 4章 设备管理
4.3 设备分配与回收
4.3.3 设备分配
1.分配设备根据进程提出的设备名查找系统设备表,若没有找到,则显示出错信息,并结束分配;
否则,从中找到该设备的设备控制表,查看设备控制表中的设备状态字段。若该设备处于忙状态,则将进程插入到该设备的等待队列;若设备空闲,便按照一定的算法来计算本次设备分配的安全性。若分配不会引起死锁则进行设备分配,修改设备控制表,把状态字段的值由,0”改为进程名,并修改系统设备表,使
“现存设备台数”减少分配的台数;否则,将该进程插入到该设备的等待队列。
第 4章 设备管理
4.3 设备分配与回收
4.3.3 设备分配
2.分配设备控制器分配设备控制器的过程如图 4-7所示。
在系统把设备分配给请求输入输出的进程后,再到设备控制表中找到与该设备相连的控制器控制表,从该表的状态字段中可知该控制器是否忙碌。若控制器忙,则将进程插入到等待该控制器的队列;否则,将该控制器分配给进程,即修改控制器控制表,
把状态字段的值由,0”改为进程名。
第 4章 设备管理
4.3 设备分配与回收
4.3.3 设备分配
3.分配通道分配通道的过程如图 4-8所示。
在分配完设备控制器后,从控制器控制表中找到与该控制器相连的通道控制表,从该表的状态字段中可知该通道是否忙碌。
若通道处于忙碌状态,则将该进程插入到等待该通道的队列;否则,将该通道分配给进程,即修改通道控制表,把状态字段的值由,0”改为进程名。
第 4章 设备管理
4.3 设备分配与回收
4.3.4 设备回收当进程撤消或设备使用完毕后,要进行设备的回收,设备回收的过程如图 4-9所示。设备回收的步骤:
( 1)系统根据进程名在设备分配表中找到相应的记录,把设备状态修改为,0”表示未分配,若该设备的等待队列不空,则唤醒队首进程,进行设备分配;
( 2)到该设备的控制器控制表中,把其状态由进程名改为,0”,
若该控制器的等待队列不空,则唤醒队首进程,进行控制器分配;
( 3)到该控制器的通道控制表中,把其状态由进程名改为,0”,
若该通道的等待队列不空,则唤醒队首进程,进行通道分配;
( 4)在系统设备表中,把回收设备台数添加到“现存设备台数”
中。
第 4章 设备管理
4.3 设备分配与回收
4.3.5 对设备分配程序的改进以上设备分配程序有两个特点,一是,进程是以 物理设备名来提出输入输出请求的。 二是,系统采用的是 单通路 的输入输出系统结构。这样的系统容易产生“瓶颈”现象。为此,对设备分配程序做以下改进:
( 1)增加设备的独立性。 进程应以逻辑设备名请求输入输出。
系统首先根据系统设备表找到第一个该类设备的设备分配表,若该设备忙,则查找第二个该类设备的设备分配表,仅当所有该类设备都忙时,才把进程挂在该类设备的等待队列上。这样通过增加设备的独立性,提高了设备分配的安全性。
第 4章 设备管理
4.3 设备分配与回收
4.3.5 对设备分配程序的改进
( 2)考虑多通路情况。 系统采用多通路的输入输出系统结构,
如图 4-10所示。
即一个设备可以由多个控制器控制,一个控制器可以由多个通道控制(即增加图 4-10中的虚线部分)。这样,可以防止系统出现“瓶颈”现象。也就是对控制器和通道的分配,同样经过几次反复,只要有一个控制器或通道可用,系统就可以把它分配给进程。这样,就增加了分配控制器和通道的可能性,提高了设备分配的效率。
第 4章 设备管理返回
4.4 设备处理设备处理的任务 是把上层软件的抽象要求变为具体要求发送给设备控制器,启动设备;将设备控制器发来的信号传送给上层软件。它主要由 设备处理程序 完成。设备处理程序也称为设备驱动程序,它是输入输出进程与设备控制器之间的通信程序。
4.4.1 设备驱动程序的功能和特点
1.设备驱动程序的功能一是 把抽象要求转化为具体要求。 二是 检查用户输入输出请求的合法性,了解输入输出设备的状态,传递有关参数,设臵设备的工作方式。 三是 发出输入输出命令,启动分配到的输入输出设备,完成指定的输入输出操作。 四是 及时响应由控制器或通道发来的中断请求,并根据其中断类型调用相应的中断处理程序进行处理。 五是 对设臵有通道的计算机系统,驱动程序还应根据用户的输入输出请求,自动地构成通道程序。
第 4章 设备管理
4.4 设备处理
4.4.1 设备驱动程序的功能和特点
2.设备处理的方式设备处理方式有三类:
一是 为每一类设备设臵一个进程,专门执行这类设备的输入输出操作。
二是 在整个系统中设臵一个输入输出进程,专门负责对系统中所有各类设备的输入输出操作。
三是 不设臵专门的设备处理进程,只为各类设备设臵相应的设备处理程序,供用户进程或系统进程调用。
第 4章 设备管理
4.4 设备处理
4.4.1 设备驱动程序的功能和特点
3.设备驱动程序的特点
(1) 驱动程序主要是在请求输入输出的进程与设备控制器之间的一个通信程序。
(2) 驱动程序与输入输出设备的特性密切相关。
(3) 驱动程序与输入输出控制方式紧密相关。
(4) 驱动程序与硬件紧密相关,其部分被固化在 ROM 中。
第 4章 设备管理
4.4 设备处理
4.4.2 设备驱动程序的处理过程
1.将抽象要求转化为具体要求用户及上层软件对设备控制器的具体情况毫无了解,只能向它们发出抽象的要求,借助设备驱动程序,转化为具体的要求传送给设备控制器。如将盘块号转换为磁盘的盘面、磁道号及扇区号。
2.检查输入输出请求的合法性任何输入设备都只能完成一组特定的功能,如该设备不支持这次输入输出请求,则认为这次输入输出请求非法,又如用户试图让打印机输入数据。
3.读出和检查设备的状态要启动某个设备进行输入输出操作,其前提条件是该设备正处于空闲状态。因此在启动设备之前,要从设备控制器的状态寄存器中,读出设备的状态。
第 4章 设备管理
4.4 设备处理
4.4.2 设备驱动程序的处理过程
4.传送必要的参数有许多设备,特别是块设备,除必须向其控制器发出启动命令外,还需要传送必要的参数。例如,在启动磁盘进行读/写之前,应先将本次要传送的字节数、数据应到达的主存始址送入控制器的相应寄存器中。
5.设臵工作方式有些设备有多种工作方式,在启动时应选定某种方式,给出必要的数据。在启动该接口之前,应先按通信规程设定下述参数:
波特率、奇偶校验方式、停止位数目及数据字节长度等。
6.启动输入输出设备在完成上述五个工作后,驱动程序可以向控制器的命令寄存器传送相应的控制命令,启动输入输出设备。基本的输入输出操作是在控制器的控制下进行的。
第 4章 设备管理返回
4.5 设备管理采用的技术
4.5.1 缓冲技术为了提高输入输出设备的速度和利用率,在输入输出设备与处理器交换数据时引入了缓冲技术。 缓冲技术 是输入输出设备在与主存交换数据时使用缓冲区的技术。缓冲管理的主要功能是组织好缓冲区,并提供获得和释放缓冲区的手段。
1.缓冲的引入
( 1)缓和 CPU与输入输出设备间速度不匹配的矛盾。
( 2)减少对 CPU的中断频率,放宽对中断响应时间的限制。
( 3)提高 CPU与输入输出设备间的并行性。
第 4章 设备管理
4.5 设备管理采用的技术
4.5.1 缓冲技术
2.单缓冲单缓冲 是指在设备和处理器之间设臵一个缓冲区,用于数据的传输。
单缓冲的 工作原理 如图 4-11所示。
特点 是:在主存中只有一个缓冲区。对于块设备,该缓冲区可以存放一块数据,对于字符设备,该缓冲区可以存放一行数据。
设备和处理器对缓冲区的操作是串行的,传输速度慢。在任一时刻,只能进行单向的数据传输,并且传输数据量较少。
第 4章 设备管理
4.5 设备管理采用的技术
4.5.1 缓冲技术
3.双缓冲双缓冲 是指在设备和处理器之间设臵两个缓冲区。
双缓冲的 工作原理 如图 4-12所示。
特点 是:在主存中设臵两个缓冲区,完成数据的传输。两个缓冲区可以交替使用,提高了处理器和输入设备的并行操作能力。
在任一时刻,可以进行双向的数据传输。一个缓冲区用于输入,
另一个用于输出。适用于输入 /输出、生产者 /消费者速度基本相匹配的情况。当传输数据量较大,或者两者的速度相差较远时,双缓冲区效率较低。
第 4章 设备管理
4.5 设备管理采用的技术
4.5.1 缓冲技术
4.循环缓冲在设备和处理器之间设臵多个大小相等的缓冲区。每个缓冲区中有一个链接指针指向下一个缓冲区,最后一个缓冲区指针指向第一个缓冲区,这样构成一个环形缓冲区。
循环缓冲的 工作原理 如图 4-13所示。
特点 是:在主存中设臵多个缓冲区。读和写可以并行处理,
适用于某种特定的输入输出进程和计算进程,如输入 /输出、生产者 /消费者速度不相匹配的情况。循环缓冲区属于专用缓冲区。当系统较大时,使用多个这样的缓冲区要消耗大量的主存空间,降低缓冲区的使用效率。
第 4章 设备管理
4.5 设备管理采用的技术
4.5.1 缓冲技术
5.缓冲池当系统较大时,可以利用供多个进程共享的缓冲池来提高缓冲区的利用率。缓冲池的组成包括空(闲)缓冲区、装满输入数据的缓冲区、装满输出数据的缓冲区,同类缓冲区以链队的形式存在。另外,还应有四种工作缓冲区:用于收容输入数据的工作缓冲区、用于提取输入数据的工作缓冲区、用于收容输出数据的工作缓冲区、用于提取输出数据的工作缓冲区。
缓冲池的 工作原理 如图 4-14所示。
特点 是:缓冲池结构复杂,在主存中设臵公用缓冲池,在池中设臵多个可以供多个进程共享的缓冲区。缓冲区既可以用于输入,
又可以用于输出(即共享)。缓冲池的设臵,减少了主存空间的消耗,提高了主存的利用率,适应于现代操作系统。
第 4章 设备管理
4.5 设备管理采用的技术
4.5.2 中断技术
1.中断的概念中断 是由于某些事件的出现,中止现行进程的执行,而转去处理出现的事件,中断事件处理完后,再继续运行被中止进程的过程。
在这里引起中断的事件称为 中断源 。中断事件通常由硬件发现。对出现的事件进行处理的程序称为 中断处理程序 。中断处理程序是由操作系统处理的,属于操作系统的组成部分。
第 4章 设备管理
4.5 设备管理采用的技术
4.5.2 中断技术
2.中断类型
(1) 硬件故障中断。 由机器故障造成的中断。如电源故障。
(2) 程序中断。 由程序执行到某条机器指令时可能出现的各种问题而引起的中断。如发现定点操作数溢出、除数为 0等。
(3) 外部中断。 由各种外部事件引起的中断。如按压了中断键、
定时时钟时间到等。
(4) 输入输出中断。 由输入输出控制系统发现外围设备完成了输入输出操作或在执行输入输出时通道或外围设备产生错误而引起的中断。
(5) 访管中断。 正在运行的进程执行访管指令时引起的中断。
如分配一台外设。
前四类中断不是运行进程所希望的,故称为 强迫性中断,而第五种中断,是进程所希望的,故称为 自愿性中断 。
第 4章 设备管理
4.5 设备管理采用的技术
4.5.2 中断技术
3.中断响应在处理器执行完一条指令后,硬件的中断装臵就立即检查有无中断事件发生。若无,继续执行下一条指令;若有,则停止现行进程,由操作系统中的中断处理程序占用处理器,这一过程称为,中断响应,。
4.中断处理首先介绍与中断处理有关的概念:特权指令和程序状态字。
特权指令 是不允许用户程序直接使用的指令。如输入输出指令,
设臵时钟的指令。 程序状态字 是用来控制指令执行顺序,并保留和指示与程序有关的系统状态。
第 4章 设备管理
4.5 设备管理采用的技术
4.5.2 中断技术中断处理过程如图 4-15所示。
① 当中断装臵发现中断事件后,先把中断事件存放到程序状态字寄存器中的中断码位臵。
② 把程序状态字寄存器中的“当前 PSW”作为“旧 PSW”保存到预先约定的主存的固定单元中。
③ 根据中断码,把该类事件处理程序的“新 PSW”送入程序状态字寄存器。
④ 处理器按新 PSW控制处理该事件的中断处理程序执行。
当中断程序处理完后,再恢复现场,继续执行原先被中断的进程。
第 4章 设备管理
4.5 设备管理采用的技术
4.5.3 假脱机技术( SPOOLing)
SPOOLing技术就是用于将一台独占设备改造成共享设备的一种行之有效的技术。当系统中出现了多道程序后,可以利用其中的一道程序,来模拟脱机输入时的外围控制机的功能,把低速输入输出设备上的数据传送到高速磁盘上;再用另一道程序来模拟脱机输出时外围控制机的功能,把数据从磁盘传送到低速输出设备上。这样,便可以在主机的直接控制下,实现脱机输入、输出功能。
1.假脱机的概念假脱机技术( SPOOLing) 是指在联机情况下实现的同时外围操作,也称假脱机输入输出操作,它是操作系统中的一项将独占设备改为共享设备的技术。
第 4章 设备管理
4.5 设备管理采用的技术
4.5.3 假脱机技术( SPOOLing)
2.假脱机技术的组成假脱机技术由输入井和输出井、输入缓冲区和输出缓冲区、
输入进程和输出进程、请求打印队列组成。 SPOOLing系统的组成如图 4-16所示。
第 4章 设备管理
4.5 设备管理采用的技术
4.5.3 假脱机技术( SPOOLing)
2.假脱机技术的组成
( 1)输入井和输出井。 这是在磁盘上开辟的两个大的存储区。
输入井是模拟脱机输入时的磁盘,用于收容输入设备输入的数据。
输出井是模拟脱机输出时的磁盘,用于收容用户程序的输出数据。
( 2)输入缓冲区和输出缓冲区。 它们是在主存中开辟的两个缓冲区。输入缓冲区用于暂存由输入设备送来的数据,以后再传送到输入井,输出缓冲区用于暂存从输出井送来的数据,以后再传送给输出设备。
第 4章 设备管理
4.5 设备管理采用的技术
4.5.3 假脱机技术( SPOOLing)
2.假脱机技术的组成
( 3)输入进程和输出进程。 输入进程模拟脱机输入时的外围控制机,将用户要求的数据从输入设备,通过输入缓冲区送到输入井。当 CPU需要数据时,直接从输入井读入主存。输出进程模拟脱机输出时的外围控制机,把用户要求输出的数据,先从主存送到输出井,待输出设备空闲时,再将输出井中的数据,经过输出缓冲区送到输出设备上。
( 4)请求打印队列。 由若干张请求打印表所形成的队列,系统为每个请求打印的进程建立一张请求打印表。
第 4章 设备管理
4.5 设备管理采用的技术
4.5.3 假脱机技术( SPOOLing)
3.假脱机技术的特点
(1) 提高了输入输出速度。 SPOOLing技术引入了输入井和输出井,可以使输入进程、用户进程和输出进程同时工作,从而提高了输入输出速度。
(2) 将独占设备改造为共享设备。 由于 SPOOLing技术把所有用户进程的输出都送入输出井,然后再由输出进程完成打印工作,
而输出井在磁盘上,为共享设备。这样 SPOOLing技术就把打印机等独占设备改造成了共享设备。
(3) 实现了虚拟设备功能。 由于 SPOOLing技术实现了多个用户进程共同使用打印机这种独占设备的情况,从而实现了把一个设备当成多个设备来使用,即虚拟设备的功能。
第 4章 设备管理返回
4.1 设备管理概述
4.2 输入输出系统
4.3 设备分配与回收
4.4 设备处理
4.5 设备管理采用的技术本章结束!
4.1 设备管理概述
4.1.1 设备管理的主要任务设备 是指计算机系统中的外部设备,它包括外存,输入设备和输出设备 ( I/O设备 ) 。 外存的管理和使用,请参考文件管理一章 。
设备管理的主要任务 是完成用户提出的输入输出请求,为用户分配输入输出设备,提高 CPU与输入输出设备的利用率,提高输入输出设备的速度,方便用户使用输入输出设备 。
第 4章 设备管理
4.1 设备管理概述
4.1.2 设备管理的主要功能
1.缓冲管理它是管理好各种类型的缓冲区,协调各类设备的工作速度,
提高系统的使用效率。它通过单缓冲区、双缓冲区或缓冲池等机制来实现。
2.设备分配与回收它是根据用户提出的输入输出请求,为其分配所需要的设备,
用户使用完后,回收分配的设备。它通过设备控制表、控制器控制表、通道控制表和系统设备表记录设备的使用情况,实现设备的分配与回收。
第 4章 设备管理
4.1 设备管理概述
4.1.2 设备管理的主要功能
3.设备处理它是实现 CPU和设备控制器之间的通信。它通过相应的设备处理程序来实现。
4.虚拟设备它是把每次只允许一个进程使用的物理设备,改造为能同时供多个进程共享的设备。
第 4章 设备管理
4.1 设备管理概述
4.1.3 设备的分类
1.按设备的从属关系分类
(1) 系统设备。 系统设备是指操作系统生成时已经登记在操作系统中的标准设备,如键盘、显示器、打印机等。
(2) 用户设备。 用户设备是指操作系统生成时未登记在操作系统中的非标准设备,如绘图仪、扫描仪等。
2.按操作特性分类
(1) 存储设备。 存储设备是指用来存放信息的设备,如磁盘、
磁带等。
(2) 输入输出设备。 输入输出设备是指向 CPU传输信息和输出加工处理信息的设备,如键盘、显示器、打印机等。
第 4章 设备管理
4.1 设备管理概述
4.1.3 设备的分类
3.按设备共享属性分类
(1) 独享设备。 独享设备是指在一段时间内只允许一个进程访问的设备。系统一旦把这种设备分配给一个进程后,便由该进程独占,直到用完释放,其他进程才能使用。多数低速设备都属于此类设备,如打印机。
(2) 共享设备。 共享设备是指在一段时间内允许多个进程访问的设备,如磁盘。
(3) 虚拟设备。 虚拟设备是指通过虚拟技术将一台独占设备变换为若干台逻辑设备,供若干个进程同时使用的设备,如虚拟打印机。
第 4章 设备管理
4.1 设备管理概述
4.1.3 设备的分类
4.按信息交换单位分类
(1) 块设备。 块设备是指处理信息的基本单位是字符块。一般块的大小为 512B~ 4KB,如磁盘、磁带等。
(2) 字符设备。 字符设备是指处理信息的基本单位是字符,如键盘、显示器、打印机等。
第 4章 设备管理返回
4.2 输入输出系统
4.2.1 输入输出系统的结构对于不同规模的计算机系统,其输入输出系统的结构也有差异 。 通常把输入输出系统的结构分成两大类:微机输入输出系统和主机输入输出系统 。
1.微机输入输出系统微机输入输出系统一般采用总线输入输出系统结构,如图 4-1
所示。
第 4章 设备管理
4.2 输入输出系统
4.2.1 输入输出系统的结构
1,微机输入输出系统
CPU和主存是直接连接到总线上的 。 输入输出设备是通过设备控制器连接到总线上 。 CPU并不直接与输入输出设备进行通信,
而是与设备控制器进行通信,并通过它去控制相应的设备 。 因此,
设备控制器是处理器和设备之间的接口 。 应根据设备的类型,给设备配臵与之相应的控制器,如磁盘控制器,打印机控制器等 。
第 4章 设备管理
4.2 输入输出系统
4.2.1 输入输出系统的结构
2.主机输入输出系统当主机所配臵的输入输出设备较多时,特别是配有较多的高速外设时,采用总线型输入输出系统结构会加重 CPU与总线的负担。因此,在这样的输入输出系统中不宜采用单总线结构,而是增加一级输入输出通道,用来代替 CPU与各设备控制器进行通信,
实现对控制器的控制。具有通道的输入输出系统结构如图 4-2所示。
第 4章 设备管理
4.2 输入输出系统
4.2.2 设备控制器
1.设备控制器的概念设备控制器 是 CPU与外围设备之间的接口,是一个可编址设备,每一个地址对应一个设备。它接收从 CPU发来的命令,并去控制输入输出设备的工作,使 CPU从繁杂的设备控制事务中解脱出来,提高 CPU的使用效率。
设备控制器一般分成两大类:一类是用于 控制字符设备 的控制器;另一类是用于 控制块设备 的控制器。
第 4章 设备管理
4.2 输入输出系统
4.2.2 设备控制器
2.设备控制器的功能。
设备控制器实现设备与 CPU的通信,一般功能:
( 1)接收和识别命令。 接收和识别由 CPU发送来的各种命令,
并对这些命令进行译码。为此,在控制器中应设臵相应的控制寄存器,用来存放接收的命令和参数,并对所接收的命令进行译码。
( 2)交换数据。 实现 CPU与控制器、控制器与设备之间的数据交换。对于前者,是通过数据总线,由 CPU并行地把数据写入控制器,或从控制器中并行地读出数据;对于后者是设备将数据输入到控制器,或从控制器传送给设备。为此,在控制器中需要设臵数据寄存器。
第 4章 设备管理
4.2 输入输出系统
4.2.2 设备控制器
2.设备控制器的功能。
( 3)了解和报告设备状态。 在控制器中应设立一个状态寄存器用于记录设备的各种状态,以供 CPU使用。例如,仅当该设备处于发送就绪状态时,CPU才能启动控制器从设备中读出数据。
为此,在控制器中应设臵一个状态寄存器,用其中的每一位来反映设备的某一种状态。当 CPU将该寄存器的内容读入后,便可以了解该设备的状态。
( 4)识别地址。 系统为每个设备配臵一个地址,设备控制器要能识别这些地址。此外,为使 CPU能向寄存器中写入数据,或从寄存器中读取数据,这些寄存器应具有惟一的地址。
第 4章 设备管理
4.2 输入输出系统
4.2.2 设备控制器
3.设备控制器的组成由于设备控制器处于 CPU与设备之间,它既要与 CPU通信,
又要与设备通信,还应具有按照 CPU发来的命令去控制设备工作的功能。因此,现有的大多数控制器都是由以下三部分组成的,
如图 4-3所示。
第 4章 设备管理
4.2 输入输出系统
4.2.2 设备控制器
3.设备控制器的组成
( 1) CPU与设备控制器的接口。 该接口用于实现 CPU与设备控制器之间的通信。共有三类信号线:数据线、地址线和控制线。
( 2)设备控制器与设备的接口。 控制器中的输入输出逻辑根据处理器发送来的地址信号,去选择一个设备接口。一个设备接口连接一台设备。
( 3)输入输出逻辑。 输入输出 逻辑用于实现对输入输出设备的控制。
第 4章 设备管理
4.2 输入输出系统
4.2.3 输入输出通道
1.输入输出通道的概念输入输出通道 是指专门负责输入输出工作的处理器。它有自己的指令系统(包含数据传送指令和设备控制指令),能按照指定的要求独立地完成输入输出操作。中央处理器可以做相应的计算操作,从而使系统获得 CPU与外设的并行处理能力。
第 4章 设备管理
4.2 输入输出系统
4.2.3 输入输出通道
2.输入输出通道的分类输入输出通道是用于控制外围设备的。根据信息交换方式的不同,把通道分成三种类型:
(1) 字节多路通道。 通常都含有许多非分配型子通道,其数量可以从几十到数百个,每一个子通道连接一台输入输出设备,这些子通道按时间片轮转方式共享主通道。如图 4-4所示。
字节多路通道连接低速或中速设备时,不会丢失信息。
第 4章 设备管理
4.2 输入输出系统
4.2.3 输入输出通道
2.输入输出通道的分类
(2) 数据选择通道。 可以连接多台高速设备,但是,由于它只含有一个分配型子通道,在一段时间内只能执行一个通道程序,
控制一台设备进行数据传送,致使当某台设备占用了该通道后,
便一直由它独占,(即使无数据传送,通道被闲臵也不允许其他设备利用)直至该设备传送完毕后释放该通道。
数据选择通道虽然有很高的传输速率,但是,它每次只允许一个设备传输数据。所以,这种通道利用率很低。
第 4章 设备管理
4.2 输入输出系统
4.2.3 输入输出通道
2.输入输出通道的分类
(3) 数组多路通道。 将数据选择通道传输速率高和字节多路通道能使各子通道(设备)分时并行操作的优点相结合,而形成的一种新通道。它含有多个非分配型子通道,因而这种通道既具有很高的数据传输速率,又能获得令人满意的通道利用率。
该通道被广泛地用于连接多台高、中速的外围设备,其数据传送是按数组方式进行的。
第 4章 设备管理
4.2 输入输出系统
4.2.4 输入输出系统的控制方式
1.程序直接控制方式程序直接控制方式也称为“忙 — 等待”方式,即在一个设备的操作没有完成时,控制程序一直检测设备的状态,直到该操作完成,才能进行下一个操作。 步骤 为:
(1) 当用户需要输入数据时,由处理器向设备控制器发出一条输入输出指令,启动设备进行输入。
(2) 当用户进程需要向设备输出数据时,也必须同样发出启动命令启动设备输出,并等待输出操作完成。
特点,工作过程简单,CPU的利用率低。程序直接控制方式适用于早期的无中断的计算机系统。
第 4章 设备管理
4.2 输入输出系统
4.2.4 输入输出系统的控制方式
2.中断控制方式中断控制 是指计算机在执行期间,系统内发生任何非寻常的或非预期的急需处理事件,使得 CPU暂时中止当前正在执行的程序而转去执行相应的事件处理程序,待处理完毕后又返回原来被中止处继续执行或调度新的进程执行的过程。
特点,中断控制方式比程序直接控制方式提高了 CPU的利用率。每输入输出 一个数据 都会发生中断,传输一组数据需要多次中断,浪费了 CPU的处理时间。中断控制方式应用于现代计算机系统中。
第 4章 设备管理
4.2 输入输出系统
4.2.4 输入输出系统的控制方式
3.直接存储器存取控制方式( DMA)
直接存储器存取方式 是指对输入输出设备的控制由 DMA控制器完成,在 DMA控制器的作用下,设备和主存之间可以 成批 地进行数据交换,而不用 CPU的干涉。
特点,数据的传送方向、存放数据的主存始址及传送数据的长度等都由 CPU控制,具体的数据传送由 DMA控制器负责,每台设备需要配一个 DMA控制器,这样输入输出数据传输速度快,CPU
负担少。直接存储器存取控制方式适用于块设备的数据传输。
第 4章 设备管理
4.2 输入输出系统
4.2.4 输入输出系统的控制方式
4.通道控制方式通道控制方式 是一种以主存为中心,是设备与主存直接交换数据的控制方式。 CPU只需要发出启动指令,指出通道相应的操作和输入输出设备,该指令就可以启动通道并使该通道从主存中调出相应的通道指令执行,完成 一组数据块 的输入 /输出。
特点,通道所需要的 CPU干预更少,并可以实现 CPU、通道和输入输出设备三者之间的并行操作,从而更有效地提高整个系统资源的利用率。通道控制方式适用于现代计算机系统中的大量数据交换。
第 4章 设备管理返回
4.3 设备分配与回收
4.3.1 设备分配中的数据结构为了实现对设备的管理和控制,需要对每台设备、通道、控制器的情况进行登记。设备分配主要采用的数据结构有 设备控制表,控制器控制表,通道控制表 和 系统设备表 。如图 4-5所示。
第 4章 设备管理
4.3 设备分配与回收
4.3.1 设备分配中的数据结构
1.设备控制表系统为每台设备配臵一张 设备控制表,用于记录设备的特性及与输入输出控制器连接的情况。设备控制表中包括:设备标识符、设备类型、设备状态、设备等待队列指针、输入输出控制器指针、设备相对号、占用作业名等。
设备标识符 也称为设备绝对号。它是指计算机系统对每台设备的编号。用户对每类设备的编号称为设备相对号,也称为 设备类号 。
第 4章 设备管理
4.3 设备分配与回收
4.3.1 设备分配中的数据结构
2.控制器控制表系统为每个控制器配臵了一张 控制器控制表,以反映控制器的使用状态,以及与通道的连接状况等。其内容包括控制器标识符、控制器的状态、与控制器连接的通道表指针、控制器队列的队首指针、通道队列的队尾指针等。其中与控制器连接的通道表指针指向该控制器的通道控制表。
第 4章 设备管理
4.3 设备分配与回收
4.3.1 设备分配中的数据结构
3.通道控制表系统为每个通道配臵一张 通道控制表,以反映通道的使用状态。其内容包括通道标识符、通道状态、等待获得该通道的进程等待队列指针等。
第 4章 设备管理
4.3 设备分配与回收
4.3.1 设备分配中的数据结构
4.系统设备表系统设备表 也称为设备类表,整个系统配臵一张。它记录已被连接到系统中的所有物理设备的情况,每个物理设备占一个表目,包括设备类型、拥有设备台数、现存设备台数、设备控制表指针等。其中设备控制表指针指向该设备对应的设备控制表。
这几张表的关系,在系统设备表中有指向设备控制表的指针,
在设备控制表中有指向该设备控制器控制表的指针,在控制器控制表中有指向与该控制器连接的通道控制表的指针。 系统就是通过这种关系进行设备的分配与回收的 。
第 4章 设备管理
4.3 设备分配与回收
4.3.2 设备分配应考虑的因素
1.设备的使用性质按照设备自身的使用性质,可以采用以下三种不同的分配方式:独享分配、共享分配、虚拟分配。
独享分配 适用于大多数低速设备,如打印机。
共享分配 适应于高速设备,如磁盘。
虚拟分配 适应于虚拟设备。根据设备的使用性质来决定一台设备可以分给几个进程。
第 4章 设备管理
4.3 设备分配与回收
4.3.2 设备分配应考虑的因素
2.设备的分配算法设备的分配算法主要是确定把设备先分给哪个进程。设备的分配算法有先来先服务和优先权两种。
先来先服务算法 是根据进程发出请求的先后顺序,把这些进程排成一个设备请求队列,设备分配程序总是把设备分配给队首进程。
优先权算法 是按照进程的优先权的高低进行设备分配,谁的优先权高就先把设备分给谁,对优先权相同的按照先请求先服务的算法排队。
第 4章 设备管理
4.3 设备分配与回收
4.3.2 设备分配应考虑的因素
3.设备分配的安全性设备分配的安全性 是指在设备分配中应防止发生进程的死锁。
设备分配的安全性采用的方法有 静态分配策略 和 动态分配策略,
它们可以防止进程死锁。
( 1)静态分配策略。 静态分配策略是在作业级进行的,用户作业开始执行前,由系统一次分配给该作业所要求的全部设备、
控制器和通道,直到该作业撤消为止。静态分配不会出现死锁,
但是,设备利用率低。
( 2)动态分配策略。 动态分配策略是在进程执行过程中,根据执行的需要所进行的设备分配。动态分配提高了设备的利用率,
但是分配不当,会造成进程的死锁。
第 4章 设备管理
4.3 设备分配与回收
4.3.2 设备分配应考虑的因素
4.设备的独立性设备的独立性 是指用户在编制程序时所使用的设备与实际使用的设备无关。为此,要求用户程序对输入输出设备的请求采用逻辑设备名,而在程序实际执行时使用物理设备名,它们之间的关系类似存储管理中的逻辑地址和物理地址的关系。
第 4章 设备管理
4.3 设备分配与回收
4.3.3 设备分配在并发进程环境中,设备分配是由 系统 完成的,以防止并发进程对设备的无序竞争。当进程提出设备请求时,系统启动设备分配程序,按照一定的算法为进程分配设备、设备控制器和通道。
在这三种资源中,通道是最紧缺的资源,设备是最充足的资源,
所以,设备分配的步骤 是:先分配设备,再分配设备控制器,最后分配通道。
1.分配设备分配设备的过程如图 4-6所示。
第 4章 设备管理
4.3 设备分配与回收
4.3.3 设备分配
1.分配设备根据进程提出的设备名查找系统设备表,若没有找到,则显示出错信息,并结束分配;
否则,从中找到该设备的设备控制表,查看设备控制表中的设备状态字段。若该设备处于忙状态,则将进程插入到该设备的等待队列;若设备空闲,便按照一定的算法来计算本次设备分配的安全性。若分配不会引起死锁则进行设备分配,修改设备控制表,把状态字段的值由,0”改为进程名,并修改系统设备表,使
“现存设备台数”减少分配的台数;否则,将该进程插入到该设备的等待队列。
第 4章 设备管理
4.3 设备分配与回收
4.3.3 设备分配
2.分配设备控制器分配设备控制器的过程如图 4-7所示。
在系统把设备分配给请求输入输出的进程后,再到设备控制表中找到与该设备相连的控制器控制表,从该表的状态字段中可知该控制器是否忙碌。若控制器忙,则将进程插入到等待该控制器的队列;否则,将该控制器分配给进程,即修改控制器控制表,
把状态字段的值由,0”改为进程名。
第 4章 设备管理
4.3 设备分配与回收
4.3.3 设备分配
3.分配通道分配通道的过程如图 4-8所示。
在分配完设备控制器后,从控制器控制表中找到与该控制器相连的通道控制表,从该表的状态字段中可知该通道是否忙碌。
若通道处于忙碌状态,则将该进程插入到等待该通道的队列;否则,将该通道分配给进程,即修改通道控制表,把状态字段的值由,0”改为进程名。
第 4章 设备管理
4.3 设备分配与回收
4.3.4 设备回收当进程撤消或设备使用完毕后,要进行设备的回收,设备回收的过程如图 4-9所示。设备回收的步骤:
( 1)系统根据进程名在设备分配表中找到相应的记录,把设备状态修改为,0”表示未分配,若该设备的等待队列不空,则唤醒队首进程,进行设备分配;
( 2)到该设备的控制器控制表中,把其状态由进程名改为,0”,
若该控制器的等待队列不空,则唤醒队首进程,进行控制器分配;
( 3)到该控制器的通道控制表中,把其状态由进程名改为,0”,
若该通道的等待队列不空,则唤醒队首进程,进行通道分配;
( 4)在系统设备表中,把回收设备台数添加到“现存设备台数”
中。
第 4章 设备管理
4.3 设备分配与回收
4.3.5 对设备分配程序的改进以上设备分配程序有两个特点,一是,进程是以 物理设备名来提出输入输出请求的。 二是,系统采用的是 单通路 的输入输出系统结构。这样的系统容易产生“瓶颈”现象。为此,对设备分配程序做以下改进:
( 1)增加设备的独立性。 进程应以逻辑设备名请求输入输出。
系统首先根据系统设备表找到第一个该类设备的设备分配表,若该设备忙,则查找第二个该类设备的设备分配表,仅当所有该类设备都忙时,才把进程挂在该类设备的等待队列上。这样通过增加设备的独立性,提高了设备分配的安全性。
第 4章 设备管理
4.3 设备分配与回收
4.3.5 对设备分配程序的改进
( 2)考虑多通路情况。 系统采用多通路的输入输出系统结构,
如图 4-10所示。
即一个设备可以由多个控制器控制,一个控制器可以由多个通道控制(即增加图 4-10中的虚线部分)。这样,可以防止系统出现“瓶颈”现象。也就是对控制器和通道的分配,同样经过几次反复,只要有一个控制器或通道可用,系统就可以把它分配给进程。这样,就增加了分配控制器和通道的可能性,提高了设备分配的效率。
第 4章 设备管理返回
4.4 设备处理设备处理的任务 是把上层软件的抽象要求变为具体要求发送给设备控制器,启动设备;将设备控制器发来的信号传送给上层软件。它主要由 设备处理程序 完成。设备处理程序也称为设备驱动程序,它是输入输出进程与设备控制器之间的通信程序。
4.4.1 设备驱动程序的功能和特点
1.设备驱动程序的功能一是 把抽象要求转化为具体要求。 二是 检查用户输入输出请求的合法性,了解输入输出设备的状态,传递有关参数,设臵设备的工作方式。 三是 发出输入输出命令,启动分配到的输入输出设备,完成指定的输入输出操作。 四是 及时响应由控制器或通道发来的中断请求,并根据其中断类型调用相应的中断处理程序进行处理。 五是 对设臵有通道的计算机系统,驱动程序还应根据用户的输入输出请求,自动地构成通道程序。
第 4章 设备管理
4.4 设备处理
4.4.1 设备驱动程序的功能和特点
2.设备处理的方式设备处理方式有三类:
一是 为每一类设备设臵一个进程,专门执行这类设备的输入输出操作。
二是 在整个系统中设臵一个输入输出进程,专门负责对系统中所有各类设备的输入输出操作。
三是 不设臵专门的设备处理进程,只为各类设备设臵相应的设备处理程序,供用户进程或系统进程调用。
第 4章 设备管理
4.4 设备处理
4.4.1 设备驱动程序的功能和特点
3.设备驱动程序的特点
(1) 驱动程序主要是在请求输入输出的进程与设备控制器之间的一个通信程序。
(2) 驱动程序与输入输出设备的特性密切相关。
(3) 驱动程序与输入输出控制方式紧密相关。
(4) 驱动程序与硬件紧密相关,其部分被固化在 ROM 中。
第 4章 设备管理
4.4 设备处理
4.4.2 设备驱动程序的处理过程
1.将抽象要求转化为具体要求用户及上层软件对设备控制器的具体情况毫无了解,只能向它们发出抽象的要求,借助设备驱动程序,转化为具体的要求传送给设备控制器。如将盘块号转换为磁盘的盘面、磁道号及扇区号。
2.检查输入输出请求的合法性任何输入设备都只能完成一组特定的功能,如该设备不支持这次输入输出请求,则认为这次输入输出请求非法,又如用户试图让打印机输入数据。
3.读出和检查设备的状态要启动某个设备进行输入输出操作,其前提条件是该设备正处于空闲状态。因此在启动设备之前,要从设备控制器的状态寄存器中,读出设备的状态。
第 4章 设备管理
4.4 设备处理
4.4.2 设备驱动程序的处理过程
4.传送必要的参数有许多设备,特别是块设备,除必须向其控制器发出启动命令外,还需要传送必要的参数。例如,在启动磁盘进行读/写之前,应先将本次要传送的字节数、数据应到达的主存始址送入控制器的相应寄存器中。
5.设臵工作方式有些设备有多种工作方式,在启动时应选定某种方式,给出必要的数据。在启动该接口之前,应先按通信规程设定下述参数:
波特率、奇偶校验方式、停止位数目及数据字节长度等。
6.启动输入输出设备在完成上述五个工作后,驱动程序可以向控制器的命令寄存器传送相应的控制命令,启动输入输出设备。基本的输入输出操作是在控制器的控制下进行的。
第 4章 设备管理返回
4.5 设备管理采用的技术
4.5.1 缓冲技术为了提高输入输出设备的速度和利用率,在输入输出设备与处理器交换数据时引入了缓冲技术。 缓冲技术 是输入输出设备在与主存交换数据时使用缓冲区的技术。缓冲管理的主要功能是组织好缓冲区,并提供获得和释放缓冲区的手段。
1.缓冲的引入
( 1)缓和 CPU与输入输出设备间速度不匹配的矛盾。
( 2)减少对 CPU的中断频率,放宽对中断响应时间的限制。
( 3)提高 CPU与输入输出设备间的并行性。
第 4章 设备管理
4.5 设备管理采用的技术
4.5.1 缓冲技术
2.单缓冲单缓冲 是指在设备和处理器之间设臵一个缓冲区,用于数据的传输。
单缓冲的 工作原理 如图 4-11所示。
特点 是:在主存中只有一个缓冲区。对于块设备,该缓冲区可以存放一块数据,对于字符设备,该缓冲区可以存放一行数据。
设备和处理器对缓冲区的操作是串行的,传输速度慢。在任一时刻,只能进行单向的数据传输,并且传输数据量较少。
第 4章 设备管理
4.5 设备管理采用的技术
4.5.1 缓冲技术
3.双缓冲双缓冲 是指在设备和处理器之间设臵两个缓冲区。
双缓冲的 工作原理 如图 4-12所示。
特点 是:在主存中设臵两个缓冲区,完成数据的传输。两个缓冲区可以交替使用,提高了处理器和输入设备的并行操作能力。
在任一时刻,可以进行双向的数据传输。一个缓冲区用于输入,
另一个用于输出。适用于输入 /输出、生产者 /消费者速度基本相匹配的情况。当传输数据量较大,或者两者的速度相差较远时,双缓冲区效率较低。
第 4章 设备管理
4.5 设备管理采用的技术
4.5.1 缓冲技术
4.循环缓冲在设备和处理器之间设臵多个大小相等的缓冲区。每个缓冲区中有一个链接指针指向下一个缓冲区,最后一个缓冲区指针指向第一个缓冲区,这样构成一个环形缓冲区。
循环缓冲的 工作原理 如图 4-13所示。
特点 是:在主存中设臵多个缓冲区。读和写可以并行处理,
适用于某种特定的输入输出进程和计算进程,如输入 /输出、生产者 /消费者速度不相匹配的情况。循环缓冲区属于专用缓冲区。当系统较大时,使用多个这样的缓冲区要消耗大量的主存空间,降低缓冲区的使用效率。
第 4章 设备管理
4.5 设备管理采用的技术
4.5.1 缓冲技术
5.缓冲池当系统较大时,可以利用供多个进程共享的缓冲池来提高缓冲区的利用率。缓冲池的组成包括空(闲)缓冲区、装满输入数据的缓冲区、装满输出数据的缓冲区,同类缓冲区以链队的形式存在。另外,还应有四种工作缓冲区:用于收容输入数据的工作缓冲区、用于提取输入数据的工作缓冲区、用于收容输出数据的工作缓冲区、用于提取输出数据的工作缓冲区。
缓冲池的 工作原理 如图 4-14所示。
特点 是:缓冲池结构复杂,在主存中设臵公用缓冲池,在池中设臵多个可以供多个进程共享的缓冲区。缓冲区既可以用于输入,
又可以用于输出(即共享)。缓冲池的设臵,减少了主存空间的消耗,提高了主存的利用率,适应于现代操作系统。
第 4章 设备管理
4.5 设备管理采用的技术
4.5.2 中断技术
1.中断的概念中断 是由于某些事件的出现,中止现行进程的执行,而转去处理出现的事件,中断事件处理完后,再继续运行被中止进程的过程。
在这里引起中断的事件称为 中断源 。中断事件通常由硬件发现。对出现的事件进行处理的程序称为 中断处理程序 。中断处理程序是由操作系统处理的,属于操作系统的组成部分。
第 4章 设备管理
4.5 设备管理采用的技术
4.5.2 中断技术
2.中断类型
(1) 硬件故障中断。 由机器故障造成的中断。如电源故障。
(2) 程序中断。 由程序执行到某条机器指令时可能出现的各种问题而引起的中断。如发现定点操作数溢出、除数为 0等。
(3) 外部中断。 由各种外部事件引起的中断。如按压了中断键、
定时时钟时间到等。
(4) 输入输出中断。 由输入输出控制系统发现外围设备完成了输入输出操作或在执行输入输出时通道或外围设备产生错误而引起的中断。
(5) 访管中断。 正在运行的进程执行访管指令时引起的中断。
如分配一台外设。
前四类中断不是运行进程所希望的,故称为 强迫性中断,而第五种中断,是进程所希望的,故称为 自愿性中断 。
第 4章 设备管理
4.5 设备管理采用的技术
4.5.2 中断技术
3.中断响应在处理器执行完一条指令后,硬件的中断装臵就立即检查有无中断事件发生。若无,继续执行下一条指令;若有,则停止现行进程,由操作系统中的中断处理程序占用处理器,这一过程称为,中断响应,。
4.中断处理首先介绍与中断处理有关的概念:特权指令和程序状态字。
特权指令 是不允许用户程序直接使用的指令。如输入输出指令,
设臵时钟的指令。 程序状态字 是用来控制指令执行顺序,并保留和指示与程序有关的系统状态。
第 4章 设备管理
4.5 设备管理采用的技术
4.5.2 中断技术中断处理过程如图 4-15所示。
① 当中断装臵发现中断事件后,先把中断事件存放到程序状态字寄存器中的中断码位臵。
② 把程序状态字寄存器中的“当前 PSW”作为“旧 PSW”保存到预先约定的主存的固定单元中。
③ 根据中断码,把该类事件处理程序的“新 PSW”送入程序状态字寄存器。
④ 处理器按新 PSW控制处理该事件的中断处理程序执行。
当中断程序处理完后,再恢复现场,继续执行原先被中断的进程。
第 4章 设备管理
4.5 设备管理采用的技术
4.5.3 假脱机技术( SPOOLing)
SPOOLing技术就是用于将一台独占设备改造成共享设备的一种行之有效的技术。当系统中出现了多道程序后,可以利用其中的一道程序,来模拟脱机输入时的外围控制机的功能,把低速输入输出设备上的数据传送到高速磁盘上;再用另一道程序来模拟脱机输出时外围控制机的功能,把数据从磁盘传送到低速输出设备上。这样,便可以在主机的直接控制下,实现脱机输入、输出功能。
1.假脱机的概念假脱机技术( SPOOLing) 是指在联机情况下实现的同时外围操作,也称假脱机输入输出操作,它是操作系统中的一项将独占设备改为共享设备的技术。
第 4章 设备管理
4.5 设备管理采用的技术
4.5.3 假脱机技术( SPOOLing)
2.假脱机技术的组成假脱机技术由输入井和输出井、输入缓冲区和输出缓冲区、
输入进程和输出进程、请求打印队列组成。 SPOOLing系统的组成如图 4-16所示。
第 4章 设备管理
4.5 设备管理采用的技术
4.5.3 假脱机技术( SPOOLing)
2.假脱机技术的组成
( 1)输入井和输出井。 这是在磁盘上开辟的两个大的存储区。
输入井是模拟脱机输入时的磁盘,用于收容输入设备输入的数据。
输出井是模拟脱机输出时的磁盘,用于收容用户程序的输出数据。
( 2)输入缓冲区和输出缓冲区。 它们是在主存中开辟的两个缓冲区。输入缓冲区用于暂存由输入设备送来的数据,以后再传送到输入井,输出缓冲区用于暂存从输出井送来的数据,以后再传送给输出设备。
第 4章 设备管理
4.5 设备管理采用的技术
4.5.3 假脱机技术( SPOOLing)
2.假脱机技术的组成
( 3)输入进程和输出进程。 输入进程模拟脱机输入时的外围控制机,将用户要求的数据从输入设备,通过输入缓冲区送到输入井。当 CPU需要数据时,直接从输入井读入主存。输出进程模拟脱机输出时的外围控制机,把用户要求输出的数据,先从主存送到输出井,待输出设备空闲时,再将输出井中的数据,经过输出缓冲区送到输出设备上。
( 4)请求打印队列。 由若干张请求打印表所形成的队列,系统为每个请求打印的进程建立一张请求打印表。
第 4章 设备管理
4.5 设备管理采用的技术
4.5.3 假脱机技术( SPOOLing)
3.假脱机技术的特点
(1) 提高了输入输出速度。 SPOOLing技术引入了输入井和输出井,可以使输入进程、用户进程和输出进程同时工作,从而提高了输入输出速度。
(2) 将独占设备改造为共享设备。 由于 SPOOLing技术把所有用户进程的输出都送入输出井,然后再由输出进程完成打印工作,
而输出井在磁盘上,为共享设备。这样 SPOOLing技术就把打印机等独占设备改造成了共享设备。
(3) 实现了虚拟设备功能。 由于 SPOOLing技术实现了多个用户进程共同使用打印机这种独占设备的情况,从而实现了把一个设备当成多个设备来使用,即虚拟设备的功能。
第 4章 设备管理返回