您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 操作系统第5章设备管理(2)
OperatingSystemPage12019/10/4OperatingSystemPage22019/10/4第五章设备管理I/O系统I/O控制方式缓冲管理设备分配设备处理磁盘存储器管理OperatingSystemPage32019/10/4缓冲管理缓冲的引入单缓冲和双缓冲循环缓冲缓冲池(BufferPool)OperatingSystemPage42019/10/4缓冲的引入缓和CPU与I/O设备间速度不匹配的矛盾数据到达速率与其离去速率不同减少对CPU的中断频率,放宽对CPU中断响应时间的限制1位缓冲9.6Kb/s(a)中断CPU的频率为9.6Kb/s,每100s中断一次CPUCPU必须在100s内响应,否则数据会被冲掉8位缓冲寄存器送内存9.6Kb/s(b)中断CPU的频率降低为9.6Kb/8OperatingSystemPage52019/10/4缓冲的引入8位缓冲寄存器9.6Kb/s送内存(c)提高CPU和I/O设备之间的并行性提高系统的吞吐量和设备的利用率每800s中断一次CPUOperatingSystemPage62019/10/4缓冲管理缓冲的引入单缓冲和双缓冲循环缓冲缓冲池(BufferPool)OperatingSystemPage72019/10/4单缓冲和双缓冲单缓冲(SingleBuffer)工作区处理(C)缓冲区传送(M)输入(T)I/O设备(a)T1M1C1T2M2C2T3M3C3T4t(b)用户进程CT时,每块数据的处理时间是M+T;反之,为M+C,即由于C和T可并行,M和C或M和T不能并行因此处理一块数据时间:Max(C,T)+MOperatingSystemPage82019/10/42.双缓冲(DoubleBuffer)为了加快输入、输出速度和提高设备利用率,又引入了双缓冲工作方式,也称为缓冲对换(BufferSwapping)方式。在设备输入时,先将数据输入第一缓冲区,装满后便转向第二缓冲区。操作系统可从第一缓冲区中移出数据送用户进程区,接着由CPU对数据进行计算。OperatingSystemPage92019/10/4单缓冲和双缓冲双缓冲(DoubleBuffer)工作区用户进程缓冲区1缓冲区2I/O设备T1(缓冲1)M1C1M2C2M3C3T2(缓冲2)T3(缓冲3)M4C4T4(缓冲4)(a)(b)效率有所提高,且进一步平滑了传输峰值。系统处理一块数据的时间约为:MAX(C,T)OperatingSystemPage102019/10/4单缓冲和双缓冲缓冲区缓冲区A机B机(a)单缓冲发送缓冲区接收缓冲区接收缓冲区发送缓冲区A机B机(b)双缓冲只能实现单向的数据传输为了实现双向数据传输,必须在两台机器中都设置两个缓冲区,一个用作发送缓冲区,另一个用作接收缓冲区。OperatingSystemPage112019/10/4缓冲管理缓冲的引入单缓冲和双缓冲循环缓冲缓冲池(BufferPool)OperatingSystemPage122019/10/4循环缓冲循环缓冲的引入当输入与输出速度基本匹配时,双缓冲能获得较好效果;当速度相差较大时,可引入多个(大小相等)缓冲,组织成循环缓冲的形式循环缓冲的组成多个缓冲区用于装输入数据的空缓冲区R已装满数据的满缓冲区G计算进程正在使用的现行工作缓冲区C多个指针指示计算进程下一可用缓冲区Nextg指示输入进程下一可用空缓冲区Nexti指示计算进程正在使用的缓冲区CurrentOperatingSystemPage132019/10/4循环缓冲RGGGRG165423NextiNextgRGGGRC165423NextiNextgcurrent类型:R:空缓冲;G:满缓冲;C:当前缓冲OperatingSystemPage142019/10/4循环缓冲循环缓冲区的使用Getbuf过程为计算进程和输入进程提供缓冲区,并移动指针Releasebuf过程当计算进程或输入使用完缓冲区后,调用过程将缓冲区释放进程同步——输入、计算进程并行Nexti指针追赶上Nextg指针输入进程速度大于计算进程,全部空缓冲区已满,无可用缓冲区,输入进程阻塞(系统受计算限制)Nextg指针追赶上Nexti指针计算进程速度大于输入进程,全部缓冲区空,无可用数据,计算进程阻塞(系统受I/O限制)OperatingSystemPage152019/10/4缓冲管理缓冲的引入单缓冲和双缓冲循环缓冲缓冲池(BufferPool)OperatingSystemPage162019/10/4缓冲池(BufferPool)缓冲池的组成专用缓冲的利用率不高,与环形缓冲不同的是缓冲池中的缓冲区是系统的公用资源,可供多个进程共享,既能用于输入,也能用于输出缓冲区类型空(闲)缓冲区装满输入数据的缓冲区装满输出数据的缓冲区缓冲队列:按其使用情况空缓冲队列emq输入队列inq输出队列outqOperatingSystemPage172019/10/4缓冲池(BufferPool)缓冲池的组成四种工作缓冲区用于收容输入数据的工作缓冲区(hin)用于提取输入数据的工作缓冲区(sin)用于收容输出数据的工作缓冲区(hout)用于提取输出数据的工作缓冲区(sout)OperatingSystemPage182019/10/4缓冲池(BufferPool)两个对缓冲区操作的过程Getbuf(type),type--队列类型Putbuf(type,number),number--指某缓冲区队列是临界资源需设置互斥信号量MS,每个队列一个MS(type)资源信号量RS,每个队列一个RS(type)队列操作过程Takebuf(type):取type所指队列队首缓冲区Addbuf(type,number):将number所指缓冲区加到type所指队列尾OperatingSystemPage192019/10/4缓冲池(BufferPool)ProcedureGetbuf(type)beginWait(RS(type));Wait(MS(type));B(number):=Takebuf(type);//从队首摘下一个缓冲区Signal(MS(type));endProcedurePutbuf(type,number)beginWait(MS(type));Addbuf(type,number);//将指定缓冲区挂在type指定队列上Signal(MS(type));Signal(RS(type));end互斥信号量MS(type)资源信号量RS(type)OperatingSystemPage202019/10/4缓冲池(BufferPool)缓冲池的组成四种工作缓冲区用于收容输入数据的工作缓冲区(hin)用于提取输入数据的工作缓冲区(sin)用于收容输出数据的工作缓冲区(hout)用于提取输出数据的工作缓冲区(sout)OperatingSystemPage212019/10/4缓冲池(BufferPool)缓冲区工作方式hinsoutsinhout收容输入提取输出用户进程提取输入收容输出缓冲池Getbuf(emq)Putbuf(inq,hin)Getbuf(inq)Putbuf(emp,sin)Getbuf(emq)Putbuf(outq,hout)Getbuf(outq)Putbuf(emq,sout)OperatingSystemPage222019/10/43.缓冲区的工作方式图5-15缓冲区的工作方式I/OI/O用户进程12hinsoutsinhoutinqemqemqoutq431.收容输入;2.提取输入;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)OperatingSystemPage232019/10/4缓冲无缓冲时问题分析:设备直接向进程地址空间传送数据(如用户从磁带中读数据块的操作),则进程要么忙等待,要么阻塞。如果用忙等待方式,则浪费大量CPU时间;如果是阻塞方式,则进程阻塞在设备的I/O请求队列中。这时,不能将进程全部换出,还可能出现单进程死锁。(进程在等待I/O操作结果之前被换出,等待I/O事件,而I/O操作也被阻塞,等待该进程被换入。)OperatingSystemPage242019/10/4第五章设备管理I/O系统I/O控制方式缓冲管理设备分配设备处理磁盘存储器管理OperatingSystemPage252019/10/4设备分配设备分配中的数据结构设备分配时应考虑的因素设备独立性独占设备的分配程序SPOOLing技术OperatingSystemPage262019/10/4设备分配中的数据结构在多道程序环境下,系统中的设备所有进程共享,为防止进程对系统资源的无序竞争,必须由系统统一分配设备某进程向系统提出I/O请求时,设备分配程序按一定策略分配设备、控制器和通道,形成一条数据传输通路,以供主机和设备间信息交换为实现设备分配,系统中应设置相应的数据结构,对每台设备、通道、控制器的情况进行登记OperatingSystemPage272019/10/45.4设备分配5.4.1设备分配中的数据结构1.设备控制表DCT2.控制器控制表COCT3.通道控制表CHCT4.系统设备表SDTOperatingSystemPage282019/10/4设备分配中的数据结构设备控制表DCT设备类型type设备标识符:deviceid设备状态:等待/不等待忙/闲指向控制器表COCT的指针重复执行次数或时间设备队列的队首指针DCT1DCT2DCTn设备控制表集合每个设备一张,记录本设备的情况正使用,则忙标志置1;若与其相连的控制器或通道忙,则等待标志置1请求本设备未满足的进程PCB队列OperatingSystemPage292019/10/4设备分配中的数据结构控制器控制表、通道控制表控制器标识符:controllerid控制器状态:忙/闲与控制器连接的通道表指针控制器队列的队首指针控制器队列的队尾指针通道标识符:channelid通道状态:忙/闲与通道连接的控制器表首址通道队列的队首指针通道队列的队尾指针(a)控制器表COCT(b)通道表CHCT一个控制器一张一个通道一张OperatingSystemPage302019/10/4设备分配中的数据结构系统设备表SDT系统设备表SDT表目1…表目i…设备类设备标识符DCT驱动程序入口整个系统一张,记录已被连接到系统中的所有物理设备的情况OperatingSystemPage312019/10/4设备分配设备分配中的数据结构设备分配时应考虑的因素设备独立性独占设备的分配程序SPOOLing技术OperatingSystemPage322019/10/45.4.2为了使系统有条不紊地工作,系统在进行设备分配时,应考虑这样几个因素:(1)设备的固有属性;(2)设备分配算法;(3)设备分配的安全性;(4)设备独立性。OperatingSystemPage332019/10/4设备分配时应考虑的因素设备的固有属性独占性一段时间内,只允许一个进程独占,大多数低度速I/O设备都属于独享设备共享性允许多个进程同时共享,如磁盘、磁鼓之类的外存储器,既具有很能大的存储容量,其定位操作的时间又短可虚拟性独占设备经某种技术处理,改造成虚拟设备,把一台输入机虚拟为几台“虚拟”的输入机。例如:为了提高设备利用率引入了脱机输入输出或采用SPOOLing技术,变一
本文标题:操作系统第5章设备管理(2)
链接地址:https://www.777doc.com/doc-1311543 .html