I/O基本概念
计算机2个主要任务:
- I/O操作(更频繁)
- 计算
I/O设备特点:
- 种类繁多,不断有新设备出现
- 接口标准化:如USB
I/O系统的对象和任务
I/O系统的主要对象:I/O设备和对应的设备控制器
I/O系统的主要任务:
- 完成用户提出的I/O请求
- 提高I/O速率
- 改善I/O设备的利用率
I/O系统的基本功能
- 隐藏物理设备的细节
- 与设备的无关性
- 提高处理机和I/O设备的利用率
- 对I/O设备进行控制.
- 确保对设备的正确共享
- 错误处理
设备独立性
为了提高操作系统的可适应性和可扩展性,现代操作系统中实现了设备独立性,也称为设备无关性。即应用程序独立于具体使用的物理设备。
实现方法:
- 引入逻辑设备和物理设备
- 在应用程序中使用逻辑设备名来请求使用某类设备
- 而系统在实际执行时使用物理设备名
- 系统必须具有将逻辑设备名转换为物理设备名的功能
- 类似于存储管理中的逻辑地址和物理地址的概念
I/O应用接口
I/O系统调用将设备的行为封装成一些通用类型,每个通用类型都可以通过一组标准函数即接口来访问,具体的差别被设备驱动程序所封装。
设备驱动程序层的作用是为内核I/O子系统隐藏设备控制器的不同细节。
设备在许多方面有很大差异:字符流或块;顺序或随机访问;共享或独占;操作速度;读写、只读、只写。
将I/O系统与硬件分离的做法简化了开发人员的工作,也有利于硬件制造商设计新的设备与现有的控制器接口相兼容。
I/O设备
- 执行I/O操作的机械设备:I/O设备
- 执行控制I/O的电子部件:设备控制器
I/O设备与计算机通过一个连接点(也就是端口)进行通信。
如果一个或多个设备使用一组共同的线,那么这种连接称为总线bus。总线bus是一组线和一组严格定义的可以描述在线上传输信息的协议。有几种类型,如链环、共享总线等类型。
设备控制器
控制器是用于操作端口、总线或设备的一组电子器件。
控制器的主要功能:
控制一个或多个l/O设备,以实现I/O设备和计算机之间的数据交换;它也是CPU与I/O设备之间的接口,接收从CPU发来的命令,并控制I/O设备工作,以使CPU从繁杂的设备控制事务中解脱出来。
I/O寄存器
- 状态寄存器
- 控制寄存器
- 数据输入寄存器
- 数据输出寄存器
驱动程序将抽象I/O命令转换成具体的命令和参数等装入设备控制器的相应寄存器,由控制器执行这些命令,具体实施对I/O设备的控制。
控制设备的具体方法
一种是通