View
153
Download
0
Category
Preview:
DESCRIPTION
第五章. 计算机科学与技术专业 2006 操作系统. 操作系统. I/O 软件管理. I/O 硬件管理. 底层硬件设备(物理层). I/O 设备管理概述. 上层用户程序(应用层). 用户进程. 设备无关程序. 设备驱动程序. 中断处理程序. 设备 控制器. DMA. 命令寄存器. I/O 软件体系结构. I/O 请求. I/O 响应. 命名、保护、阻塞、缓冲. 用户 I/O 软件. 设备无关软件. 提供系统库调用,供人员使用;提供类似 Spooling 这样的精灵守护进程管理共享设备. 处理中断信号. 设备驱动程序. - PowerPoint PPT Presentation
Citation preview
zhumin@scu.edu.cn
计算机科学与技术专业 2006
操作系统 第五章
2008年春 • 操作系统 • 2006级
I/O 设备管理概述
操作系统
I/O 硬件管理
I/O 软件管理
上层用户程序(应用层)
设备控制器
命令寄存器DMA
底层硬件设备(物理层)
键盘
中断处理程序设备驱动程序设备无关程序
用户进程
2008年春 • 操作系统 • 2006级
I/O 软件体系结构
中断处理程序
底层硬件设备
设备驱动程序
用户 I/O 软件
设备无关软件
I/O 请求 I/O 响应
提供系统库调用,供人员使用;提供类似Spooling这样的精灵守护进程管理共享设备
命名、保护、阻塞、缓冲
建立设备寄存器、解决错误
处理中断信号
2008年春 • 操作系统 • 2006级
本章主要内容
I/O 系统 I/O 控制方式 缓冲管理 设备分配 设备处理 磁盘存储器管理
I/O 设备 设备控制器 I/O 通道 总线系统
程序 I/O 控制方式 中断驱动 I/O 控制方式 DMA I/O 控制方式 I/O 通道控制方式
缓冲的引入 单缓冲和双缓冲 循环缓冲 缓冲池
设备分配中的数据结构 设备分配时应考虑的因素 设备独立性 独占设备的分配程序 SPOOLing 技术
设备驱动程序的功能和特点 设备驱动程序的处理过程 中断处理程序的处理过程
磁盘性能简述 磁盘调度 磁盘高速缓存 提高磁盘 I/O 速度的其他方法 廉价磁盘冗余阵列
2008年春 • 操作系统 • 2006级
本章重点和难点
I/O 系统 I/O 控制方式 缓冲管理 设备分配 设备处理 磁盘存储器管理
磁盘访问时间 磁盘调度:优化平均寻道时间 磁盘调度算法
– FCFS
– SSTF
– SCAN
– CSCAN
– N-Step-SCAN
– FSCAN
2008年春 • 操作系统 • 2006级
本章主要内容
I/O 系统 I/O 控制方式 缓冲管理 设备分配 设备处理 磁盘存储器管理
2008年春 • 操作系统 • 2006级
5.1 I/O 系统
5.1.1 I/O 设备 5.1.2 设备控制器 5.1.3 I/O 通道 5.1.4 总线系统
2008年春 • 操作系统 • 2006级
5.1.1 I/O 设备-类型 按速度分:
– 低:键盘– 中:打印机– 高:磁盘。
按信息交换单位分: – 块:磁盘 , 可定位– 字符:打印机、串口
按设备的共享属性分:– 独占:如临界资源– 共享:磁盘– 虚拟:如本身因有属性为独占,但将其虚拟为几个逻辑设备
2008年春 • 操作系统 • 2006级
5.1.1 I/O 设备-类型 按交互对象分类:
– 人机交互设备:视频显示设备、键盘、鼠标、打印机
– 与计算机或其他电子设备交互的设备:磁盘、磁带、传感器、控制器
– 计算机间的通信设备:网卡、调制解调器
按交互方向分类:– 输入(可读):键盘、扫描仪– 输出(可写):显示设备、打印机– 输入 / 输出(可读写):磁盘、网卡
2008年春 • 操作系统 • 2006级
5.1.1 I/O 设备-接口 CPU― 控制器―设备
三种信号:– 数据信号:——双向,有缓存– 控制信号:控制器发给设备;要求其完成相关操作
– 状态信号:设备发给控制器,后者“显示”
2008年春 • 操作系统 • 2006级
5.1.2 设备控制器-功能 接收 CPU 命令,控制 I/O 设备工作,解放 CPU
– 接收和识别命令。 应有相应的 Register 来存放命令(“命令寄存器”)
– 数据交换 CPU—— 控制器的数据寄存器——设备
– 设备状态的了解和报告 设备控制器中应用“状态寄存器”
– 地址识别 CPU 通过“地址”与设备通信,设备控制器应能识别它所控
制的设备地址以及其各寄存器的地址。– 数据缓冲– 差错控制
2008年春 • 操作系统 • 2006级
5.1.2 设备控制器-组成 组成
– 各类寄存器:数据、命令、状态
– 信号线:数据线 ( 独立寻址、内存寻址 ) 、地址线、控制线
– I/O逻辑:在其控制下完成与 CPU、设备的通信。
2008年春 • 操作系统 • 2006级
5.1.3 I/O 通道-引入 通道
– 一种特殊的执行 I/O指令的处理机,与 CPU共享内存,可以有自己的总线。
引入目的– 解脱 CPU对 I/O的组织、管理。
CPU 只需发送 I/O 命令给通道,通道通过调用内存中的相应通道程序完成任务。
2008年春 • 操作系统 • 2006级
5.1.3 I/O 通道-类型 字节多路通道:
– 各子通道以时间片轮转方式共享通道,适用于低、中速设备。
数组选择通道:– 无子通道,仅一主通道,某时间由某设备独占,适于高速设备。
– 但通道未共享,利用率低。 数组多路通道:
– 在图 5-3中,多子通道不是以时间片方式,而是“按需分配”,综合了前面 2 种通道类型的优点。
2008年春 • 操作系统 • 2006级
5.1.3 I/O 通道 通道“瓶颈”问题:
– 解决:采用复联方式– 图 5.4
2008年春 • 操作系统 • 2006级
5.1.4 总线系统 微机 I/O 系统
CPU RAM/ROM I/O控制器1 I/O控制器n
总线
设备控制器:与设备是一对多的关系,系统是通过它与设备通信
系统―――设备控制器―――设备 如:磁盘设备,打印设备 缺点:总线瓶颈, CPU 瓶颈。
2008年春 • 操作系统 • 2006级
5.1.4 总线系统
主机 I/O 系统(四级结构)– 计算机― I/O通道― I/O控制器―设备
– I/O通道相当于对总线的扩展,即多总线方式,且通道有一定的智能性,能与 CPU并行,解决其负担。
– ISA/EISA/LocalBUS/VESA/PCI
– 微机 I/O系统
2008年春 • 操作系统 • 2006级
本章主要内容
I/O 系统 I/O 控制方式 缓冲管理 设备分配 设备处理 磁盘存储器管理
2008年春 • 操作系统 • 2006级
5.2 I/O 控制方式
5.2.1 程序 I/O 方式 (忙―等待方式) 5.2.2 中断驱动 I/O 控制方式 5.2.3 直接存储器访问 DMA I/O 控
制方式 (用于块设备中) 5.2.4 I/O 通道控制方式
2008年春 • 操作系统 • 2006级
5.2 I/O 控制方式
四个阶段:– 程序 I/O——中断 I/O——DMA控制——通道控制。
– 趋势:提高并行度
2008年春 • 操作系统 • 2006级
5.2.1 程序 I/O
查询方式: CPU 需花代价不断查询 I/O 状态
(图 5-7a )
CPU 资源浪费极大
例:99.9ms+0.1ms=100ms
在5.2.1中99.9 在忙等
2008年春 • 操作系统 • 2006级
5.2.1 中断 I/O
I/O 操作由程序发起,在操作完成时(如数据可读或已经写入,在此之前,该程序可进入等待状态或继续执行)由外设向 CPU 发出中断,通知该程序。数据的每次读写通过 CPU 。
向 I/O 发命令——返回——执行其它任务。 I/O 中断产生—— CPU转相应中断处理程序。
如:读数据,读完后以中断方式通知 CPU, CPU 完成数据从 I/O—— 内存
2008年春 • 操作系统 • 2006级
5.2.1 中断 I/O
优点:
– 在外设进行数据处理时, CPU 不必等待,可以继续执行该程序或其他程序。
缺点:
– CPU每次处理的数据量少(通常不超过几个字节:从设备控制器中的数据缓冲寄存器中存取数据),只适于数据传输率较低的设备。另外, I/O 操作频繁,有可能丢失中断信号。
2008年春 • 操作系统 • 2006级
5.2.3 DMA 方式 引入
–中断 I/O, CPU“字节”干预一次,即每“字节”传送产生一次中断。
– DMA:由 DMA控制器直接控制总线传递数据块。 DMA控制器完成从 I/O——内存。
– 图 5.7c
组成–一组寄存器 + 控制逻辑(图 5.8)– CR(命令 / 状态); DR(数据); MAR(内存地址);
DC(计数)– DMA工作过程(例):
2008年春 • 操作系统 • 2006级
Direct Memory Access
2008年春 • 操作系统 • 2006级
设置MAR, DC初值
启动DMA传送命令
传一字节
MAR=MAR+1DC=DC-1
dc=0
请求中断
在继续执行用户程序的同时,准备又一次传送
出错
否
是
2008年春 • 操作系统 • 2006级
DMA
2008年春 • 操作系统 • 2006级
DMA
2008年春 • 操作系统 • 2006级
DMA
2008年春 • 操作系统 • 2006级
5.2.3 DMA 方式 由程序设置DMA 控制器中的若干寄存器值(如内
存始址,传送字节数),然后发起 I/O 操作,而由后者完成内存与外设的成批数据交换,在操作完成时由 DMA 控制器向 CPU 发出中断。
优点:– CPU 只需干预 I/O 操作的开始和结束,而其中的数据
读写无需 CPU 控制, CPU与DMA 控制器并行工作。适于高速设备。
缺点:– 功能比较简单,不能完成较复杂的要求。
2008年春 • 操作系统 • 2006级
中断方式和 DMA 方式的区别
中断方式在数据缓冲寄存器满时发中断请求,而DMA 方式在数据全部传送完时发中断请求。
中断方式中,数据从数据缓冲寄存器到内存是CPU 在进行中断处理时完成的。而DMA 方式数据是直接在 DMA 控制下完成的。
2008年春 • 操作系统 • 2006级
5.2.4 I/O 通道控制方式
DMA 方式:– 对需多离散块的读取仍需要多次中断。
通道方式:– CPU只需给出以下信息,通道程序就可完成一组块操作 通道程序首址 要访问 I/O 设备
操作 P Record 计数 内存地址Writ
e0 0 80 813
Write
0 0 140 1034
Write
0 1 60 5830
Write
0 1 300 2000
Write
0 0 250 1850
Write
1 1 250 720
2008年春 • 操作系统 • 2006级
本章主要内容
I/O 系统 I/O 控制方式 缓冲管理 设备分配 设备处理 磁盘存储器管理
2008年春 • 操作系统 • 2006级
5.3 缓冲管理
5.3.1 缓冲的引入 5.3.2 单缓冲和双缓冲 5.3.3 循环缓冲 5.3.4 缓冲池( Buffer Pool )
2008年春 • 操作系统 • 2006级
5.3 缓冲管理 目的:
– 组织管理、分配、释放 buffer
5.3.1 引入– 缓和 CPU和 I/O设备间速度不匹配的矛盾。如:计算——打印 buffer——打印
– 减少对 CPU的中断频率如: buffer越大,“ buffer满”信号发生频率越低。
– 提高 CPU和 I/O并行性
2008年春 • 操作系统 • 2006级
缓冲的分类
单方向缓冲:– 单缓冲:一个缓冲区, CPU和外设轮流使用,一方处理完之后接着等待对方处理。
– 双缓冲:两个缓冲区, CPU和外设都可以连续处理而无需等待对方。要求 CPU和外设的速度相近。
– 循环缓冲:多个缓冲区, CPU和外设的处理速度可以相差较大。
双方向缓冲– 缓冲池
2008年春 • 操作系统 • 2006级
5.3.2 缓冲管理-单缓冲
C用户进程
buf
系统单缓冲buf I /OM T
由于C 和 T可并行,M 和 C 或M 和 T不能并行,因此处理一块数据时间:
Max(C,T)+M
用户进程何时阻塞?
2008年春 • 操作系统 • 2006级
5.3.2 缓冲管理-双缓冲
用户进程buf
系统双缓冲buf
I /O
效率有所提高,且进一步平滑了传输峰值。系统处理一块数据的时间约为:
MAX(C,T)
收发可双向同时传送。(图 5 - 13 )
2008年春 • 操作系统 • 2006级
5.3.3 缓冲管理-循环多缓冲
类型:R:空缓冲; G :满缓冲; C :当前缓冲
R
R
G
G
G
GNextg
1
2
34
5
6
Nexti
R
R
C
G
G
G
Nextg
1
2
34
5
6
Nexti
current
2008年春 • 操作系统 • 2006级
循环多缓冲的使用 nextg :指示下一个应取数据的 buf nexti :指示下一个空 buf. Getbuf :
– 取 nextg对应缓冲区提供使用,将 Nextg置为空, Nextg=( Nextg+1) Mod N– 将 Nexti对应缓冲区提供使用,将 Nexti置为满, Nexti=( Nexti+1) Mod N
Releasebuf:– 若 C 满,则改为 G– 若 C 空,则改为 R
2008年春 • 操作系统 • 2006级
循环多缓冲的同步问题
Nexti 追上 Nextg : 表示输入速度 > 输出速度,全部 buf满,
这时输入进程阻塞
Nextg追上 Nexti : 输入速度 < 输出速度,全部 buf空,
这时输出进程阻塞。
2008年春 • 操作系统 • 2006级
5.3.4 缓冲管理-缓冲池 缓冲池:系统提供的公用缓冲 组成:
– 3 个队列: 空缓冲队列 emq
输入队列 inq
输出队列 outq
– 四个工作缓冲区: hin :收容输入数据 sin :提取输入数据 hout :收容输出数据 sout :提取输出数据
2008年春 • 操作系统 • 2006级
5.3.4 缓冲管理-缓冲池 四种工作方式
– 1.收容输入– 2.提取输入– 3.收容输出– 4.提取输出
I /O
I /O
用户进程
1 2hin
sout
sin
hout
inq
emq emq
outq4 3
2008年春 • 操作系统 • 2006级
5.3.4 缓冲管理-缓冲池
1.hin=getbuf(emq); putbuf(inq,hin)
2.sin=getbuf(inq); 计算; putbuf(emq,sin)
3.hout=getbuf(emq); putbuf(outq,
hout)
4.sout=getbuf(outq);输出;putbuf(emq,sout)
2008年春 • 操作系统 • 2006级
5.3.4 缓冲管理-缓冲池
Getbuf(type)
Begin
wait(RS(type));
wait(MS(type));
B(number):=takebuf(typ
e);
signal(MS(type));
end
Putbuf(type)
Begin
wait(MS(type));
addbuf(type,number)
;
signal(MS(type));
signal(RS(type));
end
Getbuf和 Putbuf 过程
2008年春 • 操作系统 • 2006级
本章主要内容
I/O 系统 I/O 控制方式 缓冲管理 设备分配 设备处理 磁盘存储器管理
2008年春 • 操作系统 • 2006级
设备管理的目的 提高效率:
– 提高 I/O 访问效率,匹配 CPU 和多种不同处理速度的外设
方便使用:– 方便用户使用,对不同类型的设备统一使用方法,协
调对设备的并发使用
方便控制:– 方便OS 内部对设备的控制:增加和删除设备,适应新的设备类型
2008年春 • 操作系统 • 2006级
设备管理的功能 提供设备使用的用户接口:
– 命令接口和编程接口
设备分配和释放:– 使用设备前,需要分配设备和相应的通道、控制器。
设备的访问和控制:– 包括并发访问和差错处理。
I/O 缓冲和调度:– 目标是提高 I/O 访问效率
2008年春 • 操作系统 • 2006级
5.4 设备分配
5.4.1 设备分配中的数据结构 5.4.2 设备分配时应考虑的因素 5.4.3 设备独立性 5.4.4 独占设备的分配程序 5.4.5 SPOOLing 技术
2008年春 • 操作系统 • 2006级
5.4 设备分配 包括:对设备、设备控制器、通道的分配
5.4.1 数据结构– 设备控制表 DCT
– 控制器控制表( COCT)– 通道表( CHCT)– 系统设备表( SDT)图 5-17
SDT:记录了系统中全部设备及其驱动程序地址。
2008年春 • 操作系统 • 2006级
设备控制表DCT
DCT1
DCT2
DCTn
设备类型 type
设备标识符 :deviceid
设备状态:等 / 不等 忙 /闲指向控制器表的指针重复执行次数或时间设备队列的对首指针
2008年春 • 操作系统 • 2006级
控制器表 COCT
控制器标识符:controllerid
控制器状态:忙 / 闲与控制器连接的通道表指针控制器队列的队首指针控制器队列的队尾指针
2008年春 • 操作系统 • 2006级
通道表 CHCT
通道标识符: channelid
通道状态:忙 / 闲
与通道连接的控制器表首址
通道队列的队首指针
通道队列的队尾指针
2008年春 • 操作系统 • 2006级
系统设备表 SDT
表目 1
表目 2
表目 n
设备类
设备标识符
DCT
驱动程序入口
2008年春 • 操作系统 • 2006级
5.4.2 设备分配应考虑的若干因素 设备的固有属性:
– 共享 + 虚拟:注意调度的合理性– 独享:排它性分配,控制不好可能死锁
分配算法:– FIFO– 优先权
安全性:– 安全分配 ( 同步 ) :每进程获得一 I/O后,即 block,直到其 I/O完成。 即打破了死锁条件。 缺点: CPU、 I/O 对该进程是串行,进程进展缓慢。
– 不安全分配(异步):需进行安全性检查,进程执行效率高。
2008年春 • 操作系统 • 2006级
5.4.3 设备独立性 概念:
– 即设备无关性,指应用程序独立于具体使用的物理设备。
– 逻辑设备– 物理设备– 逻辑设备表( LUT):
逻辑设备 物理设备 Driver入口
2008年春 • 操作系统 • 2006级
5.4.3 设备独立性 分配流程:进程给出逻辑名——通过 LUT得到物理设备及其 driver 入口。
优点:– 设备分配更灵活;
逻辑设备和物理设备间可以是多——多的映射关系。提高了物理设备的共享性,以及使用的灵活性。如:
– 易于实现 I/O重定向。– 不变程序,只需改变 LUT表的映射关系。
某逻辑名可对应这一类设备,提高均衡性与容错性。 几个逻辑名可对应某一个设备,提高共享性
2008年春 • 操作系统 • 2006级
5.4.3 设备独立性 设备独立性软件
– 执行所有设备的公有操作 分配回收 名字映射 保护 缓冲 差错控制
– 向用户层软件提供统一接口 read、write
2008年春 • 操作系统 • 2006级
5.4.3 设备独立性 名字映射
– LUT的生成 在用户进程第一次请求设备时完成映射并在 LUT 中生成相
应项
– LUT的配置 整个系统一张 LUT表:
– 要求:逻辑名不重复,(一般用于单用户系统) 每个用户一张 LUT表。
– 可重名 /可限制用户对某些设备的使用。
逻辑设备 物理设备 Driver入口
2008年春 • 操作系统 • 2006级
5.4.4 独占设备分配程序 进程 n 请求设备:
begin search (sdt, phdevice) if not busy (phdevice) then begin compute(safe)—— 对独占设备 if safe then alloc (n, phdevice); else begin insert (DL(phdevice), n);----- 将 n 插入设备等待队列DL
上 return end; end;
2008年春 • 操作系统 • 2006级
设备忙— else begin;
insert (DL (phdevice), n);
return;
end;
controllerid=controllerid (COCT ptr(dct));
――device 分配成功if not busy (COCT (controllerid)) then
alloc (n, controllerid);
else begin
insert (col, n);
return;
end;
channeled=channeled(chatptr (controllerid)); ―― 控制器分配成功
2008年春 • 操作系统 • 2006级
if not busy (chct (channelid)) then
allocation (n, channelid);
else begin
insert (chl, n)
return;
end;
end;
优化:1 )增加设备的独立性2 )考虑多通路情况
2008年春 • 操作系统 • 2006级
5.4.5 SPOOLING 技术 概念
– 假脱机技术,在联机情况下同时出现外围操作
– 作用:通过缓冲方式,将独占设备改造为共享设备
2008年春 • 操作系统 • 2006级
5.4.5 SPOOLING 技术 组成
– 1.输入#和输出#:– 在磁盘上开辟的 2 个大存储空间,模拟输入和输出设备。
– 2.输入 buf和输出 buf(内存中)– 输入设备——输入 buf——输入 #—— 用户区( 1 )– 用户区——输出 #——输出 buf—— 设备( 2 )
– 3.输入 Spi和输出 SPo进程。– 分别控制( 1 ),( 2 )的动作。– SPi 相当于脱机输入控制器。– SPo 相当于脱机输出控制器。
2008年春 • 操作系统 • 2006级
5.4.5 SPOOLING 技术 举例
– (1)输入– a. 进程 n请求―― > SPi为 n在输入#中分配空间—— > 设备
数据由输入 buf 送输入 #——>生成输入请求表挂输入请求队列。– b.CPU空——取请求表中的任务 ,送进程缓冲区。
– ( 2 )输出:(打印)– a. 进程 n请求—— >SPo为 n在输出 # 中分配空间—— > 将
数据由进程 buf转到输出 #——>生成一打印请求表挂打印请求队列。
– b. 打印机空—— > 查打印请求表中的任务—— > 取输出#中对于数据—— > 输出 buf ——> 打印 ·
2008年春 • 操作系统 • 2006级
5.4.5 SPOOLING 技术
特点:– 1.提高 I/O速度:
对低速设备操作—— > 变为对输入 /出 # 操作。
– 2.将独占设备改造为共享设备 分配设备的实质时分配输入 /出#
– 3.实现了虚拟设备功能
2008年春 • 操作系统 • 2006级
本章主要内容
I/O 系统 I/O 控制方式 缓冲管理 设备分配 设备处理 磁盘存储器管理
2008年春 • 操作系统 • 2006级
5.5 设备处理
5.5.1 设备处理程序即是设备驱动程序。
5.5.2 设备驱动程序的功能和特点
5.5.3 设备驱动程序的处理过程
2008年春 • 操作系统 • 2006级
5.5.1 设备驱动程序的功能和特点 功能:
– 接收进程的 I/O命令
– 检查命令合法性
– 检查设备状态
– 设置设备工作方式
– 驱动 I/O操作
– 响应设备中断
– 构成通道程序
特点:– 和硬件紧密相关、各个设备有自己的设备驱动
2008年春 • 操作系统 • 2006级
5.5.2 设备驱动程序处理过程 包括
– 启动过程– 中断处理过程
启动过程– 将抽象要求转化为具体要求– 检查 I/O请求合法性– 读出和检查设备状态– 传送必要的参数– 设置工作方式– 启动 I/O设备
2008年春 • 操作系统 • 2006级
5.5.3 中断处理程序 流程
– 设备启动- >I/O完成- > 发送中断- >CPU调用中断处理过程
中断处理过程– 唤醒被阻塞的驱动程序进程– 保护被中断进程环境– 转入相应的设备处理程序– 中断处理 ( 特性 )– 恢复被中断进程的现场
2008年春 • 操作系统 • 2006级
本章重点和难点
I/O 系统 I/O 控制方式 缓冲管理 设备分配 设备处理 磁盘存储器管理
2008年春 • 操作系统 • 2006级
5.6 磁盘存储器管理 5.6.1 磁盘性能简述 5.6.2 磁盘调度 5.6.3 磁 盘 高 速 缓 存 ( Disk
Cache ) 5.6.4 提高磁盘 I/O 速度的其他方法 5.6.5 廉价磁盘冗余阵列
先来先服务 FCFS ( First Come First Servic
e )最短寻道时间优先 SSTF ( Shortest Seek Time Firs
t)扫描算法 SCAN循环扫描算法 CSCANN-Step-SCANFSCAN
2008年春 • 操作系统 • 2006级
磁道
扇区
磁盘结构
2008年春 • 操作系统 • 2006级
柱面
扇区
磁臂
磁头
2008年春 • 操作系统 • 2006级
THE ENDTHE END
Recommended