设备管理的主要目标是屏蔽I/O设备的硬件特性,向用户提供使用I/O设备的方便接口,充分发挥设备的利用率。
就是提供用户一个按钮,不用考虑硬件具体的。
设备管理的主要功能有:缓冲区的管理、设备分配、设备处理、虚拟设备及实现设备独立性等。
缓冲区的管理:只要有(主机和输入输出)速度不一致,就可以有缓冲;
设备处理:设备也是一种资源;
5.1 I/O 系 统
I/O设备——分类
分类目的:简化设备管理程序,不同的设备对应不同的管理程序,但对于同类设备可利用相同的程序或少量的修改即可。
1.数据传输速率:低速设备、中速设备、高速设备。
2.数据的传输单位:块设备、字符设备。
3.设备的共享属性:独占设备、共享设备、虚拟设备。
设备控制器
链接CPU和设备,接受CPU的指令,控制设备,让CPU不那么繁忙。
I/O通道:一种特殊的处理机,只有输入输出指令,没有内存,与CPU共享内存。
- 字节多路通道(Byte Multiplexor Channel)
时间片轮转,一次一个子通道传输一个字节的数据,然后下一个子通道。 - 数组选择通道(Block Selector Channel)
和上一个相比,一个子通道会独占主通道,传输完为止。 - 数组多路通道(Block Multiplexor Channel)
“瓶颈”问题
通道也是硬件,硬件价格高。
解决一个设备只能一个通道的问题,可以通过增加通路的方式。
小总结
最开始是I/O设备、CPU直接连设备总线,后来加入设备管理器、通道,就是为了减少CPU繁忙的事务。
5.2 I/O控制方式
所谓I/O控制方式是指CPU何时以及如何去驱动I/O设备、如何控制I/O设备与主机之间进行数据传输。
主要区别在于I/O过程中的CPU干预程度。
程序I/O方式
在这个过CPU始终在等待外设准备好,直到设备的标志位为0。
在该方式中,CPU之所以要不断地测试I/O设备的状态,就是因为在CPU中无中断机构 使I/O设备无法向CPU报告它已完成了一个字符的输入操作。
意思就是,CPU要一直盯着外设的状态,CPU不能在这段时间去干别的事情。】
中断驱动I/O控制方式
在程序I/O方式的基础上加入中断驱动。
CPU将中断位置为1,就相当于手机调到了响铃的状态,外设讲数据传输好了,或者寄存器满了,就通知CPU来处理。
CPU和外设传输数据是并行的。
因为数据是存在寄存器上,单位是字节,所以非常容易发生中断。
直接存储器访问DMA控制方式
该方式的特点是:
① 数据传输的基本单位是数据块,即在CPU与I/O设备之间,每次传送至少一个数据块;
② 所传送的数据是从设备直接送入内存的,或者相反;
③ 仅在传送一个或多个数据块的开始和结束时,才需CPU干预,整块数据的传送是在控制器的控制下完成的。
可见,DMA方式较之中断驱动方式,又是成百倍地减少了CPU对I/O的干预,进一步提高了CPU与I/O设备的并行操作程度。
DMA控制器的组成:
控制器中需要4个寄存器:
- ) 命令/状态寄存器CR。用于接收从CPU发来的I/O命令或有关控制信息, 或设备的状态。
- 内存地址寄存器MAR。在输入时,它存放把数据从设备传送到内存的起始目标地址;在输出时,它存放由内存到设备的内存源地址。
- 数据寄存器DR。用于暂存从设备到内存,或从内存到设备的数据。
- 数据计数器DC。 存放本次CPU要读或写的字(节)数。
缺点:
1)可能会引起内存地址的冲突;
2)需要DMA控制器硬件支持。
I/O通道控制方式
这是对DMA的进一步扩展。
通道程序
- 操作码。规定了指令所执行的操作,如读、写操作。
- 内存地址。标明字符送入内存和从内存取出时的内存首址。
- 计数。本条指令所要读或写数据的字节数。
- 通道程序结束位P。表示通道程序是否结束。P=1表示本条指令时通道程序的最后一条指令。
- 记录结束标志R。R=0表明本通道指令与下一条指令所处理的数据是属于同一个记录;R=1表示这是处理某记录的最后一条指令。
与DMA的区别:
1)没有计数寄存器、内存地址寄存器,连接有通道设备控制器,有指令执行机构。
2)传送数据完全由通道指令来控制,一次可以连续传送多个数据块。
3)DMA只和一个设备相连,通道可控制多台设备。
5.3 缓冲管理
引入缓冲的原因:
- 缓和CPU与I/O设备间速度不匹配的矛盾。
- 减少对CPU的中断频率, 放宽对CPU中断响应时间的限制。
- 提高CPU和I/O设备之间的并行性。
不同的缓冲方式:
- 单缓冲
- 双缓冲
- 循环缓冲
- 缓冲池
- 用户层软件
5.4 I/O软件
I/O软件的层次
- 硬件
- 中断处理程序
- 设备驱动程序
- 设备独立性软件
5.5 设备分配
分配:设备、控制器和通道
需要记录与它们相关的信息。包括:资源标识、物理连接情况、占有进程、等待进程等。
具体实现时,可以将其分为设备控制块、控制器控制块和通道控制块。
这些控制块中包含的信息在不同的系统中会有所不同。
各种数据结构:
- 设备控制表DCT
- 设备表控制器SD控制表COCT
- 通道控制表CHCT
- 系统T
设备分配时应考虑的因素
- 设备的固有属性
- 独享设备
- 共享设备
- 虚拟设备
- 设备分配算法
- 先来先服务
- 优先级高者优先
- 设备分配中的安全性
- 安全分配方式
- 不安全分配方式
SPOOLing技术
SPOOLing组成六部分:
输入、输出进程(模拟外围机),输入、输出井(两个磁盘),输入、输出缓冲(缓存数据)。
共享打印机的运用
共享打印机技术已被广泛地用于多用户系统和局域网络中。
当用户进程请求打印输出时, SPOOLing系统同意为它打印输出, 但并不真正立即把打印机分配给该用户进程, 而只为它做两件事:
① 由输出进程在输出井中为之申请一个空闲磁盘块区, 并将要打印的数据送入其中;
② 输出进程再为用户进程申请一张空白的用户请求打印表,并将用户的打印要求填入其中, 再将该表挂到请求打印队列上。
5.6 磁盘存储器管理
数据存储在某个盘片的某个盘面的某个磁道的某个扇区上。
类型有:固定头磁盘、移动头磁盘。
磁盘访问时间
- 寻道时间
该时间是启动磁臂的时间s与磁头移动n条磁道所花费的时间之和, 即 Ts=m×n+s - 旋转延迟
- 传输时间
调度算法
- 先来先服务FCFS
- 最短寻道时间优先SSTF:每次都找最近的。优点:平均最短。缺点:有些进程会“饥饿”。
- 扫描(SCAN)算法 。来回扫描。缺点:电梯,刚走,来人。
- 循环扫描(CSCAN)算法 。和扫描相比,只往一个方向。
- ……
磁盘高速缓存
将内存作为磁盘高速缓存,逻辑上是磁盘的,物理上是内存的。
本章重点掌握
4种控制方式
引入缓冲原因
I/O软件层次,独立性
四种调度算法