《操作系统设备管理.pptx》由会员分享,可在线阅读,更多相关《操作系统设备管理.pptx(85页珍藏版)》请在第壹文秘上搜索。
1、1第9章 设备管理9.1 引言引言9.2 数据传送控制方式数据传送控制方式(略)(略)9.3 中断技术中断技术(略)(略)9.4 缓冲技术缓冲技术9.5 设备分配设备分配9.6 I/O进程控制进程控制(略)(略)9.7 设备驱动程序设备驱动程序(简)(简)9.8 磁盘调度磁盘调度2 设备管理是操作系统的重要组成部分之一。本章主要讨论设备管理的基本概念,包括中断、缓冲、设备分配和控制等。9.1 引 言9.1.1 设备的类别设备的类别 在计算机系统中,除了CPU和内存之外,其他的大部分硬设备称为外部设备。它包括常用的输入输出设备、外存设备以及终端设备等。本节先从系统管理的角度将各种设备进行简单的分
2、类,然后再介绍设备管理的主要功能与任务。 早期的计算机系统由于速度慢、应用面窄,外部设备主要以纸带、卡片等作为输入输出介质,相应的设备管理程序也比较简单。3 由于个人计算机、工作站以及计算机网络系统等的发展,外部设备开始走向多样化、复杂化和智能化。再者,除了硬件设备之外,以某种硬件设备为基础的虚拟设备和仿真设备技术也得到了广泛应用。例如,虚终端技术和仿真终端技术等。实际上,近年来最为流行的窗口系统中的X-WINDOW等都是作为一种设备和操作系统相连的。这使得设备管理变得越来越复杂化。 首先,我们介绍设备的分类。按设备的使用特性分,可分为存储设备、输入输出设备、终端设备以及脱机设备等,如图9.1
3、所示。4图图9.1 按使用特性对外部设备的分类按使用特性对外部设备的分类5 另外,按设备的从属关系,可把设备划分为系统设备和用户设备。系统设备是指那些在操作系统生成时就已配置好的各种标准设备。例如,键盘、打印机以及文件存储设备等。而用户设备则是那些在系统生成时没有配置,而由用户自己安装配置后由操作系统统一管理的设备。例如,网络系统中的各种网卡、实时系统中的A/D、D/A变换器、图像处理系统的图像设备等。 对设备分类的目的在于简化设备管理程序。由于设备管理程序是和硬件打交道的,因此,不同的设备硬件对应于不同的管理程序。不过,对于同类设备来说,由于设备的硬件特性十分相似,从而可以利用相同的管理程序
4、或只需做很少的修改即可。6 除了上述分类方法之外,在有的系统中还按信息组织方式来划分设备。例如,UNIX系统就把外部设备划分为字符设备和块设备。键盘、终端、打印机等以字符为单位组织和处理信息的设备被称为字符设备;而磁盘、磁带等以字符块为单位组织和处理信息的设备被称为块设备。79.1.2 设备管理的功能和任务设备管理的功能和任务 设备管理是对计算机输入输出系统的管理,是操作系统中设备管理是对计算机输入输出系统的管理,是操作系统中最具多样性和复杂性的部分。其主要任务是:最具多样性和复杂性的部分。其主要任务是:(1)选择和分配选择和分配输入输出设备以进行数据传输操作;输入输出设备以进行数据传输操作;
5、(2)控制控制输入输出设备和输入输出设备和CPU(或内存)之间交换数据;(或内存)之间交换数据;(3)为用户)为用户提供提供友好的友好的透明接口透明接口,把用户和设备硬件特性分,把用户和设备硬件特性分开,使得用户在编制应用程序时不必涉及具体设备,系统按开,使得用户在编制应用程序时不必涉及具体设备,系统按用户要求控制设备工作。另外,这个接口还为新增加的用户用户要求控制设备工作。另外,这个接口还为新增加的用户设备提供一个和系统核心相连接的入口,以便用户开发新的设备提供一个和系统核心相连接的入口,以便用户开发新的设备管理程序;设备管理程序;设备管理的功能和任务设备管理的功能和任务n(4)提高设备和设
6、备之间、)提高设备和设备之间、CPU和设备之间,以及和设备之间,以及进程和进程之间的进程和进程之间的并行操作度并行操作度,以使操作系统获得最,以使操作系统获得最佳效率。佳效率。89 为了完成上述主要任务,设备管理程序一般要提供下为了完成上述主要任务,设备管理程序一般要提供下述功能:述功能:(1)提供和进程管理系统的接口提供和进程管理系统的接口。当进程要求设备资源。当进程要求设备资源时,该接口将进程要求转达给设备管理程序;时,该接口将进程要求转达给设备管理程序;(2)进行设备分配。进行设备分配。按照设备类型和相应的分配算法把按照设备类型和相应的分配算法把设备和其他有关的硬件分配给请求该设备的进程
7、,并把未设备和其他有关的硬件分配给请求该设备的进程,并把未分配到所请求设备或其他有关硬件的进程放入等待队列;分配到所请求设备或其他有关硬件的进程放入等待队列;10(3)实现设备和设备、设备和实现设备和设备、设备和CPU等之间的并行操作。等之间的并行操作。这需这需要有相应的硬件支持。除了装有控制状态寄存器、数据缓冲要有相应的硬件支持。除了装有控制状态寄存器、数据缓冲寄存器等的控制器之外,对应于不同的输入输出(寄存器等的控制器之外,对应于不同的输入输出(I/O)控)控制方式,还需要有制方式,还需要有DMA通道等硬件。从而,在设备分配程序通道等硬件。从而,在设备分配程序根据进程要求分配了设备、控制器
8、和通道(或根据进程要求分配了设备、控制器和通道(或DMA)等硬件)等硬件之后,通道(或之后,通道(或DMA)将自动完成设备和内存之间的数据传)将自动完成设备和内存之间的数据传送工作,从而完成并行操作的任务。在没有通道(或送工作,从而完成并行操作的任务。在没有通道(或DMA)的系统里,则由设备管理程序利用中断技术来完成上述并行的系统里,则由设备管理程序利用中断技术来完成上述并行操作;操作;11(4)进行缓冲区管理。进行缓冲区管理。一般来说,一般来说,CPU的执行速度和访的执行速度和访问内存速度都比较高,而外部设备的数据流通速度则低得问内存速度都比较高,而外部设备的数据流通速度则低得多(例如键盘)
9、,为了减少外部设备和内存与多(例如键盘),为了减少外部设备和内存与CPU之间之间的数据速度不匹配的问题,系统中一般设有缓冲区(器)的数据速度不匹配的问题,系统中一般设有缓冲区(器)来暂放数据。设备管理程序负责进行缓冲区分配、释放及来暂放数据。设备管理程序负责进行缓冲区分配、释放及有关的管理工作。有关的管理工作。 下面,首先介绍各种输入输出的控制方式,然后再介下面,首先介绍各种输入输出的控制方式,然后再介绍缓冲区管理、中断、陷入以及软中断等基本概念。在此绍缓冲区管理、中断、陷入以及软中断等基本概念。在此基础上,再介绍设备分配原则及有关分配算法,最后介绍基础上,再介绍设备分配原则及有关分配算法,最
10、后介绍I/O进程的概念及设备驱动过程。进程的概念及设备驱动过程。12设备控制器设备控制器nI/O设备一般由设备一般由机械机械和和电子电子两部分组成,两部分组成,通常将这两部分分开处理,以提供更加通常将这两部分分开处理,以提供更加模块化、更加通用的设计。模块化、更加通用的设计。n电子部分称作电子部分称作设备控制器或适配器设备控制器或适配器(Device Controller或或Adapter)。n机械部分就是设备本身,控制器通过电机械部分就是设备本身,控制器通过电缆与设备内部相连。缆与设备内部相连。1314设备控制器设备控制器设备控制器的主要作用有:设备控制器的主要作用有:n 接收接收和识别和识
11、别CPU发来的多种不同发来的多种不同命令命令;n 实现实现CPU与控制器之间、控制器和设备之间与控制器之间、控制器和设备之间的的数据交换数据交换;n 记录记录和报告设备的和报告设备的状态状态。n 地址识别地址识别。识别控制器控制的每个设备的地址。识别控制器控制的每个设备的地址。15设备控制器设备控制器n每个每个 I/O 设备通过设备通过设备控制器设备控制器 与计算机与计算机的的数据总线数据总线和和地址总线地址总线相连接。相连接。n设备控制器是用于设备控制器是用于操作操作端口、总线或设备端口、总线或设备的一组电子器件。的一组电子器件。n某些设备(如磁盘设备)有内置的控制器某些设备(如磁盘设备)有
12、内置的控制器1617设备控制器设备控制器处理器如何向控制器发送命令和数据以完成处理器如何向控制器发送命令和数据以完成 I/O 传输呢?传输呢?n设备控制器有一个或多个用于数据和控制信号的设备控制器有一个或多个用于数据和控制信号的寄存寄存器器。n设备控制器可能包含有设备控制器可能包含有数据寄存器数据寄存器、状态寄存器状态寄存器、控控制寄存器制寄存器和存储器(这部分存储器称为硬件和存储器(这部分存储器称为硬件缓冲区缓冲区)。)。n处理器通过处理器通过读写读写这些寄存器的位组合来与设备控制器这些寄存器的位组合来与设备控制器通信。通信。18设备控制器中的寄存器设备控制器中的寄存器n状态状态寄存器:保存
13、是否忙、任务是否完成、是否出寄存器:保存是否忙、任务是否完成、是否出错等信息。错等信息。n控制控制寄存器寄存器n向设备发送命令或改变设备状态。向设备发送命令或改变设备状态。n数据数据寄存器(输入寄存器(输入/出)出)n数据被写入该设备数据寄存器,或数据被写入该设备数据寄存器,或n从该设备数据寄存器读出数据供处理器使用。从该设备数据寄存器读出数据供处理器使用。nBuffer n数据从该设备读出后、处理器对它处理之前临数据从该设备读出后、处理器对它处理之前临时存放数据,或临时存放正等待写到该设备的时存放数据,或临时存放正等待写到该设备的数据。数据。19设备控制器中的寄存器设备控制器中的寄存器控制寄
14、存器数据寄存器 0数据寄存器 1数据寄存器 n-1状态寄存器20内存映射内存映射 I/On传统上,传统上,CPU 用用特殊的特殊的 I/O 指令指令 和单独的和单独的 I/O 总线对每个设备读总线对每个设备读/写信息。写信息。n例如,一个读例如,一个读/写命令必须指定设备地址写命令必须指定设备地址nIN AX,80Hn用用内存映射内存映射 I/O 时,时,CPU 使用使用相同的指令和相同的指令和总线总线对内存和所有的输入对内存和所有的输入/出设备进行通信。出设备进行通信。21内存映射内存映射 I/OnI/O 设备被看作设备被看作是主存映射图中的某个是主存映射图中的某个内存位置内存位置。n没有专
15、门的设备地址没有专门的设备地址n对每个设备寄存器有标准的对每个设备寄存器有标准的内存地址内存地址。n处理器通过处理器通过标准数据传输指令标准数据传输指令来完成对设备控制器来完成对设备控制器的读写。的读写。思考:我们学习过这样的方式吗?思考:我们学习过这样的方式吗?22内存映射内存映射 I/ORAMdevicethreedevicetwodeviceoneRAMdevicethreedevicetwodeviceone设备地址内存地址内存地址23内存映射内存映射 I/On个人计算机(个人计算机(PC)使用使用特殊的特殊的 I/O 指令指令来控制来控制一些设备,而使用一些设备,而使用内存映射内存映
16、射 I/O 指令指令来控制其他来控制其他设备(如,图形控制器(视频卡)。设备(如,图形控制器(视频卡)。n图形控制器有一个较大的图形控制器有一个较大的内存映射区域内存映射区域以保存以保存屏幕内容。屏幕内容。n处理器通过对图形控制器的内存映射区写数据处理器通过对图形控制器的内存映射区写数据来向屏幕输出(例如一幅图片)。来向屏幕输出(例如一幅图片)。24显卡影子内存设置显卡影子内存设置259.2 数据传送控制方式 设备管理的主要任务之一是控制设备和内存或CPU之间的数据传送,本节介绍常用数据传送控制方式。选择和衡量控制方式有如下几条原则:(1)数据传送速度足够高,能满足用户的需要但又不丢失数据;(2)系统开销小,所需的处理控制程序少;(3)能充分发挥硬件资源的能力,使得I/O设备尽量忙,而CPU等待时间少。为了控制I/O设备和内存之间的数据交换,每台外围设备都按一定规律编码。而且,设备和内存与CPU之间有相应的硬件接口支持同步控制、设备选择以及中断控制等。因此,假定本节的数据传送控制方式都是基于这些硬件基础的,从而不再讨论有关硬件部分。26 外围设备和内存之间的常用数据传送控制方式有4种。