一战成硕
- 5.1 I/O系统概述
- 5.1.1 I/O设备
- 5.1.2 I/O控制方式
- 5.1.3 I/O软件层次结构
- 5.1.4 应用程序的I/O接口
- 5.2 设备独立性软件
- 5.2.1 与设备无关的软件
- 5.2.2 高速缓存与缓冲区
- 5.2.3 设备分配与回收
- 5.2.4 spooling技术(假脱机技术)
5.1 I/O系统概述
5.1.1 I/O设备
-
设备的分类
按信息交换
1)块设备 ,信息交换以数据块为单位,属于有结构设备,如磁盘等。磁盘设备的基本特征是传输率高,可寻址。
2)字符设备,信息交换以字符为单位,属于无类型结构,如交换机打印机等,传输效率低,不可寻址。
按传输效率
1)低速设备
2)中速设备
3)高速设备 -
I/O接口
io接口位于cpu与设备之间,既要与CPU通信,又要与设备通信,还要具有按cpu发来的命令去控制设备的功能。主要由三部分组成
1)设备控制器与cpu的接口,数据线,地址线,控制线
2)设备控制器与设备接口
3)io逻辑
-
I/O端口
io端口指设备控制器中可被cpu访问的寄存器,只要有以下三类:
数据寄存器
状态寄存器
控制寄存器
实现cpu与io端口通信,有两种方法:
1)独立编址
2)统一编址
5.1.2 I/O控制方式
设备管理的主要任务之一是控制设备和内存或cpu之间的数据传送,外围设备和内存之间的输入输出控制方式有四种,下面分别加以介绍:
- 程序直接控制方式
简单易于实现但cpu利用率低。 - 中断驱动方式
允许io设备主动打断cpu的运行并请求服务。更有效,但仍然会消耗较多时间。 - DMA方式
在io设备和内存之间开辟直接的数据交换通路,彻底解放cpu。
1)基本单位是数据库
2)所传送的数据,是从设备之间存入内存的,或者相反
3)仅在传送一个或多个数据块的开始和结束时,才需要cpu干预,整块数据传送是在DMA控制器的控制下完成的。
要在主机与控制器之间实现数据的直接交换,须在DMA控制器中设置如下四类寄存器:
1)命令/状态寄存器
2)内存地址寄存器
3)数据寄存器
4)数据计数器
DMA方式与中断方式的主要区别是,中断方式在每个数据需要传输时中断cpu,而DMA方式则是在所要求传送的一批数据传送结束时才中断cpu。此外,中断方式的数据传送是在中断处理时cpu控制完成,而DMA方式则是在DMA控制器下完成的。 - 通信管道方式
io通道是指专门负责输入输出的处理机,io通道方式是DMA方式的发展,他可以进一步减少cpu的干预。即把一个数据块的读或写为单位干预,减少对一组数据块的读或写及有关控制和管理为单位干预,同时,又可以实现cpu通道和I/O设备三者并行操作,从而更有效提高整个系统的资源利用率。
通道指令类型单一,没有自己的内存,通道所执行的通道程序是放在主机内存中的,也就是说,通道与cpu共享内存,通道中传输数据块大小传输内存位置这些信息由通道控制,一个通道可以控制多台设备与内存数据交换。
5.1.3 I/O软件层次结构
5.1.4 应用程序的I/O接口
(1)字符设备接口
(2)块设备接口
(3)网络设备接口
(4)阻塞/非阻塞I/O
5.2 设备独立性软件
5.2.1 与设备无关的软件
与设备无关的软件是I/O系统最高层软件,他的下层是设备驱动程序,其间的界限因操作系统和设备的不同而有所差异。
5.2.2 高速缓存与缓冲区
-
磁盘高速缓存
利用内存中的存储空间来暂存从磁盘中读出的一系列盘块中的信息。磁盘高速缓存逻辑上属于磁盘,物理上则是驻留在内存中的盘块。
高速缓存在内存中分为两种形式,一种是在内存中开辟一个单独的空间作为磁盘高速缓存,大小固定。另一种是把未利用的内存空间作为一个缓冲池,供请求分页系统和磁盘IO共享。 -
缓冲区
在设备管理子系统中,引入缓冲区主要目的如下:
1)缓和cpu与io设备间速度不匹配的矛盾。
2)减少对CPU的中断频率,放宽对cpu中断响应时间的限制。
3)解决基本数据单元大小(即数据粒度不匹配的问题)。
4)提高cpu与io设备之间的并行性。
实现方法如下:
1)采用硬件缓冲器,成本高,除关键部位一般不用。
2)采用缓冲区(位于内存区域)
根据系统设置缓冲器的个数,缓冲技术可以分为如下几种:
(1)单缓冲
(2)双缓冲
(3)循环缓冲
(4)缓冲池 -
高速缓冲与缓冲区对比
5.2.3 设备分配与回收
- 设备分配概述
设备分配是指根据用户的io请求分配所需的设备。分配的总原则是充分发挥设备的使用效率,尽可能让设备忙碌,又避免由于不合理的分配方法造成进程死锁。从设备的特性来看,采用以下三种方通过分时式的设备成为独占设备、共享设备和虚拟设备。
1)独占式使用设备:进程分配到独占设备后,便由其独占,直至该进程释放该设备。
2)分时式共享使用设备:对于共享设备,可同时分配多个进程,通过分时共享使用。
3)以spooling方式使用外部设备,spooling技术实现了虚拟设备功能,可以将设备同时分配多个进程,这种技术实质上就是实现了对设备的io操作的批处理。 - 设备分配的数据结构
设备分配依据的主要数据结构有设备控制表(DCT)、控制器控制表(COCT)、通道控制表(CHCT),各数据结构功能如下:
- 设备分配策略
1)设备分配原则
设备分配应根据设备特性,用户要求和系统配置情况,既要充分发挥设备使用效率,又要避免造成进程死锁,还要将用户程序和具体设备隔离开来。
2)设备分配方式
静态分配:主要用于对独占设备的分配,在用户作业开始执行前,由系统一次性分配该作业的全部设备,控制器,一旦分配,这些设备控制器就一直由该作业所占用,直到该作业撤销,静态分配不会遭遇死锁,但设备利用率低。
动态分配:在进程执行过程中,根据执行才需要进行,当进程需要设备时,通过系统调用命令向系统提出调用请求,由系统按某种策略给进程分配所需设备控制器,一旦用完,便立即释放。提高了设备利用率,但若分配方式不当,可能造成死锁。
3)设备分配算法
先请求先分配。优先级高者优先等。
- 设备的安全性
- 逻辑设备名到物理设备的映射
5.2.4 spooling技术(假脱机技术)
操作系统中采用的一项独占设备改造成共享设备的技术。该技术利用专门的外围控制机,将低俗io设备上的数据传送到告诉磁盘,或者相反。