您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 第五章 设备管理-通道缓冲技术
I/O通道(通道的引入)硬件连接结构返回I/O通道(通道的引入)引入通道的主要目的:是使一些原来由CPU处理的I/O任务转由通道来承担,从而把CPU从繁杂的I/O任务中解脱出来,以保证CPU有更多的时间去进行数据的处理。I/O通道的特点:I/O通道是一种特殊的处理机,与一般的处理机的区别主要表现在:(1)它的指令类型单一。即:通道硬件简单,所执行的指令主要局限于与I/O操作有关的指令。(2)它没有自己的内存,通道所执行的通道程序是存放在内存中的。即:通道与CPU共享内存。主机I/O系统由于主机所配置的I/O设备较多,为减轻CPU和总线的负担,采用的是具有通道的I/O系统结构。如图所示计算机I/O通道1控制器4控制器3控制器2控制器1I/O通道2设备设备设备设备图具有通道的I/O系统结构返回I/O通道控制方式返回1.引入I/O通道方式是DMA方式的发展,它可进一步减少CPU的干预。即把对一个数据块的读(写)为单位的干预,减少为对一组数据块的读(写)及有关的控制和管理为单位的干预,同时又可实现CPU、通道和I/O设备三者的并行工作,从而更有效地提高了整个系统的资源利用率。通道:执行通道程序,向控制器发出命令,并具有向CPU发中断信号的功能。一旦CPU发出指令,启动通道,则通道独立于CPU工作。由前面知,一个通道可连接多个控制器,一个控制器可连接多个设备,形成树形交叉连接。2.通道程序通道是通过执行通道程序,并与设备控制器一起共同实现对I/O设备的控制。1)通道运算控制部件通道地址字CAW:记录通道程序在内存中的地址通道命令字CCW:保存正在执行的通道指令通道状态字CSW:存放通道执行后的返回结果通道数据字CDW:存放传输数据通道和CPU共用内存,通过周期窃取方式取得I/O通道控制方式I/O通道控制方式返回2)通道命令及格式通道程序是由一系列的通道指令(或称为通道命令)所构成。每条通道指令中应包含下列诸信息:(1)命令码:它规定了外围设备所执行的操作。(2)数据主存地址:标明数据送入内存(读)和从内存取出(写)时的内存首址。或是控制信息;或是转移地址(3)传送字节个数:表示本条指令所要读(或写)数据的字节数。(5)标志码R:R=1表示本通道程序尚未结束R=0表示通道程序的最后一条指令,通道程序结束CPU:执行用户程序,当遇到I/O请求时,可根据该请求生成通道程序放入内存(也可事先编好放入内存),并将该通道程序的首地址放入CAW中;之后执行“启动I/O”指令,启动通道工作通道:接收到“启动I/O”指令后,从CAW中取出通道程序的首地址,并根据首地址取出第一条指令放入CCW中,同时向CPU发回答信号,使CPU可继续执行其他程序,而通道则开始执行通道程序,完成传输工作。通道程序完成实际I/O,启动I/O设备,执行完毕后,如果还有下一条指令,则继续执行,否则表示传输完成,向CPU发I/O中断,并且通道停止工作。CPU接收中断信号,从CSW中取得有关信息,决定下一步做什么。I/O通道控制方式3)工作原理5.6缓冲技术1缓冲的引入所以,为了提高I/O速度和设备利用率,许多计算机系统通过设置缓冲区采用了缓冲技术来实现。缓冲管理的主要功能是:组织好缓冲区,并提供获得和释放缓冲区的手段。缓和CPU与I/O设备间速度不匹配的矛盾减少对CPU的中断频率,放宽对中断响应时间的限制(见下页图)提高CPU和I/O设备之间的并行性在OS中,引入缓冲技术的主要原因有:缓冲区设置分为硬缓冲:在设备中设置缓冲区,由硬件实现软缓冲:在内存中开辟一个空间,用作缓冲区2单缓冲和双缓冲1.单缓冲(SingleBuffer)是OS提供的最简单的一种缓冲形式。用户区用户进程缓冲区操作系统I/O设备输入传送下面通过数学方式说明单缓冲的作用。对于块设备输入(出),设从磁盘把一块数据输入到缓冲区(或从缓冲区把一块数据输出到磁盘)所需的时间为T,将缓冲区的数据传送到用户区的时间为M,CPU计算数据的时间为C,则系统对每整块数据的处理时间为:max(C,T)+M(MTorC)如果没有缓冲区,则系统对每整块数据的处理时间为:T+C输出传送工作区处理(C)缓冲区传送(M)输入(T)I/O设备(a)T1M1C1T2M2C2T3M3C3T4t(b)用户进程对于字符设备输入(出),缓冲区是暂存用户输入(出)的一行数据。例:把一叠卡片读入并打印出来。设读卡机和打印机的速度分别是600张/m、600行/m,则每读入并打印出一张卡片上的记录需时为200ms。说明:由于只有一个缓冲区,读卡机和打印机是串行工作的。即读卡机将数据读入缓冲区时,打印机空闲,打印机工作时,读卡机空闲。为了能让两者更好地工作,引入了双缓冲区。用户区用户进程缓冲区操作系统I/O设备输入传送输出传送2.双缓冲(DoubleBuffer)用户区用户进程操作系统I/O设备缓冲区1缓冲区2输入传送用户区用户进程缓冲区1操作系统I/O设备缓冲区2传送输出用户区用户进程缓冲区1操作系统I/O设备1缓冲区2I/O设备2输出传送输入传送单机缓冲系统5.3.4缓冲池(BufferPool)目前广泛流行的公用缓冲池,由于可供多个进程共享,可提高缓冲区的利用率。一、缓冲池(BufferPool)的组成对于可用于I/O的缓冲池,包含的缓冲区类型有:①空(闲)缓冲区;②装满输入数据的缓冲区;③装满输出数据的缓冲区。对应的有以下三个缓冲队列:①空缓冲队列emq。由空缓冲区所链成的队列②输入队列inq。由装满输入数据的缓冲区所链成的队列③输出队列outq。由装满输出数据的缓冲区所链成的队列除了上述外,缓冲池还具有如下的工作缓冲区:①用于收容输入数据的工作缓冲区;②用于提取输入数据的工作缓冲区;③用于收容输出数据的工作缓冲区;④用于提取输出数据的工作缓冲区;三、缓冲区的工作方式hinsoutsinhout用户程序提取输入收容输出收容输入提取输出①收容输入工作方式②提取输入工作方式③收容输出工作方式④提取输出工作方式输入数据时,调用Getbuf(emq)装满数据后,调用Putbuf(inq,hin)输入数据时,调用Getbuf(inq)提完数据后,调用Putbuf(emq,sin)输出数据时,调用Getbuf(emq)装满数据后,调用Putbuf(outq,hout)输出数据时,调用Getbuf(outq)提完数据后,调用Putbuf(emq,sout5.7SPOOLing技术问:能否通过某种技术将一台独占设备改造成由多个用户共享的设备?答:能。SPOOLing技术就是用于将一台独占设备改造成共享设备的行之有效的技术。一、什么是SPOOLing为了缓和CPU的高速性与I/O设备低速性间的矛盾而引入了脱机输入、脱机输出技术。该技术是利用专门的外围控制机,将低速I/O设备上的数据传送到高速磁盘上;或者相反。事实上,当系统中引入了多道程序技术后,完全可以利用其中的一道程序,来模拟脱机输入时的外围控制机功能,把低速I/O设备上的数据传送到高速磁盘上;再用另一道程序来模拟脱机输出时外围控制机的功能,把数据从磁盘传送到低速输出设备上。这样,便可在主机的直接控制下,实现脱机输入、输出功能。此时的外围操作与CPU对数据的处理同时进行,我们把这种在联机情况下实现的同时外围操作称为称为假脱机操作,或称为SPOOLing(SimultaneausPeriphernalOperatingOn-Line),二、SPOOLing系统的组成输入进程SP1输出进程SP0输入井输出井磁盘输出设备输入设备输入缓冲区B1输出缓冲区B0共享打印机假定某系统的全部行式打印机采用了虚拟设备技术(即使用了SPOOLing技术),当某进程要求打印输出时,SPOOLing系统同意为它打印输出,但并不真正立即把打印机分配给该用户进程,而只为它做两件事:①由输出进程在输出井中为之申请一个空闲磁盘块区,并将要打印的数据送入其中;②输出进程再为用户进程申请一张空白的用户请求打印表,为其分配一块存储空间,同时为该进程的输出数据建立一个文件(文件名可缺省),并将用户的打印要求填入其中,再将该表挂到请求打印队列上。该进程的输出数据实际上并未从打印机上输出,而只是以文件形式输出,并暂存放在输出SPOOLing存储区中。这个输出文件实际上相当于虚拟的行式打印机。各进程的输出都以文件形式暂时存放在输出SPOOLing存储区中并形成了一个输出队列,由输出SPOOLing控制打印机进程,依次将输出队列中的各进程的输出文件最后实际地打印输出。(1)提高了I/O的速度。(2)将独占设备改造为共享设备。(3)实现了虚拟设备功能。SPOOL系统的特点:
本文标题:第五章 设备管理-通道缓冲技术
链接地址:https://www.777doc.com/doc-1314641 .html