操作系统_ZGSOS[5] 设备管理_ZGSOS[5-4]缓冲管理_
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
T2
T3
T4
M1
M2
M3
M4
C1
C2
C3
C4
t
பைடு நூலகம்
系统对每一整块数据处理时间为
max(C, T) + M
北京交通大学计算机学院 翟高寿
知行合一, 开拓进取!
单缓冲■
北京交通大学计算机学院 翟高寿
双缓冲
北京交通大学 计算机学院 翟高寿
双缓冲
用户进程
T M C 处理(C)
工作区
T M C : n T i1
北京交通大学计算机学院 翟高寿
知行合一, 开拓进取!
循环缓冲■
北京交通大学计算机学院 翟高寿
缓冲池
北京交通大学 计算机学院 翟高寿
缓冲池的组成
三个队列及队首尾指针(F[…]/L[…]) 空缓冲队列 EmptyQueue 输入队列 InputQueue 输出队列 OutputQueue
四种工作缓冲区 用于收容输入数据的工作缓冲区 Hin 用于提取输入数据的工作缓冲区 Sin 用于收容输出数据的工作缓冲区 Hout 用于提取输出数据的工作缓冲区 Sout
PutBuf(PInuptuBtuQf(uEemupet,yHQinu)e;ue, Sin);
缓冲池
收容输入 Hin
提取输出 Sout
Sin Hout
提取输入 用 户
收容输出 程 序
GetBuf(OGuetptBuutQf(Eumeupey,QSuoeuut)e;, Hout);
Procedu从reSoGute中t输提B出取uf数输(据Q出到数TH据yop输uet出中, ;p;Buf) ProceduPruetBPuuf(EtBmPuputtBfyu(QQf(uOeTuytep,puSetoQ,uutp)e;Bueu, Hf)out);
工作区
T M C : n M C i1
i
传送 1 i(M)
操作系统
缓冲区1 i i 1
缓冲区2
i 输入
I/O (T) 设备
T T T T T T 1(缓冲1) 2 (缓冲2)
3 (缓冲1) 4 (缓冲2)
5 (缓冲1)
6 (缓冲2)
M1缓冲1 M2缓冲2 M3缓冲1
M4缓冲2
C1
C2
C3
C4
北京交通大学计算机学院 翟高寿
GetBuf过程和PutBuf过程
VAR integer: EmptyQueue:=0, InputQueue:=1, OutputQueue:=2; semaphore: RS[0..2]:={N,0,0}, MS[0..2]:={1,1,1};
Procedure GetBuf(QType, Procedure PutBuf(QType,
利用缓冲降低中断频率举例说明
1位缓冲
每100μs中断
(a) 9.6Kb/s
远
送内存
每CP8U00一μs次中,断且 C响PU应一处次理,必且须 响在应10处0 μ理s内必完须成
程
8位缓冲寄存器
在100 μs内完成
通 (b) 9.6Kb/s
送内存
信 系 统
8位缓冲寄存器 (c) 9.6Kb/s
每800μs中断 CPU一次,且 响应处理必须 在800 μs内完成
i
传送
(M) i
n 操作系统
缓冲i区1 i 1
缓冲区2
n 输入 n
I/O (T) 设备
T T T 1(缓冲1)
2 (缓冲2)
3 (缓冲1)
T T 4 (缓冲2)
5 (缓冲1)
M1缓冲1
M2缓冲2
M3缓冲1
M4缓冲2
C1
C2
C3
C4
t
北京交通大学计算机学院 翟高寿
双缓冲
n
用户进程
T (M C ) 处理(C)
t
系统对每一整块数据处理时间为
max(M+C , T)
北京交通大学计算机学院 翟高寿
利用双缓冲实现双向通信
A机 B机
缓
缓
冲
冲
区
区
双机通信单缓冲 只能实现单向数据传输
(单工通信)
A机
发送 缓冲区
B机
接收 缓冲区
接收 缓冲区
发送 缓冲区
双机通信双缓冲
可以实现双向数据传输 (双工通信)
北京交通大学计算机学院 翟高寿
送内存
北京交通大学计算机学院 翟高寿
知行合一, 开拓进取!
缓冲技术的引入理由■
北京交通大学计算机学院 翟高寿
单缓冲
北京交通大学 计算机学院 翟高寿
单缓冲
用户n进1程
操作系统 n
T1
处工理作i (区1C)max传(M(送)Ti
1, Ci )
缓冲区
n
Mi
i 1 输入 (T)
Cn
I/O 设备
T1
G
3
4
G
Nextg
北京交通大学计算机学院 翟高寿
缓冲区的使用及进程同步
缓冲区使用过程 GetBuf (BufType, Current)过程 ReleaseBuf (BufType, Current) 过程
进程同步 Nexti 指针追赶上Nextg 指针时,输入进程应阻 塞,直至计算进程把某满缓冲区数据取走并调用 ReleaseBuf 过程将之唤醒 Nextg指针追赶上 Nexti指针时,计算进程应阻 塞,直至输入进程装满某空缓冲区并调用 ReleaseBuf 过程将之唤醒
缓冲技术的引入理由
北京交通大学 计算机学院 翟高寿
缓冲技术的引入
操作系统引入缓冲机制的原因 缓和CPU与I/O设备速度不匹配的矛盾 减少对CPU的中断频率,放宽对中断响应时间 的限制 提高CPU与I/O设备之间的并行性
缓冲管理的主要功能 缓冲区的组织 缓冲区的获得与释放
北京交通大学计算机学院 翟高寿
队列
L[OutputQueue]
缓冲区u
缓冲区v
北京交通大学计算机学院 翟高寿
缓冲首部
设备号 数据块号 缓冲器号 互斥标识位 连接指针
缓冲区n
缓冲区t
缓冲区w
GetBuf(GEmetpBtuyfQ(InupeuetQ, Hueinu)e; , Sin);
缓冲区工作方式 输入数据从到SHini中n中提;取输入数据;
北京交通大学计算机学院 翟高寿
缓冲队列组织形式
空缓冲 队列
空缓冲队列头结点 F[EmptyQueue]
L[EmptyQueue]
缓冲区l
缓冲区m
输入缓冲队列头结点
输入缓冲 F[InputQueue]
队列
L[InputQueue]
缓冲区r
缓冲区s
输出缓冲队列头结点
输出缓冲 F[OutputQueue]
知行合一, 开拓进取!
双缓冲■
北京交通大学计算机学院 翟高寿
循环缓冲
北京交通大学 计算机学院 翟高寿
()
用户进程
操作系统
缓冲区
输 入
工作区
传送
输入 输入 设备
循 环 缓 冲
0
I N1exti
G
I2
指针移动方向
0
I N1exti
G
I2
指针移动方向
的5 组G
成
4G
G Nextg
5 G
3
Current