Chapter7 设备管理 - abowloflrf/os-note GitHub Wiki
设备概述
分类
从属关系分类
- 系统设备
操作系统生产时已经登记在系统中的标准设备
- 用户设备
操作系统未登记的非标准设备
按传输速率分类
- 低速设备
- 中速设备
- 设备设备
使用特性分类
- 储存设备
用于保存数据,磁盘等
- I/O设备
向cpu传输数据或输出cpu加工处理数据的设备,如键盘显示器
按共享属性分类
- 独占设备
一段时间内只允许一个用户或进程访问的设备
- 共享设备
一段时间内允许多个进程同时访问的设备,多个进程交叉方式使用设备,资源利用率高,如硬盘
- 虚拟设备
通过虚拟计数将一台独立的设备变成若干台供多个用户进程共享的设备。一般使用假脱机SPOOLing实现
按数据传输的基本单位分类
- 字符设备
以字节单位传送数据,如键盘
- 块设备
以块为单位传输,如磁盘
设备管理的重要目标
- 效率
提高设备的利用率和IO效率,充分利用各种技术提高CPU与设备,设备与设备之间的并行工作能力
并行性,均衡性
- 通用性
为用户提供方便统一接口,希望能用统一的方式处理所有设备
方便性,接口友好,透明性
设备管理的功能
- 设备分配
- 设备处理
- 实现其他功能
IO控制方式
程序直接控制(轮询)
由用户进程控制,不断测试设备状态
缺点:忙等待,CPU与IO只能串行工作
中断方式
不足:数据传送是在中断处理时CPU控制完成,每次传输数据量少,可能造成数据由于CPU来不及取而丢失
DMA方式
在内存与IO设备之间直接传送数据块,开始时CPU向设备发送命令,数据传送由DMA控制器完成,每次一个数据块,传送结束时,DMA控制器给CPU发送一个中断信号
DMA与中断方式的主要区别
中断是在数据缓冲寄存器满后发送中断请求,CPU进行中断处理,DMA是在所要求传送的数据块传送结束时要求CPU进行中断处理,减少了CPU进行中断处理的次数
中断方式的数据传送是由CPU控制完成,DMA方式是在DMA控制器的控制下不经过CPU完成
通道方式
独立于CPU的专门负责数据输入输出传输工作的处理机
IO缓冲
缓冲:为了缓解通信双方速度不匹配引入的一个中间环节
IO缓冲:CPU与IO设备之间建立缓冲区,用于暂存CPU与外设之间交换的数据,从而缓和CPU与外设速度不匹配所产生的矛盾
引入IO缓冲和的目的
- 改善CPU与外设IO设备速度不匹配的矛盾
- 减少对CPU的中断频率
- 减少访问IO设备的次数
- 提高CPU与IO设备之间的并行性
实现IO缓冲的方式
- 硬件缓冲
- 软件缓冲
IO缓冲(软件缓冲)
- 单缓冲
- 双缓冲
- 缓冲池
设备分配与设备处理
设备分配
当某进程项系统提出IO请求时,设备分配程序按一定策略分配设备,控制器和通道,形成数据传输通路,以供主机与设备之间信息交换
分配策略
- 独占设备的分配
- 分时式共享设备分配
- SPOOLing方式使用外设
设备处理
- 设备驱动程序
- IO中断处理程序
IO管理中的重要思想
- 设备独立性
- SPOOLing
- IO软件的多层模型
- 独立于设备的软件
- 用户空间的IO软件
磁盘IO
影响磁盘IO性能的因素
磁盘调度算法
- 先来先服务
- 最短寻道时间优先
- SCAN算法
- C-SCAN循环扫描
- N-Step-SCAN
- FSCAN
磁盘IO性能改善
- 磁盘告诉缓存
- 合理分配磁盘空间
- 提前读
- 延迟写