chapter7-设备管理-2.ppt

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
chapter7-设备管理-2

5、缓冲技术实现的基本思想: 进程执行写操作输出数据时,向系统申请一个缓冲区,若为顺序写请求,则不断把数据填到缓冲区,直到被装满。此后,进程继续它的计算,系统将缓冲区内容写到I/O设备上。 进程执行读操作输入数据时,向系统申请一个缓冲区,系统将一个物理记录的内容读到缓冲区,根据进程要求,把当前需要的逻辑记录从缓冲区中选出并传送给进程 5、缓冲技术实现的基本思想(续): 在输出数据时,只有在系统还来不及腾空缓冲区而进程又要写数据时,它才需要等待; 在输入数据时,仅当缓冲区空而进程又要从中读取数据时,它才被迫等待 6、缓冲的实现方式: 采用硬件缓冲器实现; 在内存划出一块区域,专门用来存放临时输入输出的数据,这个区域称为缓冲区 单缓冲 在设备和处理机之间设置一个缓冲。设备与处理机交换数据时,先把交换的数据写入缓冲区,然后需要数据的设备/处理机再从缓冲区中取走数据。 特点:缓冲区数只有一个;设备与处理机对缓冲区的操作是串行的。 一块数据的处理时间 在某系统中,从磁盘将一块数据输入到缓冲区需要花费的时间T,CPU对一块数据进行处理的时间为C,将缓冲区的数据传送到用户区所花时间为M,那么在单缓冲情况下,系统处理大量数据时,一块数据的处理时间为多少? 双缓冲 在设备和处理机之间设置2个缓冲。设备与处理机交换数据时,先把交换的数据写入缓冲区,然后需要数据的设备/处理机再从缓冲区中取走数据。因缓冲区有2个,提高了设备与处理机并行操作的程度,只有当两个均为空时,需数据的进程才等待。 特点:缓冲区数有2个;设备与处理机对缓冲区的操作可并行,提高了设备与处理机并行操作的程度。 一块数据的处理时间 在某系统中,从磁盘将一块数据输入到缓冲区需要花费的时间T,CPU对一块数据进行处理的时间为C,将缓冲区的数据传送到用户区所花时间为M,那么在双缓冲情况下,系统处理大量数据时,一块数据的处理时间为多少? 双机通信时缓冲区的设置 循环缓冲的组成 多个缓冲区: 用于装输入数据的空缓冲区R 已装满数据的缓冲区G 计算进程正在使用的现行工作缓冲区C 多个指针: 指示输入进程下次可用的空缓冲区R的指针Nexti 指示计算进程下次可用缓冲区G的指针Nextg 指示计算进程正在使用的缓冲区C的指针Current 特点:缓冲区的数量有多个;设备与处理机对缓冲区的操作可并行,进一步提高了设备与处理机并行操作的程度。 缓冲池(1) 1、缓冲池:将系统内所有的缓冲区统一管理起来,就形成了能用于输入/输出的缓冲池。缓冲池通常由若干大小相同的缓冲区组成,是系统的公用资源,任何进程都可以申请使用缓冲池中的各个缓冲区。 2、缓冲池的组成(数据结构) 三个队列:空缓冲队列emq、装满输入数据队列inq、装满输出数据队列outq 四个工作缓冲区: 收容输入数据的缓冲区hin、提取输入数据的缓冲区sin、收容输出数据的缓冲区hout、提取输出数据的缓冲区sout 缓冲池(2) 三个队列:空缓冲队列emq、装满输入数据队列inq、装满输出数据队列outq 四个工作缓冲区: 收容输入数据的缓冲区、提取输入数据的缓冲区、收容输出数据的缓冲区、提取输出数据的缓冲区 3、Getbuf过程和Putbuf过程 Procedure Getbuf(type) begin wait(rs(type)); wait(ms(type)); B(number):=Takebuf(type); signal(ms(type)); end 4、操作系统对缓冲池的管理--工作方式 4、操作系统对缓冲池的管理--工作方式 输入进程需要输入数据时:输入设备 收容输入缓冲区-Getbuf(emq)和Putbuf(inq,hin) 1)从空缓冲队列emq的队首取一空缓冲区用作收容输入缓冲区hin 2)输入设备将数据输入收容输入缓冲区并装满 3)将此缓冲区挂到装满输入数据队列inq队尾。 计算进程需要输入数据时:提取输入缓冲区 CPU -Getbuf(inq)和Putbuf(emq,sin) 1)从装满输入数据队列inq队首取一满缓冲区用作提取输入缓冲区sin 2)CPU从提取输入缓冲区中取出数据至用完 3)将空缓冲区挂到空缓冲队列emq队尾。 4、操作系统对缓冲池的管理--工作方式 计算进程需要输出数据时:CPU 收容输出缓冲区-Getbuf(emq)和Putbuf(outq,hout) 1)从空缓

文档评论(0)

fc86033 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档