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