I/O结构
通用计算机系统由一个CPU和多个设备控制器所组成,它们通过共同的总线连接起来。每个设备控制器负责特定类型的设备。整体的结构可以用下图来表示:
每个设备控制器负责特定的设备,即维护一定的本地缓冲存储器和一组特定用途的存储器。设备控制器负责在其所控制的设备与本地缓冲存储器之间进行数据的传递。
为了开始I/O操作,CPU在设备控制器内装入合适的寄存器值。相应地,设备控制器检查这些寄存器中的值,已决定采取何种操作,换句话说就是CPU控制设备是通过设定对应设备的设备控制器中的寄存器值来进行的。例如,如果一个进程发出了读设备的请求,CPU设定对应设备的设备控制器中的对应寄存器中的值,设备控制器发现了读请求,那么设备控制器就开始从设备向本地的缓冲区传递数据,如果数据传输完成,设备控制器就会通知CPU,说已完成操作,请把数据拿走吧。CPU接到这种通知就会从设备的缓冲区中读取数据。这个过程还有同步I/O和异步I/O之