外部设备:
存储型设备
I/O设备
设备管理的功能:
设备
中断处理
缓冲区管理
设备
分配和去配
设备
驱动调度
实现
虚拟设备
I/O控制方式
轮询:查询指令——读写指令——转移指令
会中止原程序的执行。主机不能充分发挥功效,整个系统效率很低
中断
核心思想:
允许I/O设备主动打断CPU的运行
不必忙式轮询
响应中断请求后必须停止现行程序
DMA(Direct Memory Access)
直接存储器存取
无需CPU干预,
只有当整个数据块传送结束后,处理器才被中断
CPU总是把总线占有权让给DMA,“周期窃取”,降低CPU处理效率
每发出一次
I/O指令只能读写一个数据块
通道(
I/O处理器
)
完成内存和设备之间的信息传送,
与CPU并行工作
CPU需要完成一组相关的读写操作与有关控制时,
只需要向通道发送一条
I/O指令。通道完成传送时向CPU发送中断请求
通道程序是由一系列通道指令所构成的
DMA与通道的区别:(通道的自主权更大)
DMA需要CPU来控制传输的数据块大小,内存位置。通道则自行控制
DMA控制器对应一台设备与内存传递数据。通道控制多台设备与内存的数据交换
独立于设备的I/O软件
设备命名与保护
提供与设备无关的块尺寸
缓冲技术
设备分配和状态跟踪
错误处理和报告
设备驱动程序:
逻辑I/O转化为物理
I/O
缓冲技术:
目的:
协调CPU与设备的速度
逻辑记录大小与物理记录大小不一致的问题
提高并行性
减少中断
单缓冲
双缓冲
多缓冲
磁盘调度算法:(P270)
先来先服务FCFS
最短寻找时间优先
扫描算法(必须扫描到头)
循环扫描算法(总是从0号柱面至最大号柱面顺序扫描,然后直接返回0,需要扫描到头)
分步扫描算法(分N个子队列)
电梯算法(LOOK
)(不用扫描到头)
提高磁盘I/O速度的办法:
提前读
延迟写
虚拟盘(RAM盘):内存空间去仿真磁盘,拥有立即存取的优点
虚拟设备
原理:
缓冲区:输入缓冲区“预输入”与输出缓冲区“缓输出”
好处:
设备利用率提高
作业运行时间缩短
SPOOLing技术:独占型设备变成共享设备的一种技术
预输入:输入磁盘的输入缓冲区
井管理
井文件存放方式:连接方式与计算方式
缓输出:数据暂存磁盘的输出缓冲区
题目部分:
I/0软件一般分为四个层次:用户层、与设备无关的软件层、设备驱动程序以及中断处理程序。试说明以下各个工作是在哪一层完成的?
1. 向设备寄存器写命令;
2. 检查用户是否有权使用设备;
3.将二进制整数转化成ASCII码以便打印。
逻辑地址转换为物理地址
设备缓冲区管理
唤醒请求 I/O 的进程
检查设备状态寄存器内容
(1)在设备驱动程序。
(2)与设备无关的软件层。
(3)用户层。
在操作系统 I/O 软件
操作系统 I/O 软件
设备驱动程序
在 I/O 中断处理程序
I/0 软件分为四个层次:用户 I/O 软件、与设备无关的 OS I/O 软件、设备驱
动程序以及 I/O 中断处理程序。试说明以下各个工作是在哪一层完成的?
(3) 设备状态跟踪。
(5) 处理设备 I/O 中发生的故障
自己的理解:
与设备无关的软件层
I/O 中断处理程序
1、旋转型设备上信息的优化分布能减少为若干个I/O服务的总时间。设磁鼓上分为20个区,每区存放一个记录,磁鼓旋转一周需20毫秒,读出每个记录平均需用1毫秒,读出后经2毫秒处理,再继续处理下一个记录。在不知当前磁鼓位置的情况下:(1)顺序存放记录1、……,记录20时,试计算读出并处理20个记录的总时间;(2)给出优化分布20个记录的一种方案,使得所花的总处理时间减少,且计算出这个方案所花的总时间。
答:定位第1个记录需10ms。读出第1个记录,处理花2ms,这时已到了第4个记录,再转过18个记录(花18ms)才能找到记录2,所以,读出并处理20个记录的总时间:
10+3+(1+2+18)×19=13+21×19=412ms
如果给出优先分布20个记录的方案为:1,8,15,2,9,16,3,10,17,4,11,18,5,12,19,6,13,20,7,14。当读出第1个记录,花2ms处理后,恰好就可以处理记录2,省去了寻找下一个记录的时间,读出并处理20个记录的总时间:
10+3+3×19=13+247=260ms