I/O
I/O
可以将数据输入到计算机,或者可以接收计算机输出的外部设备,属于计算机中的硬件部件
按使用特性分类:
-
人机交互类外部设备:数据传输速度慢,如鼠标、键盘、打印机
-
存储设备:数据传输速度快 ,如移动硬盘、光盘
-
网络通信设备:数据传输速度介于以上二者之间,如调制解调器
按传输速率分类:
-
低速设备:如鼠标、键盘等
-
中速设备:如激光打印机等
-
高速设备:如磁盘等
按信息交换单位:
(数据传输的基本单位)
-
块设备:传输速率较高,可寻址,如硬盘等
-
字符设备:传输速率较慢,不可寻址,输入输出时常采用中断驱动方式,如鼠标、键盘等
I/O设备:
-
机械部件:主要用来执行具体的I/O操作
-
电子部件:通常是一块插入主板扩充槽的印刷电路板
CPU通过控制I/O控制器,又由I/O控制器来控制设备的机械部件
控制器中寄存器的编址方式:
-
内存映像I/O:寄存器占用内存地址一部分(寄存器与内存地址统一编址)
优:简化了指令
-
寄存器独立编址:I/O专用地址(控制器中的寄存器使用单独的地址)
缺:需要设置专门的指令来实现控制器的操作,不仅要指明寄存器的地址,还要指明控制器的编号
I/O控制方式:
-
程序直接控制:
-
CPU干预频率很频繁,I/O操作开始前、后及等待完成的过程中需要不断轮询检查
-
每次读写一个字
-
优: 实现简单
-
缺:CPU与I/O设备只能串行工作,CPU需要一直轮询检查,长期处于忙等状态;CPU利用率低
-
-
中断驱动:
-
I/O操作开始前、后需要CPU介入;等待I/O完成的过程中CPU可以切换到别的进程执行
-
每次读写一个字
-
优:CPU与I/O设备可并行工作;CPU利用率得到明显提升
-
频繁的中断处理会消耗较多的CPU时间
-
-
DMA(直接存储器存取):
-
数据传输单位是块
-
数据流向不需要CPU干预
-
仅在传送一个或多个数据块的开始和结束时才需要CPU干预
-
-
通道(硬件)控制:
一个通道可以控制多个设备控制器,一个设备控制器可以控制多个设备
-
通道程序放在主机内存中
-
每次读写一组数据块
-
数据流向不需要经过CPU
-
只有完成一组数据块的读写后才需要发出中断信号,请求CPU干预
-
优:CPU、通道、I/O设备并行工作,资源利用率高
-
缺:实现复杂,需要专门的通道硬件支持
-
I/O软件层次:
-
用户层软件:假脱机技术(SPOOLing技术)(缓解设备与CPU的速度矛盾):将独占式设备改造成共享设备
-
设备独立性软件:I/O调度、设备保护
-
设备驱动程序
-
中断处理程序
-
硬件
设备分配:
-
安全分配方式:为进程分配一个设备后就将进程阻塞,本次I/O设备完成后才将其唤醒
一个时间段内每个进程只能使用一个设备
-
优:不会死锁(破坏了请求和保持条件)
-
缺:对于一个进程来说,CPU和I/O设备只能串行工作
-
-
不安全分配方式:进程I/O请求后,系统为其分配I/O设备,进程可继续执行,之后还可以发出新的I/O请求,只有某个I/O请求得不到满足时才将其进程阻塞
一个进程可以同时使用多个设备
-
优:进程的计算任务和I/O任务可以并行处理,使进程迅速推进
-
缺:有可能发生死锁
-
-
静态分配:进程运行前为其分配所需的全部资源运行结束后归还资源(破坏了请求和保持,不会发生死锁)
-
动态分配方式:进程运行过程中动态申请设备资源
缓冲区
使用硬件作缓冲区的成本较高,容量也较小;一般情况下,更多的是利用内存作为缓冲区
作用:
-
缓和CPU和I/O设备之间速度不匹配的矛盾
-
减少对CPU的中断频率,放宽对CPU中断相应时间的限制
-
解决数据粒度不匹配问题
-
提高CPU与I/O设备之间的并行性
当缓冲区非空时,不能往缓冲区冲入数据,只能从缓冲区把数据传出;当缓冲区为空时,可以往缓冲区冲入数据,但必须把缓冲区充满后,才能从缓冲区把数据传出
T设备,M缓冲区,C工作区
-
单缓冲:处理一块数据平均耗时MAX(C,T)+M
-
双缓冲:处理一块数据平均耗时MAX(C+M,T)
-
循环缓冲
-
缓冲池:系统中共用的缓冲区组成
浙公网安备 33010602011771号