第七课 设备管理
(Devices Management)
教学目的,
设备管理不但要管理实际 I/O操作的设备(如磁盘机、
打印机),还要管理诸如设备控制器,DMA控制器、
中断控制器,I/O处理机(通道)等支持设备。设备
管理包括各种设备分配、缓冲区管理和实际物理 I/
O设备操作,通过管理达到提高设备利用率和方便
用户。
教学要求:
? 了解设备的分类,熟悉 设备管理的目标和功能。
? 熟悉 程序 I/O方式、中断方式,DMA方式和通道方式四种 I/O的
控制方式;掌握通道的概念,熟悉 通道类型。
? 熟悉 缓冲的概念,熟悉 单缓冲、双缓冲和多缓冲和缓冲池工
作原理,了解 UNIX系统的缓冲技术。
? 了解在进行设备分配时应考虑的设备的固有属性、设备的分
配算法、设备分配的安全性和设备的独立性等因素;掌握设
备分配中数据结构,熟悉 设备分配的流程;掌握 SPOOLing技
术概念和 SPOOLing系统的组成。
? 熟悉 设备处理程序的功能和处理方式,熟悉 设备处理程序的
处理过程。
(一) 设备管理的概述
( 1) I/O系统的组成:
1。微 机 I/O系统

2。主 机 I/O系统

A Typical PC Bus Structure
设备管理的概述 -1
( 2) 设备的分类
I/O设备的种类繁多, 从 OS观点来看, 其重要的性能
指标有:数据传输速率, 数据的传输单位, 设备的共
享属性等 。
1,按传输速率分类
? 低速设备:指传输速率为每秒钟几个字节到数百个字
节的设备 。 典型的设备有键盘, 鼠标, 语音的输入等;
? 中速设备:指传输速率在每秒钟数千个字节至数十千
个字节的设备 。 典型的设备有行式打印机, 激光打印
机等;
? 高速设备:指传输速率在数百千个字节至数兆字节的
设备 。 典型的设备有磁带机, 磁盘机, 光盘机等 。
设备的分类 -1
2.按信息交换的单位分类
? 块设备( Block Device):指以数据块为单位来组织和
传送数据信息的设备。这类设备用于存储信息,有磁盘
和磁带等。它属于有结构设备。典型的块设备是磁盘,
每个盘块的大小为 512B~ 4KB,磁盘设备的基本特征是:
①传输速率较高,通常每秒钟为几兆位;②它是可寻址
的,即可随机地读 /写任意一块;③磁盘设备的 I/O采用
DMA方式。
? 字符设备( Character Device):指以单个字符为单位
来传送数据信息的设备。这类设备一般用于数据的输入
和输出,有交互式终端、打印机等。它属于无结构设备。
字符设备的基本特征是:①传输速率较低;②不可寻址,
即不能指定输入时的源地址或输出时的目标地址;③字
符设备的 I/ O常采用中断驱动方式。
设备的分类 -2
3.按资源分配的角度分类
? 独占设备:指在一段时间内只允许一个用户 ( 进程 ) 访
问的设备, 大多数低速的 I/O设备, 如用户终端, 打印
机等属于这类设备 。 因为独占设备属于临界资源, 所以
多个并发进程必须互斥地进行访问 。
? 共享设备:指在一段时间内允许多个进程同时访问的设
备 。 显然, 共享设备必须是可寻址的和可随机访问的设
备 。 典型的共享设备是磁盘 。 共享设备不仅可以获得良
好的设备利用率, 而且是实现文件系统和数据库系统的
物质基础 。
? 虚拟设备:指通过虚拟技术将一台独占设备变换为若干
台供多个用户 ( 进程 ) 共享的逻辑设备 。 一般可以利用
假脱机技术 ( SPOOLing技术 ) 实现虚拟设备 。
(3)设备控制器
CPU
设备
数据
状态
控制
数据寄存器
控制 /
状态
寄存器
I/O逻辑
中断
控制器
8259
设备控制器
控制器
与设备
接口 i
数据线
地址线
控制线
(4)设备管理的目标和功能
1,设备管理的目标
? 提高设备的利用率 。 为此, 应尽量提高 CPU与 I/O设
备之间的并行操作程度, 主要利用的技术有:中断
技术, DMA技术, 通道技术, 缓冲技术 。
? 为用户提供方便, 统一的界面 。 所谓方便, 是指用
户能独立于具体设备的复杂物理特性之外而方便地
使用设备 。 所谓统一, 是指对不同的设备尽量使用
统一的操作方式, 例如各种字符设备用一种 I/O操作
方式 。 这就要求用户操作的是简便的逻辑设备, 而
具体的 I/O物理设备由操作系统去实现, 这种性能常
常被称为设备的独立性 。
设备管理的目标和功能 -1
2,设备管理功能
? 设备分配。指设备管理程序按照一定的算法把某一个
I/O设备、及其相应的设备控制器和通道分配给某一用
户(进程),对于未分配到的进程,则插入等待队列中。
? 缓冲区管理。为了解决 CPU与 I/O之间速度不匹配的矛
盾,在它们之间配置了缓冲区。这样 设备管理程序又要
负责管理缓冲区的建立、分配和释放。
? 实现物理 I/O设备的操作。对于具有通道的系统,设备
管理程序根据用户提出的 I/O请求,生成相应的通道程
序并提交给通道,然后用专门的通道指令启动通道,对
指定的设备进行 I/O操作,并能响应通道的中断请求。
对于未设置通道的系统,设备管理程序直接驱动设备进
行 I/O操作。
(二) I/O控制方式
? 随着计算机技术的发展, I/O的控制方式也在不断地发
展 。 一般可分为:程序 I/O方式, 中断方式, DMA方式和通道
方式 。 I/O的控制方式发展的目标是尽量 减少主 机对 I/O控制
的干预 。
( 1) 程序 I/O(Programmed I/O)方式 (Polling轮询 )
? 在早期的计算机系统中, 由于没有中断机构, 处理机对 I/O
设备直接进行控制, 采取程序 I/O( Programmed I/O) 方式
或称为忙 -等待方式, 即在 CPU向设备控制器发出一条 I/O指
令启动 I/O设备进行数据传输时, 要同时把状态寄存器中的
忙 /闲标志 busy置为 1,然后便不断地循环测试 busy。 当
busy=l时, 表示该 I/O设备尚未输入完一个字 (符 ),CPU应继
续对该标志进行测试, 直至 busy=0,表示该 I/O设备已将输
入数据送入到 I/O控制器的数据寄存器中, 于是 CPU将从数据
寄存器中取出数据, 送入内存的指定单元, 接着, 再启动去
读下一个数据, 并置 busy=l。
( a)程序 I/O方式的流程 ( b)中断驱动方式的流程
向 I/O控制器发读命令
读 I/O控制器的状态
检查状态?
从 I/O控制器中读入字
向内存中写入字
传送完毕?
CPU→I/O
I/O→CPU
未就绪
出错
处理
就绪I/O→CPU
CPU→RAM
未完
完成
执行下一条 I/O指令
向 I/O控制器发读命令
读 I/O控制器的状态
检查状态?
从 I/O控制器中读入字
向内存中写入字
传送完毕?
CPU→I/O
CPU做其它事
中断
I/O→CPU 出错
处理
就绪I/O→CPU
CPU→RAM
未完
完成
执行下一条 I/O指令
I/O控制方式 -1
? 在程序 I/O方式中,由于 CPU的速度远远高于 I/O设备,导致
CPU的绝大部分时间都处于等待 I/O设备完成而循环测试之中,
造成了 CPU的极大浪费。但是它管理简单,在要求不高的场合
可以被采用。
( 2)中断控制 (Interrupt-driven I/O)方式
在现代计算机系统中,对 I/O设备的控制,广泛地采用中断驱
动方式,即当某进程要启动某个 I/O设备时,便由 CPU向相应
的设备控制器发出一条 I/O命令,然后立即返回继续执行原来
的任务。设备控制器便按照该命令的要求去控制 I/O设备。此
时,CPU与 I/O设备处于并行工作状态。例如,在输入时,当
设备控制器收到 CPU发来的读命令后,便准备接收从相应输
入设备送来的数据。一旦数据进入数据寄存器,控制器便通
过控制线向 CPU发送一中断信号,由 CPU检查输入过程中是否
出错,若无错,便向控制器发取走数据的信号,然后便通过
控制器将数据写入指定内存单元。
Interrupts Revisited
How interrupts happens,Connections between devices and
interrupt controller actually use interrupt lines on the bus
rather than dedicated wires
I/O控制方式 -2
所以, 中断驱动方式在 I/O设备输入数据的过程中, 无需 CPU
干预, 可以使 CPU与 I/O设备并行工作 。 仅当输完一个数据时,
才需 CPU花费极短的时间去进行中断处理 。 从而大大地提高
了整个系统的资源利用率及吞吐量, 特别是 CPU的利用率 。
( 3) DMA(Direct Memory Access )控制方式
中断驱动 I/O方式虽然大大提高了主机的利用率, 但是它以字
( 节 ) 为单位进行数据传送, 每完成一个字 ( 节 ) 的传送,
控制器便要向 CPU请求一次中断 ( 做保存现场信息, 恢复现场
等工作 ), 仍然占用了 CPU的许多时间 。 这种方式对于高速的
块设备的 I/O控制显然是不适合 。 为了进一步减少 CPU对 I/O的
干预, 引入了直接存储器访问 ( Direct Memory Access) 控
制方式 。 该方式的特点是:
1,它作为高速的外围设备与内存之间成批的数据交换, 但是不
对数据再做加工处理, 数据传输的基本单位是数据块, I/O操
作的类型比较简单 。
I/O控制方式 -3
2,它需要使用一个专门的 DMA控制器 ( DMAC) 。 DMAC中有
控制, 状态寄存器, 传送字节计数器, 内存地址寄存器
和数据缓冲寄存器 。
3,它采用盗窃总线控制权的方法, 由 DMAC送出内存地址
和发出内存读, 设备写或设备读, 内存写的控制信号来
完成内存与设备之间的直接数据传送, 而不用 CPU的干
预 。 有的 DMA传送甚至不经过 DMAC的数据缓冲寄存器的
再吞吐, 传输速率非常高 。
4,仅在传送一个或多个数据块的开始和结束时, 才需
CPU干预, 整块数据的传送是在控制器的控制下完成的 。
? 可见, DMA方式较之中断驱动方式, 又是成百倍地减少
了 CPU对 I/O控制的干预, 进一步提高了 CPU与 I/O设备
的并行操作程度 。
采用 DMA方式时,允许 DMA控制器接管
地址线的控制权,直接控制 DMA控制
器与内存的数据交换。从而使磁盘设
备与储器之间的数据传送不需要 CPU
介入,因而减轻了 CPU负担
当采用 DMA时,除向控制器提供要读
块的磁盘地址外,还要向控制器提供
两个信息:要读块送往内存的起始地
址和要传送的字节数
Direct Memory Access (DMA)
Operation of a DMA transfer
寄存器
当 DMA硬件控制磁盘与存储器之间进行信息交换
时,每当磁盘把一个数据读入控制器的数据缓
冲区时,DMA控制器取代 CPU,接管地址总线的
控制权,并按照 DMA控制器中的存储器地址寄存
器内容把数据送入相应的内存单元中。然后,
DMA硬件自动地把传送字节计数器减 1,把存储
器地址寄存器加 1,并恢复 CPU对内存的控制权,
DMA控制器对每一个传送的数据重复上述过程,
直到传送字节计数器为, 0”时,向 CPU产生一个
中断信号。当操作系统接管 CPU控制权时,再无
需做块复制的工作了。
DMA工作示例(以硬盘为例)
(4)I/O通道控制方式
1,I/O通道控制方式的引入
虽然 DMA方式比中断驱动方式已显著地减少了 CPU的干预,
即由以字 ( 节 ) 为单位的干预减少到以数据块为单位的干预 。
但是 CPU每发出一条 I/O指令, 也只能去读 ( 或写 ) 一个连续
的数据块 。 而当我们需要一次去读多个离散的数据块且将它
们分别传送到不同的内存区域, 或者相反时, 则需由 CPU分
别发出多条 I/O指令及进行多次中断处理, 才能完成 。
由于 DMA每次只能执行一条 I/O指令, 不能满足复杂的 I/O
操作要求 。 在大, 中型计算机系统中, 普遍采用由专用的
I/O处理机来接受 CPU的委托, 独立执行自己的通道程序来实
现 I/O设备与内存之间的信息交换, 这就是通道技术 。 通道
技术可以进一步减少 CPU的干预, 即把对一个数据块为单位
的读 ( 或写 ) 的干预, 减少到对一组数据块为单位的读 ( 或
写 ) 的有关的控制和管理的干预 。 这样可实现 CPU,通道和
I/O设备三者之间的并行工作, 从而更有效地提高了整个系
统的资源利用率和运行速度 。
I/O通道控制方式 -1
2.通道程序
通道是通过执行通道程序,并与设备控制器来共同实现对
I/O设备的控制。通道程序是由一系列的通道指令(或称为通
道命令)所构成。通道指令与一般的机器指令不同,在每条
指令中包含的信息较多,有操作码、内存地址、计数(读或
写数据的字节数)、通道程序结束位 P和记录结束标志 R。
3.通道类型
由于外围设备的种类较多,且其传输速率相差很大,所以通道
也具有多种类型。根据信息交换方式,可以把通道分成以下
三种类型:
? 字节多路通道( Byte Multiplexor Channel)
在这种通道中,通常都含有较多个( 8,16,32)非分配型子
通道,每一个子通道连接一台 I/O设备。这些子通道按时间片
轮转方式共享主通道。一个子通道完成一个字节的传送后,
立即让出字节多路通道(主通道),给另一个子通道使用。
它适用于连接低速或中速设备,如打印机、终端等。
I/O通道控制方式 -2
? 数组选择通道 ( Block Selector Channel)
这种通道虽然可以连接多台 I/O设备, 但是它只有一个分配型
子通道, 在一段时间内只能执行一道通道程序, 控制一台设
备进行数据传送, 其数据传送是按数组方式进行 。 即当某台
设备一旦占用了该通道, 就被它独占, 直至该设备传送完毕
释放该通道为止 。 可见, 它适于连接高速设备 ( 如磁盘机,
磁带机 ), 但是这种通道的利用率较低 。
? 数组多路通道 ( Block Multiplexor Channel)
数组选择通道虽然有很高的传输速率, 但它每次只允许一个
设备传输数据 。 数组多路通道是将数组选择通道的传输速率
高和字节多路通道的分时并行操作的优点结合起来, 形成的
一种新的通道 。 它含有多个非分配型子通道, 可以连接多台
高, 中速的外围设备, 其数据传送却是按数组方式进行 。 所
以这种通道既具有很高的数据传输速率, 又能获得令人满意
的通道利用率 。 (练习 )
交叉连接
5,通道工作原理
通道相当于一个功能简单的处理机,
包含通道指令(空操作,读操作,
写操作,控制,转移操作),并可
执行用这些指令编写的通道程序
1) 通道运算控制部件:
通道地址字 CAW:记录通道程序在
内存中的地址
通道命令字 CCW:保存正在执行的
通道指令
通道状态字 CSW:存放通道执行后
的返回结果
通道数据字 CDW,存放传输数据
通道和 CPU共用内存,通过周期窃取
方式取得
2) 通道命令及格式:
用于 I/O操作的命令主要有两种:
I/O指令:启动通道程序
通道命令:对 I/O操作进行控制。
读、反读、写、测试设备状态的数
据传输命令、用于设备控制的命令
(磁带反绕、换页)、实现通道程
序内部控制的转移命令
命令格式一般包括:操作码、数据传输
内存地址、特征位、计数器
编制一个通道程序,从磁带机上读入 200
字节的信息,送入内存( 1000) 16 开始
的单元。
通道命令码:,07” 反绕
,02” 读
CCW1 X,07” * X,40” 1 ;
CCW2 X,02” 1000 X,00” 200 ;
3) 工作原理
CPU:执行用户程序,当遇到 I/O请求
时,可根据该请求生成通道程序放
入内存(也可事先编好放入内存),
并将该通道程序的首地址放入 CAW中;
之后执行, 启动 I/O”指令,启动通道
工作。
通道:接收到, 启动 I/O”指令后,从
CAW中取出通道程序的首地址,并根
据首地址取出第一条指令放入 CCW中,
同时向 CPU发回答信号,使 CPU可继
续执行其他程序,而通道则开始执
行通道程序,完成传输工作
(通道程序完成实际 I/O,启动 I/O设
备,执行完毕后,如果还有下一条指
令,则继续执行,否则表示传输完
成)
当通道传输完成最后一条指令时, 向
CPU发 I/O中断, 并且通道停止工作 。
CPU接收中断信号, 从 CSW中取得有
关信息, 决定下一步做什么
(5)A Model of I/O Organization
Scheduling & Control
Device I/O
Scheduling & Control Scheduling & Control
Local peripheral device Communications port File System
Device I/O Device I/O
Hardware Hardware Hardware
User Processes User Processes User Processes
Logical I/O Comm,Architecture
Directory Management
File System
Physical Organization
(三)缓冲( Buffering )技术
目前为了解决 CPU与 I/O设备间速度不匹配的矛盾, 提高的
I/O速度和设备利用率, 在所有的 I/O设备与处理机 ( 内存 )
之间, 都使用了缓冲区来交换数据 。 所以 OS必须组织和管理
好这些缓冲区 。
( 1) 缓冲的引入
在操作系统中, 引入缓冲的主要原因, 可归结为以下几点:
1。 改善 CPU与 I/O设备间速度不匹配的矛盾
例如一个程序, 它时而进行长时间的计算而没有输出, 时
而又阵发性把输出送到打印机 。 由于打印机的速度跟不上
CPU,而使得 CPU长时间的等待 。 如果设置了缓冲区, 程序输
出的数据先送到缓冲区暂存, 然后由打印机慢慢地输出 。 这
时, CPU不必等待, 可以继续执行程序 。 实现了 CPU与 I/O设
备之间的并行工作 。 事实上, 凡在数据的到达速率与其离去
速率不同的地方, 都可设置缓冲, 以缓和它们之间速度不匹
配的矛盾 。 众所周知, 通常的程序都是时而计算, 时而输出
的 。
缓冲技术 -1
2。可以减少对 CPU的中断频率,放宽对中断响应时间
的限制
如果 I/O操作每传送一个字节就要产生一次中断,
那么设置了 n个字节的缓冲区后,则可以等到缓冲区
满才产生中断,这样中断次数就减少到 1/n,而且中
断响应的时间也可以相应的放宽。
3.提高 CPU和 I/ O设备之间的并行性
缓冲的引入可显著提高 CPU和设备的并行操作程度,
提高系统的吞吐量和设备的利用率。
缓冲技术 -2
( 2) 单缓冲( Single Buffer )
? 每当一个用户进程发出一个 I/O请求时,OS便在主存中为之分
配一个缓冲区。例如,CPU要从磁盘上读一块数据进行计算,
先从磁盘把一块数据读入到缓冲区中,然后由 OS将缓冲区的
数据传送到用户区,最后由 CPU对这一块数据进行计算,可见
第一步和最后一步是可以并行执行的,这样就提高了 CPU和外
设的利用率。但是对缓冲区中数据的输入和提取是串行工作
的。连续 处理一个数据时间 =max(C,T)+M
缓冲区 用户区
用户进程 C操作系统
传送 M输入 T
I/O设备
缓冲技术 -3
( 3) 双缓冲 ( Double Buffer )
双缓冲工作方式基本方法是在设备输入时, 先将数据输入到
缓冲区 A,装满后便转向缓冲区 B。 此时 OS可以从缓冲区 A中提
取数据传送到用户区, 最后由 CPU对数据进行计算 。 连续 处理
一个数据时间 = max(T,(M+C))
?
( 4) 多缓冲 ( Circular Buffer )
双缓冲可以实现对缓冲区中数据的输入和提取, 与 CPU的计算,
三者并行工作 。 所以双缓冲进一步加快了 I/O的速度, 提高了
设备的利用率 。 (练习 )
缓冲区 A
用户区
缓冲区 B
用户进程 C操作系统
传送 M输入 TI/O设备
缓冲技术 -4
当对缓冲区中数据的输入和提取的速度基本相匹配时, 采用
双缓冲可使两者并行工作, 获得较好的效果 。 但是如果两者
的速度相差甚远时, 双缓冲的效果就不够理想了 。 如果增加
缓冲区的个数, 情况就会有所改善 。 我们可以将多个缓冲区
组织成循环队列的形式 ( 如下图所示 ) 。 例如对于用作输入
的循环缓冲区, 通常提供给输入进程和计算进程使用, 输入
进程不断向空缓冲区中输入数据, 计算进程则从满缓冲区中
提取数据用于计算 。
……
缓冲区 1
用户区缓冲区 2
缓冲区 N
用户进程
传送
操作系统
输入
I/O设备
( 5) 缓冲池
当系统配置较多的设备时,使用专用缓冲区就要
消耗大量的内存空间,且其利用率不高。为了提高
缓冲区的利用率,目前广泛使用公用缓冲池,池中
的缓冲区可供多个进程共享。
? 对于同时用于输入 /输出的公用缓冲池,至少含有三
种类型的缓冲区:空缓冲区、装满输入数据的缓冲
区和装满输出数据的缓冲区。为了管理上的方便,
可将相同类型的缓冲区链成一个队列,于是就形成
三个队列:空缓冲区队列、输入缓冲区队列和输出
缓冲区队列。 另外还应具有四种工作缓冲区:⑴用
于收容输入数据的工作缓冲区( hin);⑵用于提取
输入数据的工作缓冲区( sin);⑶ 用于收容输出
数据的工作缓冲区( hout);⑷用于提取输出数据
的工作缓冲区( sout)。
缓冲池 -1
缓冲池有收容输入、提取输入、收容输出和提取输出四
种工作方式(如下图所示)。输入过程包括收容输入
和提取输入,收容输入完成从输入 设备 输入数据到缓
冲区并排入输入缓冲区队列,提取输入完成从输入缓
冲区队列的缓冲区中取出输入数据到进程用户区。收
容输入工作方式分三步:第一步从空缓冲区队列队首
申请一个空缓冲区作为用于收容输入数据的工作缓冲
区( hin),第二步从输入 设备 输入数据到工作缓冲区
( hin),第三步将装满输入数据的缓冲区插入到输入
缓冲区队列队尾,如下图中 1,2,3带箭头的线。提取
输入的三步如下图中 4,5,6带箭头的线。
缓冲池结构
12
3
hin
3
L(out) 15 13 7 2 F(out)
sout
5








L(em) 12 10 6 3 F(em)
sin
4
hout
1






O 8 4 F(in)L(in)
4
56
缓冲技术 -6
缓冲池
收容输入 提取输入
提取输出 收容输出
( 6) UNIX系统的缓冲技术
UNIX系统采用缓冲 池 技术,来平滑和加快文件信息从内存到
磁盘的传输,并充分利用以前从磁盘读入已传入用户区、但
仍在缓冲区的数据。当从磁盘上读数据时,如果数据已经在
缓冲区中,则核心就直接从缓冲区中读出,而不必从盘上读;
当数据不在缓冲区时,核心先把数据从磁盘传送到缓冲区,
再由缓冲区读出。目的在于尽可能减少磁盘 I/O的次数,提高
系统运行的速度。
hin
sout
sin
hout




UNIX系统的缓冲技术 -1
1。 缓冲控制块
在系统初始化时, 核心根据内存的大小和系统性能要求分配
若干个缓冲区 。 每个缓冲区由两部分组成:存放数据的内存
数组 ( 一般称为缓冲区 ) 和缓冲控制块 ( 又称为缓冲首部,
用来记录缓冲区的使用情况 ) 。 缓冲区和缓冲控制块一一对
应 。 系统通过缓冲控制块来实现对缓冲区的管理, 保证一个
盘块一次只能映射一个缓冲区 。 缓冲控制块的数据结构如下
图所示 。
设备号
盘块号
状态
指向缓冲区的指针
指向 队列的后继 b u f 的指针 b - b ac k
指向 队列的前驱 b u f 的指针 b - f or w
指向 链的后继 b u f 的指针 av_b ac k
指向 链的前驱 b u f 的指针 av - f or w
UNIX系统的缓冲技术 -2
其中,设备号和盘块号分别标志出文件系统和数据所在的盘
块号,它们是缓冲区的唯一标志。设备号是指逻辑文件的系
统号,并非物理装置号。缓冲区的大小至少与盘块的大小相
等。状态项指明了该缓冲区当前的状态,如忙 /闲,数据有效
性等。还有两组指针用于对缓冲池(由所有的缓冲区组成)
的分配管理。
2.缓冲池结构
利用缓冲控制块的两组指针,核心把缓冲池中的缓冲区用两
条双向链表环组织起来,一条是自由链,所有处于“空闲”
状态的 buf都在该链中,且只有一条。系统初始时,所有 buf
都在该链上。另一条是散列队列,可以有多个队列,各队列
是由具有相同散列值的 buf组成,散列值是设备和盘块号的函
数。
UNIX系统的缓冲技术 -3
a.空闲链表 (空闲 缓冲 队列、空闲 av链 ), buf用 av双向链,且只
有一条,队列头部为 bfreelist。
b.散列队列 (设备 缓冲 队列、设备 b链 ):链接所有分配给各类 设
备使用的 缓冲区。 buf用 b双向链,可以有 64个队列,每个
队列头部有头标。设备为 b_dev上的逻辑 块 b在散列队列的
头标为,i=(b_dev+b) mod 64
c.设备 IO请求队列,buf用 av单向链,
d.空设备队列,buf用 b双向链,队列头部为 bfreelist
3.每个 buf同时在 av链和 b链:
a.开始:在空闲 av链和空设备队列。
b.开始 IO请求:在设备 IO请求队列和 散列队列。
c,IO完成,在空闲 av链和 散列队列。
d,以后 IO请求:在设备 IO请求队列和 散列队列,在散列队列改
变队列。
UNIX系统的缓冲技术 -4
图中, 红实线 表示自由链, 由一个自由链链头指示 。 多条虚线
各表示不同的散列队列, 同一行是具有同一散列值的队列,
由散队列链头指示 。 每个 buf总是存在于一个散列队列中, 但
其位置是动态可变的 。 如果一个 buf分配给某个盘块, 但当前
并未使用, 则该 buf能同时出现在两条链中, 如下图所示 。
块号 mod 4 =0
块号 mod 4 =1
块号 mod 4 =2
块号 mod 4 =3
28 4 64
17 5
98 50
97
10
3 35 99
自由链链头
UNIX系统的缓冲技术 -5
4,缓冲区的分配和释放
当进程想从指定的盘块读取数据, 或把数据写到指定的盘块
中时, 核心要检查该块是否在缓冲区中, 如果不在, 则为该
盘块分配一个空闲的缓冲区 。 当核心用完缓冲区后, 要把它
释放, 链入自由链中 。
核心对缓冲区的分配是采用 LRU算法:在把一个缓冲区分
给一个盘块后, 核心就不能让另外的盘块使用它, 直到所有
其它的缓冲区最近都被用过为止, 即该缓冲区是最长时间未
被使用的, 因此被重新分配 。 分配缓冲区有两条途径:一是
从散列队列中查找;另一条是仅当在散列队列中未找到时,
则从自由链上分配 。 从自由链上分配时, 一般都从自由链开
头摘取一个 。 当核心回收一个缓冲区时, 通常把相应的 buf
链入自由链的末尾 。
(四) 设备的分配
在多道程序环境下, 设备必须由系统分配 。 每当进程向系
统提出 I/O请求时, 设备分配程序按照一定的策略, 把其所
需的设备及其有关资源 ( 如缓冲区, 控制器和通道 ) 分配给
该进程 。 在分配设备时还必须考虑系统的安全性, 避免发生
死锁现象 。
( 1) 设备分配的策略
1,根据设备的固有属性而采取的策略
? 独享方式
独享方式是指将一个设备分配给某进程后, 便一直由它独
占, 直至该进程完成或释放该设备为止, 系统才能将该设备
分配给其它进程使用 。 这种分配方式是对独占设备采用的分
配策略 。 它不仅往往造成设备利用率低, 而且还会引起系统
死锁 。
设备分配的策略 -1
? 共享方式
共享方式是指将共享设备(磁盘)同时分配给多个进程使
用。但是这些进程对设备的访问需进行合理的调度。
? 虚拟方式
虚拟方式是指通过高速的共享设备,把一台慢速的以独占方
式工作的物理设备改造成若干台虚拟的同类逻辑设备,这就
需要引入 SPOOLing技术。虚拟设备属于逻辑设备。
2.设备分配算法(与进程的调度算法相似)
? 先来先服务:当多个进程同时向某一设备提出 I/O请求时,该
算法就根据对该设备提出请求的先后次序将这些进程排列成
一个设备请求队列,设备分配程序把设备首先分配给队首进
程。
? 优先级高者优先:对优先权高的进程所提出的 I/O请求赋予高
优先权,在形成设备队列时,将优先级高的进程排在设备队
列前面,先得到分配。而对于优先权相同的 I/O请求,则按先
来先服务原则排队分配。
设备分配的策略 -2
3,设备分配中的安全性
? 安全分配方式
每当进程发出一个 I/O请求后, 便进入阻塞状态, 直到其
I/O操作完成时才被唤醒 。 当它运行时不保持任何设备资源,
打破了产生死锁一个必要条件 —“请求和保持,, 所以这种
分配方式是安全的 。 但是这种分配算法使得 CPU与 I/O设备串
行工作, 设备的利用率比较低 。
? 不安全分配方式
进程发出一个 I/O请求后仍可以继续运行, 需要时还可以发
第二个 I/O请求, 第三个 I/O请求 。 只有当进程所请求的设备
已被另一个进程占用时, 进程才进入阻塞状态 。 这种分配方
式是不安全, 因为它可能具备, 请求和保持, 条件, 从而可
能造成系统死锁 。
设备分配的策略 -3
如第四课 图 所示进程 P1发出第一个 I/O请求,占有了资源 1后,
在继续向前推进时,又要申请资源 2;此时,进程 P2却占有了
资源 2,在继续向前推进时,又要申请资源 1,从而造成系统
死锁。所以,在设备分配程序中应该增加安全性检查的功能。
4.设备独立性( Device Independence)
? 为了提高 OS的可适应性和可扩展性,目前几乎所有的 OS都实
现了设备的独立性(也称为设备无关性)。其基本思想是:
用户程序不直接使用物理设备名(或设备的物理地址),而
只能使用逻辑设备名;而系统在实际执行时,将逻辑设备名
转换为某个具体的物理设备名,实施 I/O操作。
为此,引入逻辑设备和物理设备两个概念。逻辑设备是实
际物理设备属性的抽象,它并不限于某个具体设备。例如在
MS-DOS中,最基本的输入、输出设备(键盘和显示器)用一
个公共的逻辑设备名 CON( Console—控制台),并由同一个
设备驱动程序来驱动和控制;并行打印机的逻辑设备名为 PRN
或 LPTi;异步串行通讯口的逻辑设备名为 AUX或 COMi等等。
设备分配的策略 -4
总之, 使用逻辑设备名是操作系统对用户程序的设
备独立性的具体支持 。 设备独立性带来以下两方面
的好处:
?设备分配时的灵活性:当进程以逻辑设备名请求某
类设备时, 如果一台设备已经分配给其它进程或正
在检修, 此时系统可以将其它几台相同的空闲设备
中的任一台分配给该进程, 只有当此类设备全部被
分配完时, 进程才会被阻塞 。
?易于实现 I/O重定向
? 为了实现设备的独立性, 必须在驱动程序之上设置
一层软件, 称为设备独立性软件, 其主要功能有以
下两个方面,? 执行所有设备的公有操作; ?向用
户层 ( 或文件层 ) 软件提供统一的接口 。
(练习 )
设备分配的策略 -5
? 为了实现逻辑设备名到物理设备名的映射,系统
必须设置一张逻辑设备表 LUT( Logical Unit
Table),能够将应用程序中所使用的逻辑设备名
映射为物理设备名,并提供该设备驱动程序的人
口地址。
? 逻辑设备表 LUT如 下所示:
逻辑设备名 物理设备名 驱动程序的人口地址
/dev/tty 3 1024
/dev/printer 5 2046
I/O Software Layers
Layers of the I/O Software System
(2)设备分配程序
设备分配程序是负责向对系统提出 I/O请求的进程分配设备,
及其相应的控制器和通道 。
1,设备分配中数据结构
数据结构有:系统设备表 ( SDT), 设备控制表 ( DCT), 控制
器控制表 ( COCT), 通道控制表 ( CHCT) 。 每个表的具体内
容如下图所示 。
? 在整个系统中, 有一张系统设备表 ( SDT), 用于记录系统
中全部设备的信息 。 每个设备占一个表目, 其中包括设备类
型, 设备标识符, 设备控制表指针及设备驱动程序的入口地
址等表项 。
? 系统为每一个设备都配置了一张设备控制表 ( DCT), 用于
记录该设备的情况 。 表中除了有用于指示设备类型的字段和
设备标识符字段外, 还应有下列字段:
设备分配程序 -1
?设备队列的队首指针:凡因请求本设备而未得到满足的进程,
其 PCB都应按照一定的策略排成一个队列,称为设备请求队列
或简称为设备队列。其队首指针指向队首 PCB,在有的系统中
还设置了队尾指针。
?设备状态:当设备自身处于, 忙, 状态时,将设备的忙标志
置, l”。若与该设备相连接的控制器或通道处于, 忙, 状态,
而不能启动该设备,则将设备的等待标志置, l”。
?COCT表指针:该指针指向与该设备相连接的控制器的控制表。
在具有多条通路的情况下,一个设备可与多个控制器相连接。
此时,在 DCT中应设置多个控制器表指针。
?重复执行次数:外部设备在传送数据时,若发生信息传送错
误,系统并不立即认为传送失败,而是允许它重新传送。只
要在规定的重复次数或时间内恢复正常传送,则仍认为传送
成功,否则才认为传送失败。
(练习 )
设备分配的数据结构图
表目 1
……
表目 i
……
设备类型
设备标识符
进程标识符
DCT表指针
驱动程序入口地址
表目 1
……
表目 i
……
设备类型
设备标识符
设备状态
( 等待 /不等待,忙 /闲)
COCT表指针
重复执行的次数或时间
设备队列的队首指针
设备队列的队尾指针
表目 1
……
表目 i
……
控制器标识符
控制器状态(忙 /闲)
CHCT表指针
控制器队列的队首指针
控制器队列的队尾指针
表目 1
……
表目 i
……
通道标识符
通道状态(忙 /闲)
COCT表指针
通道队列的队首指针
通道队列的队尾指针
SDT集合 SDT DCT集合 DCT
COCT集合 COCT CHCT集合 CHCT
设备分配程序 -2
2。 设备分配的流程
对于具有单通道的系统, 则当进程提出 I/O请求后, 系统进行
设备分配的流程图如下图 。
3。 设备分配程序的改进
为了获得设备的独立性, 进程应用逻辑设备名请求 I/O。 这
样, 系统首先从 SDT中找出第一个该类设备的 DCT。 如忙,
则查找第二个该类设备的 DCT,当所有该类设备都忙时, 才
把进程挂在该类设备的等待队列中 。
实际上, 系统为了提高可靠性和灵活性, 通常采用多通路的
I/O系统结构 。 此时对多个控制器和通道的分配, 必须查找
所有的控制器和通道, 才能决定是否将该进程挂起 。
单通道系统的设备分配流程进程 P提出所需的 I/O设备
根据物理设备名, 从 SDT中找出该设备的 DCT
由 DCT的设备状态字段, 检查该设备是否忙?
将该进程的 PCB插入到
该设备的等待队列中
检查本次设备分配是否安全性?
将此设备分配给该进程
从其 DCT中找出与该设备连接的控
制器的 COCT,检查该控制器是否忙?
将该进程的 PCB插入到
该控制器的的等待队列中
将该控制器分配给进程
从 COCT中找到与该控制器连接的
通道的 CHCT,检查该通道是否忙?
将该进程的 PCB插入到
该通道的的等待队列中 将该通道分配给进程
至此,设备、控制器和
通道三者都已分配成功启动 I/O设备,进行具体的 I/O操作
不忙
若忙
不安全
不忙

忙 不忙
为进程 P分配所需的 I/O设备
从 SDT表查该类设备的控制表 DCT
由 DCT检查该设备忙否?
不忙
检查分配此设备的安全性?
不安全
分配此设备给进程 P
查此设备连接的 COCT忙否?
不忙
不忙
分配此控制器给进程 P
查此控制器连接的 CHCT忙否?
最后一个 DCT?
分配此通道给进程 P
启动 I/O,进行具体的 I/O操作

进程 P的 PCB放入
此设备的等待队列
Y
N
忙 最后一个 COCT?
最后一个 DCT?
进程 P 的 PCB 放入
此控制器的等待队列
Y
N
Y

最后一个 CHCT?
Y最后一个 COCT?
进程 P 的 PCB 放入
此通道的等待队列
N
Y
N
N
多通路设备分配流程示意图
( 3) SPOOLing技术
早期批处理系统中使用的虚拟技术是以 脱机 方式工作的 。 为
了缓和 CPU和 I/O设备之间的速度不比配的问题 。 利用专门的
外围控制机将低速 I/O设备上的数据传送到高速磁盘上, 或
者相反 。 当多道程序设计的分时系统出现后, SPOOLing技术
就孕育而生, 它将一台独占设备改造成可以共享的虚拟设备 。
1,什么是 SPOOLing技术
当多道程序程序技术出现后, 就可以利用一道程序, 来模
拟脱机输入时的外围控制机的功能, 即把低速 I/O设备上的
数据传送到高速的磁盘上;再用另一道程序来模拟脱机输出
时外围控制机的功能, 即把数据从磁盘传送到低速 I/O设备
上 。 这样, 便在主机的直接控制下, 实现脱机输入, 输出功
能 。 所以, 我们把这种在联机情况下实现的同时与外围设备
联机操作的技术称为 SPOOLing( Simultaneous Peripheral
Operation On Line), 或称为假脱机技术 。
SPOOLing技术 -1
2,SPOOLing系统的组成
SPOOLing系统是对脱机输入、输出工作的模拟,它必须有高
速随机外存(硬盘)的支持。 SPOOLing系统主要有以下三部
分(如下图所示):
? 输入井和输出井,在磁盘上开辟的两个大的存储空间。输
入井模拟脱机输入时的磁盘,用于收容 I/O设备输入的数据。
输出井模拟脱机输出时的磁盘,用于收容用户程序的输出数
据。
? 输入缓冲区和输出缓冲区,在内存中开辟两个缓冲区:输
入缓冲区和输出缓冲区。输入缓冲区用于暂存由输入设备送
来的数据,再传送到输入井。输出缓冲区用于暂存从输出井
送来的数据,再传送给输出设备。
SPOOLing技术 -2
? 输入进程 SPi和输出进程 SPo
进程 SPi 模拟脱机输入时的外围控制机,将用户要求的数据
从输入机通过输入缓冲区再送到输入井。当 CPU需要输入数
据时,直接从输入井读入内存。 SPo 进程模拟脱机输出时的
外围控制机,把用户要求输出的数据,先从内存送到输出井,
待输出设备空闲时,再将输出井中的数据,经过输出缓冲区
送到输出设备上。
输入进程 SPi输出进程 SPo
输入缓冲区
输出缓冲区
输入井
输出井
输入设备
输出设备
磁 盘内 存
SPOOLing技术 -3
3.共享打印机
打印机虽然是独享设备。但是通过 SPOOLing技术,可以将它
改造为一台可供多个用户共享的设备。共享打印机技术已被
广泛地用于多用户系统和局域网络。当用户进程请求打印输
出时,SPOOLing系统并不是真正把打印机分配给该用户进程,
而由输出进程为他在输出井中申请一个存储空间,并将要打
印的数据以文件的形式存放于此。各进程的输出文件形成一
个输出队列,由输出 SPOOLing系统控制这台打印机进程,依
次将队列中的输出文件打印出来。
总之,利用 SPOOLing技术可以提高 I/O的速度,将独占设备改
造为共享设备,实现虚拟设备的功能。
(练习 )
(五) 设备处理
设备处理程序又称设备驱动程序, 它是 I/O进程与设备控制器
之间的通信程序
( 1) 设备处理程序的功能和处理方式
1,设备驱动程序的功能
? 接收上层软件发来的抽象要求 ( 如 read命令等 ), 再把它转
换成具体要求 。
? 检查用户 I/O请求的合法性, 了解 I/O设备的状态, 设置工作
方式 。
? 对于设置有通道的计算机系统, 驱动程序还应能够根据用户
的 I/O请求, 自动地构成通道程序 。
? 由驱动程序向设备控制器发出 I/O命令, 启动分配到的 I/O设
备, 完成指定的 I/O操作 。
? 及时响应由控制器或通道发来的中断请求, 并根据其中断调
用相应的中断处理程序进行处理 。
2。设备处理方式
根据在设备处理时是否设置进程,以及设置什么样
的进程,设备处理方式可分为以下三类:
?为每一类设备设置一个 I/O进程,它专门执行这类
设备的 I/O操作。比如为所有的交互终端设置一个
交互式终端进程。
?整个系统中设置一个 I/O进程,全面负责系统的数
据传送工作,I/O请求处理模块,设备分配模块以
及缓冲器管理模块和中断原因分析、中断处理模块
和后述的设备驱动模块都是 I/O进程的一部分。由
于现代计算机系统设备十分复杂,I/O负担很重,
因此,又可把 I/O进程分为输入进程和输出进程。
设备处理方式 -1
?不设置专门的设备处理进程,而是只为各类设备设
置相应的设备处理程序,供用户进程和系统进程调
用。在 UNIX系统中,每类设备都有一个驱动程序,
用它来控制该类设备。任何一个驱动程序通常都包
含了用于执行不同操作的多个函数,如打开、关闭、
启动设备、读和写等函数。为使核心能方便地转向
各函数,系统为每类设备提供了一个设备开关表,
其中有该类设备的各函数的入口地址,它是核心与
驱动的接口。如下图所示。 块设备开关表如下:
表项 open close strategy
0 gdopen gdclose gdstrategy
1 gtopen gtclose gtstrategy
.,.,.,.
设备开关表是系统调用和驱动程序间的接口
open close
open close read write ioctl mount umount read write
字符设备开关表
高速缓冲
调用
块设备开关表
open close read write ioctl
驱动程序
设备中断处理程序
open close strategy
驱动程序
设备中断处理程序
中断向量 中断向量
设备中断 返 7
( 2)设备处理程序的处理过程
每类设备有自己的设备处理程序, 但大体上它们都再分成两
部分, 主要用于启动设备的设备驱动程序和负责处理 I/O完成
工作的设备中断处理程序 。
1,设备驱动程序的处理过程
?将用户和上层软件对设备控制的抽象要求转换成对设备的具
体要求, 如对抽象要求的盘块号转换为磁盘的盘面, 磁道及
扇区 。
?检查 I/O请求的合理性 。
?读出和检查设备的状态, 确保设备处于就绪态 。
?传送必要的参数, 如传送的字节数, 数据在主存的首址等 。
?工作方式的设置 。
?启动 I/O设备, 并检查启动是否成功, 如成功则将控制返回给
I/O控制系统, 在 I/O设备忙于传送数据时, 该用户进程把自
己阻塞, 直至中断到来才将它唤醒, 而 CPU可干别的事 。
2.中断处理程序的处理过程
在设备控制器控制下,I/O设备完成了 I/O操作后,控制器
(或通道)便向 CPU发出一中断请求,CPU响应后便转向中断
处理程序,中断处理程序大致包含以下几步:
?在设置 I/O进程时,当中断处理程序开始执行时,都必须去唤
醒阻塞的驱动(程序)进程。在采用信号量机制时,可通过
执行 V操作,将处于阻塞状态的驱动(程序)进程唤醒。
?保护被中断进程的 CPU现场。
?分析中断原因,转入相应的设备中断处理程序。
?进程中断处理,判别此次 I/O完成是正常结束中断还是异常结
束中断,分别作相应处理。
?恢复被中断进程或由调度程序选中的进程的 CPU的现场。
?返回被中断的进程,或进入新选中的进程继续运行。
? 在 UNIX中将以上对各类设备处理相同的部分集中起来,形成
中断总控程序,每当要进行中断处理时,都要首先进入中断
总控程序,再按需要转入不同的设备处理程序。
I/O的操作全过程
管理程序
请求
启动程序
程序 q
程序 P
用户程序
判断状态
执行通道程序
控制 I/O设备
操作,执行情
况记录在 CSW
出现中断事件
CSW=>主存通
道号,设备号
送特定寄存器
通道程序
执行规定
的操作
设备控制器和设备
1
2
3
4
5
6
保护现场
组织通道程序
保存通道程序
的始址于 CAW
启动 I/O指令
分析条件码
启动成功使
P阻塞,另选
程序 q运行
保护程序 q的
现场
分析中断原因
处理 I/O中断
选择可运行程序
应用程序
WIN32
系统服务
WMI
服务
用户模式的
即插即用
管理器
安装组件
用户态
核心态
I/O系统
驱动程序
硬件抽象层(HAL)
,i n f 文件
,c a t 文件
注册表
例程
即插即用
管理器
电源管理 I/O管理器
? I/O管理器把应用程序和系统组件连接到各种虚
拟的、逻辑的和物理的设备上,并且定义了一
个支持设备驱动程序的基本构架。
? 设备驱动程序为某种类型的设备提供一个 I/O接
口。设备驱动程序从 I/O管理器接受处理命令,
当处理完毕后通知 I/O管理器。设备驱动程序之
间的协同工作也通过 I/O管理器进行。
? PnP(即插即用,plug and play)管理器通过与
I/O管理器和总线驱动程序的协同工作检测硬件
资源的分配,并且检测相应硬件设备的添加和
删除
? 电源管理器通过与 I/O管理器的协同工作检测整
个系统和单个硬件设备,完成不同电源状态的
转换。
Windows 2000/XPI/O系统组件
? WMI( Windows Management Instrumentation)支
持例程,也叫做 Windows驱动程序模型( WDM,
Windows Driver Model) WMI提供者,允许驱动
程序使用这些支持例程作为媒介,与用户态运行
的 WMI服务通讯。
? 注册表作为一个数据库,存储基本硬件设备的描
述信息以及驱动程序的初始化和配置信息。
? 硬件抽象层( HAL) I/O访问例程把设备驱动程序
与多种多样的硬件平台隔离开来,使它们在给定
的体系结构中是二进制可移植的,并在 Windows
2000/XP支持的硬件体系结构中是源代码可移植的。
Windows 2000/XPI/O系统组件
用户模式 API
I/O系统服务 API (NtXXX)
I/O管理器
核心模式设备驱动程序
HAL I/O服务例程








I/O端口和寄存器
一个典型的 I/O请
求过程
NT的 I/O系统结构
返回
硬件
硬件抽象层I / O 访问例程
核心态设备驱动程序
I / O 管理器
I / O 子系统
逻辑I / O
设备I / O
调度与控制
驱动程序
支持例程
习题
1,在 I/O设备控制的发展过程中, 最主要的推动因素是 ﹎﹎ A﹎
﹎, 提高 I/O速度和设备利用率, 在 OS中主要依靠 ﹎﹎ B﹎﹎
功能 。 使用户所编制的程序与实际使用的物理设备无关是由
﹎﹎ C﹎﹎ 功能实现的 。
A,( 1) 提高资源利用率; ( 2) 提高系统吞吐量; ( 3) 减少
主机对 I/O控制的干预; ( 4) 提高 CPU与 I/O设备的并行操作
程度 。
B,C,( 1) 设备分配; ( 2) 缓冲管理; ( 3) 设备管理; ( 4)
设备独立性; ( 5) 虚拟设备 。
2.通道是一种特殊的 ﹎﹎ A﹎﹎,具有 ﹎﹎ B﹎﹎ 能力。
A:( 1) I/O 设备;( 2)设备控制器;( 3)处理机;( 4)
I/O控制器。
B:( 1)执行 I/O指令集;( 2)执行 CPU指令集;( 3)传输
I/O命令;( 4)运行 I/O进程。 (解 )
习题 -1
2,假定把磁盘上一个数据块中信息输入到一单缓冲的时间 T为
100us,将缓冲区中数据传送到用户区的时间 M为 50us,而 CPU
对这一块数据进行计算的时间 C为 50us,这样,系统对每一块
数据的处理时间为 ﹎﹎ A﹎﹎ ;如果将单缓冲改为双缓冲,则
系统对每一块数据的处理时间为 ﹎﹎ B﹎﹎ 。
A,B:( 1) 50us;(2)100us;(3)150us;(4)200us;(5)250us。
3,下面关于设备独立性的论述中, 第 ﹎﹎ A﹎﹎ 条是正确的论
述 。
( 1) 设备独立性是 I/O设备具有独立执行 I/O功能的一种特性 。
( 2) 设备独立性是指用户程序独立于具体使用的物理设备的
一种特性。
( 3) 设备独立性是指能独立实现设备共享的一种特性。
( 4) 设备独立性是指设备驱动独立于具体使用的物理设备的
一种特性。 (解 )
习题 -2
5,下面关于虚拟设备的论述中, 第 ﹎﹎ A﹎﹎ 条是正确的论述 。
( 1) 虚拟设备是指允许用户使用比系统中具有的物理设备更
多的设备 。
( 2) 虚拟设备是指允许用户以标准化方式来使用物理设备。
( 3) 虚拟设备是把一个物理设备变换成多个对应的逻辑设备。
( 4) 虚拟设备是指允许用户程序不必全部装入内存便可使用
系统中的设备。
6.下列有关 SPOOLing系统的论述中,第 ﹎﹎ A﹎﹎ 和第 ﹎﹎ B﹎
﹎ 条是正确的论述。
( 1) 构成 SPOOLing系统的基本条件,是具有外围输入机与外
围输出机。
( 2) 构成 SPOOLing系统的基本条件,是只要具有大容量、高
速硬盘作为输入井与输出井。
( 3) 只要操作系统中采用了多道程序设计技术,就可以构成
SPOOLing系统。
习题 -3
( 4) SPOOLing系统是建立在分时系统中。
( 5) SPOOLing系统是虚拟存储技术的体现。
( 6) SPOOLing系统是在用户程序要读取数据时起动输入进程
输入数据。
( 7) 当输出设备忙时,SPOOLing系统中的用户程序暂停执行,
待 I/O 空闲时再被唤醒,去执行输出操作。
( 8) SPOOLing系统实现了对 I/O设备的虚拟,只要输入设备空
闲,SPOOLing可预先将输入数据从设备传输到输入井中供用
户程序随时读取。
( 9) 在 SPOOLing系统中,用户程序可以随时将输出数据送到
输出井中,待输出设备空闲时再执行数据输出操作。
(解 )
7.试述多通路 I/O系统设备管理中数据结构。 (解 )
习题 -4
8,请叙述查询, 中断, DMA, 通道这种 4设备驱动方式的原理,
适用范围和优缺点 。
9,试述 UNIX缓冲区管理的原理和特点 。
10,试述 UNIX I/O控制的方式和驱动程序的接口 。
?