io控制方式

程序直接控制方式

完成一次读写操作的流程(以读操作为例子)

1.cpu向控制器发出读指令,于是设备启动,并且状态寄存器设置为1(未就绪)

2.轮询检查控制器的状态

3.输入设备准备好数据后,将数据传给控制器,并且报告自身状态

4.控制器讲输入的数据放到数据寄存器中,并将状态改为0

5.cpu发现设备以及就绪,即可讲数据寄存器的内容读入cpu的寄存器中,再把cpu寄存器中的内容放入内存

6.若还需要继续读如数据,则cpu继续发出读指令

关键词:轮询

cpu干预的频率很频繁,IO操作开始之前完成之后需要cpu介入,并且在等待IO完成的过程中CPU需要不断轮询检查

数据传输的单位

每次读写一个字

数据的流向:
读:从IO设备-》cpu-〉内存
写:从内存-》cpu-〉io设备

每个字的读写都需要cpu帮助

优点:实现简单,在读写之后,加上实现循环的检查一系列指令即可

缺点:cpu和io设备只能串形工作,cpu一直轮询检查,长期处于忙等,cpu利用率低

中断控制方式

引入中断机构,因为io速度很慢,cpu速度快,因此可以阻断等待io的进程。当io完成后,控制器向cpu发出一个中断信号(告诉cpu现在要去做别的事情)

cpu监测到中断信号之后,会保存当前的允许环境信息,转而去执行中断处理程序,处理该中断,处理过程中,cpu从io控制器读一个字的数据传送到cpu寄存器(如果你没有好,我先干别的,如果你好了,发一个字给我)

注意:

1.cpu在每个指令周期末尾检查中断

2.中断处理过程中需要保存,恢复进程的允许环境,这个过程是需要一定时间开销的,可见,如果中断发生频率太高,也会降低系统性能


1.cpu的干预频率

每次io操作开始之前,完成之后需要cpu介入

等待io完成的过程中cpu可以切换到别的进程执行

2.数据传输单位:每次读写一个字

数据的流向:
读:从IO设备-》cpu-〉内存
写:从内存-》cpu-〉io设备

优点:解决了程序直接控制方式最大的缺点,使得cpu和io设备可并行工作,cpu利用率得到明显提升。

缺点:每个字在io设备与内存直接的传输,都需要经过cpu,而频繁中断处理会消耗较多cpu时间

DMA方式

直接存储器存取(Direct Memory Access)

1.数据传输单位是一个块,而不是一个字

2.数据的流向是从设备直接放入内存,或者内存直接到设备,不再需要cpu作为快递小哥

3.仅在传送一个或者多个数据库的开始和结束时,才需要cpu干预

DR(data register):暂存从设备到内存,或者从内存到设备的数据

MAR(memory Address Register)表示数据应该放在内存的什么位置

DC(Data Counter):表示剩余要读写的字节数

CR(Command Register)用来存放cpu发来的io命令


1.cpu干预频率:

仅在传送一个或者多个数据块的开始和结尾才需要cpu干预

2.每次读写一个或者多个块,而不是字(每次读写只能是连续的多个块,且这些块在读如内存后内存中也是连续的)

读:IO设备-》内存

写:内存-〉io设备

优点:数据传输以块为单位,cpu介入评论进一步降低,数据的传输不再需要现经过cpu在写入内存,cpu和io设备的并行性得到提升

缺点:cpu每发出一条io指令,只能读写一个或者多个连续的数据块

通道控制方式

26不考

posted @ 2025-10-08 15:46  是我,米老鼠  阅读(11)  评论(0)    收藏  举报