基础知识
分类方式
- 按数据组织分类
- 块设备
- 字符设备
- 按资源分配分类
- 独占设备
- 共享设备
- 虚拟设备
- 按数据传输速率分配
- 低速设备
- 中速设备
- 高速设备
I/O软件层次结构
- 用户进程:进行I/O调用、格式化I/O、Spooling
- 设备无关软件:命名、保护、阻塞、缓冲、分配
- 设备驱动程序:置设备寄存器:检查状态
- 中断处理程序:当I/O结束时唤醒驱动程序
- 硬件:执行I/O操作
输入输出技术
- 程序控制(查询)方式
- CPU主动查询外设是否完成数据传输,效率极低
- 程序中断方式
- 外设完成数据传输后,向CPU发送中断,等待CPU处理数据,效率相对较高
- 适用于键盘等实时性较高的场景
- DMA方式(直接主存存取)
- CPU只需完成必要的初始化等操作,数据传输的整个过程都是由DMA控制器完成
- 在主存和外设之间建立直接的数据通路,效率很高
虚设备和spooling技术
- 现状问题
- 一台物理设备(互斥资源),例如打印机,在同一时间只能由一个进程使用,其他进程只能等待
- 不知道什么时候打印空闲,极大的浪费了外设的工作效率
- spooling
- 外设上建立两个数据缓冲区
- 输入井
- 输出井
- 打印命令发出,数据会排队存储在缓冲区中
- 打印机会自动按顺序打印,实现物理外设的共享
- 每个进程都感觉在使用同一个打印机,这就是物理设备的虚拟化
- 外设上建立两个数据缓冲区
磁盘结构
- 结构
- 正反两个盘面
- 每个盘面由多个同心圆
- 每个同心圆是一个磁道,每个同心圆又被划分为多个扇区
- 数据存放在一个个扇区中
- 读取数据
- 磁头首先要寻找到对应的磁道
- 等待磁盘进行周期旋转,旋转到指定的扇区,读取对应的数据
- 寻道时间(耗时最长),指磁头移动到磁道所需的时间
- 等待时间,等待读写扇区转到磁头下方所用的时间
寻道调度算法
- 先来先去服务FCFS
- 根据进程请求访问磁盘的先后顺序进行调度
- 最短寻道时间优先SSTF
- 请求访问的磁道与当前磁道最近的进程优先调度
- 产生饥饿现象,远处进程可能永远无法访问
- 扫描算法SCAN(电梯算法)
- 磁头在磁盘上双向移动,会选择离磁头当前所在磁道最近的请求
- 磁头永远都是从里向外或者从外向里一直移动完才掉头,与电梯类似
- 单向扫描调度算法CSCAN
- 单向移动
知识思维导图
文章来源地址https://uudwc.com/A/woyq6
文章来源:https://uudwc.com/A/woyq6