《[精选]设备管理系统培训25730.pptx》由会员分享,可在线阅读,更多相关《[精选]设备管理系统培训25730.pptx(93页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第5章章 设备管理设备管理nI/O系统的组成系统的组成nI/O控制方式控制方式n缓冲管理缓冲管理n设备分配设备分配n设备处理设备处理n磁盘设备管理磁盘设备管理3/20/20231关于设备管理关于设备管理n计算机系统的一个重要组成部分是计算机系统的一个重要组成部分是I/OI/O系统。系统。n该系统包括该系统包括实现信息输入、输出和存储功能的实现信息输入、输出和存储功能的I/OI/O设备设备相应的设备控制器,有的大中型机还有相应的设备控制器,有的大中型机还有I/OI/O通道或通道或I/OI/O处理机。处理机。n基本任务基本任务:完成用户提出的:完成用户提出的I/OI/O请求,提高请求,提高I/O
2、I/O速率速率以及改善以及改善I/OI/O设备的利用率。设备的利用率。n主要功能主要功能:缓冲区管理、设备分配、设备处理、虚:缓冲区管理、设备分配、设备处理、虚拟设备及设备独立性等。我们主要对拟设备及设备独立性等。我们主要对I/OI/O设备和设备设备和设备控制器等硬件作一扼要的阐述。控制器等硬件作一扼要的阐述。3/20/202321、I/O系统的组成系统的组成总的来说:总的来说:需要用于输入、输出和存储信息的需要用于输入、输出和存储信息的设备;设备;需要有相应的设备需要有相应的设备控制器控制器和和高速总线;高速总线;有的大中型计算机系统,配置有的大中型计算机系统,配置I/O通道通道等;等;nI
3、/OI/O设备设备n设备控制器设备控制器nI/OI/O通道通道3/20/202331)I/O设备的类型设备的类型 I/O设备的类型繁多,从设备的类型繁多,从OS的观点,按其的观点,按其重要的性能指标进行分类如下:重要的性能指标进行分类如下:按传输速率分类:按传输速率分类:低速、中速、高速(键盘、打印机、磁盘)低速、中速、高速(键盘、打印机、磁盘)按信息交换的单位分类:按信息交换的单位分类:块设备:有结构、速率高、可寻址、块设备:有结构、速率高、可寻址、DMA方方式控制式控制字符设备:无结构、速率低、不可寻址、中字符设备:无结构、速率低、不可寻址、中断方式控制断方式控制3/20/20234按设备
4、的共享属性分类:按设备的共享属性分类:独占:打印机独占:打印机共享:一个时刻上仍然是只被一个进程占用。共享:一个时刻上仍然是只被一个进程占用。可寻址、可随机访问的色后备。磁盘。可寻址、可随机访问的色后备。磁盘。虚拟:使一台独占设备变换为若干台逻辑设备,虚拟:使一台独占设备变换为若干台逻辑设备,供给若干用户供给若干用户“同时使用同时使用”。3/20/202352)设备控制器)设备控制器n设备并不直接与设备并不直接与CPU通信通信n计算机中的一个实体计算机中的一个实体“设备控制器设备控制器”负负责控制一个或多个责控制一个或多个I/O设备,以实现设备,以实现I/O设备设备和计算机之间的数据交换。和计
5、算机之间的数据交换。n控制器是控制器是CPU与与I/O设备之间的接口,作为设备之间的接口,作为中间人接收从中间人接收从CPU发来的命令,并去控制发来的命令,并去控制I/O设备工作,以使处理机脱离繁杂的设备设备工作,以使处理机脱离繁杂的设备控制事务。控制事务。3/20/20236控制器与控制器与CPU接口接口控制器与设备接口控制器与设备接口设备控制器CPUI/O设备数据线数据线地址线地址线控制线控制线数据数据状态状态控制控制3/20/20237 I/O设备中的接口设备中的接口n与控制器的接口有三种类型的信号与控制器的接口有三种类型的信号数据信号线数据信号线(进出数据转换、缓冲后传送进出数据转换、
6、缓冲后传送)控制信号线控制信号线(读读写写移动磁头等控制移动磁头等控制)状态信号线状态信号线I/O设备信号信号数据数据缓冲缓冲 转换器转换器数据数据状态状态控制逻辑控制逻辑控制控制3/20/20238设备控制器设备控制器n可编址,不同类可编址,不同类控制一个设备时只有一个地址,若连接控制一个设备时只有一个地址,若连接控制多个设备则含有多个设备地址控制多个设备则含有多个设备地址管理的复杂性因不同设备而异,分为字管理的复杂性因不同设备而异,分为字符设备控制器、块设备控制器。符设备控制器、块设备控制器。常作成接口卡插入计算机。常作成接口卡插入计算机。3/20/20239n基本功能基本功能1.接收和识
7、别接收和识别CPU命令(控制命令(控制寄存器寄存器:存:存放命令和参数)放命令和参数)2.标识和报告设备的状态(状态标识和报告设备的状态(状态寄存器寄存器)3.数据交换(数据数据交换(数据寄存器寄存器)4.地址识别(控制器识别设备地址、寄存地址识别(控制器识别设备地址、寄存器地址。地址译码器)器地址。地址译码器)5.数据缓冲(协调数据缓冲(协调I/O与与CPU的速度差距)的速度差距)6.差错控制差错控制3/20/202310n组成组成1.设备控制器与处理机的接口设备控制器与处理机的接口2.设备控制器与设备的接口设备控制器与设备的接口3.I/O逻辑逻辑设备控制器数据线数据线地址线地址线控制线控制
8、线数据数据状态状态控制控制I/O逻辑逻辑3/20/202311I/O逻辑逻辑控制器控制器与设备与设备接口接口1控制器控制器与设备与设备接口接口i数据寄存器数据寄存器控制控制/状态状态寄存器寄存器数据线数据线地址线地址线控制线控制线与与CPU的接口的接口 与设备的接口与设备的接口数据数据数据数据状态状态控制控制状态状态控制控制n 一个接口连接一个设备。一个接口连接一个设备。n 每个接口中都有数据、控每个接口中都有数据、控制和状态三种类型的信号。制和状态三种类型的信号。n 控制器中的控制器中的I/O逻辑逻辑根据处理机发来的地址根据处理机发来的地址信号,去选择一个设备信号,去选择一个设备接口。接口。
9、n1个或个或n个个n 1个或个或n个个3/20/202312I/O逻辑逻辑n通过一组控制线与处理机交互,处理机利通过一组控制线与处理机交互,处理机利用该逻辑向控制器发送用该逻辑向控制器发送I/O命令。命令。I/O逻辑对逻辑对收到的命令进行译码。收到的命令进行译码。nCPU要启动一个设备时,要启动一个设备时,将启动命令发送给控制器;将启动命令发送给控制器;同时通过地址线把地址发送给控制器同时通过地址线把地址发送给控制器控制器的控制器的I/O逻辑对收到的地址和命令进行译码,逻辑对收到的地址和命令进行译码,再根据所译出的命令选择设备进行控制。再根据所译出的命令选择设备进行控制。3/20/202313
10、处理机与设备控制器间处理机与设备控制器间n实现实现CPU与设备控制器之间的通信。与设备控制器之间的通信。n共有三类信号线:共有三类信号线:数据线:数据线通常与两类寄存器相连接,数据线:数据线通常与两类寄存器相连接,第一类是数据寄存器;第二类是控制第一类是数据寄存器;第二类是控制/状态状态寄存器。寄存器。地址线地址线控制线控制线3/20/2023143)I/O通道通道I/O通道设备的引入通道设备的引入n设备控制器已大大减少设备控制器已大大减少CPU对对I/O的干预(如承担了选的干预(如承担了选择设备,数据转换、缓冲等功能)择设备,数据转换、缓冲等功能)n但当主机的外设很多时,但当主机的外设很多时
11、,CPU的负担仍然很重。为此的负担仍然很重。为此又在又在CPU和设备控制器之间增设一个机构:和设备控制器之间增设一个机构:“通道通道”主要目的:主要目的:n建立更独立的建立更独立的I/OI/O操作,解放操作,解放CPUCPU。数据传送的独立数据传送的独立I/0操作的组织、管理及结束处理也尽量独立。操作的组织、管理及结束处理也尽量独立。n设置通道后设置通道后CPU只需向通道发送一条只需向通道发送一条I/O指令即可不再干预后续指令即可不再干预后续操作。操作。通道根据命令,形成通道程序,执行通道根据命令,形成通道程序,执行I/O操作,完成操作,完成后向后向CPU发中断信号。发中断信号。3/20/20
12、2315通道类型通道类型n实际上实际上I/O通道是一种特殊的处理机:通道是一种特殊的处理机:指令类型单一,只用于指令类型单一,只用于I/O操作;操作;通道没有内存,它与通道没有内存,它与CPU共享内存。共享内存。n根据其控制的外围设备的不同类型,信息根据其控制的外围设备的不同类型,信息交换方式也可分为以下三种类型:交换方式也可分为以下三种类型:1)字节多路通道字节多路通道2)数组选择通道数组选择通道3)数组多路通道数组多路通道3/20/202316n字节多路通道字节多路通道一个通道常通过多个子通道连接控制多个设备控一个通道常通过多个子通道连接控制多个设备控制器。制器。多个设备以字节为单位多个设
13、备以字节为单位交叉轮流交叉轮流使用主通道传输使用主通道传输自己的数据。(图自己的数据。(图5-3)控制器控制器A设备设备控制器控制器B设备设备A1B1C1A2B2C2A1A2B1B2主通道扫描子通道速率足够快,子通道上的设备速率主通道扫描子通道速率足够快,子通道上的设备速率又不太高时,一般不丢失信息。又不太高时,一般不丢失信息。适用于并行、低速设备适用于并行、低速设备3/20/202317n数组选择通道数组选择通道为了适用高速设备,设置分配型子通道为了适用高速设备,设置分配型子通道设备分配到通道后,一段时间内一直独设备分配到通道后,一段时间内一直独占,直至设备传送完毕释放。占,直至设备传送完毕
14、释放。利用率低。利用率低。n数组多路通道数组多路通道结合上述两种方式。含多个非分配型子结合上述两种方式。含多个非分配型子通道。数据传送则按数组方式进行。通道。数据传送则按数组方式进行。3/20/202318“瓶颈瓶颈”问题问题由于通道价格昂贵,致使数量较少,使它成为由于通道价格昂贵,致使数量较少,使它成为I/O系统的瓶颈,进而造成系统吞吐量的下降。如系统的瓶颈,进而造成系统吞吐量的下降。如下例所示:下例所示:存储器存储器通道通道1通道通道2控制器控制器1控制器控制器2控制器控制器3控制器控制器4设备设备1设备设备2设备设备3设备设备4设备设备5设备设备6设备设备73/20/202319n解决解
15、决“瓶颈瓶颈”问题最有效的办法便是增加设备到问题最有效的办法便是增加设备到主机间的主机间的通路通路而不增加通道,如下图所示:而不增加通道,如下图所示:存储器存储器通道通道1通道通道2控制器控制器1控制器控制器2I/O设备设备I/O设备设备I/O设备设备I/O设备设备3/20/202320n如图所示,计算机系统中的各部件,如如图所示,计算机系统中的各部件,如CPU、存、存储器以及各种储器以及各种I/O设备之间的联系,都是通过总线设备之间的联系,都是通过总线来实现的。来实现的。n总线的性能用总线的总线的性能用总线的“时钟频率时钟频率”、“带宽带宽”和相应和相应的总线的总线“传输速率传输速率”等指标
16、来衡量。等指标来衡量。CPU存储器存储器磁盘磁盘控制器控制器打印机打印机控制器控制器其他其他控制器控制器磁盘驱动器磁盘驱动器打印机打印机系统总线系统总线*微机微机I/O系统中的总线结构系统中的总线结构3/20/202321总线的发展过程总线的发展过程nISA和和EISA总线总线1.ISA(Industry Standard Architecture)总线)总线2.EISA(Extended ISA)总线)总线n局部总线(局部总线(Local Bus)1.VESA(Video Electronic Standard)总线)总线2.PCI(Peripheral Component Interfac
17、e)总线)总线3/20/2023222、I/O控制方式控制方式n程序程序I/O方式方式n中断驱动中断驱动I/O方式方式n直接存储器访问直接存储器访问DMA(字节(字节块)块)nI/O通道控制方式(组织传送的独立)通道控制方式(组织传送的独立)n宗旨:减少主机对宗旨:减少主机对I/O控制的干预,将控制的干预,将CPU从繁杂的从繁杂的I/O控制事物中解脱出来。控制事物中解脱出来。3/20/2023231)程序)程序I/O方式方式n处理机对处理机对I/O设备的控制采取程序设备的控制采取程序I/O方式,或称为忙方式,或称为忙等待方式等待方式向控制器发送一条向控制器发送一条I/O指令启动输入设备输入数据
18、时,要同指令启动输入设备输入数据时,要同时把状态寄存器中的忙时把状态寄存器中的忙/闲标志置为闲标志置为1。然后不断测试标志。当为然后不断测试标志。当为1时,表示输入机尚未输完一个字,时,表示输入机尚未输完一个字,处理机应继续对该标志测试,直到它为处理机应继续对该标志测试,直到它为0,表明数据已输入,表明数据已输入到控制器的数据寄存器中。到控制器的数据寄存器中。处理机将数据取出送入内存单元,便完成了一个字的处理机将数据取出送入内存单元,便完成了一个字的I/O。n在程序在程序I/O方式中,由于方式中,由于CPU高速而高速而I/O设备低速致使设备低速致使CPU极大浪费。极大浪费。注:程序注:程序I/
19、OI/O方式也称作程序查询方式或轮询方式。方式也称作程序查询方式或轮询方式。3/20/202324程序程序I/O方式流程图方式流程图向向I/O控制器发读命令控制器发读命令读读I/O控制器的状态控制器的状态从从I/O控制器中读入字控制器中读入字向存储器中写字向存储器中写字检查状态检查状态传送完成?传送完成?出错出错完成完成CPUI/OI/OCPUI/OCPUCPU内存内存未完未完未就绪未就绪下条指令下条指令 就绪就绪3/20/2023252)中断驱动)中断驱动I/O方式方式nCPUCPU向相应的设备控制器发出一条向相应的设备控制器发出一条I/OI/O命令命令n然后立即返回继续执行原来的任务然后立
20、即返回继续执行原来的任务。设备。设备控制器于是按照命令的要求去控制指定控制器于是按照命令的要求去控制指定I/OI/O设备。这时设备。这时CPUCPU与与I/OI/O设备并行操作。设备并行操作。nI/O设备输入数据中,无需设备输入数据中,无需CPU干预,因而干预,因而可使可使CPU与与I/O设备并行工作。从而提高了设备并行工作。从而提高了整个系统的资源利用率及吞吐量。整个系统的资源利用率及吞吐量。3/20/202326中断控制方式流程图中断控制方式流程图向向I/O控制器发读命令控制器发读命令读读I/O控制器的状态控制器的状态从从I/O控制器中读入字控制器中读入字向存储器中写字向存储器中写字检查状
21、态检查状态传送完成?传送完成?出错出错完成完成CPUI/OI/OCPUI/OCPUCPU内存内存未完未完下条指令下条指令 就绪就绪CPU做其它事做其它事中断中断3/20/2023273)直接存储器访问)直接存储器访问DMA 方式方式n中断方式比程序中断方式比程序I/O方式更有效,但仍以字方式更有效,但仍以字(节)为单位进行(节)为单位进行I/O,每当完成一个字,每当完成一个字(节),控制器便要请求一次中断。(节),控制器便要请求一次中断。nCPU还是存在频繁的中断处理操作。还是存在频繁的中断处理操作。nDMA(Direct Memory Access)控制方)控制方式的引入式的引入直接存储器访
22、问方式。直接存储器访问方式。3/20/202328该方式的特点是:该方式的特点是:1)数据传输的数据传输的基本单位是数据块基本单位是数据块;2)所传送的数据是从设备直接送入内存的,或者相所传送的数据是从设备直接送入内存的,或者相反;不需要反;不需要CPU操作。操作。3)CPU干预进一步减少:干预进一步减少:仅在传送一个或多个数仅在传送一个或多个数据块的开始和结束时,才需据块的开始和结束时,才需CPUCPU干预,整块数据干预,整块数据的传送是在控制器的控制下完成的。的传送是在控制器的控制下完成的。可见可见DMA方式又是成百倍的减少了方式又是成百倍的减少了CPU对对I/O的的干预,进一步提高了干预
23、,进一步提高了CPU与与I/O设备的并行操作设备的并行操作程度。程度。3/20/202329DMA方式示意图方式示意图向向I/O控制器控制器发布读块命令发布读块命令读读DMA控制控制器的状态器的状态下条指令下条指令CPU做其它事做其它事中断中断CPUDMADMACPU3/20/202330DMA控制器的组成控制器的组成nDMA控制器控制器由三部分组成:由三部分组成:1.主机与主机与DMA控制器的接口;控制器的接口;2.DMA控制器与块设备的接口;控制器与块设备的接口;3.I/O控制逻辑。控制逻辑。4.如下页图。如下页图。3/20/202331DMA控制器的示意图控制器的示意图countI/O控
24、控制制逻逻辑辑DRMARDCCRCPU内存内存主机主机控制器控制器接口接口控制器与控制器与块设备接口块设备接口系统总线系统总线DMA控制器控制器命令命令3/20/202332DMA控制器中的寄存器控制器中的寄存器n为实现主机与控制器之间块数据的直接交为实现主机与控制器之间块数据的直接交换,必须设置如下四类寄存器:换,必须设置如下四类寄存器:1.1.数据寄存器数据寄存器DRDR:暂存设备到内存或从内存到设暂存设备到内存或从内存到设备的数据。备的数据。2.2.内存地址寄存器内存地址寄存器MARMAR:它存放把数据从设备传送它存放把数据从设备传送到内存的起始的目标地址或内存原地址。到内存的起始的目标
25、地址或内存原地址。3.3.数据计数器数据计数器DCDC:存放本次存放本次CPU要读或写的字要读或写的字(节)数。(节)数。4.4.命令命令/状态寄存器状态寄存器CRCR:用于接收从用于接收从CPU发来的发来的I/O命令或有关控制和状态信息。命令或有关控制和状态信息。3/20/202333DMA工作过程工作过程nCPU先向磁盘控制器发送一条读命令。先向磁盘控制器发送一条读命令。n该命令被送到命令寄存器该命令被送到命令寄存器CR中。中。n同时需发送本次要将数据读入的内存起始目标地同时需发送本次要将数据读入的内存起始目标地址,该地址被送入址,该地址被送入MAR中;将磁盘中的原地址中;将磁盘中的原地址
26、直接送入直接送入DMA控制器的控制器的I/O控制逻辑控制逻辑上。上。n要读数据的字数则送入数据计数器要读数据的字数则送入数据计数器DC中中n启动启动DMA控制器,按其控制逻辑开始进行数据控制器,按其控制逻辑开始进行数据传送传送DMA控制器读入一个数据到数据寄存器控制器读入一个数据到数据寄存器DR中,然后中,然后传到内存中;传到内存中;接着接着MAR+1,DC-1,判断,判断DC是否为是否为0,如否,继续,如否,继续,反之控制器发中断请求,传送完毕。反之控制器发中断请求,传送完毕。以磁盘读数以磁盘读数据为例据为例3/20/202334DMA工作方式流程图工作方式流程图设置设置AR和和DC初值初值
27、启动启动DMA传送命令传送命令挪用存储器周期挪用存储器周期传送数据字传送数据字存储器地址增存储器地址增1字计数寄存器减字计数寄存器减1DC=0?请求中断请求中断在继续执行用户在继续执行用户程序的同时,准程序的同时,准备又一次传送备又一次传送3/20/2023354)I/O通道控制方式通道控制方式nDMA适用于读一个连续的数据块;适用于读一个连续的数据块;n如如一次读多个数据块到内存不同区域一次读多个数据块到内存不同区域,须由,须由CPU分分别发送多条别发送多条I/O指令、进行多次指令、进行多次DMA中断处理。中断处理。nDMA方式的发展,方式的发展,引入引入I/O通道控制方式,实现为通道控制方
28、式,实现为对对一组数据块一组数据块的读(写)及有关的控制和管理为单的读(写)及有关的控制和管理为单位的干预。进一步减少位的干预。进一步减少CPU的干预的干预n此时,此时,CPU只需发一条只需发一条I/O指令,通道程序的首地址指令,通道程序的首地址及要访问设备即可。及要访问设备即可。*CPU*CPU、通道和、通道和I/OI/O设备三者的并行操作,提高整系统设备三者的并行操作,提高整系统资源利用率。资源利用率。3/20/202336通道程序通道程序n通道通道 通过执行通道程序,与设备控制器通过执行通道程序,与设备控制器共同实现对共同实现对I/OI/O设备的控制。设备的控制。n通道程序由一系列通道指
29、令构成。通道指通道程序由一系列通道指令构成。通道指令一般包含下列信息:令一般包含下列信息:1.操作码。规定指令所执行的操作。操作码。规定指令所执行的操作。2.内存地址。内存地址。3.计数。表示本指令所要操作的字节数。计数。表示本指令所要操作的字节数。4.通道程序结束位。用以表示程序是否结束。通道程序结束位。用以表示程序是否结束。5.记录结束标志。表示该指令是否与下条指令有关。记录结束标志。表示该指令是否与下条指令有关。3/20/202337内存内存设备设备CPU缓冲区缓冲区数据数据控制器控制器(中断、(中断、DMA)通道通道u有有”控制器控制器”或或”通道通道”的帮助后的帮助后CPU可解放去做
30、其他事物,可解放去做其他事物,提高了利用率。提高了利用率。u但分析单个程序内的执行但分析单个程序内的执行uCPU计算工作需等待后续数据输入才可继续计算工作需等待后续数据输入才可继续uCPU计算需等待数据输入完才能计算,虽然数据输入计算需等待数据输入完才能计算,虽然数据输入不需不需CPU干预,但干预,但CPU的解放也只是能去做其他程序,的解放也只是能去做其他程序,需切换工作,还是会产生开销。需切换工作,还是会产生开销。u一进程中一进程中“CPU“CPU计算速度计算速度”和和“设备设备I/OI/O速度速度”存在不匹配的矛盾。存在不匹配的矛盾。u解决:解决:CPUCPU进行当前计算时,进行后续数据的
31、输入(先不需进行当前计算时,进行后续数据的输入(先不需CPUCPU干预的存在一个地干预的存在一个地方方缓冲区)。缓冲区)。3/20/2023383、缓冲管理、缓冲管理n利用不同的利用不同的I/O控制方式减少控制方式减少CPU对输入输对输入输出的干预,提高利用率;出的干预,提高利用率;n但速度方面还存在问题,为了缓和但速度方面还存在问题,为了缓和CPU和和I/O设备速度不匹配的矛盾,提高设备速度不匹配的矛盾,提高CPU和和I/O设备的并行性,在现代设备的并行性,在现代OS中,几乎所有的中,几乎所有的I/O设备与处理机交换数据时,都用了缓冲设备与处理机交换数据时,都用了缓冲区。区。3/20/202
32、339n引入缓冲区的主要原因:引入缓冲区的主要原因:缓和缓和CPU与与I/O设备间速度不匹配的矛盾。设备间速度不匹配的矛盾。缓冲区数据成批传入内存,减少对缓冲区数据成批传入内存,减少对CPU的中的中断频率,放宽对断频率,放宽对CPU中断响应时间的限制。中断响应时间的限制。最终,提高最终,提高CPU和和I/O设备之间的并行性。设备之间的并行性。n使用缓冲区的方式:使用缓冲区的方式:1)单缓冲、多缓冲)单缓冲、多缓冲2)循环缓冲)循环缓冲3)缓冲池()缓冲池(Buffer Pool)3/20/2023401)单缓冲与多缓冲)单缓冲与多缓冲n单缓冲(单缓冲(Single Buffer)每当用户进程发
33、出一每当用户进程发出一I/O请求时,请求时,字符设备输入时,缓冲区用于暂存用户输入字符设备输入时,缓冲区用于暂存用户输入/输出的一输出的一行数据;行数据;块设备输入类似,对成块数据处理。块设备输入类似,对成块数据处理。以输入数据为例,比较三个时间:数据输入缓冲区用时以输入数据为例,比较三个时间:数据输入缓冲区用时T、从缓冲送入到用户内存区用时、从缓冲送入到用户内存区用时M、CPU计算用时计算用时C。单缓冲下,单缓冲下,T、C可并行。所以输入用时:可并行。所以输入用时:max(T、C)+MOSOS在主存中为之分配一个缓冲区。在主存中为之分配一个缓冲区。CPUCPU和外设和外设轮流使用轮流使用,一
34、方处理完后等待对方处理。,一方处理完后等待对方处理。3/20/202341T1M1C1T2M2C2T3M3C3单缓冲单缓冲双缓冲双缓冲T1M1C1T2M2C2T3M3C3TMT1M1T2M23/20/202342n双缓冲(双缓冲(Double Buffer)进一步加快输入和输出速度,提高设备利用率进一步加快输入和输出速度,提高设备利用率双缓冲区机制,也称为缓冲对换双缓冲区机制,也称为缓冲对换(Buffer Swapping)n输入:先将数据送入第一缓冲区,装满后便转向输入:先将数据送入第一缓冲区,装满后便转向第二缓冲区。第二缓冲区。n读出:读出:OS从第一缓冲区中移出数据,并送入用户从第一缓冲
35、区中移出数据,并送入用户进程。接着由进程。接着由CPU对数据进行计算。对数据进行计算。两个缓冲区,两个缓冲区,CPUCPU和外设都可以和外设都可以连续处理连续处理无需无需等待对方。要求等待对方。要求CPUCPU和外设的速度相近。和外设的速度相近。3/20/202343双机通讯时缓冲区的设置双机通讯时缓冲区的设置缓冲区缓冲区A机机缓冲区缓冲区B机机单缓冲单缓冲发送发送 缓冲区缓冲区 接收接收 缓冲区缓冲区 A机机 接收接收 缓冲区缓冲区 发送发送 缓冲区缓冲区B机机双缓冲双缓冲u仅配置单缓冲,任意时刻都只能实现单方向的数据传输,而绝不仅配置单缓冲,任意时刻都只能实现单方向的数据传输,而绝不允许双
36、方同时向对方发送数据。允许双方同时向对方发送数据。u为实现双向数据传输,必须在两台机器中都设置两个缓冲区,一为实现双向数据传输,必须在两台机器中都设置两个缓冲区,一个用作发送缓冲区,另一个用作接受缓冲区。个用作发送缓冲区,另一个用作接受缓冲区。3/20/2023442)循环缓冲)循环缓冲(circular buffer)n输入与输出速度基本相匹配,采用双缓冲能输入与输出速度基本相匹配,采用双缓冲能获得较好的效果,基本上能并行操作。获得较好的效果,基本上能并行操作。n但若两者的速度相差甚远,双缓冲的效果仍但若两者的速度相差甚远,双缓冲的效果仍不够理想;不够理想;nSo:增加缓冲区数量,引入多缓冲
37、机制。:增加缓冲区数量,引入多缓冲机制。组织形式:循环缓冲、缓冲池。组织形式:循环缓冲、缓冲池。增加多个缓冲区,增加多个缓冲区,CPUCPU和外设的处理速度可以和外设的处理速度可以相差较大。相差较大。3/20/202345循环缓冲的组成循环缓冲的组成n n多个缓冲区。多个缓冲区。多个缓冲区。多个缓冲区。循环缓冲有多个大小相同的缓冲循环缓冲有多个大小相同的缓冲区。三种类型缓冲区:区。三种类型缓冲区:用于装输入数据的空缓冲区用于装输入数据的空缓冲区R装满数据的缓冲区装满数据的缓冲区G计算进程正在使用的现行工作缓冲区计算进程正在使用的现行工作缓冲区Cn n多个指针。多个指针。多个指针。多个指针。指示
38、指示计算进程计算进程正在使用的缓冲区正在使用的缓冲区C的指针的指针Current指示指示计算进程计算进程下一个可取的缓冲区下一个可取的缓冲区G的指针的指针Nextg指示指示输入进程输入进程下次可放的缓冲区下次可放的缓冲区R的指针的指针Nexti3/20/202346循环缓冲的组成示意图循环缓冲的组成示意图16 25 34RRGGCGNextiNextgcurrent3/20/202347循环缓冲区的使用循环缓冲区的使用n计算进程计算进程(CPU)和输入进程和输入进程(I/O操作操作)可利用两个可利用两个过程来使用循环缓冲区。过程来使用循环缓冲区。n主要就是利用指针,操作上述不同类型缓冲区主要就
39、是利用指针,操作上述不同类型缓冲区uGetbuf过程:过程:使用缓冲区时,可调用该过程(使用缓冲区时,可调用该过程(取:从取:从NextgNextg取,设置取,设置currentcurrent,nextgnextg下移一个。放:使用下移一个。放:使用nextinexti,nextinexti下移一个)下移一个)uReleasebuf过程:过程:当计算进程把当计算进程把C缓冲区中的数据提缓冲区中的数据提取完毕时,便调用该过程将缓冲区取完毕时,便调用该过程将缓冲区G释放。当输入进释放。当输入进程把缓冲区装满时,也调用该进程将缓冲区释放。程把缓冲区装满时,也调用该进程将缓冲区释放。3/20/2023
40、48进程同步进程同步n输入进程和计算进程并行执行,如何控制输入进程和计算进程并行执行,如何控制相应的两个指针不断顺时针方向移动,这相应的两个指针不断顺时针方向移动,这样就可能出现两种情况:样就可能出现两种情况:1.Nexti赶上赶上Nextg。意味着输入速度大于计。意味着输入速度大于计算速度,缓冲区满,此情况称为系统受计算速度,缓冲区满,此情况称为系统受计算限制。算限制。2.Nextg赶上赶上Nexti。意味着输入速度低于计。意味着输入速度低于计算速度,缓冲区空,此情况称为系统受算速度,缓冲区空,此情况称为系统受I/O限制。限制。3/20/2023493)缓冲池()缓冲池(Buffer Poo
41、l)n上述的缓冲区仅适用于某特定的上述的缓冲区仅适用于某特定的I/O进程和进程和计算进程,因而它们属于计算进程,因而它们属于专用缓冲专用缓冲。(每。(每个进程都要维护自己的一个循环缓冲区)个进程都要维护自己的一个循环缓冲区)n当系统较大时,许多这样的循环缓冲,不当系统较大时,许多这样的循环缓冲,不仅消耗大量内存空间,而且利用率不高。仅消耗大量内存空间,而且利用率不高。n为提高缓冲区的利用率,目前广泛流行缓为提高缓冲区的利用率,目前广泛流行缓冲池,在池中设置多个可供若干个进程共冲池,在池中设置多个可供若干个进程共享的缓冲区。享的缓冲区。3/20/202350n系统设置多个缓冲区,形成一个缓冲池。
42、系统设置多个缓冲区,形成一个缓冲池。n池中缓冲区为系统中所有的进程共享使用池中缓冲区为系统中所有的进程共享使用(如(如UNIXUNIX系统在系统在块设备管理中设置了一个块设备管理中设置了一个1515个缓冲区组成的缓冲池)个缓冲区组成的缓冲池)n组织形式:队列及队列指针组织形式:队列及队列指针也是双方向缓冲技术;缓冲区整体利用率高。也是双方向缓冲技术;缓冲区整体利用率高。3/20/202351缓冲池的组成缓冲池的组成n对于既可输入又可输出的公用缓冲池,至少应含对于既可输入又可输出的公用缓冲池,至少应含有下列三种类型的缓冲区:有下列三种类型的缓冲区:1.空缓冲区;空缓冲区;2.装满输入数据的缓冲区
43、;装满输入数据的缓冲区;3.装满输出数据的缓冲区;装满输出数据的缓冲区;为方便管理,将上述类型相同的缓冲区连成队列为方便管理,将上述类型相同的缓冲区连成队列空缓冲区队列空缓冲区队列输入队列输入队列输出队列输出队列3/20/202352使用两个过程使用两个过程注意,是有同步控制的队列操作过程每队设置一个互斥信号量MS;判断每个队列是否有可用的缓冲区,需一个资源信号量RS。获取缓冲区时P(RS),释放时V(RS)。nGetbuf:nPutbuf:3/20/202353缓冲区的工作方式缓冲区的工作方式n四种工作方式:四种工作方式:1.收容输入:收容输入:Getbuf(emq),hin;输入数据填入一
44、空;输入数据填入一空缓冲区;缓冲区;Putbuf(inq,hin)2.提取输入:提取输入:Getbuf(inq),sin;从输入缓冲队列中取;从输入缓冲队列中取出一数据区的内容;出一数据区的内容;Putbuf(emq,sin)3.收容输出:收容输出:Getbuf(emq),hout;输出数据填入一;输出数据填入一空缓冲区;空缓冲区;Putbuf(outq,hout)4.提取输出:提取输出:Getbuf(outq),sout;从输出缓冲队列;从输出缓冲队列中取一数据区的内容;中取一数据区的内容;Putbuf(emq,sout)工作缓冲区有四种:工作缓冲区有四种:收容输入数据的工作缓冲区;收容输入
45、数据的工作缓冲区;收容输出数据的工作缓冲区;收容输出数据的工作缓冲区;提取输入数据的工作缓冲区;提取输入数据的工作缓冲区;提取输出数据的工作缓冲区;提取输出数据的工作缓冲区;缓冲池缓冲池hinsout磁盘磁盘打印机打印机sinhout内存内存用户用户程序程序emqinqoutq3/20/202354n多道环境下,系统中设备是所有进程多道环境下,系统中设备是所有进程共享的。要共享的。要防止无序竞争防止无序竞争,提高外设,提高外设资源的利用率。资源的利用率。n所以,除解决基本设备处理问题,还所以,除解决基本设备处理问题,还需由需由OS进行统一、合理的设备分配。进行统一、合理的设备分配。4、设备分配
46、设备分配3/20/2023551)设备分配中的数据结构)设备分配中的数据结构n记录相应设备或控制器的记录相应设备或控制器的状态,状态,及对设备及对设备或控制器进行或控制器进行控制控制所需的所需的信息信息。所需数据。所需数据结构:结构:设备控制表设备控制表控制器控制表控制器控制表通道控制表通道控制表系统设备表系统设备表3/20/202356设备控制表(设备控制表(DCT)n系统为每一设备都配置一张系统为每一设备都配置一张n记录本设备的情况。记录本设备的情况。设备类型设备类型 type设备标识符设备标识符deviceid设备状态:等待设备状态:等待/不等待不等待 忙忙/闲闲指向控制器表的指针指向控
47、制器表的指针重复执行次数或时间重复执行次数或时间设备队列的队首指针设备队列的队首指针DCT 1DCT 2DCT n设设备备控控制制表表集集合合指向因请求该设备而阻塞的进程的PCB组成的队列。3/20/202357控制器控制表(控制器控制表(COCT)控制器标识符:控制器标识符:controllerid控制器状态:忙控制器状态:忙/闲闲与控制器连接的通道表指针与控制器连接的通道表指针控制器队列的队首指针控制器队列的队首指针控制器队列的队尾指针控制器队列的队尾指针n系统为每一控制器都配置一张系统为每一控制器都配置一张n记录本控制器的情况。记录本控制器的情况。通道控制表通道控制表CHCT通道标识符:
48、通道标识符:channelid通道状态:忙通道状态:忙/闲闲与通道连接的控制器表首址与通道连接的控制器表首址通道队列的队首指针通道队列的队首指针通道队列的队尾指针通道队列的队尾指针3/20/202358系统设备表(系统设备表(SDT)表目表目 1表目表目 i设备类型设备类型 设备标识符设备标识符DCT驱动程序入口驱动程序入口n系统根据进程对设备的请求进行设备分配的过程:SDT DCT COCT CHCT 细节考虑细节考虑3/20/202359n设备固有属性:独占、共享、独占但可虚拟。设备固有属性:独占、共享、独占但可虚拟。根据属性采取不同分配策略。根据属性采取不同分配策略。n设备分配算法,常采
49、用两种:设备分配算法,常采用两种:FCFS优先级高者优先优先级高者优先n设备分配的安全性:进程开始设备分配的安全性:进程开始I/O后就阻塞直后就阻塞直到到I/O完成。不完成。不“请求和保持请求和保持”(安全的);允(安全的);允许连续许连续I/O请求,是不安全的,此类分配方式请求,是不安全的,此类分配方式需进行安全性检查。需进行安全性检查。n设备独立性设备独立性2)设备分配需考虑的因素)设备分配需考虑的因素3/20/202360设备独立性(无关性)设备独立性(无关性)nDevice Independencen指用户编程序时所用设备(逻辑上的)与实际设指用户编程序时所用设备(逻辑上的)与实际设备
50、无关;备无关;好处:好处:n设备分配时的灵活性设备分配时的灵活性3 3个物理设备(如打印机),程序中申请一台打印个物理设备(如打印机),程序中申请一台打印机,执行时不拘泥必须是某台(如第机,执行时不拘泥必须是某台(如第2 2个)打印机个)打印机n易于实现易于实现I/OI/O重定向重定向指用于指用于I/OI/O操作的设备可以更换(重定向),而不操作的设备可以更换(重定向),而不必改变应用程序。必改变应用程序。程序调试、运行中的程序调试、运行中的“打印打印”,可通过修改逻辑设备表的显示终端,实现不同,可通过修改逻辑设备表的显示终端,实现不同时候的不同的设备使用。时候的不同的设备使用。3/20/20