五、设备
IO设备的概率和分类
- 什么是I/O设备
- UNIX系统将外部设备抽象成一种特殊的文件,用户可以使用与文件操作相同的方式对外部设备进行操作
- Write操作:向外部设备写出数据
- Read操作:从外部设备读入数据
- I/O设备分类
- 按使用特性:
- 人机交互外部设备——速度慢
- 存储设备——速度块
- 网络通信设备——速度介于两者之间
- 按传输速率分类
- 低速设备
- 中速设备
- 高速设备
- 按照信息交换的单位分类
- 块设备——传输速率较高,可寻址,即对它可随机地读/写任一块
- 字符设备——传输速率较慢,不可寻址,在输入/输出时常采用中断驱动方式
- 按使用特性:
I/O控制器
I/O控制方式
- 程序直接控制:
- 中断驱动方式:在程序直接控制后加入了中断处理
- DMA——直接存储器存取
- DMA控制器的内部结构:
- 通道控制方式:可以读取离散的数据块
通道=弱鸡版CPU、通道程序=任务清单
I-O软件层次结构
设备独立性软件
-
又称设备无关性软件,与设备的硬件特性无关的功能几乎都在这一层实现
-
实现的功能
- 向上层提供统一的调用接口(read/write系统调用)
- 设备的保护(类似文件保护。设备被看作统一的文件,不同用户对于不同文件的访问权限不一样)
- 差错处理
- 设备的分配与回收
- 数据缓冲区管理——通过缓冲技术屏蔽设备之间的数据交换单位大小和传输速度的差异
- 建立逻辑设备名和物理设备名的映射关系:根据设备类型选择调用相应的驱动程序
- 逻辑设备表
I/O核心子系统
假脱机技术(SPOOLing技术)
- 假脱机技术(SPOOL技术)是用软件的方式模拟脱机技术。SPOOLing系统的组成如下
设备的分配与回收
-
知识总览
-
设备的固有属性
- 独占设备——一段时间段只能分配给一个进程(如打印机)
- 共享设备——可同时分配给多个进程使用(如磁盘),各进程往往是宏观上同时共享使用设备,而微观上交替使用
- 虚拟设备——采用SPOOLing技术将独占设备改造成虚拟的共享设备,可同时分配给多个进程使用(如采用SPOOLing技术实现的共享打印机)
-
设备分配算法
- 先来先服务
- 短作业优先
- 。。。。。
-
设备分配中的安全性
-
静态分配和动态分配
- 静态分配:进程运行前为其分配全部所需资源,运行结束后归还资源
- 动态分配:进程运行过程中动态申请设备资源
-
设备分配管理中的数据结构
-
一个设备对应多个通道,一个通道对应多个控制器
-
-
第一个数据结构——设备控制表
-
第二个数据结构——控制器控制表
-
第三个数据结构——通道控制表
-
第四个数据结构——系统设备表
设备分配的具体步骤
缓冲区管理
在内存中采用缓冲区后,可以缓解CPU与I/O设备之间速度不匹配的矛盾
单缓存中T>C:
单缓存中T<C:
双缓存:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HNUOLa9s-1596095871862)(http://cdn.comewei.xyz/qiuniuimg/image-20200730153825719.png)]
结论:采用双缓冲策略,处理一个数据块的平均耗时为Max(T,C+M)
循环缓冲区:
缓冲池:
总结: