操作系统 第九章 部分
设备与IO
-1:设备及其分类
--存储型设备
磁盘,磁带,光盘
--IO型设备
扫描仪,打印机,mouse,keyboard,monitor,
--网络设备
网卡,交换机,etc.
-管理类型:
共享型设备(块型):多个进程的IO操作以块为单位可以交叉
独占型设备(块型):多个进程的IO操作以块为单位不宜交叉
独占型设备(字符型):多个进程的IO操作以字符为单位不能交叉
-2设备的物理特性
--IO设备的物理特性:
传输一字节发生一次中断
--存储设备的物理特性:
---磁带的物理特性:
操作:反绕,正向查找,反向查找,读,写
地址:一维
文件:顺序结构
---磁盘组的物理特性
(扇区,柱面,引臂,盘面)
杀(扇)猪(柱)盘
引入了==>(柱面i,盘面j,扇区k)的三维地址用来定位一个块(三对一)
(注意这里是优先扇=>盘=>柱)
三对一: b=i*m*n+j*n+k
一对三: i=b/(m*n)
j=b mod (m*n) /n
k=b mod (m*n) mod n
扇区编号:
没有考虑读写延迟的编号
考虑读写延迟的编号(单):
(双)
--光盘的物理性质:
读取原理: pit/land
螺旋线,22188圈(展开5.6km),
内侧转速:530转/分; 外侧转速:200转/分(密度均匀,读取速度均匀)
-3IO传输方式
(查询、中断、通道、DMA)
-程序查询方式
(cpu和设备不能并行)
缺点:
(1)处理机与设备串行工作;
(2)消耗大量处理机时间
-中断方式
(cpu和设备可以并行,但是cpu会处理大量的中断)
特点:
(1)CPU与设备并行工作
(2)设备多时对CPU打扰多
-通道方式
(特殊的一个处理器,来解决io操作)
负责IO操作的处理机
-指令系统
--基本操作:控制、读、写、转移、结束
--指令格式:(操作码,传输量,特征位,地址)
-运控部件:--CAW,CCW,CSW,CDW
存储区域(与CPU共用内存,通道内有缓冲区)
--通道程序,IO数据
通道的分类:
字节多路通道: 多个非分配型子通道,连接低速外围设备
数组选择通道; 一个分配型子通道,连接多台高速设备
数组多路通道: 多个非分配型子通道,连接多台高速设备
-直接内存方式
(DMA控制器来直接去获取IO块)
过程:
①CPU通过设置DMA控制器实现DMA编程,同时启动磁盘控制器由磁盘读入数据至内部缓冲区并进行和校验;
②DMA控制器向磁盘控制器发出读请求,并将内存地址放在地址总线上;
③磁盘控制器将字节传到内存指定单元;
④磁盘控制器向DMA控制器发送回答;
⑤DMA控制器将内部地址寄存器加1同时将记数减1,重复上述过程②─④直至计数器为0,此时DMA控制器向CPU发出中断信号.
-4设备分配与去配
--1独占型设备的分配与去配
块型独占
字符型独占
用户使用独占型设备活动:
申请,使用,使用,…,使用,释放
过程
申请:(1) 根据设备类查SDT表
(2) P(Sm)
(3) 查UCB表找一空闲设备并分配
使用:(1) 分配通道
(2) IO传输
(3) 去配通道
释放:(1) 找SDT表对应入口
(2) 查UCB表,去配
(3) V(Sm)
--2共享型设备的分配与去配:
块型共享
共享型设备的分配与去配
-用户使用共享型设备活动
使用,使用,…,使用
特征
来自文件系统;
每次读(写)一块;
通常经过缓冲;
排队优化。
使用
分配通道;IO操作;释放通道
-5设备驱动
通道程序
-CCW指令序列 (CAW依次遍历去得到CCWi放入CCW)
-静态编制或动态生成
设备启动
-通道启动
中断处理
-通道向CPU发的中断
-6设备调度****
优化服务顺序
考虑因素:公平性(防止饿死)_和_高效性(减少磁盘引臂移动量)
引臂调度算法:
FCFS:
SSTF:
SCAN算法(LOOK)
区别在于到不到底
C-SCAN(C-LOOK)
区别:跨越的路径走不走
N-SCAN(内大外小)
将磁盘请求队列分为若干个长度为N的子队列,每个队列内采用SCAN算法
例子:磁道由外向内编号0-99,磁头当前位置20,向内移动,N=4
12, 5, 7, 30, 60, 77, 13, 26, 61, 80, 53, 66
20→30→12→7→5→13→26→60→77→80→66→61 →53
当N很大时,接近SCAN算法
当N=1时,蜕化为FCFS算法
F-SCAN
将磁盘请求分为两个子队列,
服务队列
请求队列
用SCAN算法扫描服务队列,并为请求服务,服务期间新到达的请求入请求队列
扫描完成后交换两个队列的地位
-7磁盘IO参数
首先分析一下读/写一个磁盘块需要多少时间。它一般由如下
三个因素确定:
寻道时间(seek time):将磁盘引臂移动到指定柱面所需要的时间;
旋转延迟(rotational delay):指定扇区旋转到磁头下的时间;
传输时间(transfer time):读/写一个扇区的时间
寻道时间Ts计算公式如下:
Ts=m×n﹢s
其中,n为跨越磁道数,m为跨越一个磁道所用时间,s为启动时间。
旋转延迟Tr计算公式如下:
Tr=1/(2r)
其中,r为磁盘转速。该公式给出的是平均旋转延迟,它是磁盘旋转一周时间的一半,即旋转半周所花费的时间。
传输时间Tt计算公式如下:
Tt=b/(rN)
其中,b为要读/写字节数,r为磁盘转速,N为一条磁道上的字节数。
(读取1/M的部分)
例题:
例8-1.设有一个只有一个移动磁头的磁盘,磁道由外向内编号0、1、2、…、199,磁头移动一个磁道所需时间为1ms,每个磁道有100个扇区,磁盘转速6000r/m。采用CLOOK引臂调度算法,当前引臂位置处于第100磁道,当前移动方向由外向内,并规定引臂向内扫描时为路经请求服务。对于如下磁道请求120、85、70、30,每个请求访问对应磁道上的一个扇区,问:
(1)给出引臂移动序列,计算引臂移动量和寻道时间,忽略启动时间;
(2)计算平均旋转延迟时间;
(3)计算传输时间;
(4)计算所有访问处理时间。
-8缓冲技术
概念:设备处理数据到达与离开速度不一致所采用的技术。
-Buffering vs. Caching
buffering: one data copy
caching: multiple data copy (slow多, fast少)
-硬缓冲与软缓冲
硬缓冲区通常设在设备中
软缓冲区通常设在内存系统空间中
-私用缓冲与公共缓冲
一个缓冲区与一个固定设备相联系,不同设备使用不同的缓冲区
-利用率低
缓冲区由系统统一管理,按需要动态分派给正在进行I/O传输的设备
缓冲池:
-9:虚拟设备
用户使用独占型设备活动: 申请,使用,使用,…,使用,释放
缺点:
===速度:CPU与设备速度不匹配
===设备利用率:占有期间不一定一直使用\
实现方法
:在进程与独占型设备之间增加共享设备缓冲
流程如下:
申请:
分配一虚设备
分配一实设备
信息由实设备==>虚设备
去配该实设备
使用:
信息由虚设备==>进程空间
释放:
去配虚设备
例子:
SPOOLing输入
作业预输入(输入机==>输入井)
SPOOLing输出
作业缓输出(输出井==>输出机)
作业控制块:
作业存在标志,其中保存系统管理作业需要的全部信息。
JCB内容:
作业标识 用户标识 作业状态 调度参数 作业位置 资源需求 进入时间 处理时间 记账信息
-10:稳定存储器
实现
恢复:鉴别两个数据块内容
一对信息完全相同,且无检测到错误,正常
其中一块检测到错误,用另一块取代
两块均未检测到错误,但内容不同,用第二块内容取代第一块内容