操作系统(第六章)
设备管理
I/O系统组成
- I/O设备:打印机和磁盘
- I/O设备控制器
- I/O通道
四级结构
$存储器 \rightarrow I/O通道 \rightarrow I/O控制器 \rightarrow I/O设备$
- 总线
I/O控制方式(4种)
cpu与外部设备之间信息交换方式
- cpu与外部设备的关系
- 传输信息的方式
程序I/O方式
- 定义:cpu通过执行测试指令判断I/O设备状态busy
- 0
- 1
- cpu与I/O串行工作
- 每次只能传输一个字符
中断控制
-
定义:因为内部某些原因,cpu停止当前程序的执行而转去执行中断服务程序(I/O操作),当中断程序执行完以后,又返回到中断的程序继续执行
-
分类
- 硬中断
- 软中断
-
中断的过程
- 保存中断现场(入栈)
- PSW(状态寄存器)
- PC(程序寄存器)
- 转入中断服务程序执行($中断向量 \rightarrow 入口地址$)
- 返回中断(出栈):$PC+1 \rightarrow PC$
数据寄存器:存放一个字符
cpu与I/O设备在启动中断操作的时候只串行,而其他都是并行
$中断频率高 \rightarrow cpu的干预多$
- 保存中断现场(入栈)
-
中断方式适用于打印机(字符设备)
DMA控制方式
-
定义:在DMA控制器的控制下,完成cpu与I/O设备的信息交换
-
DMA控制器的组成
寄存器,控制逻辑与I/O设备的接口
四个寄存器:DR(数据寄存器),MAR(内存地址寄存器),DC(数据计数器),CR(命令/状态寄存器)
-
传输用系统总线
-
cpu与I/O设备并行工作(周期的挪用)
- cpu执行简单指令(访问cpu寄存器)(几乎可以做到并行)
- cpu执行复杂指令(访问内存)(不可以并行)
中断驱动与DMA控制方式的区别
- 产生中断的频率不同
- 数据传输方式不同
I/O通道控制(了解)
缓冲区
缓冲的引入
- 缓和CPU与I/O设备间速度不匹配的矛盾
- 减少对CPU的中断频率,放宽对CPU中断响应时间的限制
- 提高CPU和I/O设备之间的并行性
实现方法
-
内存(连续一片存储空间,作为缓冲区)
-
寄存器
例:在分页系统中:快表(联想寄存器)
两种缓冲区(数据块处理时间的计算)
-
单缓冲:设置一个与数据块大小相等的缓冲区
处理过程
- T:从I/O设备输入到单缓冲的时间
- M:从单缓冲取出数据传送到内存工作区的时间
- C:cpu执行时间
其中,T,M为串行工作,T,C并行工作
一个数据块处理:T+M+C
多个数据块处理:MAX(T,C)+M
例:假设把磁盘上一个数据块中的信息输入一单缓冲区的时间T为100us,将缓冲区的数据传送到用户区的时间M为50us,CPU对这一块数据进行计算的时间C为50us。请问系统对一块数据的处理时间为多少
解:
单个为:100+50+50=200us
例:设系统缓冲区和用户工作区均采用单缓冲区,从外设读入1个数据块到系统缓冲区的时间为100,从系统缓冲区读入1个数据块到用户工作区的时间为5,对用户工作区中的1个数据块进行分析的时间为90,问:进程从外设读入并分析2个数据块的最短时间是多少?
解:
$T_1+M_1+T_2+M_2+C_2$=100+5+100+5+90=300us
例:已知有包括10个数据块的文件用单缓冲进行数据处理,其中从磁盘输入到缓冲区的时间是15us;再从缓冲区传送到内存时间为5us,最后对数据块执行时间为1us
解:
$T_1+M_1+C_{10}+(10-1) \times 20$=15+5+1+9 X 20=201us
-
双缓冲
- 缓冲区1
- 缓冲区2
处理过程
- T:从I/O设备输入到单缓冲的时间
- M:从单缓冲取出数据传送到内存工作区的时间
- C:cpu执行时间
其中,T,M为并行工作,T,C并行工作
一个数据块处理:T+M+C
多个数据块处理:MAX(T,M+C)
例:假设把磁盘上一个数据块中的信息输入一双缓冲区的时间T为100us,将缓冲区的数据传送到用户区的时间M为50us,CPU对这一块数据进行计算的时间C为50us。请问系统对一块数据的处理时间为多少?
单个为:100+50+50=200us
例:设系统缓冲区和用户工作区均采用双缓冲区,从外设读入1个数据块到系统缓冲区的时间为100,从系统缓冲区读入1个数据块到用户工作区的时间为5,对用户工作区中的1个数据块进行分析的时间为90,问:进程从外设读入并分析2个数据块的最短时间是多少?
解:
$T_1+T_2+M_2+C_2$=100+100+5+90=295us
例:已知有包括10个数据块的文件用双缓冲进行数据处理,其中从磁盘输入到缓冲区的时间是15us;再从缓冲区传送到内存时间为5us,最后对数据块执行时间为1us
解:
$T_1+T \times 9 +M_{10}+C_{10}$=150+6=156us
SPOOLing技术
-
引入的原因
- 脱机:外围机,磁盘
- 联机:CPU,内存
-
假脱机:$脱机 \rightarrow 联机$
定义:在主机的直接控制下,实现脱机输入,输出功能,此时的外围操作与CPU对数据的处理同时进行。
-
组成
-
磁盘:输入井和输出井(大量磁盘空间)
一个暂时存放输入和输出的数据
-
内存,输入buffer和输出buffer(少量内存)
-
两道程序(进程):输入/输出进程(多到程序设计技术)
-
-
操作
- 输入:I/O设备$\rightarrow$ 输出buffer$\rightarrow$输出井
- 输出:输入井$\rightarrow$输出buffer$\rightarrow$I/O设备
-
应用
打印机:独占设备$\rightarrow$共享设备
-
特点
-
提高I/O速度:
对低速设备操作——>变为对输入/出#操作。
-
将独占设备改造为共享设备
分配设备的实质时分配输入/出#
-
实现了虚拟设备功能
-
磁盘存储器
硬件特性
空间分配(第六章:文件管理)
-
存储
盘片(柱面)$\rightarrow$扇区$\rightarrow$数据块
-
以磁头设置划分
- 固定头
- 移动头
-
移动头磁盘访问时间
- 寻道时间($T_s$)
- 寻找扇区的时间($T_r$)
- 传输时间($T_t$)
$T_r$,$T_t$磁盘的机械特性
磁盘调度算法
-
先来先服务FCFS
访问要求:从已知磁头所在的磁道开始按照进程访问的顺序依次读取
-
最短寻道时间优先SSTF
访问要求:离当前的磁头距离最近的磁道先进行访问
-
扫描(SCAN)算法
规定访问方向:从里到外(磁盘号增加)或从外到里(磁盘号减少)
访问要求:
- 访问方向(来访问)
- 再探究反方向访问剩下的磁道
-
循环扫描(CSCAN)算法
访问要求:只有一个方向
例:磁盘请求服务队列中要访问的磁道分别为38、6、37、100、14、124、65、67,磁头上次访问了20磁道,当前处于30磁道上,试采用FCFS、SSTF和SCAN调度算法,分别计算磁头移动的磁道数