资源描述
Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,第五章 设 备 管 理,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,第五章 设 备 管 理,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,第五章 设 备 管 理,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,第五章 设 备 管 理,第五章 设备管理,设备管理对象:,I/O,设备、设备控制器、,I/O,通道。,设备管理基本任务:,完成用户提出,I/O,请求;,提升,I/O,速率;,提升,I/O,设备利用率。,设备管理主要功效:,缓冲区管理、设备分配、设备处理、虚拟设备、实现设备独立性。,1,第1页,第五章 设备管理,5.1,I/O,系统,5.2,I/O,控制方式,5.3 缓冲管理,5.4 设备分配,5.5 设备处理,5.6 磁盘存放器管理,2,第2页,I/O,缓冲区管理,3,第3页,4,第4页,5,第5页,6,第6页,5.1 I/O系统,I/O,系统是用于实现数据输入、输出和数据存放系统。,5.1.1,I/O,设备,5.1.2 设备控制器,5.1.3,I/O,通道,5.1.4 总线系统,7,第7页,5.1.1 I/O设备,1.I/O,设备类型,从,OS,观点看,,I/O,设备主要性能指标有:设备使用特征、数据传输速率、数据传输单位、设备共享属性等。,2.,设备与控制器之间接口,8,第8页,1.I/O设备类型,按,使用特征分类:,存放设备,,也称外存或后备存放器、辅助存放器。,输入,/,输出设备,输入设备,如键盘、鼠标、扫描仪、视频摄像、各类传感器等。,输出设备,如打印机、绘图仪、显示器、音箱等。,交互式设备,集成上述两类设备,利用输入设备接收用户命令信息,并经过输出设备同时显示用户命令以及命令执行结果。,9,第9页,1.I/O设备类型,按传输速率分类:,低速设备,,每秒钟几个字节至数百个字节。,键盘、鼠标器、语音输入和输出设备,中速设备,,每秒钟数千个字节至数万个字节。,行式打印机、激光打印机,高速设备,,数百千个字节至数十兆字节。,磁带机、光盘机、磁盘机,10,第10页,1.I/O设备类型,按信息交换单位分类:,块设备,(,Block Device),用于存放信息,信息存取以数据块为单位,有结构设备。,磁盘:传输速率较高;可寻址;常采取,DMA,方式。,字符设备,(,Character Device),用于数据输入和输出,无结构设备。,交互式终端、打印机等。,传输速率低,不可寻址,常采取中止驱动方式。,11,第11页,1.I/O设备类型,按设备共享属性分类:,独占设备,,指在一段时间内只允许一个用户(进程)访问设备,即:临界资源。,共享设备,,指在一段时间内允许多个进程同时访问设备,对每一个时刻只允许一个进程访问该设备。,可寻址,可随机访问(磁盘),虚拟设备,,指经过虚拟技术将一台独占设备变为若干台逻辑设备,供若干个用户(进程)同时使用。,12,第12页,2.设备与控制器之间接口,设备与CPU之间经过设备控制器通信。,在设备中应含有与设备控制器之间接口,在该接口中有三种类型信号,各对应一条信号线。,缓冲,转换器,控制逻辑,数据信号线,状态信号线,控制信号线,I/O,设备,设备,控制器,CPU,信号,数据,13,第13页,5.1.2 设备控制器,职责,:控制一个或多个,I/O,设备,实现,I/O,设备与计算机之间数据交换,是,CPU,和,I/O,设备之间接口,它接收从,CPU,发来命令,并去控制,I/O,设备工作,以使处理机从繁杂设备控制事务中解脱出来。,可编址,:一个地址对应一个设备。,分类,:字符设备控制器;块设备控制器。,14,第14页,1.设备控制器基本功效,接收和识别命令,在控制器中应含有,控制存放器,,用来存放接收命令和参数,并进行译码。,数据交换(数据存放器),实现,CPU,与控制器,控制器与设备间数据交换。,标识和汇报设备状态,控制器中,状态存放器,统计设备状态供,CPU,了解。,15,第15页,1.设备控制器基本功效(续),地址识别,每个设备都有一个地址,控制器必须能识别,需配置地址译码器。,数据缓冲,处理,I/O,设备与,CPU,、内存速度不匹配矛盾。,差错控制,控制器兼管对由,I/O,设备传送来数据进行差错检测,确保数据输入正确性。,16,第16页,2.设备控制器组成,17,第17页,5.1.3 I/O通道,1.I/O,通道设备引入,目标:,原来,CPU,I/O,任务由通道来负担,从而把,CPU,从繁杂,I/O,任务中解脱出来。,特征:,一个特殊处理机,它含有执行,I/O,指令能力,并经过执行,通道(,I/O,)程序,来控制,I/O,操作。,与普通处理机区分:,指令类型单一(仅能执行与,I/O,操作相关指令)。,没有自己内存(通道与,CPU,共享内存)。,18,第18页,2.通道类型,通道是用来控制外围设备,因为外围设备类型较多,且其传输速率相差较大,因而使通道含有各种类型。依据信息交换方式不一样,可把通道分为三种类型:,1,)字节多路通道,2,)数组选择通道,3,)数组多路通道,19,第19页,2.通道类型(续),1,)字节多路通道(,Byte Multiplexor Channel,),是一个按字节交叉方式工作通道。,一次交换一个字节。,含有许多非分配型子通道。,子通道采取多路分时复用按时间片轮转方式共享主通道。,控制器,A,控制器,B,控制器,C,控制器,D,控制器,N,A,1,A,2,A,3,子通道,A,B,1,B,2,B,3,子通道,B,C,1,C,2,C,3,子通道,C,N,1,N,2,N,3,子通道,N,A,1,B,1,C,1,A,2,B,2,C,2,设备,20,第20页,2.通道类型(续),2,)数组选择通道(,Block Selector Channel,),按数组方式进行数据传送。,含有一个分配型子通道。,一段时间内只执行一道通道程序,控制一台设备。,设备独占通道,通道利用率低。,3,)数组多路通道(,Block Multiplexor Channel,),含有许多非分配型子通道,分时并行操作。,按数组方式进行数据传送。,21,第21页,字节多路通道,数组选择通道,数组多路通道,22,第22页,3.“瓶颈”问题,通道资源有限,系统需要同时开启设备可能较多,使它成为,I/O,瓶颈,进而造成整个系统吞吐量下降。,设备,1,设备,2,设备,3,设备,4,设备,5,设备,6,设备,7,控制器,1,控制器,2,控制器,3,控制器,4,通道,1,通道,2,存放器,单通路,I/O,系统,23,第23页,处理“瓶颈”问题方法,增加通路,不增加通道。,不但处理瓶颈问题,而且提升了系统可靠性。,24,第24页,5.1.4 总线系统,总线是系统模块之间传送信息公用通路。,CPU、,存放器、,I/O,设备之间经过,总线,链接。,总线性能用,时钟频率,带宽,传输速率,来衡量。,25,第25页,总线型,I/O,系统结构,26,第26页,通道型,I/O,系统结构,27,第27页,含有控制器,I/O,系统结构,28,第28页,1.ISA和EISA总线,ISA,:,1984,年为,80286,型微机设计,带宽:,8,位,16,位,最高传输速率:,2Mbps,8,Mbps,16Mbps,,能连接,12,台设备。,EISA,:,1989,年,带宽:,32,位,最高传输速率:,32Mbps,,能连接,12,台设备。,29,第29页,2.局部总线(Local Bus),定义:,将多媒体卡、高速,LAN,网卡、高性能图形板等从,ISA,总线上卸下来,再经过局部总线控制器直接接到,CPU,总线上,使之与高速,CPU,总线相匹配。,VESA,总线:,总线带宽为,32,位,最高传输速率:,132Mbps,,能连接,24,台设备,控制器中无缓冲;难于适应处理器速度不停提升,不能支持,Pentium,微机。,PCI,总线:,支持,64,位系统,最高传输速率:,132Mbps,,能支持,10,种外设,有一个复杂管理层,管理层中配有数据缓冲。,30,第30页,31,第31页,32,第32页,5.2 I/O控制方式,宗旨:尽可能降低主机对,IO,控制干预,把主机从繁杂,IO,控制事务中解脱出来。,1.程序,I/O,方式,2.中止驱动,I/O,控制方式,3.直接存放器访问,DMA I/O,控制方式,4.,I/O,通道控制方式,33,第33页,34,第34页,35,第35页,程序,I/O,方式,向,I/O,控制器发读命令,读,I/O,控制器状态,从,I/O,控制器中读入字,向存放器中写字,检验状态,?,传送完成?,犯错,完成,CPU,I/O,I/O,CPU,I/O,CPU,CPU,内存,未完,未就绪,(=1),下条指令,就绪,(=0),36,第36页,2.中止驱动I/O控制方式,中止驱动,I/O,过程,开启:由,CPU,依据进程,I/O,请求,向设备控制器发出一条,I/O,命令;今后,CPU,继续执行其它进程,即,CPU,与外设并行工作。,I/O,设备完成操作后,由控制器经过控制线向,CPU,发送一中止信号,由,CPU,检验,I/O,操作是否正确。若无错,便向设备控制器发送取走数据信号,将数据写入内存。,37,第37页,中止驱动,I/O,控制方式,向,I/O,控制器发读命令,读,I/O,控制器状态,从,I/O,控制器中读入字,向存放器中写字,检验状态,传送完成?,犯错,完成,CPU,I/O,I/O,CPU,I/O,CPU,CPU,内存,未完,下一条指令,就绪,CPU,做其它事,中止,38,第38页,2.中止驱动I/O控制方式(续),优点,CPU,与,I/O,并行工作,提升了资源利用率和吞吐量。,缺点,CPU,每次处理数据量少(通常不超出几个字节),只适于传输率较低设备。,39,第39页,3.,直接存放器访问,(DMA)I/O,控制方式,DMA,(,Direct Memory Access,)控制方式引入,适应一次传送大量数据应用要求;,尽可能降低,CPU,对高速外设干预;,基本思想:在外设和主存之间开辟直接数据交换通路。,特点,数据传输基本单位是数据块。,数据从设备直接送入内存,或者相反。,仅在传送一个或多个数据块开始和结束时,才需,CPU,干预,整块数据传送是在控制器控制下完成。,40,第40页,DMA 方式,向,I/O,控制器,公布读块命令,读,DMA,控制,器状态,下条指令,CPU,做其它事,中止,CPU,DMA,DMA,CPU,41,第41页,DMA控制器组成,CPU,内存,主机控制器接口,DR,MAR,DC,CR,I/O,控制,逻辑,控制器与块设备接口,DMA,控制器,系统总线,命令,count,为实现主机与控制器之间成块数据交换,需设置:,命令,/,状态存放器,CR,内存地址存放器,MAR,数据存放器,DR:,暂存从设备到内存数据,或反之,数据计数器,DC:,存放此次,CPU,要读或写字,(,节,),数,42,第42页,DMA工作过程,设置,MAR,和,DC,初值,开启,DMA,传送命令,挪用存放器周,期传送数据字,存放器地址增,1,字计数存放器减,1,DC0?,请求中止,在继续执行用户,程序同时,准,备又一次传送,否,是,43,第43页,DMA 方式与中止主要区分,中止方式是在数据缓冲存放区满后,发中止请求,CPU进行中止处理。,DMA方式则是在所要求传送数据块全部传送结束时要求CPU进行中止处理,大大降低了CPU进行中止处理次数。,中止方式数据传送是由CPU控制完成,而DMA方式则是在DMA控制器控制下不经过CPU控制完成。,44,第44页,4.I/O通道控制方式,I/O,通道控制方式是,DMA,方式发展:,CPU,一次读(或写)多个数据块。,多个数据块送入不一样内存区域。,CPU、,通道和,I/O,设备三者可并行操作。,工作过程:,CPU,向通道发送一条,I/O,指令。,给出,通道程序,首址和要访问,I/O,设备。,经过执行,通道程序,完成,I/O,任务。,45,第45页,通道程序,通道是经过执行通道程序,并与设备控制器共同实现对,I/O,设备控制。,通道程序由一系列,通道指令,(通道命令)组成。,通道指令与普通机器指令不一样,每条通道指令包含信息:,操作码:,指令执行操作:读、写、控制等。,内存地址:,字符送入,/,取出内存首址。,计数:,表示本条指令所要读,/,写数据字节数。,通道程序结束位,P,(P=1,表示程序结束),统计结束标志,R,(R=0,表示与下一条指令处理数据属于同一统计;,R=1,表示某统计最终一条指令),46,第46页,通道程序,操作,P,R,计数,内存地址,WRITE,0,0,80,813,WRITE,0,0,140,1034,WRITE,0,1,60,5830,WRITE,0,1,300,WRITE,0,0,250,1850,WRITE,1,1,250,720,共同写,一条统计,独写,一条统计,共同写,一条统计,47,第47页,5.3 缓冲管理,什么是缓冲?,缓冲是在两种不一样速度设备之间传输信息时平滑传输过程惯用伎俩。,缓冲工作原理,在进程请求,I/O,传输时,利用缓冲区暂时存放,I/O,传输信息,以缓解传输信息源设备和目标设备之间速度不匹配问题。,48,第48页,5.3 缓冲管理,缓冲引入,缓解,CPU,与,I/O,设备间速度不匹配矛盾。,降低对,CPU,中止频率,放宽对中止响应时间限制。,提升,CPU,和,I/O,设备之间并行性,。,缓冲分类:,1.单缓冲 2.双缓冲,3.循环缓冲 4.缓冲池(,Buffer Pool),缓冲管理主要职责:,组织好这些缓冲区,并提供取得和释放缓冲区伎俩。,49,第49页,1.单缓冲(Single Buffer),进程发出一个,I/O,请求时,操作系统便在主存中为之分配一缓冲区。,T:,数据输入缓冲区时间。,M:,数据从缓冲区传到用户区时间。,C:CPU,处理数据时间。,工作区,处理,(,C,),缓冲区,传送,(,M,),输入,(,T,),I/O,设备,(,a,),用户进程,50,第50页,1.单缓冲(Single Buffer)(续),T,1,M,1,C,1,T,2,M,2,C,2,T,3,M,3,C,3,T,4,t,(,b,),缓冲区是临界资源,,CPU,和外设轮番使用。,I/O,设备与,CPU,并行工作。,对数据处理时间:,Max(C,T)+M。,51,第51页,2.双缓冲(缓冲对换),在设备输入时,先将数据送入第一缓冲区,装满后便转向第二缓冲区。此时,OS,能够从第一缓冲区中移出数据,并送入用户进程。接着由,CPU,对数据进行计算。,双缓冲工作示意图,52,第52页,2.双缓冲,假如在实现两台机器通信时,只配置单缓冲,那么在任一时刻只能实现单方向数据传输。,为了实现双向数据传输,必须在两台机器中都设置两个缓冲区。分别用在发送和接收。,53,第53页,3.循环缓冲,循环缓冲引入,:,当输入和输出速度相差很大时,双缓冲效果不理想,但可增加缓冲区数量,改进情况。,引入多缓冲机制:,将多个缓冲组织成循环缓冲形式,对于用于输入循环缓冲,通常提供给输入进程或计算进程使用,输入进程不停向空缓冲区输入数据,计算进程从中提取数据进行计算。,54,第54页,循环缓冲组成,在主存中分配一组大小相等缓冲区,并用指针将这些缓冲区组织成一个循环链表,组成循环缓冲。,(1),多个缓冲区:,用做输入缓冲区类型有:,空缓冲区,R,、已装满数据缓冲区,G,、工作缓冲区,C,(2),多个指针:,指示计算进程下一个可用缓冲区,G,指针,nextg,指示输入进程下次可用空缓冲区,R,指针,nexti,指示计算进程正在使用缓冲区,C,指针,current,55,第55页,循环缓冲区使用,GetBuf(),计算进程和输入进程可利用下述两个过程使用循环缓冲区:,GetBuf()ReleaseBuf(),R,G,G,G,R,G,nexti,nextg,1,2,3,4,5,6,R,G,G,G,R,C,nexti,nextg,current,1,2,3,4,5,6,R,G,G,G,R,R,1,2,3,4,5,6,nextg,nexti,ReleaseBuf(),56,第56页,进程同时,Nexti,指针追上,Nextg,指针。,意味着输入进程输入数据,速度大于计算进程处理,数据速度,再无空缓冲,区可用。输入进程应阻塞。,该情况被称为系统受计算控制。,Nextg,指针追上,Nexti,指针。,意味着输入数据速度低于计算进程处理数据速度,再无装有数据缓冲区可用。计算进程应阻塞。,该情况被称为系统受,I/O,控制。,57,第57页,4.缓冲池(Buffer Pool),缓冲池引入,把专用循环缓冲变为公用缓冲池提升内存利用率。,缓冲池组成,同时用于输入,/,输出公用缓冲池最少包含三种类型:,空闲缓冲区,装满输入数据缓冲区,装满输出数据缓冲区,58,第58页,缓冲池组成,为了方便管理,将相同类型缓冲区链成一个队列:,空缓冲(区)队列,emq,:队首指针,F(emq),、队尾指针,L(emq),。,输入缓冲(区)队列,inq,:队首指针,F(inq),、队尾指针,L(inq),输出缓冲(区)队列,outq,:队首指针,F(outq),、队尾指针,L(outq),59,第59页,缓冲池组成,Buffer Pool,in queue,empty queue,out queue,Device,CPU,四种工作缓冲区:,收容输入数据缓冲区;提取输入数据缓冲区;,收容输出数据缓冲区;提取输出数据缓冲区。,60,第60页,Getbuf过程和Putbuf过程,Addbuf(type,number),过程,:,用于将由参数,number,所指示缓冲区,B,挂在,type,队列上。,Takebuf(type),过程:用于从,type,所指示队列对首摘下一个缓冲区。,因为缓冲池中队列本身是临界资源,多个进程在访问一个队列时,既应互斥,又须同时。,为此需对这两个过程进行改造,形成可用于对缓冲池中队列进行操作,Getbuf,和,Putbuf,过程。,61,第61页,Getbuf过程和Putbuf过程,为每一队列设置一个互斥信号量MS(type)。,为每个缓冲队列设置一个资源信号量RS(type)。,Procedure Getbuf(type),begin,Wait(RS(type);,Wait(MS(type);,B(number):=Takebuf(type);,Signal(MS(type);,end,Procedure Putbuf(type),begin,Wait(MS(type);,Addbuf(type,number);,Signal(MS(type);,Signal(RS(type);,end,62,第62页,缓冲区四种工作方式,:,收容输入:收容输入设备输入数据,提取输入:,计算进程提取缓冲区中数据使用,收容输出:计算进程输出结果数据到缓冲区,提取输出:输出设备提取缓冲区中数据,缓 冲 池,收容输入 提取输入,提取输出 收容输出,hin,sin,sout,hout,用,户,程,序,Getbuf(inq)Putbuf(emq,sin),Getbuf(outq)Putbuf(emq,sout),Getbuf(emq)Putbuf(outq,hout),Getbuf(emq)Putbuf(inq,hin),63,第63页,5.4 I/O软件,I/O,软件总体设计目标是:,高效性,和,通用性,。为此将软件组织成一个层次结构,底层软件用于实现与硬件相关操作,并可屏蔽硬件详细细节,高层软件则主要是为用户提供一个简练、规范界面。,5.4.1,I/O,软件设计目标和标准,5.4.2 中止处理程序,5.4.3 设备驱动程序,5.4.4 设备独立性软件,5.4.5 用户层,I/O,软件,64,第64页,5.4.1 I/O软件设计目标和标准,I/O,软件设计目标,与详细设备无关,统一命名,对错误处理,缓冲技术,设备分配和释放,I/O,控制方式,65,第65页,I/O,系统层次及功效,用户层软件,设备独立性软件,设备驱动程序,中止处理程序,硬件,I/O,应答,产生,I/O,请求、格式化,I/O、Spooling,映射、保护、分块、缓冲、分配,设置设备存放器,检验存放器状态,执行,I/O,操作,66,第66页,5.4.2 中止处理程序,中止处理层主要工作:进行进程上下文切换,对处理中止信号源进行测试,读取设备状态和修改进程状态等。,中止处理程序处理过程:,唤醒被阻塞驱动(程序)进程,保护被中止进程,CPU,环境,转入对应设备处理程序,中止处理,恢复被中止进程现场,67,第67页,中断处理程序,68,第68页,5.4.3 设备驱动程序,设备驱动程序又称为设备处理程序,,是,I/O,进程与设备控制器之间通信程序。,驱动程序与硬件亲密相关,为每一类或非常类似两类设备配置一个驱动程序。,69,第69页,1.设备驱动程序功效,为了实现,I/O,进程与设备控制器之间通信,设备驱动程序应含有以下功效:,接收由设备独立性软件发来命令和参数,将命令中抽象请求转换为详细请求。,检验用户,I/O,请求正当性,了解,I/O,设备状态,传递相关参数,设置设备工作方式。,发出,I/O,命令:,设备空闲,开启,I/O,设备,不然将请求块挂在设备队列上等候。,及时响应控制器或通道发来中止请求,依据类型进行处理。,自动地组成通道程序。,70,第70页,2.设备处理方式,依据在设备处理时是否设置进程,以及设置什么样进程而把设备处理方式分为以下三类:,为每一类设备设置一个进程,专门用于执行这类设备,I/O,操作。,在整个系统中设置一个,I/O,进程,专门用于执行系统中全部各类设备输入或输出操作。,不设置专门设备处理进程,而只为各类设备设置对应设备处理程序,供用户进程或系统进程调用。,71,第71页,3.设备驱动程序特点,设备驱动程序属于低级系统例程,它与普通应用程序及系统程序之间有显著差异:,驱动程序主要是指在请求,I/O,进程与设备控制器之间一个通信和转换程序。,与硬件特征紧密相关,不一样类型设备配置不一样驱动程序。,驱动程序与,I/O,设备所采取,I/O,控制方式紧密相关。,普通使用汇编语言书写。,驱动程序应允许可重入。,72,第72页,3.设备驱动程序处理过程,设备驱动程序主要任务是开启指定设备。详细处理过程以下:,将抽象要求转换为详细要求。,检验,I/O,请求正当性。,读出和检验设备状态。,传送必要参数。,工作方式设置。,开启,I/O,设备。,73,第73页,5.4.4 设备独立性软件,1.,设备独立性概念:,设备独立性(设备无关性),:应用程序独立于详细使用物理设备。,为了实现设备独立性,引入了逻辑设备和物理设备:,应用程序中使用,逻辑设备,名称来请求使用某类设备;系统将其转换为,物理设备,名称。,好处:,设备分配时灵活性。,易于实现,I/O,重定向。,74,第74页,2.设备独立性软件,是驱动程序之上一层软件,功效以下:,执行全部设备公有操作:,对独立设备分配与回收。,将逻辑设备名映射为物理设备名,找到对应物理设备驱动程序。,对设备进行保护,禁止用户直接访问设备。,缓冲管理。,差错控制,。,向用户层(或文件层)软件提供统一接口。,75,第75页,3.,逻辑设备名到物理设备名映射实现,逻辑设备表,LUT,:,为了实现逻辑设备名到物理设备名映射,系统必须设置一张,逻辑设备表,LUT,(,Logical Unit Table,),能够将应用程序中所使用逻辑设备名映射为物理设备名,并提供该设备驱动程序入口地址。,逻辑设备名,物理设备名,驱动程序入口地址,/dev/tty,3,1024,/dev/printer,5,2046,76,第76页,3.逻辑设备名到物理设备名映射实现,LUT,设置问题,整个系统一张,LUT,(单用户系统),每个用户一张,LUT,(多用户系统),逻辑设备名,/,dev/tty,/,dev/printer,系统设备表指针,3,5,77,第77页,5.4.5 用户层I/O软件,用户层软件必须经过一组系统调用来取得操作系统服务。,78,第78页,5.5 设备分配,在多道程序环境下,设备必须由系统分配。每当进程向系统提出,I/O,请求时,设备分配程序按照一定分配策略,把其所需设备及其相关资源(如缓冲区、控制器和通道)分配给该进程。在分配设备时还必须考虑系统安全性,防止发生死锁现象。,5.5.1 设备分配中数据结构,5.5.2 设备分配时应考虑原因,5.5.3 独占设备分配程序,5.5.4,SPOOLing,技术,79,第79页,5.5.1 设备分配中数据结构,设备控制表,DCT,(每个设备配置一张设备控制表),设备类型,type,设备标识符:,deviceid,设备状态:等候/不等候 忙/闲,指向控制器表指针,重复执行次数或时间,设备队列队首指针,DCT 1,DCT 2,DCT n,设,备,控,制,表,集,合,80,第80页,5.5.1 设备分配中数据结构,控制器控制表,控制器标识符:,controllerid,控制器状态:忙/闲,与控制器连接通道表指针,控制器队列队首指针,控制器队列队尾指针,(,a,),控制器表,COCT,81,第81页,5.5.1 设备分配中数据结构,通道控制表,通道标识符:,channelid,通道状态:忙/闲,与通道连接控制器表首址,通道队列队首指针,通道队列队尾指针,(,b,),通道表,CHCT,82,第82页,5.5.1 设备分配中数据结构,系统设备表,83,第83页,84,第84页,5.5.2 设备分配时应考虑原因,设备固有属性,独享设备;共享设备;虚拟设备,设备分配算法,先来先服务;优先级高者优先,设备分配中安全性,安全分配方式:进程发出,I/O,请求后就进入阻塞态,不安全分配方式:进程发出,I/O,请求仍继续运行,设备独立性,85,第85页,5.5.3 独占设备分配程序,基本设备分配程序:,分配设备,分配控制器分配通道,设备分配程序改进:,增加设备独立性,使用逻辑设备名,考虑多通路情况,86,第86页,5.5.4 SPOOLing技术,1.,什么是,SPOOLing,技术(假脱机技术),定义:,在联机情况下实现同时外围操作。,特点:,是对脱机输入输出系统模拟。所以,必须建立在含有多道程序功效操作系统上,而且需要高速外存支持。,方式:,将数据从输入设备传送到磁盘或反之。,经过它能够将一台独占物理设备虚拟为多台逻辑设备,从而允许多个用户(进程)共享。,87,第87页,2.SPOOLing系统组成,88,第88页,3.共享打印机,用户进程请求打印时,,SPOOLing,系统并不真正马上把打印机分配给该进程,而只做两件事:,输出进程在输出井中申请一个空闲磁盘块区,并将要打印数据送入其中。,输出进程再为用户进程申请一张空白用户请求打印表,并将用户打印要求填入其中,再将该表挂到请求打印队列上。,当打印机空闲时,输出进程将从请求打印队列队首取出一张请求打印表,再从输出井把数据送到内存缓冲区,开启打印机打印输出。打印完后,输出进程检验请求打印队列,89,第89页,4.SPOOLing系统特点,提升了,I/O,速度,缓解了,CPU,与低速,I/O,设备速度不匹配矛盾。,利用高速共享设备,将独占设备改造为共享设备。,实现了虚拟设备功效,用户都感到独占了一台设备。,90,第90页,5.6 磁盘存放器管理,磁盘存放器特点:容量大、存取速度快、随机存取,主要存放文件。,磁盘存放器管理内容:,5.6.1,磁盘性能简述,5.6.2 磁盘调度,5.6.3 磁盘高速缓存(,Disk Cache),5.6.4,提升磁盘,I/O,速度其它方法,5.6.5 廉价磁盘冗余阵列,91,第91页,5.6.1 磁盘性能简述,硬盘结构,92,第92页,5.6.1 磁盘性能简述,1.,数据组织和格式,磁盘结构,柱面,盘面,磁臂,磁头,93,第93页,5.6.1 磁盘性能简述,磁盘盘面结构,磁道间隔,扇区,磁道,扇区间隔,94,第94页,5.6.1 磁盘性能简述,(0柱面,0磁头,1扇区),(0,0,63),(1,0,3),(0,0,2),(0,1,1),(0,3,1),(1,0,1),(0柱面,0磁头,1扇区),传统磁盘物理地址(,CHS,寻址),3D,参数:柱面数,(Cylinders),,磁头数,(Heads),,扇区数,(Sectors),柱面,磁头,扇区取值范围分别为,0,到,Cylinders 1,,,0,到,Heads 1,,,1,到,Sectors(,注意,S,是从,1,开始,),95,第95页,5.6.1 磁盘性能简述,为了提升磁盘存放容量,当代磁盘不再把磁道划分为相同数目标扇区,而是将盘面划分成若干条,环带,,同一环带内磁道含有相同扇区数。显然,外层环带磁道扇区比内层多。,采取这种结构后,硬盘不再含有实际,3D,参数,寻址方式也改为线性寻址,即以扇区为单位进行寻址。,大多数当代磁盘都隐藏了这些细节,向操作系统提供虚拟几何磁盘规格,而不是实际物理几何规格。,96,第96页,5.6.1 磁盘性能简述,磁盘低级格式化,温盘(温切斯特盘),磁盘分区,每个分区是一个独立逻辑磁盘。,每个分区起始扇区和大小统计在磁盘0扇区主引导统计分区表中。,磁盘高级格式化(使用),设置一个引导块、空闲存放管理、根目录和一个空文件系统。,在分区表中标识该分区所使用文件系统。,97,第97页,5.6.1 磁盘性能简述,磁盘容量算法,硬盘容量盘面数(磁头数)柱面数(磁道数)扇区数每扇区字节,16 16383 63,600,9,908,438,400,10G,16 16383 63,512,8,455,200,768,98,第98页,磁盘类型,硬盘、软盘,单片盘、多片盘,固定磁头盘(用于大磁盘),每条磁道都有一读,/,写磁头,装在一钢性磁臂上,可对全部磁道实现并行读写,提升磁盘,I/O,速度。,移动磁头盘(用于中小型磁盘),每盘面配一磁头,装入磁臂中,经过磁头移动进行寻道,从而访问磁盘上全部磁道,可对全部磁道实现串行读写,,I/O,速度较慢。,99,第99页,寻道时间(磁头移动到磁道上所经历时间),:,T,s,=mn+s,s,开启磁臂时间,,m,磁头移动一条磁道花费时间。,旋转延迟时间(扇区移动到磁头下面所经历时间),:,平均,T,=1/2,r,(,r,为磁盘每秒钟转数),传输时间(读,/,写数据所经历时间),:,T,t,=,b,为每次所读/写字节数。,N,为一条磁道上字节数。,访问时间:,磁盘访问时间,rN,b,r,T,T,s,a,+,+,=,2,1,rN,b,100,第100页,磁盘访问时间,寻道时间,和,旋转延迟时间,在访问时间中占主要部分,假设寻道时间和旋转延迟时间平局为,20ms,,磁盘传输速率,10Mbps,,则传输,10KB,数据总访问时间为,:21ms,,而传输,100KB,数据总访问时间为,30ms,合理组织磁盘数据存放位置(集中存放)可提升磁盘,I/O,性能。,随机分布时访问时间为连续分布时33.5倍。,101,第101页,5.6.2 磁盘调度,磁盘调度目标:采取一个最正确调度算法,使各进程对磁盘平均访问时间(寻道时间)最小。,磁盘调度算法:,1.先来先服务,FCFS,2.最短寻道时间优先,SSTF,3.扫描(,SCAN),算法,4.循环扫描(,CSCAN),算法,5.N-Step-SCAN,算法,6.FSCAN,算法,102,第102页,1.先来先服务FCFS,磁道号 18 38 39 55 58 90,100,150 160 184,请求次序 4 8 3 1 2 5,开始,7 6 9,平均寻道长度,:(45+3+19+21+72+70+10+112+146)/9=55.3,103,第103页,1.先来先服务FCFS,公平,简单。,I/O负载较轻且每次读写多个连续扇区时,性能很好。,适合用于I/O进程较少场所。,(从100号磁道开始),被访问下,一个磁道号,移动距离,(磁道数),55,58,39,18,90,160,150,38,184,45,3,19,21,72,70,10,112,146,平均寻道长度:55.3,104,第104页,2.最短寻道时间优先SSTF,磁道号 18 38 39 55 58 90,100,150 160 184,请求次序 4 8 3 1 2 5,开始,7 6 9,平均寻道长度,:,(10+32+3+16+1+20+132+10+24)/9=27.5,105,第105页,2.最短寻道时间优先SSTF,磁头移动距离最近,时间最少。,不能确保平均寻道时间最短。,可能会有进程处于“,饥饿,”状态。,(从100号磁道开始),被访问下,一个磁道号,移动距离,(磁道数),90,58,55,39,38,18,150,160,184,10,32,3,16,1,20,132,10,24,平均寻道长度:27.5,106,第106页,3.扫描(SCAN)算法,磁道号 18 38 39 55 58 90,100,150 160 184,请求次序 4 8 3 1 2 5,开始,7 6 9,107,第107页,3.扫描(SCAN)算法,电梯调度算法。,预防“饥饿”现象。,被广泛应用。,磁头刚才越过了某一磁道,恰好又有一进程请求访问此磁道,该进程长时间等候。,(从100号磁道开始,向磁道号增加方向访问),被访问下,一个磁道号,移动距离,(磁道数),150,160,184,90,58,55,39,38,18,50,10,24,94,32,3,16,1,20,平均寻道长度:27.8,108,第108页,4.循环扫描(CSCAN)算法,磁道号 18 38 39 55 58 90,100,150 160 184,请求次序 4 8 3 1 2 5 开始 7 6 9,109,第109页,4.循环扫描(CSCAN)算法,磁头单向移动。,该算法在中负载或重负载时,性能比扫描算法好。,(从100号磁道开始,向磁道号增加方向访问),被访问下,一个磁道号,移动距离,(磁道数),150,160,184,18,38,39,55,58,90,50,10,24,166,20,1,16,3,32,平均寻道长度:35.8,110,第110页,5.N-Step-SCAN算法,在高密度磁盘上轻易出现“磁臂粘着”情况。,将磁盘请求队列分成若干个长度为,N,子队列。,队列之间使用,FCFS,算法。,队列内部使用,SCAN,算法。,新,I/O,请求,放入其它队列,防止粘着现象。,当,N,值很大时,性能靠近于,SCAN,算法。,当,N=1,时,蜕化为,FCFS,算法。,111,第111页,6.FSCAN算法,是,N,步,SCAN,算法简化。,磁盘请求队列分成两个子队列:,一个是由当前全部请求磁盘,I/O,进程形成队列,按,SCAN,算法进行处理。,新出现全部请求磁盘,I/O,进程,放入另一个等候处理请求队列,推迟到下一次扫描时处理。,112,第112页,5.6.3 磁盘高速缓存(,Disk Cache),引入目标:提升磁盘,I/O,速度。,实现:利用内存中存放空间,暂存从磁盘中读出数据。,逻辑上属于磁盘,物理上是驻留在内存。,高速缓存在内存中可分成两种形式。,内存中开辟一个单独存放空间。,把全部未利用内存空间变为一个缓冲池,供请求分页系统和磁盘,I/O,时共享。,113,第113页,5.6.3 磁盘高速缓存(,Disk Cache),数据交付方式:,数据交付,:将磁盘
展开阅读全文