写在前面:这一章似乎并不是很重要。当然,坐等打脸
OS内核通过设备驱动程序(模块)与I/O子系统链接,驱动为I/O子系统提供了统一设备访问接口,与系统调用API为应用程序与OS之间提供了统一的标准接口一样。
一、I/O硬件
1、端口:PC与设备的连接点
2、总线(PCI):一组线和一组严格定义的可以描述在线上传输信息的协议
3、扩展总线:连接串行、并行端口和相对较慢的设备
4、控制器:用于操作端口、总线或设备的一组电子器件,是PC上的一块芯片或者部分芯片,有一个或多个用于数据和控制信号的寄存器,,处理器通过读写这些寄存器的位模式来与控制器通信,控制控制器,即特殊I/O指令
5、设备具有地址,用于:
①直接I/O通信,I/O指令触发总线线路来选择设备并传入寄存器
②内存映射I/O,设备控制寄存器映射到处理器的地址空间,此时设备控制寄存器相当于一块内存
6、I/O端口:通常由如下几种寄存器:
①数据输入寄存器:被主机读出,设备控制器进行写入
②数据输出寄存器:被设备控制器读出,主机进行写入
③状态寄存器:包含主机可读取的位信息
④控制寄存器:主机用来向设备发送指令或改变状态
7、轮询:主机与控制器之间的交互过程,适用于快I/O
①主机不断地读取忙位,直到该位被清除 (这个过程称为轮询,亦称忙等待-busy waiting)
②主机设置命令寄存器中的写位并向数据输出寄存器中写入一个字节。
③主机设置命令就绪位