I/O体系结构
I/O系统结构为四级结构:
- 最低级为I/O设备
- 次低级为设备控制器
- 次高级为I/O通道
- 最高级是计算机
I/O通道:设置通道是为了建立独立的I/O操作,以保证CPU有更多的时间去进行数据处理。设置通道后,CPU只需向通道发出一条I/O指令。通道根据该指令,从内存中取出本次要执行的的通道程序并执行,当完成规定的I/O任务后,才向CPU发出中断信 。
I/O控制方法
程序查询方式
- 程序查询方式也称为程序轮询方式,该方式采用用户程序直接控制主机与外部设备之间输入/输出操作。CPU必须不停地循环测试I/O设备的状态端口,当发现设备处于准备好(Ready)状态时,CPU就可以与I/O设备进行数据存取操作。这种方式下的CPU与I/O设备是串行工作的,输入/输出一般以字节或字为单位进行。
- 在程序I/O方式中,CPU的绝大部分时间都处于等待I/O设备完成数据I/O的循测试中,造成对CPU的极大浪费。在该方式中,CPU之所以要不断地测试I/O设备状态,就是因为在CPU中无中断机构,使I/O设备无法向CPU 告它已经完成了一个字符的输入操作。
- 这种方式频繁地测试I/O设备,I/O设备的速度相对来说又很慢,极大地降低了CPU的处理效率,并且仅仅依靠测试设备状态位来进行数据传送,不能及时发现传输中的硬件错误。
- 但是这种方式的过程很简单,易理解,并且不需要额外硬件。
中断驱动方式
当I/O设备结束(完成、特殊或异常)时,就会向CPU发出中断请求信 ,CPU收到信 就可以采取相应措施。当某个进程要启动某个设备时,CPU就向相应的设备控制器发出一条设备I/O启动指令,然后CPU又返回做原来的工作。CPU与I/O设备可以并行工作,与程序查询方式相比,大大提高了CPU利用率。
- 但是在中断方式下,同程序查询方式一样,也是以字节或字为单位进行。
- 但是该方法大大降低了CPU的效率,因为当中断发生的非常频繁的时候,系统需要进行频繁的中断源识别、保护现场、中断处理、恢复现场。这种方法对于以“块”为存取单位的块设备,效率是低下的。
DMA(直接内存存取)方式
DMA方式也称为直接主存存取方式,其思想是:
允许主存储器和I/O设备之间通过“DMA控制器(DMAC)”直接进行批量数据交换,除了在数据传输开始和结束时,整个过程无需CPU的干预。每传输一个“块”数据只需要占用一个主存周期。
缓冲管理
引入缓冲区的原因
- 缓和CPU与I/O设备间速度不匹配的矛盾
- 减少对CPU的中断频率
- 解决数据粒度(数据单元大小)不匹配的问题
- 提高CPU和I/O设备之间的并行性
单缓冲区
环形缓冲区
I/O软件
实现方法
1.静态分配:一次性分配所有该作业所要求的全部设备与控制器直至作业被撤销,无死锁,但效率低。
2.动态分配:系统调用命令向系统提出设备请求,一旦用完便立即释放,利用率高,但可能会产生死锁。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!