1、2022-6-62022-6-61 12022-6-62022-6-62 2内容概内容概述述5.1 I/O5.1 I/O系统系统 5.2 I/O5.2 I/O控制方式控制方式 5.3 5.3 缓冲管理缓冲管理I/O系统包括用于实现系统包括用于实现数据输入、输出、存储数据输入、输出、存储功能的设备和相功能的设备和相应的控制器,设备管理的基本任务是应的控制器,设备管理的基本任务是完成用户提出的完成用户提出的I/O请求,请求,提高提高I/O速率以及改善速率以及改善I/O的利用率。的利用率。设备管理的主要功能有设备管理的主要功能有缓冲区管理、设备分配、磁盘管理、虚拟设备及实现设备独缓冲区管理、设备分配
2、、磁盘管理、虚拟设备及实现设备独立性。立性。5.4 I/O5.4 I/O软件软件 5.5 5.5 设备分配设备分配 5.6 5.6 磁盘存储器管理磁盘存储器管理 2022-6-62022-6-63 35.1 I/O5.1 I/O系统系统5.1.1 I/O5.1.1 I/O设备设备5.1.2 5.1.2 设备控制器设备控制器5.1.3 I/O5.1.3 I/O通道通道5.1.4 5.1.4 总线系统总线系统2022-6-62022-6-64 45.1.1 I/O5.1.1 I/O设备设备1.1.按按设备的使用特性设备的使用特性分类分类存储设备存储设备 磁带、磁盘、光盘等。磁带、磁盘、光盘等。输入
3、输入/ /输出设备输出设备键盘、鼠标、扫描仪、视频摄像、传感器等。键盘、鼠标、扫描仪、视频摄像、传感器等。2022-6-62022-6-65 52.2.按按传输速率传输速率分类分类低速设备低速设备 每秒几个字节至数百字节。每秒几个字节至数百字节。键盘、鼠标、语音输入输出设备等。键盘、鼠标、语音输入输出设备等。中速设备中速设备每秒数千至数万字节。每秒数千至数万字节。行式打印机、激光打印机等。行式打印机、激光打印机等。高速设备高速设备每秒数百每秒数百K K至数十至数十M M字节。字节。磁盘机、磁带机、光盘机等。磁盘机、磁带机、光盘机等。2022-6-62022-6-66 63.3.按按信息交换的单
4、位信息交换的单位分类分类块设备块设备信息的存取以信息的存取以数据块数据块为单位,为单位,有结构设备。有结构设备。基本特征是其传输速率较高,通常每秒钟为几兆位,基本特征是其传输速率较高,通常每秒钟为几兆位,可寻址可寻址,即对它可随机地读,即对它可随机地读/ /写任一块。写任一块。例例: :磁盘磁盘字符设备字符设备基本单位是基本单位是字符,字符,无结构设备。无结构设备。基本特征是其传输速率较低基本特征是其传输速率较低, ,通常每秒钟为几个字通常每秒钟为几个字节到数千字节,节到数千字节,不可寻址。不可寻址。例例: :交互式终端、打印机交互式终端、打印机2022-6-62022-6-67 74.4.按
5、按设备的共享属性设备的共享属性分类分类独占设备独占设备( (临界资源临界资源 ) )如打印机如打印机共享设备共享设备 可供多个多个进程同时访问,如磁盘。可供多个多个进程同时访问,如磁盘。共享设备必须是共享设备必须是可寻址可寻址的和的和可随机访问可随机访问的设备。的设备。虚拟设备虚拟设备通过虚拟技术将一台独占设备变换为若干个逻通过虚拟技术将一台独占设备变换为若干个逻辑设备,供若干个进程同时使用。辑设备,供若干个进程同时使用。2022-6-62022-6-68 85.1 I/O5.1 I/O系统系统5.1.1 I/O5.1.1 I/O设备设备5.1.2 5.1.2 设备控制器设备控制器5.1.3
6、I/O5.1.3 I/O通道通道5.1.4 5.1.4 总线系统总线系统2022-6-62022-6-69 95.1.2 5.1.2 设备控制器设备控制器1.1.设备控制器概述设备控制器概述设备控制器设备控制器是是CPUCPU与与I/OI/O设备之间的硬件接口,常做成设备之间的硬件接口,常做成印刷电路卡形式印刷电路卡形式, ,也称接口卡。也称接口卡。 接收从接收从CPUCPU发来的命令,并控制一个或多个发来的命令,并控制一个或多个I/OI/O设备,设备,以实现以实现I/OI/O设备和计算机之间的数据交换,减轻设备和计算机之间的数据交换,减轻CPUCPU的的负担。负担。2022-6-62022-
7、6-61010 2. 2.设备控制器的组成设备控制器的组成设备控制器与处理机的接口设备控制器与处理机的接口该接口用于实现设备控制器与该接口用于实现设备控制器与CPUCPU之间的通信。在该接口之间的通信。在该接口中有三类信号线:中有三类信号线:数据线数据线、地址线地址线、控制线控制线。设备控制器与设备的接口设备控制器与设备的接口在一个设备控制器上,可以连接一台或多台设备(一个或在一个设备控制器上,可以连接一台或多台设备(一个或多个设备接口多个设备接口) ),一个接口连接一台设备,在每个接口中,一个接口连接一台设备,在每个接口中都有数据、控制和状态三种类型的信号。都有数据、控制和状态三种类型的信号
8、。 I/OI/O逻辑逻辑控制器对设备的控制通过控制器对设备的控制通过I/OI/O逻辑实现的。包括对收到逻辑实现的。包括对收到命命令令和和地址地址进行进行译码译码。2022-6-62022-6-61111图图5-2 5-2 设备控制器的组成设备控制器的组成 数据寄存器数据寄存器控制/状态控制/状态寄存器寄存器数据线数据线I/O逻辑逻辑控制器控制器与设备与设备接口1接口1控制器控制器与设备与设备接口接口i数据数据状态状态控制控制数据数据状态状态控制控制地址线地址线控制线控制线CPU与控制器接口与控制器接口控制器与设备接口控制器与设备接口2022-6-62022-6-612125.1 I/O5.1
9、I/O系统系统5.1.1 I/O5.1.1 I/O设备设备5.1.2 5.1.2 设备控制器设备控制器5.1.3 I/O5.1.3 I/O通道通道5.1.4 5.1.4 总线系统总线系统2022-6-62022-6-613135.1.3 I/O5.1.3 I/O通道通道 1. 1.I/OI/O通道通道设备的引入设备的引入是一种是一种特殊处理机特殊处理机,专门负责输入,专门负责输入/ /输出工作,具有执行输出工作,具有执行I/OI/O指令指令的能力。主要的能力。主要目的目的是为了建立独立的是为了建立独立的I/OI/O操作,使操作,使有关对有关对I/OI/O操作的组织、管理及其结束处理也独立于操作
10、的组织、管理及其结束处理也独立于CPUCPU。CPUCPU向向I/OI/O通道发送通道发送I/OI/O命令,由通道执行程序。命令,由通道执行程序。通道与一般处理机的通道与一般处理机的区别区别指令类型单一指令类型单一,局限于与,局限于与I/OI/O操作有关命令。操作有关命令。没有独立的内存没有独立的内存,通道与,通道与CPUCPU共享内存。共享内存。2022-6-62022-6-61414图图5-3 5-3 字节多路通道的工作原理字节多路通道的工作原理 2.2.通道类型通道类型(1)(1)字节多路通道字节多路通道一个主通道连接多个子通道,以一个主通道连接多个子通道,以时间片轮转时间片轮转方式共享
11、方式共享主通道。主通道。每个子通道每次只传送每个子通道每次只传送一个字节一个字节,连接中低速设备。,连接中低速设备。控制器控制器A控制器控制器B控制器控制器C控制器控制器D控制器控制器NA1A2A3子通道子通道AB1B2B3子通道子通道BC1C2C3子通道子通道CN1N2N3子通道子通道NA1B1C1A2B2C2设备2022-6-62022-6-61515(2)(2)数组选择通道数组选择通道(Block Selector Channel)(Block Selector Channel)(1)不适合高速设备。不适合高速设备。以以数组方式数组方式工作,高速传输数据。工作,高速传输数据。可以连接多台
12、高速设备。可以连接多台高速设备。每次只有一台设备进行数据传送,形成每次只有一台设备进行数据传送,形成独占独占,如果,如果它不传数据,别的设备也传不了。通道利用率较低。它不传数据,别的设备也传不了。通道利用率较低。2022-6-62022-6-61616(3)(3)数组多路通道数组多路通道(Block Multiplexor(Block Multiplexor Channel) Channel)(2)有独占性。有独占性。将将数组选择通道数组选择通道传输速率高和传输速率高和字节多路通道字节多路通道分时并行分时并行操作的优点相操作的优点相结合结合而形成的一种新通道。而形成的一种新通道。其数据传送是按
13、其数据传送是按数组方式数组方式。采用分时并行传送多个非分配型子通道,因而这种通采用分时并行传送多个非分配型子通道,因而这种通道既具有很高的道既具有很高的数据传输速率数据传输速率,又能获得令人满意的,又能获得令人满意的通道利用率通道利用率。2022-6-62022-6-61717图图5-5 5-5 多通路多通路I/OI/O系统系统 2022-6-62022-6-618185.1 I/O5.1 I/O系统系统5.1.1 I/O5.1.1 I/O设备设备5.1.2 5.1.2 设备控制器设备控制器5.1.3 I/O5.1.3 I/O通道通道5.1.4 5.1.4 总线系统总线系统2022-6-620
14、22-6-619195.1.4 5.1.4 总线系统总线系统 图图5-6 5-6 总线型总线型I/OI/O系统结构系统结构 在计算机系统中的各部件,如在计算机系统中的各部件,如CPUCPU、存储器以及各种、存储器以及各种I/OI/O设备之间都是通过总线来联系。设备之间都是通过总线来联系。CPU存储器存储器磁盘磁盘控制器控制器打印机打印机控制器控制器其它其它控制器控制器磁盘驱动器磁盘驱动器打印机打印机系统总线系统总线2022-6-62022-6-620201.ISA(Industry Standard Architecture)1.ISA(Industry Standard Architectu
15、re)总线总线 这是为了这是为了19841984年推出的年推出的8028680286型微机而设计的总线结构。型微机而设计的总线结构。 其总线的带宽为其总线的带宽为8 8位位, ,最高传输速率为最高传输速率为2Mb/s2Mb/s。之后不久又推。之后不久又推出了出了1616位的位的(EISA)(EISA)总线总线, ,其最高传输速率为其最高传输速率为8Mb/s,8Mb/s,后又升至后又升至16 Mb/s,16 Mb/s,能连接能连接1212台设备。台设备。2.EISA(Extended ISA)2.EISA(Extended ISA)总线总线 到到8080年代末期年代末期,ISA,ISA总线已难于
16、满足带宽和传输速率的总线已难于满足带宽和传输速率的要求要求, ,于是人们又开发出扩展于是人们又开发出扩展ISA(EISA)ISA(EISA)总线总线, ,其带宽为其带宽为3232位位, ,总线的传输速率高达总线的传输速率高达32Mb/s,32Mb/s,同样可以连接同样可以连接1212台外部设备台外部设备。 2022-6-62022-6-621213.VESA(Video Electronic Standard Association)3.VESA(Video Electronic Standard Association)总线总线 以以ISAISA为基础的局部总线,带宽为为基础的局部总线,带宽
17、为3232位,工作频率为位,工作频率为33MHz33MHz,最高传输速率为,最高传输速率为132Mb/s132Mb/s,为,为486486设计的。设计的。4.PCI(Peripheral Component Interface)4.PCI(Peripheral Component Interface)总线总线 局部总线,最大传输速率为局部总线,最大传输速率为132Mb/s132Mb/s,既可以连接,既可以连接ISAISA、EISAEISA等传统型总线,又可支持等传统型总线,又可支持PentiumPentium的的6464位系统。位系统。2022-6-62022-6-62222内容概述内容概述5
18、.1 I/O5.1 I/O系统系统 5.2 I/O5.2 I/O控制方式控制方式 5.3 5.3 缓冲管理缓冲管理 5.4 I/O5.4 I/O软件软件5.5 5.5 设备分配设备分配5.6 5.6 磁盘存储器管理磁盘存储器管理 2022-6-62022-6-623235.2 I/O5.2 I/O控制方式控制方式5.2.1 5.2.1 程序程序I/OI/O方式方式5.2.2 5.2.2 中断驱动中断驱动I/OI/O方式方式5.2.3 5.2.3 直接存储器访问直接存储器访问DMA I/ODMA I/O控制方式控制方式5.2.4 I/O5.2.4 I/O通道控制方式通道控制方式 设备管理的主要任
19、务之一是控制设备和内存或设备管理的主要任务之一是控制设备和内存或CPUCPU之间的之间的数据传送。数据传送。I/OI/O控制方式主要有四种:控制方式主要有四种:程序程序I/OI/O方式、中断驱方式、中断驱动动I/OI/O方式、直接存储访问方式、直接存储访问DMA I/ODMA I/O控制方式和控制方式和I/OI/O通道控制方通道控制方式式。2022-6-62022-6-624245.2.1 5.2.1 程序程序I/OI/O方式方式 程序程序I/OI/O控制方式(控制方式(“忙忙等待等待”方式):在一个设备的方式):在一个设备的操作没有完成时,控制程序一直检测设备的状态,直到该操作没有完成时,控
20、制程序一直检测设备的状态,直到该操作完成,才能进行下一个操作。操作完成,才能进行下一个操作。 CPUCPU通过通过I/OI/O测试指令测试设备接口中的状态位,当为测试指令测试设备接口中的状态位,当为“忙忙”时则一直测试,当为时则一直测试,当为“闲闲”时,可进行数据传送,每次传时,可进行数据传送,每次传送送一个字符。一个字符。 CPUCPU的绝大部分时间都处于等待的绝大部分时间都处于等待I/OI/O设备完成数据设备完成数据I/OI/O的循的循环测试中。环测试中。 外设不能合理使用,也无法支持多道程序。外设不能合理使用,也无法支持多道程序。 CPUCPU的高速性和的高速性和I/OI/O设备的低速性
21、。设备的低速性。2022-6-62022-6-62525图图5-7 5-7 程序程序I/OI/O方式的流程方式的流程 2022-6-62022-6-626265.2 I/O5.2 I/O控制方式控制方式5.2.1 5.2.1 程序程序I/OI/O方式方式5.2.2 5.2.2 中断驱动中断驱动I/OI/O方式方式5.2.3 5.2.3 直接存储器访问直接存储器访问DMA I/ODMA I/O控制方式控制方式5.2.4 I/O5.2.4 I/O通道控制方式通道控制方式2022-6-62022-6-627275.2.2 5.2.2 中断驱动中断驱动I/OI/O控制方式控制方式 中断中断是指计算机在
22、执行期间,系统内发生任何非寻常的或是指计算机在执行期间,系统内发生任何非寻常的或非预期的急需处理事件,使得非预期的急需处理事件,使得CPUCPU暂时中断当前正在执行暂时中断当前正在执行的程序而转去执行相应的事件处理程序,待处理完毕后又的程序而转去执行相应的事件处理程序,待处理完毕后又返回原来被中断处继续执行或调度新的进程执行的过程。返回原来被中断处继续执行或调度新的进程执行的过程。 中断驱动中断驱动方式:当某进程要启动某个方式:当某进程要启动某个I/OI/O设备工作时,便设备工作时,便由由CPUCPU向相应的设备控制器发出一条向相应的设备控制器发出一条I/OI/O命令,然后立即返命令,然后立即
23、返回继续执行原来的任务。回继续执行原来的任务。 设备控制器按命令要求去控制指定的设备控制器按命令要求去控制指定的I/OI/O设备,完成后设备,完成后, ,通通过中断向过中断向CPUCPU发送一中断信号。发送一中断信号。 在在I/OI/O设备输入数据的过程中,无须设备输入数据的过程中,无须CPUCPU干预。干预。 每次传送每次传送一个字符一个字符。2022-6-62022-6-62828在在I/OI/O中断方式下中断方式下, ,数据的输入数据的输入( (或输出或输出) )步骤步骤如下如下: :1 1、要求输入数据的进程把一个启动命令和允许中断位、要求输入数据的进程把一个启动命令和允许中断位“1”
24、1”写入相应设备的控制状态寄存器中,从而启动了该设备。写入相应设备的控制状态寄存器中,从而启动了该设备。2 2、该进程因等待输入的完成进入睡眠状态。、该进程因等待输入的完成进入睡眠状态。3 3、当输入完成后,输入设备向、当输入完成后,输入设备向CPUCPU发出完成中断请求信号。发出完成中断请求信号。4 4、处理机响应中断,处理该中断,并唤醒等待输入完成的、处理机响应中断,处理该中断,并唤醒等待输入完成的进程。进程。5 5、在以后的某个时期,该程序被调度到后、在以后的某个时期,该程序被调度到后, ,继续运行。继续运行。2022-6-62022-6-62929图图5-7 5-7 中断驱动方式的流程
25、中断驱动方式的流程 2022-6-62022-6-630305.2 I/O5.2 I/O控制方式控制方式5.2.1 5.2.1 程序程序I/OI/O方式方式5.2.2 5.2.2 中断驱动中断驱动I/OI/O方式方式5.2.3 5.2.3 直接存储器访问直接存储器访问DMA I/ODMA I/O控制方式控制方式5.2.4 I/O5.2.4 I/O通道控制方式通道控制方式2022-6-62022-6-631315.2.3 5.2.3 直接存储器访问直接存储器访问DMA I/ODMA I/O控制方式控制方式 1.DMA(Direct Memory Access)1.DMA(Direct Memor
26、y Access)控制方式的引入控制方式的引入 中断驱动中断驱动I/OI/O控制方式:控制方式:以以字节字节为单位的。每完成一个为单位的。每完成一个字节的字节的I/OI/O,控制器便向,控制器便向CPUCPU发一中断,请求发一中断,请求CPUCPU中断处理。中断处理。例如,为了从磁盘中读出例如,为了从磁盘中读出1KB1KB的数据块,需要中断的数据块,需要中断1K1K次次CPUCPU。 直接存储器存取控制直接存储器存取控制:是指对:是指对I/OI/O设备的控制由设备的控制由DMADMA控制控制器完成,在器完成,在DMADMA控制器的作用下,设备和主存之间可以成批控制器的作用下,设备和主存之间可以
27、成批地进行数据交换,而不用地进行数据交换,而不用CPUCPU的干涉。的干涉。2022-6-62022-6-63232图图5-7 DMA5-7 DMA方式的流程方式的流程 2022-6-62022-6-63333图图5-8 DMA5-8 DMA控制器的组成控制器的组成 2.2.DMA控制器的组成控制器的组成主机与主机与DMA控制器的接口控制器的接口DMA控制器与块设备的接口控制器与块设备的接口I/O控制逻辑控制逻辑2022-6-62022-6-63434 为了实现在主机与控制器之间成块数据的直接交换为了实现在主机与控制器之间成块数据的直接交换, , 必必须在须在DMADMA控制器中设置如下控制器
28、中设置如下四类寄存器四类寄存器: : (1)(1)命令命令/ /状态寄存器状态寄存器CRCR。用于接收从。用于接收从CPUCPU发来的发来的I/OI/O命令命令或有关控制信息或有关控制信息, ,或设备的状态。或设备的状态。 (2)(2)内存地址寄存器内存地址寄存器MARMAR。在输入时。在输入时, ,它存放把数据从设它存放把数据从设备传送到内存的起始目标地址备传送到内存的起始目标地址; ;在输出时在输出时, ,它存放由内存到设它存放由内存到设备的内存源地址。备的内存源地址。 (3)(3)数据寄存器数据寄存器DRDR。用于暂存从设备到内存。用于暂存从设备到内存, ,或从内存到或从内存到设备的数据
29、。设备的数据。 (4)(4)数据计数器数据计数器DCDC。存放本次。存放本次CPUCPU要读或写的字要读或写的字( (节节) )数。数。 2022-6-62022-6-635353.DMA3.DMA工作过程工作过程 图图5-9 DMA5-9 DMA方式的工作流程方式的工作流程 2022-6-62022-6-63636 4.4.直接存储器存取控制方式的步骤直接存储器存取控制方式的步骤当进程要求设备输入一批数据时当进程要求设备输入一批数据时,CPU,CPU将设备存放输入数将设备存放输入数据的内存始址以及要传送的字节数分别送入据的内存始址以及要传送的字节数分别送入DMADMA控制器控制器中的地址寄存
30、器和传送字节计数器中的地址寄存器和传送字节计数器; ;另外另外, ,还要将中断位还要将中断位和启动位置为和启动位置为1,1,以启动设备开始进行数据输入并允许中以启动设备开始进行数据输入并允许中断。断。发出数据要求的进程进入等待状态发出数据要求的进程进入等待状态, ,进程调度程序调度进程调度程序调度其他进程占据其他进程占据CPUCPU。输入设备不断地挪用输入设备不断地挪用CPUCPU工作周期工作周期, ,将数据寄存器中的数将数据寄存器中的数据源源不断地写入内存据源源不断地写入内存, ,直到所要求的字节全部传送完直到所要求的字节全部传送完毕。毕。DMADMA控制器在传送字节数完成时控制器在传送字节
31、数完成时, ,通过中断请求线发出中通过中断请求线发出中断信号断信号,CPU,CPU收到中断信号后转中断处理程序收到中断信号后转中断处理程序, ,唤醒等待唤醒等待输入完成的进程输入完成的进程, ,并返回被中断的程序。并返回被中断的程序。在以后的某个时刻在以后的某个时刻, ,进程调度程序选中提出请求输入的进程调度程序选中提出请求输入的进程进程, ,该进程从指定的内存始址取出数据做进一步处理。该进程从指定的内存始址取出数据做进一步处理。2022-6-62022-6-637375.2 I/O5.2 I/O控制方式控制方式5.2.1 5.2.1 程序程序I/OI/O方式方式5.2.2 5.2.2 中断驱
32、动中断驱动I/OI/O方式方式5.2.3 5.2.3 直接存储器访问直接存储器访问DMA I/ODMA I/O控制方式控制方式5.2.4 I/O5.2.4 I/O通道控制方式通道控制方式2022-6-62022-6-638385.2.4 I/O5.2.4 I/O通道控制方式通道控制方式 通道控制方式的通道控制方式的概念概念 是一种以内存为中心是一种以内存为中心, ,是设备与内存直接交换数据是设备与内存直接交换数据的控制方式。的控制方式。CPUCPU只需要发出启动指令只需要发出启动指令, ,指出通道相应的指出通道相应的操作和操作和I/OI/O设备设备, ,该指令就可以启动通道并使该通道从内该指令
33、就可以启动通道并使该通道从内存中调出相应的通道指令执行。存中调出相应的通道指令执行。 2022-6-62022-6-63939 1.I/O 1.I/O通道控制方式的引入通道控制方式的引入 与与DMA类似,是以内存为中心的数据交换方式。类似,是以内存为中心的数据交换方式。它可进一步减少它可进一步减少CPU的干预,即把对的干预,即把对一个一个数据块的读数据块的读(写写)为单位的干预,减少为对为单位的干预,减少为对一组一组数据块的读数据块的读(写写)及有关的控及有关的控制和管理为单位的干预。制和管理为单位的干预。一个通道控制多台设备。一个通道控制多台设备。CPU仅在仅在I/O操作的开始和结束时花费少
34、量时间处理与操作的开始和结束时花费少量时间处理与I/O有关的工作。有关的工作。实现实现CPU、通道和、通道和I/O设备三者的设备三者的并行操作并行操作,从而更有效,从而更有效地提高整个系统的资源利用率。地提高整个系统的资源利用率。5.2.4 I/O5.2.4 I/O通道控制方式通道控制方式 2022-6-62022-6-64040 2. 2.通道程序通道程序 与设备控制器共同实现对与设备控制器共同实现对I/OI/O设备的控制的。指令中含:设备的控制的。指令中含:(1)(1)操作码:规定指令所执行的操作操作码:规定指令所执行的操作, ,如读、写、控制等。如读、写、控制等。(2)(2)内存地址:标
35、明字符送入内存或从内存取出的内存首址。内存地址:标明字符送入内存或从内存取出的内存首址。(3)(3)计数:本条指令所要读计数:本条指令所要读/ /写的字节数。写的字节数。(4)(4)通道程序结束位:表示通道程序是否结束通道程序结束位:表示通道程序是否结束,P=1,P=1表示结束。表示结束。(5)(5)记录结束标志:记录结束标志:R=R=0 0, ,表示本指令与下一指令处理同一个表示本指令与下一指令处理同一个 记录记录;R=;R=1 1表示处理某记录的最后一条指令。表示处理某记录的最后一条指令。2022-6-62022-6-64141操作操作 P PR R计数计数内存地址内存地址WRITE WR
36、ITE 0 00 08080813813WRITEWRITE0 00 014014010341034WRITEWRITE0 01 1606058305830WRITEWRITE0 01 130030020002000WRITEWRITE0 00 025025018501850WRITEWRITE1 11 12502507207202022-6-62022-6-64242图图 通道的工作流程通道的工作流程 2022-6-62022-6-64343 3. 3.通道控制方式的通道控制方式的步骤步骤当进程要求输入数据时当进程要求输入数据时,CPU,CPU发启动指令指明发启动指令指明I/OI/O操作、操
37、作、设备号和对应通道。设备号和对应通道。对应通道接收到对应通道接收到CPUCPU发来的启动指令后发来的启动指令后, ,把存放在内存把存放在内存中的通道指令程序读出中的通道指令程序读出, ,并执行通道程序并执行通道程序, ,控制设备将控制设备将数据传送到内存中指定的区域。数据传送到内存中指定的区域。若数据传输结束若数据传输结束, ,则向则向CPUCPU发出中断请求。发出中断请求。CPUCPU收到中收到中断信号后转中断处理程序断信号后转中断处理程序, ,唤醒等待输入完成的进程唤醒等待输入完成的进程, ,并返回被中断的程序。并返回被中断的程序。在以后的某个时刻在以后的某个时刻, ,进程调度程序选中提
38、出请求输入进程调度程序选中提出请求输入的进程的进程, ,该进程从指定的内存始址取出数据做进一步处该进程从指定的内存始址取出数据做进一步处理。理。 2022-6-62022-6-64444内容概述内容概述5.1 I/O5.1 I/O系统系统 5.2 I/O5.2 I/O控制方式控制方式 5.3 5.3 缓冲管理缓冲管理 5.4 I/O5.4 I/O软件软件5.5 5.5 设备分配设备分配 5.6 5.6 磁盘存储器管理磁盘存储器管理 2022-6-62022-6-645455.3 5.3 缓冲管理缓冲管理5.3.1 5.3.1 缓冲的引入缓冲的引入5.3.2 5.3.2 单缓冲和双缓冲单缓冲和双
39、缓冲5.3.3 5.3.3 循环缓冲循环缓冲5.3.4 5.3.4 缓冲池缓冲池(Buffer Pool)(Buffer Pool)2022-6-62022-6-646465.3.1 5.3.1 缓冲的引入缓冲的引入(1)(1)缓和缓和CPUCPU与与I/OI/O设备间速度不匹配的矛盾。设备间速度不匹配的矛盾。 (2)(2)减少对减少对CPUCPU的中断频率的中断频率, ,放宽对放宽对CPUCPU中断响应时间中断响应时间的限制。的限制。 (3)(3)提高提高CPUCPU和和I/OI/O设备之间的并行性。设备之间的并行性。 2022-6-62022-6-64747图图5-10 5-10 利用缓冲
40、寄存器实现缓冲利用缓冲寄存器实现缓冲 2022-6-62022-6-648485.3 5.3 缓冲管理缓冲管理5.3.1 5.3.1 缓冲的引入缓冲的引入5.3.2 5.3.2 单缓冲和双缓冲单缓冲和双缓冲5.3.3 5.3.3 循环缓冲循环缓冲5.3.4 5.3.4 缓冲池缓冲池(Buffer Pool)(Buffer Pool)2022-6-62022-6-649495.3.2 5.3.2 单缓冲和双缓冲单缓冲和双缓冲 1.1.单缓冲单缓冲(Single Buffer) (Single Buffer) 图图5-11 5-11 单缓冲工作示意图单缓冲工作示意图 工作区工作区处理处理(C)缓冲
41、区缓冲区传送传送(M)输入输入(T)I/O设备设备(a)T1M1C1T2M2C2T3M3C3T4t(b)用户进程用户进程2022-6-62022-6-650502.2.双缓冲双缓冲(Double Buffer)(Double Buffer) 图图5-12 5-12 双缓冲工作示意图双缓冲工作示意图 工作区工作区用户进程用户进程缓冲区缓冲区1缓冲区缓冲区2I/O 设备设备T1(缓冲 1)M1C1M2C2M3C3T2(缓冲 2)T3(缓冲 3)M4C4T4(缓冲 4)(a)(b)2022-6-62022-6-65151图图5-13 5-13 双机通信时缓冲区的设置双机通信时缓冲区的设置 2022-
42、6-62022-6-652525.3 5.3 缓冲管理缓冲管理5.3.1 5.3.1 缓冲的引入缓冲的引入5.3.2 5.3.2 单缓冲和双缓冲单缓冲和双缓冲5.3.3 5.3.3 循环缓冲循环缓冲5.3.4 5.3.4 缓冲池缓冲池(Buffer Pool)(Buffer Pool)2022-6-62022-6-653535.3.3 5.3.3 循环缓冲循环缓冲循环缓冲的循环缓冲的引入:引入: 当输入与输出速度基本匹配时,双缓冲能获得较好效果;当输入与输出速度基本匹配时,双缓冲能获得较好效果;当速度当速度相差较大相差较大时,可引入多个缓冲,组织成循环缓冲时,可引入多个缓冲,组织成循环缓冲的形
43、式。的形式。2022-6-62022-6-654545.3 5.3 缓冲管理缓冲管理5.3.1 5.3.1 缓冲的引入缓冲的引入5.3.2 5.3.2 单缓冲和双缓冲单缓冲和双缓冲5.3.3 5.3.3 循环缓冲循环缓冲5.3.4 5.3.4 缓冲池缓冲池(Buffer Pool)(Buffer Pool)2022-6-62022-6-655555.3.4 5.3.4 缓冲池缓冲池(Buffer Pool) (Buffer Pool) 1. 1. 缓冲池的组成缓冲池的组成专用缓冲专用缓冲的利用率不高的利用率不高, ,因此设置公用缓冲池因此设置公用缓冲池, ,其中至少其中至少应含有以下应含有以下
44、三种三种类型的缓冲区类型的缓冲区: :空空( (闲闲) )缓冲区缓冲区; ;装满输入数据的缓冲区装满输入数据的缓冲区; ; 装满输出数据的缓冲区。装满输出数据的缓冲区。 为了管理上的方便为了管理上的方便, ,可将相同类型的缓冲区链成一个队可将相同类型的缓冲区链成一个队列列, ,于是可形成以下于是可形成以下三个三个队列队列: : (1) (1)空缓冲队列空缓冲队列emqemq (2) (2)输入队列输入队列inqinq (3) (3)输出队列输出队列outqoutq2022-6-62022-6-656562.2.缓冲区的工作方式缓冲区的工作方式 图图5-15 5-15 缓冲区的工作方式缓冲区的工
45、作方式 hinsoutsinhout收容输入收容输入提取输出用用户户进进程程提取输入收容输出收容输出缓冲 池Getbuf(emq)Getbuf(emq)Putbuf(inq,hin)Putbuf(inq,hin)Getbuf(inq)Getbuf(inq)Putbuf(emp,sin)Putbuf(emp,sin)2022-6-62022-6-65757内容概述内容概述5.1 I/O5.1 I/O系统系统 5.2 I/O5.2 I/O控制方式控制方式 5.3 5.3 缓冲管理缓冲管理 5.4 I/O5.4 I/O软件软件 5.5 5.5 设备分配设备分配 5.6 5.6 磁盘存储器管理磁盘存储
46、器管理 2022-6-62022-6-658585.4 I/O5.4 I/O软件软件5.4.1 I/O5.4.1 I/O软件的设计目标和原则软件的设计目标和原则5.4.2 5.4.2 中断处理程序中断处理程序5.4.3 5.4.3 设备驱动程序设备驱动程序5.4.4 5.4.4 设备独立性软件设备独立性软件5.4.5 5.4.5 用户层的用户层的I/OI/O软件软件2022-6-62022-6-65959I/OI/O系统的层次及功能系统的层次及功能用户层软件用户层软件设备独立性软件设备独立性软件设备驱动程序设备驱动程序中断处理程序中断处理程序硬件硬件产生产生I/OI/O请求、格式化请求、格式化
47、I/OI/O、SpoolingSpooling映射、保护、分块、缓冲、分配映射、保护、分块、缓冲、分配设置设备寄存器,检查寄存器状态设置设备寄存器,检查寄存器状态执行执行I/OI/O操作操作图图5-16 I/O5-16 I/O系统的层次及功能系统的层次及功能2022-6-62022-6-660605.4 I/O5.4 I/O软件软件5.4.1 I/O5.4.1 I/O软件的设计目标和原则软件的设计目标和原则5.4.2 5.4.2 中断处理程序中断处理程序5.4.3 5.4.3 设备驱动程序设备驱动程序5.4.4 5.4.4 设备独立性软件设备独立性软件5.4.5 5.4.5 用户层的用户层的I
48、/OI/O软件软件2022-6-62022-6-661615.4.2 5.4.2 中断处理程序中断处理程序中断处理程序的处理过程:中断处理程序的处理过程:(1)(1)唤醒被阻塞的驱动进程唤醒被阻塞的驱动进程(2)(2)保护被中断进程的保护被中断进程的CPUCPU环境环境(3)(3)转入相应的设备处理程序转入相应的设备处理程序(4)(4)中断处理中断处理(5)(5)恢复被中断进程的现场恢复被中断进程的现场2022-6-62022-6-66262图图5-17 5-17 中断现场保护示意图中断现场保护示意图 PSW程序状态字PC(N1)程序计数器R0Rn寄存器开始返回用户程序中断服务子例程PSWPC
49、(N1)中断栈TTM线指针YNN1R0Rn2022-6-62022-6-66363图图5-18 5-18 中断处理流程中断处理流程唤醒被阻塞的唤醒被阻塞的驱动程序进程驱动程序进程对被中断进程的对被中断进程的CPU环境进行保护环境进行保护分析中断原因,转入分析中断原因,转入相应的中断处理程序相应的中断处理程序终端中断终端中断处理程序处理程序打印机中断打印机中断处理程序处理程序磁盘中断磁盘中断处理程序处理程序恢复被中断进恢复被中断进程的程的CPU现场现场返回被中断的进返回被中断的进程,继续执行程,继续执行中断请求信号中断请求信号2022-6-62022-6-664645.4.3 5.4.3 设备驱
50、动程序设备驱动程序 设备驱动程序设备驱动程序又称为又称为设备处理程序设备处理程序, ,是是I/OI/O进程与设备控制进程与设备控制器之间的通信程序。器之间的通信程序。1.1.设备驱动程序功能设备驱动程序功能(1)接收由接收由I/O进程发来的命令和参数进程发来的命令和参数, 并将命令中的抽象并将命令中的抽象要求转换为具体要求。要求转换为具体要求。(2)检查用户检查用户I/O请求的合法性请求的合法性,了解了解I/O设备的状态设备的状态,传递有传递有关参数关参数,设置设备的工作设置设备的工作方式。方式。(3)发出发出I/O命令并检查设备状态。命令并检查设备状态。(4)及时响应由控制器或通道发来的中断