您好,欢迎访问三七文档
第7章设备管理7.1设备管理的概念7.2I/O控制方式7.3中断技术7.4缓冲技术7.5设备分配7.6I/O软件7.7磁盘调度和管理7.8Linux的设备管理7.1设备管理的概念设备管理是现代操作系统的一个重要功能,它负责管理和协调计算机的各种设备来为用户提供服务。设备管理是操作系统中最复杂和琐碎的部分,主要是因为计算机设备不仅种类繁多,而且它们的特性和操作方式往往相差甚大。如何屏蔽设备之间的差异,给用户提供一个透明的访问接口,提高设备的利用率,是设备管理应该解决的问题。7.1.1设备的分类1.按设备的使用特性分类(1)存储设备。也称外存或辅助存储器,是计算机系统用来存储信息的主要设备。该类设备存取速度较内存慢,但容量比内存大得多,价格也便宜。(2)输入输出设备。又可具体分为输入设备、输出设备和交互式设备。输入设备用来接收外部信息,如键盘、鼠标、扫描仪、视频摄像、各类传感器等。输出设备用于将计算机加工处理后的信息送向外部设备,如打印机、绘图仪、显示器、数字视频显示设备、音响输出设备等。交互式设备则是集成上述两类设备,利用输入设备接收用户命令信息,并通过输出设备同步显示用户命令以及命令执行的结果。7.1.1设备的分类2.按传输速率分类(1)低速设备。这是指其传输速率仅为每秒钟几个字节至数百个字节的一类设备。属于典型的低速设备有键盘、鼠标等。(2)中速设备。这是指其传输速率在每秒钟数千个字节至数十万个字节的一类设备。典型的中速设备有行式打印机、激光打印机等。(3)高速设备。这是指其传输速率在数百个字节至千兆字节的一类设备。典型的高速设备有磁带机、磁盘机、光盘机等。7.1.1设备的分类3.按信息交换的单位分类(1)块设备。这类设备用于存储信息。由于信息的存取总是以数据块为单位,故而得名。它属于有结构设备。典型的块设备是磁盘,每个盘块的大小为512B~4KB。磁盘设备的基本特性是其传输速率较高,通常每秒钟为几兆位;另一特征是可寻址,即对它可随机地读/写任一块;此外,磁盘设备的I/O常采用DMA方式。(2)字符设备。这类设备常用于数据的输入和输出。其基本单位是字符,故称为字符设备。它属于无结构类型。字符设备的种类繁多,如交互式终端、打印机等。字符设备的基本特征是其传输速率较低,通常为几个字节至数千字节;另一特征是不可寻址,即输入/输出时不能指定数据的输入源地址及输出的目标地址;此外,字符设备在输入/输出时,常采用中断驱动方式。7.1.1设备的分类4.按设备的共享属性分类(1)独占设备。这是指在一段时间内只允许一个用户(进程)访问的设备,属于临界资源。因此,对多个并发进程而言,应互斥地访问这类设备。系统一旦把这类设备分配给某进程后,便由该进程独占,直到使用完释放。需要注意的是,独占设备的分配有可能引起进程死锁。(2)共享设备。这是指在一段时间内允许多个用户(进程)同时访问的设备。当然,在每一时刻,该类设备仍然只允许一个进程访问。共享设备必须是可寻址的和可随机访问的设备。典型的共享设备是磁盘。共享设备不仅可获得良好的设备利用率,而且也是实现文件系统和数据库系统的物质基础。(3)虚拟设备。这是指通过虚拟技术将一台独占设备变换为若干台逻辑设备,供多个用户(进程)同时使用。7.1.1设备的分类5.按设备的从属关系分类(1)系统设备。系统设备是指那些在操作系统生成时就已经配置好的各种标准设备。例如,键盘、打印机以及文件存储设备等。(2)用户设备。用户设备是指那些在系统生成时没有配置,而是由用户自己安装配置后由操作系统统一管理的设备。例如,网络系统中的各种网卡、实时系统中的A/D、D/A转换器、图像处理系统的图像设备等。7.1.2设备管理的任务和功能设备管理的主要任务包括:(1)响应用户进程提出的I/O请求,选择和分配I/O设备进行数据传输操作。(2)控制I/O设备和CPU(或内存)之间进行数据交换,提高设备和设备之间、CPU和设备之间以及进程和进程之间的并行操作度,提高CPU与I/O设备的利用率,提高I/O设备的速度。(3)方便用户使用设备,为用户提供友好的透明接口,把用户和设备硬件特性分开,使得用户在编写应用程序时不必涉及具体的设备,系统按照用户的要求控制设备工作。另外,这个接口还为新增加的用户设备提供一个和系统核心相连接的入口,以便用户开发新的设备管理程序。7.1.2设备管理的任务和功能设备管理应具有下述功能:设备分配设备分配的基本任务是根据用户进程的I/O请求及系统当前的I/O资源情况,按照某种设备分配算法为用户进程分配所需的设备。缓冲管理为缓和CPU和I/O设备间速度不匹配的矛盾,提高CPU与I/O设备之间以及各设备之间的并行性,现代操作系统都引入了缓冲技术。通常在内存中开辟若干区域作为用户进程与外部设备间数据传输的缓冲区,用于缓存输入/输出的数据。设备驱动设备驱动是指对物理设备进行控制,实现真正的I/O操作。设备驱动的基本任务是实现CPU与设备控制器之间的通信,即接收由CPU发来的I/O命令,如读/写命令,转换为具体要求后,传给设备控制器,启动设备去执行;同时也将由设备控制器发来的信号传送给CPU,如设备是否完好、是否准备就绪、I/O操作是否已完成等,并进行相应的处理。7.1.3I/O系统结构通常把I/O设备及其接口线路、控制部件、通道和管理软件称为I/O系统。不同的计算机系统,其I/O系统结构差异很大,大多数计算机系统都采用基于总线的I/O结构。典型的PC总线结构如下图。总线(Bus)是用于多个部件相互连接、传递信息的公共通道,物理上就是一组共用导线。目前,PC机上常用的公共系统总线是PCI(PeripheralComponenentInterconnect,外部设备互联)总线结构,它把处理器、内存与高速设备连接起来。而扩展总线(ExpansionBus)则用于连接串行、并行端口和相对较慢的设备,如键盘。7.1.4设备控制器设备控制器是计算机中的一个实体,其主要职责是控制一个或多个I/O设备,以实现I/O设备和计算机之间的数据交换。I/O设备并不是直接与CPU进行通信,而是与设备控制器通信。设备控制器是CPU和I/O设备之间的接口,它接收从CPU发来的命令,然后去控制I/O设备工作,从而使得CPU从繁杂的设备控制事物中解脱出来,提高CPU与I/O设备的并行工作能力。设备控制器是一个可编址的设备,当它仅控制一个设备时,它只有一个唯一的设备地址;若设备控制器连接多个设备时,则应该含有多个设备地址,并使每一个设备地址对应一个设备。设备控制器有两个方向的接口:一个是与主机之间的系统接口;另一个是与设备驱动电路之间的低层次接口,用于根据由主机发来的命令控制设备动作。7.1.4设备控制器1.设备控制器的基本功能(1)接收和识别命令(2)地址识别(3)数据交换和转换(4)数据缓冲(5)标识和报告设备的状态(6)差错控制7.1.4设备控制器2.设备控制器的组成(1)设备控制器与处理器的接口该接口用于实现CPU与设备控制器之间的通信。共有三类信号线:数据线、地址线和控制线。数据线通常与三类寄存器相连接。第一类是数据寄存器,在控制器中可以有一个或多个数据寄存器,它用于存放从设备送来的数据或从CPU和内存送来的数据;第二类是控制寄存器,用于存放从CPU送来的控制信息;第三类是状态寄存器,用于存放设备的状态信息。(2)设备控制器与设备的接口在一个设备控制器上,可以连接一个或多个设备。因此,在控制器中便有一个或多个设备接口,一个接口连接一台设备。在每个接口中都存在数据、控制和状态三种类型的信号。控制器中的I/O逻辑根据处理器发来的地址信号去选择相应的设备接口。7.1.4设备控制器(3)I/O逻辑设备控制器中的I/O逻辑用于实现对设备的控制。它通过一组控制线与处理器交互,I/O逻辑接收处理器发送的控制命令并对其进行译码。当CPU要启动一个设备时,一方面将启动命令发送给控制器;另一方面又同时通过地址线把地址发送给控制器,由I/O逻辑对收到的地址进行译码,再根据所译出的命令对所选择设备进行控制。(4)寄存器为了实现与CPU通信,每个控制器都要有几个寄存器,即控制寄存器、状态寄存器和数据寄存器。7.1.4设备控制器3.CPU与控制器的通信方式一种方式是为每个控制寄存器分配一个I/O端口号(8位或16位整数),使用专门的I/O指令,CPU可以读写控制寄存器,分配给系统中所有端口的地址空间是完全独立的,与内存的地址空间没有关系;另一种方式是把所有控制寄存器都映像到存储器空间,这种模式称做存储器映像I/O(Memory_MappedI/O)。在该方式中,分配给系统的所有端口的地址空间与内存的地址空间统一编址,主机把I/O端口看作一个存储单元,对I/O的读写操作等同于对存储器的操作。此外,还有混合方式,既有存储器映像I/O,又采用单独的I/O端口。例如,个人计算机使用I/O指令来控制一些设备,而使用内存映像I/O指令来控制其它设备。7.2I/O控制方式I/O控制方式的发展始终贯穿着这样一个宗旨,即提高中央处理器和外围设备之间的并行工作能力,尽量减少CPU对I/O控制的干预,把CPU从繁杂的I/O控制事务中解脱出来,以便更多地去执行数据处理任务。程序控制方式中断方式DMA方式通道控制方式7.2.1程序直接控制方式CPU对I/O设备的控制采取程序直接控制方式,又称轮询方式,就是由用户进程来直接控制内存或CPU和外围设备之间的信息传送。接收到Start命令外围设备做接收或发送数据准备准备完毕?标志触发器置“Done”等待CPU下条命令数据传输结束?是否是否发出Start命令CPU设备标志触发器为“Done”?等待开始数据传送执行下条指令7.2.1程序直接控制方式程序直接控制方式控制简单,不需要多少硬件支持,但是,这种方式存在如下缺点:(1)CPU和外围设备只能串行工作。由于CPU的处理速度远远高于外围设备的数据传送和处理速度,所以,CPU的大量时间都处于等待和空闲状态。这使得CPU的利用率大大降低。(2)CPU在一段时间内只能和一台外围设备交换数据信息,从而不能实现设备之间的并行工作。(3)由于程序直接控制方式依靠测试设备标志触发器的状态位来控制数据传送,因此无法发现和处理由于设备或其它硬件产生的错误。所认,程序直接控制方式只适用于那些CPU执行速度较慢,而且外围设备较少的系统。7.2.2中断方式(1)首先,进程需要数据时,通过CPU发出“Start”指令启动外围设备准备数据。该指令同时还将控制状态寄存器中的中断允许位打开,以便在需要时,中断程序可以被调用执行。(2)在进程发出指令启动设备之后,该进程放弃CPU,等待输入完成。从而,进程调度程序调度其它就绪的进程占用CPU。(3)当数据进入数据缓冲寄存器,I/O控制器向CPU发出中断信号。CPU在接收到中断信号之后,转向预先设计好的中断处理程序,从数据缓冲寄存器中取出数据并送入内存。(4)中断处理程序完成后,CPU继续执行被中断进程。如果数据传送没有完成,设备继续向数据缓冲寄存器传送数据,缓冲寄存器满之后,再向CPU发出中断处理请求。接收到CPU的Start命令外围设备准备数据并将其置入缓冲寄存器缓冲寄存器满吗?控制器发中断信号是否向设备发Start指令将中断允许位置1CPU收到中断信号了吗?中断处理被中断进程执行调度程序调度其它进程其它进程执行是否7.2.2中断方式中断方式CPU的利用率大大提高而且能支持多道程序和设备的并行操作,但仍然存在许多问题。首先,在I/O控制器的数据缓冲寄存器装满数据之后将会发生中断,而且数据缓冲寄存器通常较小,因此,在一次数据传送过程中,发生中断次数较多,这将耗去大量的CPU处理时间。现代计算机系统通常配置有各种各样的外围设备。如果这些设备通过中断处理方式进行并行操作,则由于中断次数的急剧增加将造成CPU无法响应中断和出现数据丢失现象
本文标题:设备管理_2
链接地址:https://www.777doc.com/doc-1316305 .html