操作系统 I/O

I/O控制方式

I/O控制方式分为四种:程序直接控制方式、中断驱动方式、 DMA方式、 通道控制方式。

程序直接控制方式:

读操作
1.CPU向I/O控制器发出读指令, 并且状态寄存器设为未就绪状态。
2.CPU 轮询检查状态寄存器的状态, 判断其是否就绪, 若未就绪, 则循环继续检查直到就绪。
3.输入设备准备好数据后将数据传送给控制器,并将状态寄存器改为就绪。
4.CPU将数据寄存器中的值读到CPU寄存器中, 再把CPU寄存器中的值放入内存。

在这里插入图片描述
数据的流向
读操作:I/O设备 -> CPU寄存器 -> 内存
写操作:内存 -> CPU寄存器 -> I/O设备

优点: 实现简单, 在读写操作之前, 只需要执行循环控制程序即可, 所以叫程序直接控制方式。

缺点: CPU和I/O只能串行的工作,因为长时间处于忙等待状态, CPU效率很低。

中断驱动方式

为了解决CPU和I/O的并行工作, 引入了中断机制。

在CPU向I/O控制器发出读命令后, 将该I/O等待的进程阻塞, 转头去执行其它进程, 当I/O完成后, 控制器会向CPU发出中断信号, CPU保存当前进程运行的环境, 然后去执行中断处理程序处理该中断, 然后将数据寄存器中的值读入CPU寄存器, 再读入内存。

优点:提高了CPU的利用率。
缺点:频繁的中断还是会消耗很多的CPU时间。

DMA

CPU要读/写数据时, 向DMA控制器说明要读多少数据, 存放在内存的什么位置等, 之后就不用再参与此次读/写数据的过程。
在传送数据的开始和结束时才需要CPU的参与, 并且每次入读的是块, 也可以是连续的多个块。

优点: 数据传送以块为单位,CPU的介入频率更低, 并且数据的传输不需要经过CPU再到内存。
缺点: CPU每发出一条I/O指令, 只能读写一个或多个连续的块。

通道

通道是一种硬件, 阉割版的CPU。 可以识别并执行一系列的通道指令。

当CPU要向I/O读/写数据时, CPU向通道发出命令, 说 我要读/写数据了, 然后CPU就可以执行其它进程了,通道去内存中找到通道程序, 也就是所谓的任务清单并依次执行。

优点:CPU, 通道, I/O设备可以并行工作, 资源利用率高
缺点: 实现复杂, 需要硬件支持。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值