1. I/O设备的分类
块设备和字符设备
块设备把信息存储在固定大小的块中,每个块有自己的地址。
字符设备以字符为单位发送或接受一个字符流。字符设备所以不可寻址的,也没有任何寻址操作。打印机、网络接口、鼠标等式字符设备。
时钟例外:不是块可寻址、也不产生或接收字符流。它按预先规定好的时间间隔产生中断。
2. 设备控制器
I/O设备由机械部件和电子部件两部分组成。
电子部件称设备控制器或适配器。
任务:把串行的位流转换成字节块,并进行必要的错误校正工作,再复制到主存中。
3. 内存映射I/O
CPU与设备的控制寄存器和数据缓冲区(如视频RAM)的通讯的方式:
(a) 单独的I/O和内存空间(每个控制寄存器被分配一个I/O port 号,所有的I/O端口形成I/O端口空间,普通用户程序不能对其进行访问)(如大型主机)
(b) 内存映射I/O(所有控制寄存器映射到内存地址中,每个控制器被分配唯一的一个内存地址)(如PDP-11)
(c) 混合方案(Memory-mapped I/O &Separate I/O port)(具有内存映射I/O的数据缓冲区,而控制寄存器则具有单独的I/O端口)(如Pentium处理器)
4. 中断
精确中断和不精确中断
5. I/O软件的目标
1) 设备独立性
2) 统一命名
3) 错误处理
4) 同步(即阻塞)和异步(即中断驱动)传输
5) 缓冲
6) 共享设备和独占设备
6. I/O的三种不同的实现方式
1) 程序控制I/O
轮询/忙等待:CPU不断查询设备以了解它是否就绪准备接收另一字符,直到全部I/O完成前要占用CPU的全部时间。
2) 中断驱动I/O
启动一个I/O操作的驱动程序阻塞起来,直到I/O操作完成且产生一个中断。
3) 使用DMA的I/O
DMA做全部工作,将中断的次数从打印每个字符一次减少到打印每个缓冲区一次。
7. I/O软件层次
用户级I/O软件-与设备无关的操作系统软件-设备驱动程序-中断处理程序-硬件
中断处理程序:将启动一个I/O操作的驱动程序阻塞起来,直到I/O操作完成且产生一个中断。
设备驱动程序:控制设备的特定代码,一般由设备制造商编写提供。每个设备驱动程序通常处理一种类型的设备。一般功能包括:接受请求、对设备进行初始化、管理电源需求和日志事件。
8. 磁盘调度算法
磁盘调度的影响因素:寻道时间(主导)/旋转延迟/实际数据传输时间
算法:
1) FCFS先来先服务
2) SSF最短寻道优先
3) 电梯算法