- I/O系统的组成
- 性能指标
- 数据传输速率
- 数据的传输单位
- 设备共享属性等
- 分类
- 按传输速率
-
- 低速设备
- 中速设备
- 高速设备
- 按信息交换的单位
-
- 块设备
-
- 信息的存取总是以数据块为单位
- 字符设备
-
- 用于数据的输入和输出
- 按共享属性
-
- 独占设备
- 共享设备
- 虚拟设备
- 缓冲技术
- 原因
-
- 缓和CPU与I/O设备间速度不匹配的矛盾
- 减少对CPU的中断频率,放宽对中断相应时间的限制
- 提高CPU和I/O设备之间的并行性
- OS提供以下几种缓冲形式
-
- 单缓冲
- 双缓冲
- 循环缓冲
- 缓冲池
-
- 属于专用缓冲
- 组成
-
- 空缓冲区
-
- 空缓冲队列
- 输入缓冲区:装满输入数据
-
- 输入队列
- 收容输入缓冲区
- 提取输入缓冲区
- 输出缓冲区:装满输出数据
-
- 输出队列
- 收容输出缓冲区
- 提取输出缓冲区
- I/O软件
- 按分层的思想构造软件
-
- 较低层的软件要使较高层的软件独立于硬件
- 较高层的软件则要向用户提供一个友好、规范、清晰的界面
- 层次
-
- 用户空间的I/O软件
- 与设备无关的I/O软件:完成与设备无关的I/O操作
-
- 向上层提供同一接口
- 分配和释放独占设备
-
- 设备分配时要考虑的因素
-
- 设备的固有属性
-
- 独占
-
- 静态分配
-
- 进程运行前,完成设备分配;运行结束时,收回设备
- 缺点
-
- 设备利用率低
- 动态分配
-
- 在进程运行过程中,当用户提出设备要求时,进行分配,一旦停止使用立即收回
- 优点
-
- 效率高
- 缺点
-
- 分配策略不好时,产生死锁
- 共享
- 把独占设备改造成虚拟设备
- 设备分配算法
-
- FCFS
- 优先级高者优先
- 设备分配的安全性
-
- 安全分配方式
-
- 每当进程发出I/O请求后,便进入阻塞状态,直到其I/O操作完成时才被唤醒
- 不安全的分配方式
-
- 进程发出I/O请求后仍继续执行,需要时又可发出第二个I/O请求、第三个I/O请求。仅当进程所请求的设备已被另一进程占用时,进程才进入阻塞状态
- 设备独立性
- 实现设备独立性等
- 设备驱动程序
- 中断处理程序
- SPOOLing:用于将一台独占设备改造成共享设备的技术
- SPOOLing系统是对脱机输入、输出工作的模拟,它必须有高速随机外存的支持,通常采用磁盘
- 组成
-
- 输入井和输出井
- 输入缓冲和输出缓冲
- 输入进程和输出进程
- 特点
-
- 提高了I/O速度
- 将独占设备改造为共享设备
- 实现了虚拟设备功能