设备的分类:
按数据组织:
块设备:
以数据块为单位存储传输信息,速率高,可寻址
字符设备:
以字符为单位存储传输信息,速率低,不可寻址
按资源分配角度:
独占设备:
在一段时间内能被多个进程使用,大多为低速的IO设备如打印机和磁带
共享设备:
在一段时间内能被多个进程使用,资源的利用率较高,如硬盘虚设备;
在一类设备上模拟另一类设备,主要是独占设备模拟共享设备,高速设备模拟低俗设备,被模拟的设备称为虚设备,目的是提高设备利用率,例如SPOOLing技术用硬盘模拟输入输出设备
I/O端口地址:
内存映像编址
系统中所有端口的地址空间和内存空间统一编址,将I/O看作一个存储单元
优点:
不用专门的I/O指令,使用统一的指令进行操作
缺点:
占用内存空间,特别是在早期内存空间十分宝贵的时候
对内存映射IO不能对设备控制寄存器使用高速缓存技术
I/O独立编址:
系统端口的地址和内存地址空间分开,使用专门的I/O指令对端口进行操作
优点:外设不占用内存的地址空间,对内存操作和I/O操作易于区分
缺点:I/O端口操作的指令少,不灵活
I/O控制方式:
可编程I/O(轮询):
CPU代表需要I/O的进程给I/O模块发送I/O命令,进程进入忙等待
中断驱动I/O:
通过引入中断,减少不断询问控制寄存器状态产生的开销DMA:
I/O到内存的直接数据传送
I/O软件层次:
用户级I/O软件
与设备无关软件
设备驱动程序
中断处理程序
硬件
设备独立性/设备无关性:
用户角度:使用的逻辑设备
系统角度:除了底层软件和硬件打交道外其他部分软件不依赖硬件
I/O缓冲技术:
单缓冲
双缓冲
缓冲池(NUIX system5缓冲技术):缓冲控制块实现缓冲技术管理,逻辑设备号和盘块号是缓冲区的唯一标志
独占设备的分配:
静态分配:进程运行前分配,进程运行结束收回,设备利用率低
动态分配:进程运行中用户提出设备分配时分配给用户,使用完成立即收回,效率好但是容易产生死锁
I/O性能:
减少和缓解速度差距:缓冲技术
使CPU不等待I/O:异步I/O
让CPU摆脱I/O操作:DMA