OS-5-IO管理
2021-09-13 20:07:30 0 举报
AI智能生成
操作系统 I/O管理
作者其他创作
大纲/内容
用户层软件向用户提供IO相关库函数
设备独立性/无关性软件·向上提供系统调用接口·实现设备的保护(设备视为文件)·(设备)差错处理·设备分配与回收(临界资源)·数据缓冲区管理·建立逻辑设备名↔物理设备名的映射··LUT逻辑设备表:OS统一LUT vs. 用户独立LUT LUT表项:逻辑设备名(含路径)-物理设备名-驱动程序入口
设备驱动软件·负责硬件的具体控制(设置寄存器、检查状态)··不同厂家硬件特性不同,需要专用的驱动
中断处理程序IO完成时,IO控制器发送中断信号由OS分析中断信号并作出相应处理也要和硬件交互
硬件
外框
IO软件层次结构
IO系统OS的IO核心子系统
可以看做“磁盘调度”的扩展集,使用相似的思想处理
IO调度
UNIX系统“一切皆文件”,设备也有FCB
通过FCB可以实现设备保护
设备保护
在用户层实现,可以将独占式设备改造为共享式设备
脱机技术即脱离主机控制的操作,缓和了外围设备IO和CPU的速度矛盾
用软件模拟脱机
子主题
假脱机原理
原理分析:共享打印机
假脱机技术(SPOOLing)
独占设备
共享设备:一般是宏观共享
虚拟设备:采用SPOOLing技术生成的“共享设备”
设备固有属性
FCFS、SPF...
分配算法
将资源分配后进程将阻塞,直到本次IO完成
破坏了请求-保持条件,不会死锁
对进程而言,CPU和IO设备只能串行工作
安全分配方式
进程只会在IO请求失败时阻塞
进程可以同时使用多个设备
可能死锁(银行家算法、死锁检测-解除)
不安全分配方式
安全性
一次性分配
静态
动态
策略
一个通道控制多个控制器,一个控制器可控制多个设备
每设备配置一张设备控制表DCT
每设备控制器配置一张控制器控制表COCT
通道配置一张通道控制表CHCT
系统控制表SDT:记录所有设备
数据结构
改进:进程可提供逻辑设备名(设备类型),映射由LUT完成
根据进程提供的物理设备名寻找SDT
由SDT找到DCT,若忙碌将PCB挂到对应设备的等待队列,否则将设备分配给进程
找到COCT,若忙碌将PCB挂到对应设备控制器的等待队列,否则将设备控制器分配给进程
找到CHCT,若忙碌将PCB挂到对应通道的等待队列,否则将通道分配给进程
仅有三者的分配全部成功才算设备分配成功
分配步骤
实现
设备分配与回收
IO核心子系统
低速
中速
高速
按速率
人机交互
存储设备
网络通信设备
按使用特性
块设备:可寻址
字符设备:不可寻址,通常采用中断驱动
按信息交换单元
分类
鼠标键盘
显示器
移动硬盘
可以向计算机输入数据也可接收计算机输出数据
UNIX系统将IO设备抽象为特殊的文件。将IO操作统一到读写操作中
IO设备
有控制寄存器
接收识别CPU命令
有状态寄存器
向CPU汇报设备状态
有数据寄存器
数据交换
由IO逻辑电路实现
地址识别
功能
包含各种寄存器、可能有多组
CPU-控制器接口
接收识别命令、地址译码,发送指令
IO逻辑电路
不一定唯一
控制器-设备接口
组成
内存映像IO:寄存器占用内存地址一部分
需要额外指明控制器编号
需要专用指令实现操作
寄存器独立编址:IO专用地址
寄存器编址方案
IO控制器设备控制器
程序直接控制
中断驱动方式
DMA
通道控制方式
IO控制方式
缓冲区是一个存储区域,既可以由专门的硬件寄存器构成,也可使用内存。
专用硬件缓冲区成本高容量小,仅用于对速度要求极高的场合(TLB相联存储器)
缓和CPU与IO设备的速度矛盾
减少CPU中断频率,放宽CPU中断响应时间的限制
解决数据粒度不匹配的问题
提高CPU和IO设备的并行性能
作用
若无特殊说明,缓冲区大小为1块
只能向空缓冲区充入数据
缓冲区非空时,只允许从缓冲区取出数据
缓冲区充满时
单缓冲
为进程分配两个缓冲区
允许同时传送、输入(不同的缓冲区)
允许同时输入、计算
不允许同时传送、计算
双缓冲
大小相等的缓冲区链接为循环队列
in指针指向下一个可充入的缓冲区,out指针指向下一个可取出的缓冲区
循环缓冲区
众多共用缓冲区组成
按状态组织为:空缓冲队列、输入队列、输出队列
按用途可分为:接收设备输入hin、进程提取输入sin、接收进程输出hout、设备提取输出sout
缓冲池
设置初始状态,分析下次进入此状态的时间
平均周期
考察
缓冲区管理
IO管理
0 条评论
回复 删除
下一页