《计算机操作系统 》课件-5.4缓冲管理_第1页
《计算机操作系统 》课件-5.4缓冲管理_第2页
《计算机操作系统 》课件-5.4缓冲管理_第3页
《计算机操作系统 》课件-5.4缓冲管理_第4页
《计算机操作系统 》课件-5.4缓冲管理_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

5.4缓冲管理

缓冲的引入缓冲的实现机制5.4缓冲管理

一.缓冲的引入(2)提高CPU和I/O设备之间的并行性。(3)减少对CPU的中断频率,放宽对CPU中断响应时间的限制。缓冲是在两种不同速度的设备之间传输信息时平滑传输过程的常用手段(1)缓和CPU与I/O设备间速度不匹配的矛盾。cpu设备缓冲1位缓冲100Kb/s8位缓冲寄存器送内存100Kb/s(b)(a)例:在一个远程通信系统中,在本地接收从远程终端发来的数据,速率为100kb/s。送内存CPU中断频率:100K;CPU响应时间:10us;CPU中断频率:12.5K;CPU响应时间:10us;●

两个8位缓冲寄存器100Kb/s送内存(c)CPU中断频率:12.5K;CPU响应时间:80us;送内存●

二.缓冲实现机制1.单缓冲(SingleBuffer)系统对一块数据的处理时间:Max(C,T)+M

5.4缓冲管理

2.双缓冲(DoubleBuffer)

系统对一块数据的处理时间:Max(C+M,T)

T

M

C5.4缓冲管理

二.缓冲实现机制3.循环缓冲5.4缓冲管理

二.缓冲实现机制

2341n…765outincurrent满缓冲区空缓冲区4.缓冲池(BufferPool)(1)缓冲池的组成①缓冲队列

由内存中一组缓冲区组成,由系统统一管理。

输入队列inq;输出队列outq。

空缓冲区:空缓冲队列emq;

装满输入数据的缓冲区:

装满输出数据的缓冲区:5.4缓冲管理

4.缓冲池(BufferPool)(1)缓冲池的组成②工作缓冲区

进程正在使用的缓冲区收容输入工作缓冲区提取输入工作缓冲区收容输出工作缓冲区提取输出工作缓冲区5.4缓冲管理

(2)缓冲池的使用:

①Getbuf(type):

申请一个缓冲区;

Putbuf(type,number):

释放一个缓冲区;信号量设置:资源信号量:表示某类缓冲队列中缓冲区的数量:

RS(emq)=n;RS(inq)=0;RS(outq)=0;互斥信号量:实现相应缓冲队列的互斥使用:

MS(emq)=MS(inq)=MS(outq)=1;4.缓冲池(BufferPool)voidGet_buf(type){wait(Rs(type));wait(mutex(type));B(number)=takebuf(type);signal(mutex(type));}(2)缓冲池的使用:4.缓冲池(BufferPool)2.缓冲池的使用:

voidPut_buf(type,number){wait(mutex(type));add_buf(type,number);signal(mutex(type));signal(Rs(type));}4.缓冲池(BufferPool)(3)缓冲池的工作方式

输入队列

空缓冲队列

输出队列Getbuf(emq)收容输入Putbuf(inq)Putbuf(outq)Getbuf(emq)Getbuf(inq)Putbuf(emq)Getbuf(outq)Putbuf(emq)提取输入收容输出提取输出4.缓冲池(BufferPool)5.4缓冲管理

205.UNIX系统的缓冲区管理(块缓冲)(1)UNIX系统缓冲管理的思路减少对磁盘的I/O操作次数,加快系统响应。预先缓存:当进程要从磁盘读数据时,首先从高速缓冲中读延迟发送:当进程要写数据到磁盘时,先写入高速缓冲中高速缓冲

用户数据区用户进程磁盘高速缓冲

用户数据区用户进程磁盘21(2)缓冲管理数据结构①

缓冲区的组成

ⅰ缓存数组

——含有磁盘上的数据的存储器数组

ⅱ缓存首部

——描述缓冲区特性的数据结构5.4缓冲管理

5.UNIX系统的缓冲区管理(块缓冲)22

②缓存首部结构设备号dev块号blkno状态flag指向数据区域的指针字节数返回的I/O出错信息b_forw

设备缓冲区队列前向指针b_back

设备缓冲区队列后向指针av_forw

空闲缓冲区队列前向指针av_back

空闲缓冲区队列后向指针

ⅰ设备号dev缓冲区所包含的信息所属设备的设备号

ⅱ块号blkno由设备号指出的设备上相对于第0块的块号

ⅲ状态flag——描述了缓冲区当前的状态忙标志BUSY:缓冲区当前正“忙”有效位AVE:缓冲包含的数据有效延迟写DELWR:核心在某缓冲区重新分配出去之前必须把缓冲区内容写到磁盘上写标志WRITE:核心当前正把缓冲区的内容写到磁盘读标志READ:核心当前正从磁盘往缓冲区写信息等待位

WAIT:一个进程当前正在等候缓冲区变为空闲(2)缓冲管理数据结构23③缓冲区队列结构

ⅰ设备缓冲区队列与某类设备有关的所有缓冲区组成的队列称为设备缓冲区队列,简称b链。5.UNIX系统的缓冲区管理(2)缓冲管理数据结构b_forwb_backb_forwb_backb_forwb_backb_forwb_back设备缓冲区队列

245.UNIX系统的缓冲区管理③缓冲区队列结构

ⅱ空闲缓冲区队列可供重新分配使用的缓冲区组成的队列称为空闲缓冲区队列,简称av链。

(2)缓冲管理数据结构av_forwav_backav_forwav_backav_forwav_backav_forwav_back空闲缓冲区队列

26分配一个buf读/写某设备上的块:①首先寻找该设备的b链,若找到:1)B_BUSY=0:移出av链,B_BUSY=1;使用完后,B_BUSY=0,链入av链队尾。2)B_BUSY=1:缓冲区不在av链上,该进程睡眠②若b链中找不到:取av链(空闲buf队列)的首元素:1)若无延迟写标记,直接分配,插入b链,B_BUSY=1;用完后,链入av链队尾,B_BUSY=02)若有延迟写标记:分配下一个空闲缓冲区,然后同1)(3)UNIX缓冲管理算法:LRU算法5.UNIX系统的缓冲区管理27对延迟写的处理当一个具有延迟写标记的buf移到av链头,要用于分配时,立即进行写操作:从av链上摘除,使用完后又送入av头部,同时仍保留在原b链中释放一个缓冲区:

缓冲区读写操作结束后,保留在b链,并插入av链尾。(3)UNIX缓冲管理算法5.UNIX系统的缓冲区管理思考题:1、引入缓冲的主要目的是()。A.提高CPU的利用率B.提高I/O设备的利用率C.改善CPU与I/O设备速度不匹配的问题D.节省内存2、为了使并发进程能有效地进行输入和输出,最好采用()结构的缓冲技术。缓冲池B.循环缓冲C.单缓冲D.双缓冲3、缓冲技术中的缓冲区设置在()。A.主存B.外存C.ROMD.寄存器思考题:3、设从磁盘将一块数据传送到缓冲区所用时间为80us,将缓冲区中的数据传送到用户区所用时间为40us,CPU处理一块数据所用时间为30us。如果有多块数据要处理,并采用单缓冲区机制,则处理一块数据所用的总时间是多少?解答:单缓冲中,设备与处理机对缓冲的操作是串行的,当进行第i次读磁盘数据至缓冲区时,系统在同时处理第i-1次读入的数据,即两项工作是并行的,所以处理一块数据的总时间为:=MAX(80us,30us)+40us=120us小组讨论:4、某文件占10个磁盘块,现要把该文件磁盘块依次读入主存缓冲区,并送至用户区进行处理,假设一个缓冲区与一个磁盘块大小相同,把一个磁盘块读入缓冲区的时间为100us,将缓冲区的数据传送到用户区的时间为50us,CPU对一块数据的处理时间为50us,在单缓冲区和双缓冲区机制下,读入并处理完成

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论