I/O控制方式
程序IO方式
采用busy-waiting的方式,即CPU会采用轮询的方式来询问数据,效果最差
中断驱动I/O控制方式
设备控制器当取出一个数据之后向CPU发送一个中断,然后CPU将数据从控制器中取到CPU寄存器,再然后转移到内存中。CPU是以字节的方式来响应数据的。
直接存储器访问DMA控制方式
CPU通过向DMA控制器设定若干参数,然后DMA打开了一条内存到设备的通道,这样,设备(内存)中的数据可以不通过CPU来进行数据交互。
缺点是,DMA是多少,设备就需要多少DMA,而且,DMA方式下,CPU的访问设备是以数据块为周期的。
利用通道实现了(内存和外设)之间数据的快速传输。
IO通道控制方式
IO通道相当于一个简单的处理机,有自己的指令,也可以执行指令。指令存储在内存。
IO通道相当于一条PCI总线,一条IO通道可以连接所有的设备控制器。然后CPU向IO通道发出指令,IO通道将会自动进行获取数据。
另外,IO通道是以一组块为单位进行获取的。
IO通道方式需要最少的CPU干预,I/O通道控制方式只有在开始和结束的时候CPU才会对其进行干预,在其处理I/O指令的过程中CPU不会对其进行干预,这样才能实现通道控制方式解放CPU的作用
IO重定向
指将命令的执行结果重新导出到其他的设备或者文件。主要包括输入重定向和输出重定向。‘’
缓冲技术
为了 缓和 CPU与I/O设备间 速度不匹配 的矛盾;
减少对CPU的中断频率,放宽对中断响应时间的限制;
提高 CPU和I/O设备之间的 并行性;
减少访问主存;
缓冲区
在现代操作系统中,几乎所有的I/O设备在与处理机交换数据时都用了缓冲区。
缓冲区是一个存储区域,在 一般情况下 ,更多的是利用 内存 作为缓冲区 ,如单缓冲区、双缓冲区、环形缓冲区和缓冲池。
缓冲区有两块:高速缓存区(物理存在)和磁盘缓存区(逻辑存在,实际是内存一块),都不在外存(硬盘)
假定从磁盘把一块数据输入到缓冲区的时间为T,操作系统将该缓冲区中的数据传送到用户区的时间为M,而CPU对这一块数据处理的时间为 C。
对于单缓冲:
缓冲区数据传输到用户区后,才能再从磁盘读取数据。
系统处理一块数据的时间是Max(C, T)+M对于双缓冲:
缓冲区数据传输到用户区的同时,也能从磁盘读取数据。(理解为两个缓存工作)
系统处理一块数据的时间是MAC(C, T)例:
1、单缓冲区
设从磁盘将一块数据传送到缓冲区所用实际为80μs,将缓冲区中数据传送到用户区所用时间为40μs,CPU处理数据所用的时间为30μs。则处理该数据,采用单缓冲传送磁盘数据,系统所用总时间为(120μs)。
max(磁盘到缓冲区,CPU处理) + 缓冲区到用户区 = max(80, 30) + 40 = 120
2、双缓冲区
假定把磁盘上的一个数据块中的信息输入到一个双缓冲区的时间为T=0.1ms,将缓冲区中的数据传送到用户区的时间M=0.05ms,而CPU对数据的处理时间C=0.05ms,这样系统对每个数据块的处理时间为(0.1ms)。
磁盘设备
允许一段时间内,多个进程交叉访问,对于每一时刻而言,只允许一个进程访问。
传输速率较高,以数据块为传输单位
I/O控制方式常采用DMA方式
可以寻址,随即地读/写任意数据块
通道设备
I/O通道的目的是为了建立独立的I/O通道,使得原来一些由CPU处理的I/O任务由通道来承担,从而解脱cpu。
通道是一种特殊的处理机,具有(执行I/O指令集)能力。
通道作为一个独立于CPU的处理器,负责数据共享和传输处理的工作单元。
为了实现CPU与外部设备间最大的并行性,应采用通道设备
通道、设备、设备控制器三者间关系
通道控制设备控制器,设备控制器控制设备
I/O系统硬件结构分为四级:1。设备控制器,2。I/O设备,3。处理机(CPU),4。I/O通道,按级别由高到低的顺序是3-4-1-2
spooling技术
“假脱机IO技术”,为了提高(I/O设备)的使用效率,是一种把独占设备改造成逻辑上共享的设备,实现了虚拟设备功能,只能由软件实现。
通过spooling技术,可以把一台物理I/O设备虚拟为多台逻辑I/O设备
涉及到的设备
独占设备、虚拟设备、共享设备
- 低速设备一般被设置成独占设备,高速设备一般会设置为共享设备
- 独占设备是不能同时使用的设备,即在一段时间内,该设备只允许一个进程独占,如行式打印机、读卡机、磁带机等
响应时间
从发出命令到得到响应的时间。
以下描述了响应时间的不同阶段:
1、从键盘输入的请求信息传送到处理机的时间
2、处理机对请求信息进行处理的时间 – 处理时间
3、所形成的响应回送到终端显示器的时间 – 回显时间