操作系统--I/O设备管理 |
6.I/O设备管理
缓冲管理
缓冲的引入
处理数据流的生产者与消费者之间的速度差异
协调传输数据大小不一致的设备
单缓冲
1. 数据送入系统缓冲区,传送完成,进程把该块移到用户空间
2. 立即请求另一块系统缓冲区
3.同时用户可以处理用户区的那一块数据
可以提高速度
双缓冲
一个进程往一个缓冲区中传送数据时,操作系统可清空或填充另一个缓冲区
循环缓冲
多个缓冲区
空缓冲区
已装满数据的缓冲区
现行工作缓冲区
多个指针
Nextg
Nexti
Current
缓冲池
3类缓冲区
空缓冲区
装满输入数据的缓冲区
装满输出数据的缓冲区
3种缓冲队列
空缓冲队列 emq
输入队列 inq
输出队列 outq
4种工作缓冲区
收容输入
提取输入
收容输出
提取输出
what
用于计算机系统与人通信或与其他机器通信的所有设备
I/O系统
结构
微机I/O系统
cpu与设备不能直接信息交换,需要经过设备控制器
主机I/O系统
主机
通道
控制器
设备
设备分类
按传输速率
低速
一百以内 kb/s
键盘鼠标
中速
千万 kb/s
打印机
高速
几十万~几兆 kb/s
磁带机,磁盘机,光盘
按信息交换单位
块设备
字符设备
按设备共享属性
独占设备
共享设备
虚拟设备
设备控制器
I/O设备分为机械和电子两部分,~属于电子部分,可编程
what?
cpu与I/O设备之间的接口,接收I/O的命令并控制设备完成I/O工作
设备控制器是一个可编址设备
功能
1. 接收和识别命令
2.数据交互
3.设备状态的了解和报告
4.地址识别
5.数据缓冲
6.差错控制
组成
设备控制器和处理机的接口
设备控制与设备的接口
I/O逻辑
I/O通道
用于大型主机控制I/O设备,与控制设备结合,与设备控制器有对等的功能
提供操作系统与I/O设备之间的接口
特殊的处理机,执行I/O指令
使cpu从控制I/O的任务中解脱,使cpu与I/O并行工作
设备分配
数据结构
设备控制表 DTC
设备类型
设备标识符
设备状态
指向控制器的指针
重复执行的次数或时间
设备队列的队首指针
控制器控制表 COCT
控制器标识符
控制器状态
与控制器相连接的通道表指针
控制器队列的队首指针
控制器队列的队尾指针
通道控制表 CHCT
通道标识符
通道状态
与通道相连接的控制器表首址
通道队列的队首指针
通道队列的对位指针
系统设备表
设备类型
设备标识符
设备控制表
驱动程序的入口地址
考虑因素
设备固有属性
独占设备
共享设备
可虚拟设备
设备分配算法
先来先服务
基于优先权
安全性
分配方式
安全分配方式
进程发出I/O请求后,进入阻塞状态,直到其I/O操作完成时才被唤醒
不安全分配方式
进程在I/O请求后仍在继续运行,需要时又发出其他I/O请求
设备独立性
含义
应用程序独立于具体使用的物理设备
好处
程序与物理设备无关,设备增减不动程序
易于处理输入/输出设备的故障
提高系统的可靠性,增加灵活性
设备独立软件功能
1.执行所有设备的公有操作
2.向用户层软件提供统一的接口,屏蔽访问硬件的细节
独占设备分配步骤
1.分配设备
2.分配控制器
3.分配通道
I/O控制方式
轮询
反复检测设备控制器状态的寄存器的忙/闲标志位(循环检测,浪费)
中断
中断控制器发送中断请求,cpu响应中断,执行中断处理程序,然后唤醒阻塞进程
DMA
逻辑组成
主机与DMA的接口
DMA与设备的接口
I/O控制逻辑
4类寄存器
命令/状态 寄存器 CR
接收从cpu发来的I/O命令或有关控制信息
内存地址寄存器 MAR
存放内存地址
数据寄存器 DR
指示DMA,本次向cpu发出中断信号前要读或写数据的次数
数据计数器 DC
暂存DMA传输中要输入或输出的数据。
I/O软件原理
总体目标
将软件组织成一种层次结构
低层软件用来屏蔽硬件的具体细节
高层软件主要是为用户提供一个简洁、规范的界面
四个层次
用户层软件
与设备无关的软件层
与硬件无关的I/O软件功能
设备命名
设备保护
提供独立于设备的块大小
为块设备和字符设备提供必要的缓冲技术
块设备的存储分配
分配和释放独立设备
错误处理
设备驱动程序
what?
I/O 进程与设备控制器之间的通信程序
任务
接收上层软件发来的抽象的I/O请求,转为具体的要求,发给设备控制器
设备控制器发来的信号传送给上层
中断处理程序(底层)
作用
将发出I/O请求而被阻塞的进程唤醒
设备管理软件功能
1.实现I/O设备的独立性
2.错误处理
3.异步传输
4.缓冲管理
5.设备的分配和释放
6.实现I/O控制方式