设备管理:
1. 设备管理的概述:
a. I/O系统的组成:
~~~~~~
i. 微机I/O系统
~~~~~~
ii. 主机I/O系统
b. 设备分类:
~~~~~~
i. 按传输速率分类:
~~~~~~
~~~~~~
1) 低速设备:传输速率为每秒钟几个字节到数百个字节的设备;键盘、鼠标、语言的输入等
~~~~~~
~~~~~~
2) 中速设备:传输速率在每秒钟数千个字节至数十千个字节的设备;行式打印机、激光打印机等
~~~~~~
~~~~~~
3) 高速设备:传输速率在数百千个字节至数兆字节的设备;磁带机、磁盘机、光盘机等
~~~~~~
ii. 按信息交换的单位分类:
~~~~~~
~~~~~~
1) 块设备:以数据块为单位来组织和传送数据信息的设备
~~~~~~
~~~~~~
~~~~~~
a) 这类设备用于存储信息,有磁带和磁盘等
~~~~~~
~~~~~~
~~~~~~
b) 磁盘设备的基本特征:
~~~~~~
~~~~~~
~~~~~~
~~~~~~
i) 传输速率较高,通常每秒钟为几兆位
~~~~~~
~~~~~~
~~~~~~
~~~~~~
ii) 它是可寻址的,即可随机地读/写任意一块
~~~~~~
iii) 磁盘设备的I/O采用DMA方式
~~~~~~
~~~~~~
2) 字符设备:以单个字符为单位来传送数据信息的设备
~~~~~~
~~~~~~
~~~~~~
a) 这类设备一般用于数据的输入和输出,有交互式终端、打印机等
~~~~~~
~~~~~~
~~~~~~
b) 属于无结构设备
~~~~~~
~~~~~~
~~~~~~
c) 字符设备的基本特征:
~~~~~~
~~~~~~
~~~~~~
~~~~~~
i) 传输速率较低
~~~~~~
~~~~~~
~~~~~~
~~~~~~
ii) 不可寻址,即不能指定输入时的源地址或输出时的目标地址
~~~~~~
~~~~~~
~~~~~~
~~~~~~
iii) 字符设备的I/O常采用中断驱动方式
~~~~~~
iii. 按资源分配的角度分类:
~~~~~~
~~~~~~
1) 独占设备:在一段时间内只允许一个用户(进程)访问的设备
~~~~~~
~~~~~~
~~~~~~
a) 大多数低速的I/O设备,如用户终端、打印机等属于这类设备
~~~~~~
~~~~~~
~~~~~~
b) 因为独占设备属于临界资源,所以多个并发进程必须互斥地进行访问
~~~~~~
~~~~~~
2) 共享设备:在一段时间内允许多个进程同时访问的设备
~~~~~~
~~~~~~
~~~~~~
a) 共享设备必须是可寻址的和可随机访问的设备
~~~~~~
~~~~~~
~~~~~~
b) 典型的共享设备是磁盘
~~~~~~
~~~~~~
~~~~~~
c) 共享设备不仅可以获得良好的设备利用率,而且是实现文件系统和数据库系统的物质基础
~~~~~~
~~~~~~
3) 虚拟设备:指通过虚拟技术将一台独占设备变换为若干台供多个用户(进程)共享的逻辑设备
~~~~~~
~~~~~~
~~~~~~
a) 一般可以利用假脱机技术(SPOOLing技术)实现虚拟设备
c. 设备管理的目标和功能:
~~~~~~
i. 设备管理的目标:
~~~~~~
~~~~~~
1) 提高设备的利用率
~~~~~~
~~~~~~
2) 为用户提供方便、统一的界面
~~~~~~
ii. 设备管理的功能:
~~~~~~
~~~~~~
1) 设备分配
~~~~~~
~~~~~~
2) 缓冲区管理
~~~~~~
~~~~~~
3) 实现物理I/O设备的操作
~~~~~~
2. I/O控制方式:
a. 程序I/O方式
b. 中断控制方式
c. DMA控制方式:
~~~~~~
i. 特点:
~~~~~~
~~~~~~
1) 它作为高速的外围设备与内存之间成批的数据交换,但是不对数据再做加工处理,数据传输的基本单位是数据块,I/O操作的类型比较简单
~~~~~~
~~~~~~
2) 它需要使用一个专门的DMA控制器(DMAC)。DMAC中有控制、状态寄存器、传送字节计数器、内存地址寄存器和数据缓冲寄存器
~~~~~~
~~~~~~
3) 它采用盗窃总线控制权的方法,由DMAC送出内存地址和发出内存读、设备写或设备读、内存写的控制信号来完成内存与设备之间的直接数据传送,而不用CPU的干预。有的DMA传送甚至不经过DMAC的数据缓冲寄存器的再吞吐,传输速率非常高
~~~~~~
~~~~~~
4) 仅在传送一个或多个数据块的开始和结束时,才需 CPU干预,整块数据的传送是在控制器的控制下完成的
~~~~~~
ii. DMA方式较之中断驱动方式,成百倍地减少了CPU对 I/O控制的干预,进一步提高了CPU与I/O设备的并行操作程度
d. I/O通道控制方式:
~~~~~~
i. 通道类型:
~~~~~~
~~~~~~
1) 字节多路通道:这种通道中,通常都含有较多个(8,16,32)非分配型子通道,每一个子通道连接一台I/O设备。这些子通道按时间片轮转方式共享主通道。一个子通道完成一个字节的传送后,立即让出字节多路通道(主通道),给另一个子通道使用。它适用于连接低速或中速设备,如打印机、终端等
~~~~~~
~~~~~~
2) 数组选择通道:这种通道虽然可以连接多台I/O设备,但是它只有一个分配型子通道,在一段时间内只能执行一道通道程序、控制一台设备进行数据传送,其数据传送是按数组方式进行。即当某台设备一旦占用了该通道,就被它独占,直至该设备传送完毕释放该通道为止。可见,它适于连接高速设备(如磁盘机、磁带机),但是这种通道的利用率较低
~~~~~~
~~~~~~
3) 数组多路通道:虽然有很高的传输速率,但它每次只允许一个设备传输数据;是上述两者的优点的结合;含有多个非分配型子通道,可以连接多台高、中速的外围设备,其数据传送却是按数组方式进行。所以这种通道既具有很高的数据传输速率,又能获得令人满意的通道利用率
~~~~~~
3. 缓冲技术:
a. 作用:
~~~~~~
i. 改善CPU与I/O设备间速度不匹配的矛盾
~~~~~~
ii. 可以减少对 CPU的中断频率,放宽对中断响应时间的限制
~~~~~~
iii. 提高 CPU和I/O设备之间的并行性
b. 单缓冲:每当一个用户进程发出一个I/O请求时,OS便在主存中为之分配一个缓冲区
c. 双缓冲:双缓冲工作方式基本方法是在设备输入时,先将数据输入到缓冲区A,装满后便转向缓冲区B。此时OS可以从缓冲区A中提取数据传送到用户区,最后由CPU对数据进行计算
双缓冲可以实现对缓冲区中数据的输入和提取,与CPU的计算,三者并行工作。所以双缓冲进一步加快了I/O的速度,提高了设备的利用率
d. 多缓冲:当对缓冲区中数据的输入和提取的速度基本相匹配时,采用双缓冲可使两者并行工作,获得较好的效果。但是如果两者的速度相差甚远时,双缓冲的效果就不够理想了。如果增加缓冲区的个数,情况就会有所改善。我们可以将多个缓冲区组织成循环队列的形式。例如对于用作输入的循环缓冲区,通常提供给输入进程和计算进程使用,输入进程不断向空缓冲区中输入数据,计算进程则从满缓冲区中提取数据用于计算
e. 循环缓冲的组织:
~~~~~~
4. 设备的分配:
a. 设备分配的策略:
~~~~~~
i. 根据设备的固有属性而采取的策略
~~~~~~
~~~~~~
1) 独享方式:将一个设备分配给某进程后,便一直由它独占,直至该进程完成或释放该设备为止,系统才能将该设备分配给其它进程使用
~~~~~~
~~~~~~
~~~~~~
a) 设备利用率低
~~~~~~
~~~~~~
~~~~~~
b) 会引起系统死锁
~~~~~~
~~~~~~
2) 共享方式:将共享设备(磁盘)同时分配给多个进程使用。但是这些进程对设备的访问需进行合理的调度
~~~~~~
~~~~~~
3) 虚拟方式:通过高速的共享设备,把一台慢速的以独占方式工作的物理设备改造成若干台虚拟的同类逻辑设备,这就需要引入SPOOLing技术。虚拟设备属于逻辑设备
b. 设备分配算法(与进程的调度算法相似):
~~~~~~
i. 先来先服务
~~~~~~
ii. 优先级高者优先
c. 设备分配中的安全性
d. 设备独立性:
~~~~~~
i. 基本思想:
~~~~~~
~~~~~~
1) 用户程序不直接使用物理设备名(或设备的物理地址),而只能使用逻辑设备名
~~~~~~
~~~~~~
2) 而系统在实际执行时,将逻辑设备名转换为某个具体的物理设备名,实施I/O操作
~~~~~~
ii. 设备独立性带来的好处:
~~~~~~
~~~~~~
1) 设备分配时的灵活性
~~~~~~
~~~~~~
2) 易于实现I/O重定向
e. 设备分配程序:
~~~~~~
i. 设备分配中的数据结构:系统设备表(SDT)、设备控制表(DCT)、控制器控制表(COCT)、通道控制表(CHCT)
~~~~~~
5. 设备处理:设备处理程序又称设备驱动程序,它是I/O进程与设备控制器之间的通信程序
a. 设备处理程序的功能和处理方式:
~~~~~~
i. 设备驱动程序的功能:
~~~~~~
~~~~~~
1) 接收上层软件发来的抽象要求(如read命令等),再把它转换成具体要求
~~~~~~
~~~~~~
2) 检查用户I/O请求的合法性,了解I/O设备的状态,设置工作方式
~~~~~~
~~~~~~
3) 对于设置有通道的计算机系统,驱动程序还应能够根据用户的I/O请求,自动地构成通道程序
~~~~~~
~~~~~~
4) 由驱动程序向设备控制器发出I/O命令,启动分配到的I/O设备,完成指定的I/O操作
~~~~~~
~~~~~~
5) 及时响应由控制器或通道发来的中断请求,并根据其中断调用相应的中断处理程序进行处理
~~~~~~
ii. 设备处理方式:
~~~~~~
~~~~~~
1) 为每一类设备设置一个I/O进程
~~~~~~
~~~~~~
2) 整个系统中设置一个I/O进程
~~~~~~
~~~~~~
3) 不设置专门的设备处理进程,而是只为各类设备设置相应的设备处理程序,供用户进程和系统进程调用
b. 设备驱动程序的特点:
~~~~~~
i. 与硬件紧密联系,是I/O请求进程与设备控制器之间的通信接口
~~~~~~
ii. 不同类型的设备,甚至同类型不同厂家的设备的都需要相应的驱动程序。因为控制命令和端口等都可能不一样
~~~~~~
iii. 与硬件紧密相关的程序一般用汇编编写,有的标准设备的驱动程序已经固化在ROM中
~~~~~~
6. 磁盘I/O:
提高磁盘I/O的途径:
~~~~~~
i. 性能好的磁盘:旋转速度快、存取速度快等
~~~~~~
ii. 采用好的磁盘调度算法
~~~~~~
iii. 设置磁盘告诉缓冲区