1、本章内容本章内容7.1 I/O设备管理概述设备管理概述7.2 I/O系统系统7.3 I/O软件软件7.4 设备分配与回收设备分配与回收7.5 缓冲管理缓冲管理7.6 磁盘存储管理磁盘存储管理7.1 I/O设备管理概述设备管理概述7.1.1 I/O设备的分类设备的分类vI/O设备的类型繁多,从设备的类型繁多,从OS观点看,其重要观点看,其重要的性能指标有的性能指标有:设备使用特性、数据传输速设备使用特性、数据传输速率、数据的传输单位、设备共享属性等。率、数据的传输单位、设备共享属性等。因而可从不同角度对它们进行分类。因而可从不同角度对它们进行分类。1)按设备的使用特性分类按设备的使用特性分类v按
2、设备的使用特性,可将设备分为两类。按设备的使用特性,可将设备分为两类。存储设备,也称外存或后备存储器、辅助存储存储设备,也称外存或后备存储器、辅助存储器器 输入输入/输出设备输出设备7.1.1 I/O设备的分类设备的分类2)按传输速率分类按传输速率分类v按传输速度的高低,可将按传输速度的高低,可将I/O设备分为三类。设备分为三类。第一类是低速设备,这是指其传输速率仅为每秒钟第一类是低速设备,这是指其传输速率仅为每秒钟几个字节至数百个字节的一类设备。属于低速设备几个字节至数百个字节的一类设备。属于低速设备的典型设备有键盘、鼠标器、语音的输入和输出等的典型设备有键盘、鼠标器、语音的输入和输出等设备
3、。设备。第二类是中速设备,这是指其传输速率在每秒钟数第二类是中速设备,这是指其传输速率在每秒钟数千个字节至数十万个字节的一类设备。典型的中速千个字节至数十万个字节的一类设备。典型的中速设备有行式打印机、设备有行式打印机、激光打印机等。激光打印机等。第三类是高速设备,这是指其传输速率在数百个千第三类是高速设备,这是指其传输速率在数百个千字节至千兆字节的一类设备。典型的高速设备有磁字节至千兆字节的一类设备。典型的高速设备有磁带机、磁盘机、光盘机等。带机、磁盘机、光盘机等。7.1.1 I/O设备的分类设备的分类3)按信息交换的单位分类按信息交换的单位分类v按信息交换的单位,可将按信息交换的单位,可将
4、I/O设备分成两类。设备分成两类。块设备块设备(Block Device),这类设备用于存储信息。,这类设备用于存储信息。由于信息的存取总是以数据块为单位,故而得名由于信息的存取总是以数据块为单位,故而得名。它属于。它属于有结构有结构设备。典型的块设备是磁盘,设备。典型的块设备是磁盘,字符设备字符设备(Character Device),用于数据的输入和,用于数据的输入和输出。其基本单位是字符,故称为字符设备。它输出。其基本单位是字符,故称为字符设备。它属于属于无结构无结构类型。字符设备的种类繁多,如交互类型。字符设备的种类繁多,如交互式终端、打印机等。式终端、打印机等。7.1.1 I/O设备
5、的分类设备的分类4)按设备的共享属性分类按设备的共享属性分类(1)独占设备。这是指独占设备。这是指在一段时间内只允许一个用在一段时间内只允许一个用户户(进程进程)访问的设备,即临界资源。独占设备的访问的设备,即临界资源。独占设备的分配有可能引起进程死锁。分配有可能引起进程死锁。(2)共享设备。这是指在一段时间内共享设备。这是指在一段时间内允许多个进程允许多个进程同时同时访问的设备。当然,对于每一时刻而言,该访问的设备。当然,对于每一时刻而言,该类设备仍然只允许一个进程访问。典型的共享设类设备仍然只允许一个进程访问。典型的共享设备是磁盘。备是磁盘。(3)虚拟设备。这是指通过虚拟技术将虚拟设备。这
6、是指通过虚拟技术将一台一台独占设独占设备变换为备变换为若干台若干台逻辑设备,供若干个用户逻辑设备,供若干个用户(进程进程)同时使用。同时使用。7.1 I/O设备管理概述设备管理概述7.1.2 I/O设备的差异性设备的差异性7.1 I/O设备管理概述设备管理概述7.1.3 I/O设备管理的任务和功能设备管理的任务和功能I/O设备管理是操作系统中最具多样性和复杂性的部设备管理是操作系统中最具多样性和复杂性的部分,其主要任务如下:分,其主要任务如下:为并发执行的多个进程分配为并发执行的多个进程分配I/O设备,完成数据传输设备,完成数据传输任务。任务。控制控制I/O设备的数据传输。设备的数据传输。为用
7、户提供一个友好的透明接口,把用户和设备硬件为用户提供一个友好的透明接口,把用户和设备硬件特性分开。特性分开。提高设备和设备之间、提高设备和设备之间、CPU和设备之间的并行执行和设备之间的并行执行程度,以期使系统资源获得最佳使用效率。程度,以期使系统资源获得最佳使用效率。7.1 I/O设备管理概述设备管理概述7.1.3 I/O设备管理的任务和功能设备管理的任务和功能v为了完成上述主要任务,为了完成上述主要任务,I/O设备管理程序一般要提设备管理程序一般要提供下述功能。供下述功能。设备分配功能。设备分配功能。设备映射功能。设备映射功能。提供与进程管理系统的接口,实现设备驱动。提供与进程管理系统的接
8、口,实现设备驱动。实现设备和设备、设备和实现设备和设备、设备和CPU等之间的并行操作。等之间的并行操作。进行进行I/O缓冲区管理缓冲区管理。7.2 I/O系统系统7.2.1 I/O系统结构系统结构1.大型机大型机I/O系统结构系统结构“瓶颈瓶颈”问题问题v由于由于通道价格昂贵通道价格昂贵,致使机器中所设置的,致使机器中所设置的通道数量势必较少,这往往又使它成了通道数量势必较少,这往往又使它成了I/O的瓶颈,进而造成整个系统吞吐量的下降的瓶颈,进而造成整个系统吞吐量的下降。v解决解决“瓶颈瓶颈”问题的最有效的方法,便是问题的最有效的方法,便是增加设备到主机间的增加设备到主机间的通路通路而不增加通
9、道。而不增加通道。7.2.1 I/O系统结构系统结构1.大型机大型机I/O系统结构系统结构7.2.1 I/O系统结构系统结构2.微型机微型机I/O系统结构系统结构7.2.2 设备设备控制器控制器设备控制器的基本结构设备控制器的基本结构7.2.3 I/O控制方式控制方式1.查询等待控制方式查询等待控制方式v早期的计算机系统中,由于无中断机构,处理机对早期的计算机系统中,由于无中断机构,处理机对I/O设备的控制采取程序设备的控制采取程序I/O(Programmed I/O)方式,或称方式,或称为为忙忙等待等待方式,即在处理机向控制器发出一条方式,即在处理机向控制器发出一条I/O指指令启动输入设备输
10、入数据时,要同时把状态寄存器中令启动输入设备输入数据时,要同时把状态寄存器中的忙的忙/闲标志闲标志busy置为置为1,然后便不断地循环测试,然后便不断地循环测试busy。v当当busy=1时,表示输入机尚未输完一个字时,表示输入机尚未输完一个字(符符),处理,处理机应继续对该标志进行测试,直至机应继续对该标志进行测试,直至busy=0,表明输入,表明输入机已将输入数据送入控制器的数据寄存器中。机已将输入数据送入控制器的数据寄存器中。v于是处理机将数据寄存器中的数据取出,送入内存指于是处理机将数据寄存器中的数据取出,送入内存指定单元中,这样便完成了一个字定单元中,这样便完成了一个字(符符)的的I
11、/O。接着再去。接着再去启动读下一个数据,并置启动读下一个数据,并置busy=1。1.查询等待控制方式查询等待控制方式2.中断控制方式中断控制方式v现代计算机系统中,都毫无例外地引入了现代计算机系统中,都毫无例外地引入了中断机构中断机构,致,致使对使对I/O设备的控制,广泛采用中断驱动设备的控制,广泛采用中断驱动(Interrupt Driven)方式,即当某进程要启动某个方式,即当某进程要启动某个I/O设备工作时,设备工作时,便由便由CPU向相应的设备控制器发出一条向相应的设备控制器发出一条I/O命令,然后命令,然后立即返回继续执行原来的任务。立即返回继续执行原来的任务。v设备控制器于是按照
12、该命令的要求去控制指定设备控制器于是按照该命令的要求去控制指定I/O设备设备。此时,。此时,CPU与与I/O设备并行操作。下图设备并行操作。下图(b)示出了中断示出了中断驱动方式的流程。驱动方式的流程。v在在I/O设备输入每个数据的过程中,由于无需设备输入每个数据的过程中,由于无需CPU干预干预,因而可使,因而可使CPU与与I/O设备并行工作。仅当输完一个数设备并行工作。仅当输完一个数据时,才需据时,才需CPU花费极短的时间去做些中断处理。提高花费极短的时间去做些中断处理。提高了整个系统的资源利用率及吞吐量。了整个系统的资源利用率及吞吐量。2.中断控制方式中断控制方式3.DMA控制方式控制方式
13、(1)DMA(Direct Memory Access)控制方式的控制方式的引入引入v虽然中断驱动虽然中断驱动I/O比程序比程序I/O方式更有效,但须注方式更有效,但须注意,它仍是以意,它仍是以字字(节节)为单位进行为单位进行I/O的的,每当完成,每当完成一个字一个字(节节)的的I/O时,控制器便要向时,控制器便要向CPU请求一次请求一次中断。如果将这种方式用于块设备的中断。如果将这种方式用于块设备的I/O,显然是,显然是极其低效的。极其低效的。v为了进一步减少为了进一步减少CPU对对I/O的干预而引入了直接存的干预而引入了直接存储器访问方式。该方式的特点是:储器访问方式。该方式的特点是:数据
14、传输的基本单位是数据块,即在数据传输的基本单位是数据块,即在CPU与与I/O设备之设备之间,每次传送至少一个数据块;间,每次传送至少一个数据块;3.DMA控制方式控制方式 所传送的数据是从设备直接所传送的数据是从设备直接送入内存的,或者相反;送入内存的,或者相反;仅在传送一个数据块的开始仅在传送一个数据块的开始和结束时,才需和结束时,才需CPU干预,干预,整块数据的传送是在控制器整块数据的传送是在控制器的控制下完成的。的控制下完成的。v可见,可见,DMA方式较之中断方式较之中断驱动方式,又是成百倍地驱动方式,又是成百倍地减少了减少了CPU对对I/O的干预,的干预,进一步提高了进一步提高了CPU
15、与与I/O设设备的并行操作程度。备的并行操作程度。3.DMA控制方式控制方式(2)DMA控制器的组成控制器的组成(2)DMA控制器的组成控制器的组成v为了实现在主机与控制器之间成块数据的直接交换为了实现在主机与控制器之间成块数据的直接交换,必须在,必须在DMA控制器中设置如下四类寄存器:控制器中设置如下四类寄存器:(1)命令命令/状态寄存器状态寄存器(CR)。用于接收从。用于接收从CPU发来的发来的I/O命令,或有关控制信息,或设备的状态。命令,或有关控制信息,或设备的状态。(2)内存地址寄存器内存地址寄存器(MAR)。在输入时,它存放把数据。在输入时,它存放把数据从设备传送到内存的起始目标地
16、址;在输出时,它存从设备传送到内存的起始目标地址;在输出时,它存放由内存到设备的内存源地址。放由内存到设备的内存源地址。(3)数据寄存器数据寄存器(DR)。用于暂存从设备到内存,或从内。用于暂存从设备到内存,或从内存到设备的数据。存到设备的数据。(4)数据计数器数据计数器(DC)。存放本次。存放本次CPU要读或写的字要读或写的字(节节)数。数。(3)DMA工作过程工作过程v我们以从磁盘读入数据为例,来说明我们以从磁盘读入数据为例,来说明DMA方式的工作方式的工作流程。流程。v当当CPU要从磁盘读入一数据块时,便向磁盘控制器发送要从磁盘读入一数据块时,便向磁盘控制器发送一条读命令。一条读命令。v
17、该命令被送到其中的命令寄存器该命令被送到其中的命令寄存器(CR)中。中。v同时,还须发送本次要将数据读入的内存起始目标地址同时,还须发送本次要将数据读入的内存起始目标地址,该地址被送入内存地址寄存器(,该地址被送入内存地址寄存器(MAR)中;本次要)中;本次要读数据的字读数据的字(节节)数则送入数据计数器数则送入数据计数器(DC)中,还须将磁中,还须将磁盘中的源地址直接送至盘中的源地址直接送至DMA控制器的控制器的I/O控制逻辑上。控制逻辑上。v然后,启动然后,启动DMA控制器进行数据传送,以后,控制器进行数据传送,以后,CPU便便可去处理其它任务。可去处理其它任务。v此后,整个数据传送过程便
18、由此后,整个数据传送过程便由DMA控制器进行控制。控制器进行控制。4.通道方式通道方式(1)I/O通道控制方式的引入通道控制方式的引入v虽然虽然DMA方式比起中断方式来已经显著地减少了方式比起中断方式来已经显著地减少了CPU的干预,但的干预,但CPU每发出一条每发出一条I/O指令,也只能指令,也只能去读去读(或写或写)一个一个连续的数据块连续的数据块。v当一次去读当一次去读多个数据块多个数据块且将它们分别送到且将它们分别送到不同的不同的内存内存区域,或者相反时,则须由区域,或者相反时,则须由CPU发出多条发出多条I/O指令才能完成。指令才能完成。vI/O通道方式是通道方式是DMA方式的发展,它
19、可进一步减方式的发展,它可进一步减少少CPU的干预。同时,又可实现的干预。同时,又可实现CPU、通道和、通道和I/O设备三者的并行操作,从而更有效地提高整个系设备三者的并行操作,从而更有效地提高整个系统的资源利用率。统的资源利用率。4.通道方式通道方式vI/O通道是一种通道是一种特殊的处理机特殊的处理机,它具有,它具有执行执行I/O指令指令的能力,并通过执行通道的能力,并通过执行通道(I/O)程序程序来控制来控制I/O操作。但操作。但I/O通道又与一般的处理通道又与一般的处理机不同,主要表现在以下两个方面机不同,主要表现在以下两个方面:一是其一是其指令类型单一;二是通道没有自己的内存,指令类型
20、单一;二是通道没有自己的内存,与与CPU共享内存。共享内存。4.通道方式通道方式(1)通道类型通道类型 字节多路通道字节多路通道(Byte Multiplexor Channel)v 这是一种按这是一种按字节交叉方式工作字节交叉方式工作的通道。它通常都含有的通道。它通常都含有许多许多非分配型子非分配型子通道,每一个子通道连接一台通道,每一个子通道连接一台I/O设备设备,并控制该设备的,并控制该设备的I/O操作。操作。v 这些子通道这些子通道按时间片轮转按时间片轮转方式方式共享主通道共享主通道。只要字节。只要字节多路通道扫描每个子通道的速率足够快,而连接到子多路通道扫描每个子通道的速率足够快,而
21、连接到子通道上的设备的速率不是太高时,便不致丢失信息。通道上的设备的速率不是太高时,便不致丢失信息。v 下图示出了字节多路通道的工作原理。它所含有的多下图示出了字节多路通道的工作原理。它所含有的多个子通道个子通道A,B,C,D,E,N,分别通过控制分别通过控制器各与一台设备相连。假定这些设备的速率相近,且器各与一台设备相连。假定这些设备的速率相近,且都同时向主机传送数据。设备都同时向主机传送数据。设备A所传送的数据流为所传送的数据流为A1A2A3;设备;设备B所传送的数据流为所传送的数据流为B1B2B3图字节多路通道的工作原理 控制器A控制器B控制器C控制器D控制器NA1A2A3子通道AB1B
22、2B3子通道BC1C2C3子通道CN1N2N3子通道NA1B1C1A2B2C2设备n把这些数据流合成后把这些数据流合成后(通过主通道通过主通道)送往主机的数送往主机的数据流为据流为A1B1C1D1 A2B2C2D2 A3B3C3D3。4.通道方式通道方式 数组选择通道数组选择通道(Block Selector Channel)v字节多路通道不适于连接高速设备,这推动了按字节多路通道不适于连接高速设备,这推动了按数组方式进行数据传送的数组选择通道的形成。数组方式进行数据传送的数组选择通道的形成。v这种通道虽然可以连接这种通道虽然可以连接多台高速设备多台高速设备,但由于它,但由于它只含有只含有一个
23、分配型子通道一个分配型子通道,在一段时间内只能执,在一段时间内只能执行一道通道程序,控制一台设备进行数据传送,行一道通道程序,控制一台设备进行数据传送,致使当某台设备占用了该通道后,便一直由它独致使当某台设备占用了该通道后,便一直由它独占,即使是它无数据传送,通道被闲置,也不允占,即使是它无数据传送,通道被闲置,也不允许其它设备使用该通道,直至该设备传送完毕释许其它设备使用该通道,直至该设备传送完毕释放该通道。放该通道。v可见,这种通道的利用率很低。可见,这种通道的利用率很低。4.通道方式通道方式 数组多路通道数组多路通道(Block Multiplexor Channel)v数组选择通道虽有
24、很高的传输速率,但它却每次只数组选择通道虽有很高的传输速率,但它却每次只允许一个设备传输数据。允许一个设备传输数据。v数组多路通道是将数组选择通道传输速率高和字节数组多路通道是将数组选择通道传输速率高和字节多路通道能使各子通道多路通道能使各子通道(设备设备)分时并行操作的优点分时并行操作的优点相结合而形成的一种新通道。相结合而形成的一种新通道。v它含有多个非分配型子通道,因而这种通道既具有它含有多个非分配型子通道,因而这种通道既具有很高的数据传输速率,又能获得令人满意的通道利很高的数据传输速率,又能获得令人满意的通道利用率。用率。v也正因此,才使该通道能被广泛地用于连接多台高也正因此,才使该通
25、道能被广泛地用于连接多台高、中速的外围设备,其数据传送是按数组方式进行、中速的外围设备,其数据传送是按数组方式进行的。的。4.通道方式通道方式数组多路通道数组多路通道7.3 I/O软件软件7.3.1 I/O软件的设计目标软件的设计目标vI/O软件设计时主要考虑以下几个问题:软件设计时主要考虑以下几个问题:(1)独立性独立性 I/O软件一般分为软件一般分为4层,它们分别是中断处理程序、设备层,它们分别是中断处理程序、设备驱动程序、与设备无关的系统软件和用户级软件。分层驱动程序、与设备无关的系统软件和用户级软件。分层时的细节处理依赖于系统目标,并没有严格的划分。只时的细节处理依赖于系统目标,并没有
26、严格的划分。只要有利于独立性这一目标,操作系统设计者可在结构上要有利于独立性这一目标,操作系统设计者可在结构上作出不同的安排。作出不同的安排。(2)统一命名)统一命名(3)出错处理)出错处理(4)同步(阻塞)同步(阻塞)异步(中断驱动)传输异步(中断驱动)传输 7.3 I/O软件软件7.3.2 I/O软件层次软件层次1.中断处理程序中断处理程序v中断是指计算机在执行期间,系统内发生非正常中断是指计算机在执行期间,系统内发生非正常或非预期的急需处理事件,使得或非预期的急需处理事件,使得CPU暂时中断正暂时中断正在执行的进程,而转去执行相应的事件处理程序,在执行的进程,而转去执行相应的事件处理程序
27、,处理完毕后返回中断处继续执行原进程或者调度处理完毕后返回中断处继续执行原进程或者调度新进程执行。新进程执行。v狭义上讲,中断指外部中断。外部中断包括狭义上讲,中断指外部中断。外部中断包括I/O设设备发出的备发出的I/O中断、其他外部信号中断(例如用户中断、其他外部信号中断(例如用户按下按下ESC键)、各种定时器引起的时钟中断、调键)、各种定时器引起的时钟中断、调试程序中设置断点引起的调试中断等试程序中设置断点引起的调试中断等2.设备驱动程序设备驱动程序v设备驱动程序又称设备处理程序,其主要任务是设备驱动程序又称设备处理程序,其主要任务是把用户提交的逻辑把用户提交的逻辑I/O请求转化为物理请求
28、转化为物理I/O操作的操作的启动和执行,如将设备名转化为端口地址、逻辑启动和执行,如将设备名转化为端口地址、逻辑记录转化为物理记录、逻辑操作转化为物理操作记录转化为物理记录、逻辑操作转化为物理操作等,并将由设备控制器发送来的信号传递给上层等,并将由设备控制器发送来的信号传递给上层软件。软件。v设备驱动程序是设备驱动程序是I/O进程与设备控制器之间的通信进程与设备控制器之间的通信程序,它包括了所有与设备相关的代码,由于它程序,它包括了所有与设备相关的代码,由于它常以进程形式存在,所以也简称为设备驱动进程常以进程形式存在,所以也简称为设备驱动进程2.设备驱动程序设备驱动程序v设备驱动程序主要具有以
29、下几个功能:设备驱动程序主要具有以下几个功能:将接收到的抽象要求转换为具体要求。将接收到的抽象要求转换为具体要求。检查用户检查用户I/O请求的合法性,了解请求的合法性,了解I/O设备的状态,传递设备的状态,传递I/O操作的有关参数。操作的有关参数。发出发出I/O命令,启动分配到的命令,启动分配到的I/O设备,完成指定的设备,完成指定的I/O操操作。作。及时响应由控制器或通道发来的中断请求,并根据中断及时响应由控制器或通道发来的中断请求,并根据中断请求的类型(正常、异常结束的中断或其他类型中断)请求的类型(正常、异常结束的中断或其他类型中断)调用相应的中断处理程序进行处理。调用相应的中断处理程序
30、进行处理。对于设置通道的计算机系统,设备驱动程序还应能根据对于设置通道的计算机系统,设备驱动程序还应能根据用户的用户的I/O请求,自动构造通道程序,通道通过执行通请求,自动构造通道程序,通道通过执行通道程序来完成相关的道程序来完成相关的I/O操作。操作。I/O操作的出错处理一般也由设备驱动程序来实现。操作的出错处理一般也由设备驱动程序来实现。设备驱动程序主要特点设备驱动程序主要特点v 设备驱动程序与一般应用程序和系统程序设备驱动程序与一般应用程序和系统程序相比,存在着明显差异。相比,存在着明显差异。驱动程序的主要职责是完成请求驱动程序的主要职责是完成请求I/O操作进程与操作进程与设备控制器之间
31、的通信。设备控制器之间的通信。驱动程序与驱动程序与I/O设备特性联系密切。设备特性联系密切。驱动程序与系统采用的驱动程序与系统采用的I/O控制方式紧密相关。控制方式紧密相关。常用的常用的I/O控制方式是中断驱动和控制方式是中断驱动和DMA方式。方式。驱动程序与硬件特性紧密相关,其中一部分程驱动程序与硬件特性紧密相关,其中一部分程序须用汇编语言书写。序须用汇编语言书写。3.设备无关软件设备无关软件v为了提高为了提高OS的可适应性和可扩展性,在现代的可适应性和可扩展性,在现代OS中都中都毫无例外地实现了设备独立性毫无例外地实现了设备独立性(Device Independence),也称为,也称为设
32、备无关性设备无关性。v其含义是其含义是:应用程序独立于具体使用的物理设备。为应用程序独立于具体使用的物理设备。为了实现设备独立性而引入了逻辑设备和物理设备这了实现设备独立性而引入了逻辑设备和物理设备这两个概念。两个概念。v在应用程序中,使用逻辑设备名称来请求使用某类在应用程序中,使用逻辑设备名称来请求使用某类设备;而系统在实际执行时,还必须使用物理设备设备;而系统在实际执行时,还必须使用物理设备名称。因此,系统须具有将逻辑设备名称转换为某名称。因此,系统须具有将逻辑设备名称转换为某物理设备名称的功能,这非常类似于存储器管理中物理设备名称的功能,这非常类似于存储器管理中所介绍的逻辑地址和物理地址
33、的概念。所介绍的逻辑地址和物理地址的概念。3.设备无关软件设备无关软件3.设备无关软件设备无关软件v为了实现设备的独立性,系统必须设置一张逻辑设备为了实现设备的独立性,系统必须设置一张逻辑设备表表(LUT,Logical Unit Table),用于将应用程序中所,用于将应用程序中所使用的逻辑设备名映射为物理设备名。使用的逻辑设备名映射为物理设备名。v在该表的每个表目中包含了三项:逻辑设备名、物理在该表的每个表目中包含了三项:逻辑设备名、物理设备名和设备驱动程序的入口地址。设备名和设备驱动程序的入口地址。v当进程用逻辑设备名请求分配当进程用逻辑设备名请求分配I/O设备时,系统为它设备时,系统为
34、它分配相应的物理设备,并在分配相应的物理设备,并在LUT上建立一个表目,上建立一个表目,填上应用程序中使用的逻辑设备名和系统分配的物理填上应用程序中使用的逻辑设备名和系统分配的物理设备名,以及该设备驱动程序的入口地址。设备名,以及该设备驱动程序的入口地址。v当以后进程再利用该逻辑设备名请求当以后进程再利用该逻辑设备名请求I/O操作时,系操作时,系统通过查找统通过查找LUT,便可找到物理设备和驱动程序。,便可找到物理设备和驱动程序。4.用户级用户级I/O软件软件v大部分大部分I/O软件存在于操作系统中,但用户程序中软件存在于操作系统中,但用户程序中仍有部分与仍有部分与I/O操作有关的操作有关的I
35、/O系统调用。这些系统调用。这些I/O系统调用由库过程实现,它们是设备管理系统调用由库过程实现,它们是设备管理I/O系统系统的组成部分。的组成部分。v并非所有的用户层并非所有的用户层I/O软件都由库过程组成,软件都由库过程组成,SPOOLing系统则是另一种重要的处理方法。系统则是另一种重要的处理方法。7.4 设备设备分配与回收分配与回收7.4.1 设备管理中的数据结构设备管理中的数据结构1设备控制表设备控制表(DCT)v 系统为每一个设备都配置了一张设备控制表,用于记录本系统为每一个设备都配置了一张设备控制表,用于记录本设备的情况,如下图所示。设备的情况,如下图所示。图设备控制表图设备控制表
36、 设备类型:type设备标识符:deviceid设备状态:等待/不等待 忙/闲指向控制器表的指针重复执行次数或时间设备队列的队首指针DCT 1DCT 2DCT n设备控制表集合1设备控制表设备控制表(DCT)v设备控制表中,除了有用于指示设备类型的字段设备控制表中,除了有用于指示设备类型的字段type和设备标识字段和设备标识字段deviceid外,还应含有下列字外,还应含有下列字段:段:(1)设备队列队首指针。凡因请求本设备而未得到设备队列队首指针。凡因请求本设备而未得到满足的进程,其满足的进程,其PCB都应按照一定的策略排成一个都应按照一定的策略排成一个队列,称该队列为设备请求队列或简称设备
37、队列。队列,称该队列为设备请求队列或简称设备队列。其队首指针指向队首其队首指针指向队首PCB。在有的系统中还设置了。在有的系统中还设置了队尾指针。队尾指针。(2)设备状态。当设备自身正处于使用状态时,应设备状态。当设备自身正处于使用状态时,应将设备的忙将设备的忙/闲标志置闲标志置“1”。若与该设备相连接的。若与该设备相连接的控制器或通道正忙,也不能启动该设备,此时则应控制器或通道正忙,也不能启动该设备,此时则应将设备的等待标志置将设备的等待标志置“1”。1设备控制表设备控制表(DCT)(3)与设备连接的控制器表指针。该指针指向该设备所与设备连接的控制器表指针。该指针指向该设备所连接的控制器的控
38、制表。在设备到主机之间具有多条连接的控制器的控制表。在设备到主机之间具有多条通路的情况下,一个设备将与多个控制器相连接。此通路的情况下,一个设备将与多个控制器相连接。此时,在时,在DCT中还应设置多个控制器表指针。中还应设置多个控制器表指针。(4)重复执行次数。由于外部设备在传送数据时,较易重复执行次数。由于外部设备在传送数据时,较易发生数据传送错误,因而在许多系统中,如果发生传发生数据传送错误,因而在许多系统中,如果发生传送错误,并不立即认为传送失败,而是令它重新传送送错误,并不立即认为传送失败,而是令它重新传送,并由系统规定设备在工作中发生错误时应重复执行,并由系统规定设备在工作中发生错误
39、时应重复执行的次数。的次数。在重复执行时,若能恢复正常传送,则仍认为传送成在重复执行时,若能恢复正常传送,则仍认为传送成功。仅当屡次失败,致使重复执行次数达到规定值而功。仅当屡次失败,致使重复执行次数达到规定值而传送仍不成功时,才认为传送失败。传送仍不成功时,才认为传送失败。2控制器控制表、通道控制表和系统设备表控制器控制表、通道控制表和系统设备表(1)控制器控制表控制器控制表(COCT)。系统为每一个控制器都。系统为每一个控制器都设置了一张用于记录本控制器情况的控制器控制设置了一张用于记录本控制器情况的控制器控制表,如下图所示。表,如下图所示。2控制器控制表、通道控制表和系统设备表控制器控制
40、表、通道控制表和系统设备表(2)通道控制表通道控制表(CHCT)。每个通道都配有一张通道。每个通道都配有一张通道控制表,如下图控制表,如下图(b)所示。所示。2控制器控制表、通道控制表和系统设备表控制器控制表、通道控制表和系统设备表(3)系统设备表系统设备表(SDT)。这是系统范围的数据结构,。这是系统范围的数据结构,其中记录了系统中全部设备的情况。每个设备占其中记录了系统中全部设备的情况。每个设备占一个表目,其中包括有设备类型、设备标识符、一个表目,其中包括有设备类型、设备标识符、设备控制表及设备驱动程序的入口等项,如下图设备控制表及设备驱动程序的入口等项,如下图(c)所示。所示。7.4.1
41、 设备管理中的数据结构设备管理中的数据结构重点回顾重点回顾v请求分段存储管理方式请求分段存储管理方式 段表机制段表机制 地址变换机构地址变换机构 缺段中断机构缺段中断机构v请求请求段页存储管理方式段页存储管理方式重点回顾重点回顾v设备的分类设备的分类 按传输速率分类按传输速率分类 按信息交换的单位分类按信息交换的单位分类 按设备的共享属性分类按设备的共享属性分类重点回顾重点回顾vI/O控制方式控制方式 查询等待控制方式查询等待控制方式 中断控制方式中断控制方式 DMA控制方式控制方式 通道方式通道方式v设备无关软件设备无关软件7.4.2 设备设备分配与回收分配与回收1、设备分配原则、设备分配原
42、则v 设备分配方式分为静态分配和动态分配两设备分配方式分为静态分配和动态分配两种。种。静态分配是指系统在用户进程执行之前一次性静态分配是指系统在用户进程执行之前一次性将其所需的全部设备分配给它,直到该进程被将其所需的全部设备分配给它,直到该进程被撤销时,才一起收回设备。该方式破坏了死锁撤销时,才一起收回设备。该方式破坏了死锁产生的必要条件,不会出现死锁,但设备利用产生的必要条件,不会出现死锁,但设备利用率较低。对独占设备,操作系统一般采用静态率较低。对独占设备,操作系统一般采用静态分配方式。分配方式。7.4.2 设备设备分配与回收分配与回收1、设备分配原则、设备分配原则动态分配是在进程执行过程
43、中根据执行需要进动态分配是在进程执行过程中根据执行需要进行分配。当进程需要设备时,通过调用命令向行分配。当进程需要设备时,通过调用命令向系统提出设备请求,由系统按照事先规定的策系统提出设备请求,由系统按照事先规定的策略给进程分配所需要的设备、控制器和通道。略给进程分配所需要的设备、控制器和通道。一旦使用完成,立即释放。动态分配有利于设一旦使用完成,立即释放。动态分配有利于设备利用率的提高,但如果分配算法使用不当,备利用率的提高,但如果分配算法使用不当,则有可能造成进程死锁。系统对共享设备一般则有可能造成进程死锁。系统对共享设备一般采用动态分配方式采用动态分配方式 7.4.2 设备设备分配与回收
44、分配与回收2、设备分配算法、设备分配算法v设备分配一般多采用以下两种算法:设备分配一般多采用以下两种算法:(1)先来先服务分配算法)先来先服务分配算法(2)优先级算法)优先级算法7.4.3 SPOOLing系统系统v虚拟性是操作系统重要特征之一。虚拟性是操作系统重要特征之一。v如果说可以通过多道程序设计技术将一台物理如果说可以通过多道程序设计技术将一台物理CPU虚拟为多台逻辑虚拟为多台逻辑CPU,从而允许多个用户共,从而允许多个用户共享一台主机,那么通过享一台主机,那么通过SPOOLing技术便可将一技术便可将一台物理台物理I/O设备虚拟为多台逻辑对应物,允许多个设备虚拟为多台逻辑对应物,允许
45、多个用户共享一台物理用户共享一台物理I/O设备。设备。7.4.3 SPOOLing系统系统1.SPOOLing系统的引入系统的引入v脱机输入、脱机输出技术是利用专门的外围控制机,将脱机输入、脱机输出技术是利用专门的外围控制机,将低速低速I/O设备上的数据传送到高速磁盘上;或者相反。设备上的数据传送到高速磁盘上;或者相反。v事实上,当系统中引入了多道程序技术后,完全可以利事实上,当系统中引入了多道程序技术后,完全可以利用其中的一道程序,来模拟脱机输入时的外围控制机功用其中的一道程序,来模拟脱机输入时的外围控制机功能,把低速能,把低速I/O设备上的数据传送到高速磁盘上;再用设备上的数据传送到高速磁
46、盘上;再用另一道程序来模拟脱机输出时外围控制机的功能,把数另一道程序来模拟脱机输出时外围控制机的功能,把数据从磁盘传送到低速输出设备上。据从磁盘传送到低速输出设备上。v这样,便可在主机的直接控制下,实现脱机输入、输出这样,便可在主机的直接控制下,实现脱机输入、输出功能。此时的外围操作与功能。此时的外围操作与CPU对数据的处理同时进行,对数据的处理同时进行,我们把这种在联机情况下实现的同时外围操作称为我们把这种在联机情况下实现的同时外围操作称为SPOOLing(Simultaneaus Periphernal Operating On Line),或称为假脱机操作。,或称为假脱机操作。2SPOO
47、Ling系统的组成系统的组成v由上所述得知,由上所述得知,SPOOLing技术是对脱机输入、输技术是对脱机输入、输出系统的模拟。相应地,出系统的模拟。相应地,SPOOLing系统必须建立系统必须建立在具有多道程序功能的操作系统上,而且还应有高在具有多道程序功能的操作系统上,而且还应有高速随机外存的支持。速随机外存的支持。vSPOOLing系统主要有以下三部分:系统主要有以下三部分:(1)输入井和输出井。输入井和输出井。在在磁盘磁盘上开辟的两个大存储空间。上开辟的两个大存储空间。输入井是模拟脱机输入时的磁盘设备,用于暂存输入井是模拟脱机输入时的磁盘设备,用于暂存I/O设备输入的数据;设备输入的数
48、据;输出井是模拟脱机输出时的磁盘,用于暂存用户程序输出井是模拟脱机输出时的磁盘,用于暂存用户程序的输出数据。的输出数据。2SPOOLing系统的组成系统的组成(2)输入缓冲区和输出缓冲区。输入缓冲区和输出缓冲区。为了缓和为了缓和CPU和磁盘之间速度不匹配的矛盾,和磁盘之间速度不匹配的矛盾,在在内存内存中要开辟两个缓冲区:输入缓冲区和输中要开辟两个缓冲区:输入缓冲区和输出缓冲区。出缓冲区。输入缓冲区用于暂存由输入设备送来的数据,输入缓冲区用于暂存由输入设备送来的数据,以后再传送到输入井。以后再传送到输入井。输出缓冲区用于暂存从输出井送来的数据,以输出缓冲区用于暂存从输出井送来的数据,以后再传送给
49、输出设备。后再传送给输出设备。2SPOOLing系统的组成系统的组成(3)输入进程输入进程SPi和输出进程和输出进程SPo。利用两个进程来模拟脱机利用两个进程来模拟脱机I/O时的外围控制机时的外围控制机。进程进程SPi模拟脱机输入时的外围控制机,将用户模拟脱机输入时的外围控制机,将用户要求的数据从输入机通过输入缓冲区再送到输要求的数据从输入机通过输入缓冲区再送到输入井,当入井,当CPU需要输入数据时,直接从输入井需要输入数据时,直接从输入井读入内存;读入内存;进程进程SPo模拟脱机输出时的外围控制机,把用模拟脱机输出时的外围控制机,把用户要求输出的数据先从内存送到输出井,待输户要求输出的数据先
50、从内存送到输出井,待输出设备空闲时,再将输出井中的数据经过输出出设备空闲时,再将输出井中的数据经过输出缓冲区送到输出设备上。缓冲区送到输出设备上。2SPOOLing系统的组成系统的组成3共享打印机共享打印机v打印机是经常要用到的输出设备,属于独占设备。打印机是经常要用到的输出设备,属于独占设备。利用利用SPOOLing技术,可将之改造为一台可供多个用技术,可将之改造为一台可供多个用户共享的设备,从而提高设备的利用率,也方便了户共享的设备,从而提高设备的利用率,也方便了用户。用户。vSPOOLing系统同意为它打印输出,但并不真正立即系统同意为它打印输出,但并不真正立即把打印机分配给该用户进程,