1、第第5章章 设备管理设备管理 5.1 设备管理概述设备管理概述 5.2 数据传送控制方式数据传送控制方式 5.3 I/O应用接口应用接口5.4 缓冲技术与高速缓存缓冲技术与高速缓存 5.5 设备分配技术设备分配技术 5.6 I/O进程控制进程控制 开开 始始本章学习目标本章学习目标 l l 数据传送的数据传送的4种方式:程序直接控制方式、种方式:程序直接控制方式、中断控制方式、中断控制方式、DMA方式及通道控制方式方式及通道控制方式l l 缓冲技术的概念及缓冲技术的概念及4种常见的缓冲技术:单种常见的缓冲技术:单缓冲、双缓冲、环形缓冲及缓冲池缓冲、双缓冲、环形缓冲及缓冲池l l 设备分配的概念
2、及设备分配的概念及3种设备分配技术:独享种设备分配技术:独享分配、共享分配及虚拟分配分配、共享分配及虚拟分配l l I/O进程控制进程控制返回本章首页返回本章首页5.1 概述概述 5.1.1 设备类型设备类型 5.1.2 设备管理的任务和功能设备管理的任务和功能5.1.3 设备控制块(设备控制块(DCB)返回本章首页返回本章首页5.1.1 设备类型设备类型 1按操作特性分类按操作特性分类按这种方法可把外部设备分为存储设备和输入按这种方法可把外部设备分为存储设备和输入/输出(输出(I/O)设备。设备。2按传输的信息特点分类按传输的信息特点分类按这种方法可将外部设备分为字符设备和块设备。按这种方法
3、可将外部设备分为字符设备和块设备。3按系统和用户的观点分类按系统和用户的观点分类按这种观点可将外部设备分为系统设备和用户设按这种观点可将外部设备分为系统设备和用户设备两种。备两种。返回本节返回本节5.1.2 设备管理的任务和功能设备管理的任务和功能1设备管理的任务设备管理的任务提高设备的利用率设备独立性字符编码的独立性设备处理的一致性下一页下一页2设备管理的功能设备管理的功能(1)监视系统中所有设备的状态。)监视系统中所有设备的状态。(2)设备分配。)设备分配。(3)设备控制是设备管理的另一功能,它)设备控制是设备管理的另一功能,它包括设备驱动和设备中断处理,具体的工包括设备驱动和设备中断处理
4、,具体的工作过程是在设备处理的程序中发出驱动某作过程是在设备处理的程序中发出驱动某设备工作的设备工作的I/O指令后,再执行相应的中断指令后,再执行相应的中断处理。处理。返回本节返回本节 5.1.3 设备控制块(设备控制块(DCB)1DCB结构结构(1)设备名。它是设备的系统名,即设备的物)设备名。它是设备的系统名,即设备的物理名。理名。(2)设备属性。它描述设备的特性和类型。)设备属性。它描述设备的特性和类型。(3)设备状态。它描述设备现行的状态。)设备状态。它描述设备现行的状态。(4)设备的)设备的I/O总线地址。它反映现行设备在总线地址。它反映现行设备在I/O总线上的具体地址。总线上的具体
5、地址。(5)等待列指针。它存放要求使用该设备的队)等待列指针。它存放要求使用该设备的队列的首指针。列的首指针。下一页下一页下一页下一页2设备转换表对设备的请求最终要转换成对设备的对设备的请求最终要转换成对设备的I/O操操作,系统可以通过操作码检索作,系统可以通过操作码检索“设备转换设备转换表表”找到相应的设备地址。该转换表包含找到相应的设备地址。该转换表包含设备特定的设备特定的I/O例行程序地址,不具备相应例行程序地址,不具备相应操作的设备在其例行程序地址上要填操作的设备在其例行程序地址上要填“-1”。返回本节返回本节5.2 数据传送控制方式数据传送控制方式 5.2.1 程序直接控制方式程序直
6、接控制方式5.2.2 中断控制方式中断控制方式 5.2.3 DMA方式方式 5.2.4 通道控制方式通道控制方式 返回本章首页返回本章首页5.2.1 程序直接控制方式程序直接控制方式程序直接控制方式是指由程序直接控制内程序直接控制方式是指由程序直接控制内存或存或CPU和外围设备之间进行信息传送的和外围设备之间进行信息传送的方式。通常又称为方式。通常又称为“忙忙等等”方式或循环方式或循环测试方式。测试方式。在数据传送过程中,必不可少的一个硬件在数据传送过程中,必不可少的一个硬件设备是设备是I/O控制器,它是操作系统软件和硬控制器,它是操作系统软件和硬件设备之间的接口,它接收件设备之间的接口,它接
7、收CPU的命令,的命令,并控制并控制I/O设备进行实际的操作。设备进行实际的操作。下一页下一页下面讲述程序直接控制方式的工作过程。由于数下面讲述程序直接控制方式的工作过程。由于数据传送过程中输入和输出的情况比较类似,下面据传送过程中输入和输出的情况比较类似,下面只给出输出数据时的工作过程。只给出输出数据时的工作过程。(1)把一个启动位为)把一个启动位为“1”的控制字写入该设备的控制字写入该设备的控制状态寄存器。的控制状态寄存器。(2)将需输出数据送到数据缓冲寄存器。)将需输出数据送到数据缓冲寄存器。(3)测试控制状态寄存中的)测试控制状态寄存中的“完成位完成位”,若为,若为0,转(转(2),否
8、则转(),否则转(4)。)。(4)输出设备将数据缓冲寄存器中的数据取走)输出设备将数据缓冲寄存器中的数据取走进行实际的输出。进行实际的输出。返回本节返回本节 5.2.2 中断控制方式中断控制方式(1)进程需要数据时,将允许启动和允许中断的控制字写入设备控)进程需要数据时,将允许启动和允许中断的控制字写入设备控制状态寄存器中,启动该设备进行输入操作。制状态寄存器中,启动该设备进行输入操作。(2)该进程放弃处理机,等待输入的完成。操作系统进程调度程序)该进程放弃处理机,等待输入的完成。操作系统进程调度程序调度其他就绪进程占用处理机。调度其他就绪进程占用处理机。(3)当输入完成时,输入设备通过中断请
9、求线向)当输入完成时,输入设备通过中断请求线向CPU发出中断请求发出中断请求信号。信号。CPU在接收到中断信号之后,转向中断处理程序。在接收到中断信号之后,转向中断处理程序。(4)中断处理程序首先保护现场,然后把输入缓冲寄存器中的数据)中断处理程序首先保护现场,然后把输入缓冲寄存器中的数据传送到某一特定单元中去,同时将等待输入完成的那个进程唤醒,传送到某一特定单元中去,同时将等待输入完成的那个进程唤醒,进入就绪状态,最后恢复现场,并返回到被中断的进程继续执行。进入就绪状态,最后恢复现场,并返回到被中断的进程继续执行。(5)在以后的某一时刻,操作系统进程调度程序选中提出的请求并)在以后的某一时刻
10、,操作系统进程调度程序选中提出的请求并得到获取数据的进程,该进程从约定的内存特定单元中取出数据继得到获取数据的进程,该进程从约定的内存特定单元中取出数据继续工作。续工作。返回本节返回本节5.2.3 DMA方式方式 DMA方式又称直接存储器访问(方式又称直接存储器访问(Direct Memory Access)方式。其基本思想是在外设和主存之间开辟直接的数据方式。其基本思想是在外设和主存之间开辟直接的数据交换通路。交换通路。DMA方式的特点是:方式的特点是:(1)数据传送的基本单位是数据块。)数据传送的基本单位是数据块。(2)所传送的数据是从设备送内存,或者相反。)所传送的数据是从设备送内存,或
11、者相反。(3)仅在传送一个或多个数据块的开始和结束时,才需)仅在传送一个或多个数据块的开始和结束时,才需中断中断CPU,请求干预,整块数据的传送是在请求干预,整块数据的传送是在DMA控制器控制器控制下完成的。控制下完成的。下一页下一页图图5.1 DMA控制器与其他部件的关系控制器与其他部件的关系返回本节返回本节5.2.4 通道控制方式通道控制方式 通道控制方式与DMA方式相类似,也是一种内存和设备直接进行数据交换的方式。与DMA方式不同的是,在通道控制方式中,数据传送方向存放数据的内存始址及传送的数据块长度均由一个专门负责输入/输出的硬件通道来控制。另外,DMA方式每台设备至少需要一个DMA控
12、制器,而通道控制方式中,一个通道可控制多台设备与内存进行数据交换。下一页下一页每条通道指令应包含以下的内容:每条通道指令应包含以下的内容:(1)操作码:它规定指令所执行的操作,如读、)操作码:它规定指令所执行的操作,如读、写等。写等。(2)内存地址:标明数据传送时内存的首址。)内存地址:标明数据传送时内存的首址。(3)计数:表示传送数据的字节数。)计数:表示传送数据的字节数。(4)通道程序结束位)通道程序结束位R0,表示通道程序是否结表示通道程序是否结束。束。(5)记录结束标志)记录结束标志R1,表示所处理的记录是否表示所处理的记录是否结束。结束。下一页下一页下面给出一个由三条通道指令所构成的
13、简单下面给出一个由三条通道指令所构成的简单程序。程序。该程序是将内存中不同地址的数据写成多个该程序是将内存中不同地址的数据写成多个记录。记录。操作操作R0R1计数计数内存地址内存地址WRITE00801420WRITE011702120下一页下一页图图5.2 通道方式的数据传送结构通道方式的数据传送结构下一页下一页通道控制方式的数据过程如下:通道控制方式的数据过程如下:(1)当进程要求设备输入时,)当进程要求设备输入时,CPU发指令指明发指令指明I/O操作、设备操作、设备号和对应通道。号和对应通道。(2)对应通道收到)对应通道收到CPU发来的启动指令后,读出内存中的通发来的启动指令后,读出内存
14、中的通道指令程序、设置对应设备的控制状态寄存器的初值。道指令程序、设置对应设备的控制状态寄存器的初值。(3)设备按通道指令的要求,把数据送往内存指定区域。)设备按通道指令的要求,把数据送往内存指定区域。(4)若传送结束,)若传送结束,I/O控制器通过中断请求线发中断信号请求控制器通过中断请求线发中断信号请求CPU做中断处理。做中断处理。(5)中断处理结束后,)中断处理结束后,CPU返回到被中断进程处继续执行。返回到被中断进程处继续执行。(6)当进程调度程序选中这个已得到数据的进程后,才能进)当进程调度程序选中这个已得到数据的进程后,才能进行加工处理。行加工处理。返回本节返回本节5.3 I/O应
15、用接口应用接口内核内核子系统/OSC SI设备驱动器键盘设备驱动器鼠标设备驱动器。PC I设备驱动器软盘驱动器A TA PI设备驱动SC SI设备控制器键盘设备器控制鼠标设备器控制。PC I设备器控制软盘器控制A TA PI设备驱动软件硬件SC SI设备键盘鼠标PC I软盘驱动器A TA PI设备。返回本章首页返回本章首页设备被分成少量的几种传统类型,由此产生的设备访问方式被证明十分有效而被广泛应用。主要的访问方式有:块I/O、字符流I/O、内存映射访问、和网络套接字。1块设备接口2字符流接口3内存映射文件访问4网络套接字5.4 缓冲技术缓冲技术 5.5.4.1 4.1 缓冲的引入缓冲的引入5
16、.5.4.2 4.2 单缓冲单缓冲 5.5.4.3 4.3 双缓冲双缓冲 5.5.4.4 4.4 环形缓冲环形缓冲5.5.4.5 4.5 缓冲池缓冲池5.4.6 5.4.6 高速缓存高速缓存返回本章首页返回本章首页5.4.1 缓冲的引入缓冲的引入引入缓冲的主要目的有以下几点。引入缓冲的主要目的有以下几点。1缓和处理机和缓和处理机和I/O设备间速度不匹配的矛盾设备间速度不匹配的矛盾2减少对减少对CPU的中断次数的中断次数3提高提高CPU和和I/O设备之间的并行性设备之间的并行性返回本节返回本节 5.4.2 单缓冲单缓冲 单缓冲是操作系统提供的最简单单缓冲是操作系统提供的最简单的一种缓冲形式。每当
17、一个进程的一种缓冲形式。每当一个进程发出一个发出一个I/O请求时,操作系统便请求时,操作系统便在主存中为之分配一缓冲区,该在主存中为之分配一缓冲区,该缓冲区用来临时存放输入缓冲区用来临时存放输入/输出数输出数据。据。返回本节返回本节5.4.3 双缓冲双缓冲 解决外设之间并行工作的最简单的办法是设置双解决外设之间并行工作的最简单的办法是设置双缓冲。在双缓冲方案中,具体的做法是为输入或缓冲。在双缓冲方案中,具体的做法是为输入或输出操作设置两个缓冲区输出操作设置两个缓冲区buffer1和和buffer2。双缓冲方式和单缓冲方式相比,虽然双缓冲方式双缓冲方式和单缓冲方式相比,虽然双缓冲方式能进一步提高
18、能进一步提高CPU和外设的并行程度,并能使输和外设的并行程度,并能使输入设备和输出设备并行工作,但是在实际系统中入设备和输出设备并行工作,但是在实际系统中很少采用这一方式,这是因为在计算机系统中的很少采用这一方式,这是因为在计算机系统中的外设很多,又有大量的输入和输出,同时双缓冲外设很多,又有大量的输入和输出,同时双缓冲很难匹配设备和很难匹配设备和CPU的处理速度。因此现代计算的处理速度。因此现代计算机系统中一般使用环形缓冲或缓冲池结构。机系统中一般使用环形缓冲或缓冲池结构。返回本节返回本节5.4.4 环形缓冲环形缓冲环形缓冲技术是在主存中分配一组大小相等的存环形缓冲技术是在主存中分配一组大小
19、相等的存储区作为缓冲区,并将这些缓冲区链接起来,每储区作为缓冲区,并将这些缓冲区链接起来,每个缓冲区中有一个指向下一个缓冲的指针,最后个缓冲区中有一个指向下一个缓冲的指针,最后一个缓冲区的指针指向第一个缓冲区,这样一个缓冲区的指针指向第一个缓冲区,这样n个个缓冲区就成了一个环形。此外,系统中有个缓冲缓冲区就成了一个环形。此外,系统中有个缓冲区链首指针指向第一个缓冲区。环形缓冲区结构区链首指针指向第一个缓冲区。环形缓冲区结构如图如图5.3所示。所示。下一页下一页图图5.3 环形缓冲区结构环形缓冲区结构返回本节返回本节5.4.5 缓冲池缓冲池从自由主存中分配一组缓冲区即可构成缓冲池。1缓冲池的组成
20、缓冲池的组成缓冲池中的缓冲区一般有以下三种类型:空闲缓冲区、装输入数据的缓冲区和装输出数据的缓冲区。2缓冲池的工作方式缓冲池的工作方式缓冲区可以在收容输入、提取输入、收容输出和提取输出四种方式下工作。下一页下一页图图5.4 缓冲区队列缓冲区缓冲区队列缓冲区下一页下一页图图5.5 缓冲池的工作缓冲区缓冲池的工作缓冲区返回本节返回本节5.4.6高速缓存高速缓存(cache)是可以保留数据拷贝的高速内存。高速缓存拷贝的访问速度要比原始数据访问更为高效。缓冲和高速缓存的差别是缓冲只保留数据仅有的一个现存拷贝,而根据定义,高速缓存只是提供了一个驻留在其他地方的数据的一个高速拷贝。5.5 设备分配技术设备
21、分配技术 5.5.1 独享设备的分配独享设备的分配 5.5.2 共享设备的分配共享设备的分配 5.5.3 虚拟设备的分配与虚拟设备的分配与Spooling技术技术 返回本章首页返回本章首页5.5.1 独享设备的分配独享设备的分配 所谓独享设备是指这类设备被分配给一个作业后,所谓独享设备是指这类设备被分配给一个作业后,被这个作业所独占使用,其他的任何作业不能使被这个作业所独占使用,其他的任何作业不能使用,直到该作业释放该设备为止。常见的独享设用,直到该作业释放该设备为止。常见的独享设备有行打印机、光电输入机等。针对独享设备,备有行打印机、光电输入机等。针对独享设备,系统一般采用静态分配方式。即在
22、一个作业执行系统一般采用静态分配方式。即在一个作业执行前,将它所需要使用的这类设备分配给它,当作前,将它所需要使用的这类设备分配给它,当作业结束撤离时,才将分配给它的独享设备收回。业结束撤离时,才将分配给它的独享设备收回。返回本节返回本节5.5.2 共享设备的分配共享设备的分配 所谓共享设备是指允许多个用户共同使用的设备。所谓共享设备是指允许多个用户共同使用的设备。如磁盘、磁鼓等设备,可由多个进程同时进行访如磁盘、磁鼓等设备,可由多个进程同时进行访问。设备的共享有两层含义:一是指对设备介质问。设备的共享有两层含义:一是指对设备介质的共享,如磁盘上的各扇区。二是指对磁盘等驱的共享,如磁盘上的各扇
23、区。二是指对磁盘等驱动器的共享,多个用户访问这些设备上的信息是动器的共享,多个用户访问这些设备上的信息是通过驱动器来实现的。通过驱动器来实现的。对共享设备的分配一般采用动态分配这一方式对共享设备的分配一般采用动态分配这一方式。下一页下一页常见的设备分配方法有两种。1先来先服务先来先服务2优先级高者优先优先级高者优先返回本节返回本节5.5.3 虚拟设备的分配与虚拟设备的分配与Spooling技术技术 1虚拟设备的分配虚拟设备的分配2Spooling技术技术3Spooling系统的组成系统的组成4Spooling系统的特点系统的特点下一页下一页1虚拟设备的分配虚拟设备的分配所谓虚拟设备是指代替独享
24、设备的那部分存储空所谓虚拟设备是指代替独享设备的那部分存储空间及有关的控制结构。对虚拟设备采用的是虚拟间及有关的控制结构。对虚拟设备采用的是虚拟分配,其过程是:当进程中请求独享设备时,系分配,其过程是:当进程中请求独享设备时,系统将共享设备的一部分存储空间分配给它。进程统将共享设备的一部分存储空间分配给它。进程与设备交换信息时,系统把要交换的信息存放在与设备交换信息时,系统把要交换的信息存放在这部分存储空间,在适当的时候对信息作相应的这部分存储空间,在适当的时候对信息作相应的处理。如打印时,把要打印的信息送到某个存储处理。如打印时,把要打印的信息送到某个存储空间中,在打印机空闲时将存储空间上的
25、信息送空间中,在打印机空闲时将存储空间上的信息送到打印机上打印出来。到打印机上打印出来。下一页下一页2Spooling技术技术 通过共享设备来模拟独享设备所采用的操作是假脱机操作,即在联机情况下外部设备同时操作所使用的技术称之为Spooling技术。下一页下一页3Spooling系统的组成系统的组成 输入井和输出井输入井和输出井 输入缓冲区和输出缓冲区输入缓冲区和输出缓冲区 输入进程和输出进程输入进程和输出进程 下一页下一页图图5.6 假脱机系统的组成假脱机系统的组成下一页下一页4Spooling系统的特点系统的特点(1)提高了)提高了I/O速度。从对低速速度。从对低速I/O设备进行的设备进行
26、的I/O操操作变为对输入井或输出井的操作,如同脱机操作一作变为对输入井或输出井的操作,如同脱机操作一样,提高了样,提高了I/O速度,缓和了速度,缓和了CPU与低速与低速I/O设备速设备速度不匹配的矛盾。度不匹配的矛盾。(2)设备并没有分配给任何进程。在输入井或输出)设备并没有分配给任何进程。在输入井或输出井中,分配给进程的是一存储区和建立一张井中,分配给进程的是一存储区和建立一张I/O请求请求表。表。(3)实现了虚拟设备功能。多个进程同时使用一独)实现了虚拟设备功能。多个进程同时使用一独享设备,而对每一进程而言,都认为自己独占这一享设备,而对每一进程而言,都认为自己独占这一设备,不过,该设备是
27、逻辑上的设备。设备,不过,该设备是逻辑上的设备。返回本节返回本节5.6 I/O进程控制进程控制 5.6.1 用户进程的输入输出请求用户进程的输入输出请求 5.6.2 设备驱动程序设备驱动程序 5.6.3 中断处理程序的处理过程中断处理程序的处理过程 5.6.4 I/O调度调度返回本章首页返回本章首页5.6.1 用户进程的输入输出请求用户进程的输入输出请求 用户进程的输入输出请求包括:申请进行用户进程的输入输出请求包括:申请进行I/O操操作的逻辑设备名要求的操作、传送数据的长度和作的逻辑设备名要求的操作、传送数据的长度和起始地址等。典型的用户进程的输入输出请求可起始地址等。典型的用户进程的输入输
28、出请求可通过下述通用的系统调用命令来实现:通过下述通用的系统调用命令来实现:doio(dev,mode,bmount,bddr)其中:其中:dev表示执行表示执行I/O的逻辑设备名;的逻辑设备名;mode表表示操作的类型,如读、写等;示操作的类型,如读、写等;bmount表示传输表示传输的数目;的数目;bddr表示数据传送的地址。表示数据传送的地址。返回本节返回本节5.6.2 设备驱动程序设备驱动程序 1设备驱动程序的功设备驱动程序的功能能 (1)实现逻辑设备到物理设备的转换。)实现逻辑设备到物理设备的转换。(2)发出)发出I/O命令,启动相应的命令,启动相应的I/O设备,完成设备,完成相应的
29、相应的I/O操作。操作。2设备驱动程序的处理过程设备驱动程序的处理过程不同的设备有不同的设备驱动程序,但设备驱动不同的设备有不同的设备驱动程序,但设备驱动程序大都可分为两部分,除有能驱动程序大都可分为两部分,除有能驱动I/O设备工设备工作的驱动程序外,还有设备中断处理作的驱动程序外,还有设备中断处理I/O完成后完成后的工作程序。的工作程序。返回本节返回本节5.6.3 中断处理程序的处理过程中断处理程序的处理过程 中断处理程序的处理过程如下:中断处理程序的处理过程如下:1唤醒被阻塞的驱动程序进程唤醒被阻塞的驱动程序进程 2保护被中断进程的现场保护被中断进程的现场 3分析中断原因、转入相应的设备中
30、分析中断原因、转入相应的设备中断处理程序断处理程序 4进行中断处理进行中断处理 5恢复被中断进程的现场恢复被中断进程的现场返回本节返回本节5.6.4 I/O调度调度 应用程序所发布的系统调用的顺序并不一定总是最好的选择,I/O调度可以改善系统整体性能,能在进程之间公平的共享设备,还可以减少I/O完成所需的平均等待时间。操作系统开发人员是通过为每个设备设置一个请求队列来实现调度的。当应用程序发布了阻塞I/O系统调用时,该请求就被加到相应设备的队列上。I/O调度可以重新调整队列的顺序来改善系统总体效率和应用程序的平均响应时间。通过操作系统的I/O调度,可以使所有的应用程度都得到比较好的服务;也可以给予哪些对延迟很敏感的请求较优先的服务。THANK YOU VERY MUCH!本章到此结束,本章到此结束,谢谢您的光临!谢谢您的光临!返回本章首页返回本章首页结结 束束