您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > OS2013UNIT9设备管理
Unit9设备管理操作系统原理——冯耀霖设备,也称外部设备或I/O设备,是指那些由于原理、结构、数据格式等原因不能与系统总线直接连接的装置。它们也是计算机系统不可或缺的重要组成部分,是计算机主机(CPU+内存)与外部环境进行交互和沟通的通道。显然,I/O设备的存在才使得计算机的存在有了意义,就像一个人,如果没有与人交际和沟通的能力,则这个人通常被认为是痴呆或白痴,即使他实际上是一个天才。同样,一台没有I/O设备的计算机,不管其计算功能多么强大,也是废铁一堆。所以,设备管理也是操作系统的重要组成部分,是操作系统的基本功能之一,而且由于I/O设备的种类繁多,各自的特性和使用方式有很大差异,因此,设备管理软件可以说是操作系统中最繁杂的部分。内容●设备●设备管理概述●设备驱动程序●独立于设备的I/O软件●用户级I/O软件§1设备◆设备分类◆设备的差异性◆设备控制器◆I/O控制方式1.1设备分类可以说,外部设备(简称外设或设备)是计算机系统中最多样、差异最大的组成部分,不同的计算机系统所配置的外设也不同。对外设的分类方法有许多种,主要有以下三种:■基本分类法■功能分类法■管理分类法1.基本分类法它把外设大致分为三类:(1)外存:磁盘、光盘、U盘。(2)人-机通信设备:输入设备有:键盘、鼠标、话筒、光笔、扫描仪、数码相机等;输出设备有:显示器、打印机、绘图仪、扬声器等。(3)机-机通信设备:输入设备有:传感器、仪器仪表等;输出设备有:执行器、仪器仪表等;输入输出设备有:网卡、Modem等。2.功能分类法如果从外设的功能上来分,只有两种:存储设备和通信设备。(1)存储设备即外存,外存的共同特点是都对存储区进行分块管理,也就是说,这些设备在逻辑上可以看成是有若干存储块组成的存储空间,所以传统上也被称作块设备。另外,为了进行大块数据的传输,通常需要在内存为它们创建比较大的数据缓冲区。(2)通信设备除了外存之外的那些外设通常都是通信设备,它们是计算机与外部环境进行交互的主要手段。这些设备的数据量往往不是很大,也不是很集中,因此这类设备在内存中不需要较大的缓冲区,或者就根本没有缓冲区,例如键盘、鼠标等。这些设备传统上也被称作字符设备。3.管理分类法按设备的管理性质可把外设分为两类:(1)系统设备是指操作系统生成时就纳入系统管理范围的各种标准设备(基本配置),操作系统提供有相应的数据结构和设备驱动程序等。如键盘、鼠标、显示器、磁盘驱动器等。(2)用户设备是指系统设备之外的非标准设备,在安装操作系统时没有配置,而由用户根据需要自己安装配置。如扫描仪、绘图仪等。1.2设备的差异性外部设备由于种类不同,制造商不同,技术标准不同,其特性可以有巨大的不同。而这种不同越是明显,对操作系统的设计的挑战就越大。因为屏蔽这些巨大的不同,使得不同的设备相互共存并不是一件容易的事情。其中最为明显的一种差异是数据传输的速度,它涵盖的范围从每秒十个字节到几兆个字节。表9-1给出的是较为常见的一些设备的数据传输率。输入输出设备数据传输速率键盘10B鼠标100B56KModem7KB双向ISDN线路16KB激光打印机100KB扫描仪400KB以太网1.25MBUSB1.5MBIDE磁盘5MB40XCD-ROM6MB表9-1外设的数据传输率输入输出设备数据传输速率快速以太网12.5MBISA总线16.7MBEIDE磁盘16.7MBXGA监视器60MBSONETOC-1278MBSCSIUltra磁盘80MB千兆级以太网125MBUltrium磁带320MBPCI总线528MBSun千兆平面XBbackplane20GB1.3设备控制器从设备的物理结构上来看,外设可能是电器的或机械的,甚至是机、电、光多种技术结合的。但不管其主体是哪种构成,只要它要与电子计算机相连接,那它就必须有电子器件部分。这也就是说,计算机的外设必须由两部分组成:一是外设的执行部分(电气的、机械或机、电、光多种技术结合的),也称设备主体;二是外设与系统的接口部分,而且这部分一定是电子部分,因为计算机系统必须通过这些接口来对外设进行控制和数据传输。设备控制器(也称适配器)是外设与总线之间的一组电子器件。例如,串行口控制器就是一种简单的设备控制器,它是计算机上用来控制串行信号的一块芯片或一个芯片组。再如贴在磁盘侧面的电子线路板也是一种设备控制器——磁盘控制器,CPU就是通过这个控制器来对磁盘进行各种操作的。为使处理器可以像访问内存那样来访问外设,计算机系统必须提供一些互不冲突、能按地址访问、并能以数字信号进行数据传送的设备寄存器。通常每个设备都有三类设备寄存器:状态寄存器、控制寄存器、数据寄存器。这些寄存器都有自己的专有地址,称做端口(port)。这些寄存器的作用分别为:■状态寄存器用来由控制器向处理器提供设备的当前工作状态。例如,设备的当前操作是否执行完毕,数据是否可以被读出或写入,以及各种错误提示等。这些信息通常都用字位(bit)来表示。■控制寄存器主要用来由处理器向控制器传送操作命令。还用来管理外设工作模式,即在设备初始化时或运行时,处理器可以通过向控制寄存器写入命令来改变设备工作模式或设备状态。例如,在串口寄存器中专有一位信息是用来选择通信方式的(全工或半工),还有一位信息是用来设置数据字长的,以及其他用来设置通信波特率等的各个控制位。■数据寄存器(有些设备控制器又进一步设置为输入数据寄存器和输出数据寄存器)则是输入输出数据的暂存寄存器,用来实现设备与处理器之间的数据交换。除了设备寄存器外,有些设备控制器还设有I/O数据缓冲区,以提高与CPU交互数据的效率。块设备控制器都设有I/O数据缓冲区,而有些字符设备控制器也设有I/O数据缓冲区,如视频控制器。所有设备控制器的寄存器和I/O数据缓冲区构成的地址空间称作I/O地址空间(I/O空间),对于I/O地址空间的处理有三种方式:(1)独立编址的I/O空间在这种方式下,I/O空间与内存是完全脱离的。每个设备寄存器被赋予一个I/O端口,这个端口就是一个9位或16位的一个整数,它与内存地址没有任何关系。而正是由于端口与内存地址没有任何关系,或者说端口不是内存地址,操作系统必须使用专门的输入输出特殊指令来进行数据的读写。例如,许多指令集使用INREG,PORT指令用来从设备读数据,而指令OUTPORT,REG则用来将数据写入设备。这种方式的优点是I/O空间与内存分离,输入输出操作不会影响或干扰内存操作,尤其是输入输出软件的可靠性通常不如内存管理软件,这种分离就显得更有价值。但俗话说,成也萧何,败也萧何。这个优点恰恰也是其缺点。由于I/O空间与内存分离,输入输出指令与内存访问指令自然也不相同,输入输出所使用的IN/OUT等指令都是低级的汇编指令。由于高级编程语言不支持这种低级指令,从而形成高级语言屏蔽的一个漏洞。程序员如果想要进行I/O,则必须使用低级语言,这将增大程序设计的难度和可靠性。(2)内存映射I/O空间顾名思义,就是将I/O空间映射到内存里面,与内存统一编址。具体来说,就是系统在内存空间中划出一部分来作为I/O空间,即所有设备寄存器的端口和I/O数据缓冲区都是正规的内存地址空间的一部分,CPU对这些空间的读写与对普通内存的读写使用同样的指令,但引起的是与外部设备间的数据传送。RISC(精简指令集)类CPU计算机都使用这种方式。这种方式虽然具有I/O与内存访问统一的优点,但是也存在一些问题。例如总线竞争,在单总线系统里,内存和外设都需要对总线上的数据进行监听,以确认命令是否针对自己。这样将产生总线竞争而降低系统效率。(3)混合I/O空间这是上述两种方式的组合:I/O数据缓冲区为内存映射,而设备寄存器则独立于内存。例如采用Intel奔腾处理器的计算机系统,将640K到1M的主存地址留给I/O数据缓冲区,而0到64K的地址留给I/O端口。设备控制器与CPU通过总线来连接。总线是一种严格定义的描述了线上传输数据的协议,凡是符合总线协议的各种设备都可以共同使用总线与CPU进行数据通信。CPU内存字符设备控制器字符设备控制器DMA控制器总线图9-1单总线型I/O系统结构1.4I/O控制方式I/O控制方式,即为实现数据的输入输出,CPU与外设之间的交互方式。有三种基本的I/O控制方式:■轮询(polling)方式■中断驱动方式■DMA方式采用何种I/O控制方式将直接影响设备管理的实施方法及效率。1.轮询方式也称程序控制方式。它要求在程序中的I/O指令后紧接着安排循环查询指令,即在CPU启动了设备控制器进行数据的输入输出后便以循环查询设备状态的方式来等待I/O的完成。这种方式的特点是:CPU处于主动地位,涉入I/O过程的程度很深,而外设则处于被动地位,是一种同步工作方式。2.中断驱动方式使用轮询方式时,CPU需要读取设备状态寄存器以检测设备的当前状态,如果设备还未完成此次的I/O,则需要CPU不断地查询,由于CPU与外设的速度差距巨大,因此在I/O过程中,CPU绝大部分时间都处于繁忙等待状态,CPU的效率十分低下。一种更为有效的方式是让设备处于某种主动地位,而将CPU从忙等待中解脱出来。在启动了某个外设后,立即阻塞现行进程,CPU就可被调度转去执行其他进程而不是在原地踏步等待。当某个数据I/O任务完成后,由设备控制器向CPU发出一个I/O中断,驱动CPU中止现行进程的执行而转去执行相应的中断处理程序,并唤醒等待该I/O的进程。显然,这种I/O控制方式可以大大提高CPU的效率,因此是设备与CPU进行交互的基本手段。3.DMA方式虽然中断驱动方式避免了轮询方式的忙等待现象,从而大大提高了CPU的效率,但这主要是对慢速的字符设备而言的。而对于一次需要传输大量数据的高速块设备来说,仍然不能令人满意。因为设备的数据寄存器的容量是有限的,故一个I/O任务中待传输的数据需要多次送往数据寄存器,而每当设备传送完一次数据寄存器中的数据时,就会触发一次I/O中断,因此在块设备的一次I/O任务的完成过程中,CPU需要响应和处理许多次I/O中断,而每一次I/O中断的响应和处理都需要付出不小的额外CPU开销,CPU的效率并未获得太多改善。人们发现,在设备与主机交换大量数据时,CPU只是数据传输的一个中介,用功能强大的CPU长时间去充当一个传输数据的中介角色显然得不偿失。于是就设计出一种专门负责执行数据I/O事务的处理器——I/O处理器,它比CPU要简单得多,但也便宜很多,它只能执行少量的指令,主要是数据I/O指令。I/O处理器既可以构建在设备控制器里面(这样的控制器称为DMA控制器),也可以作为独立的实体挂在计算机主板上。最简单的I/O处理器在一个时间只能处理一个I/O,即不能并发,而复杂的I/O处理器可以同时处理多个I/O,即它能够提供多个I/O通道,每个通道可以对应一个I/O设备。有了I/O处理器,就可以将CPU从繁杂的I/O事务中解脱出来。DMA(DirectMemoryAccess,直接内存访问)方式就是使用I/O处理器的I/O控制方式,主要是针对块设备的。DMA方式的目的当然是降低CPU响应中断的频率,使得一个传输大量数据的I/O任务中需要响应许多次中断变为只响应一次中断。DMA方式在设备和内存之间建立了直接数据通路,即设备和内存之间可直接读写数据,且数据传输的基本单位是数据块。一个I/O任务中的所有数据是在一个DMA控制器的控制下完成传输的,且在整个传输过程中无需CPU的直接干预,直到该任务中的所有数据都传输完后,DMA控制器才向CPU发出一个I/O中断。DMA控制器在普通设备控制器的基础上又增设了两个寄存器:内存地址寄存器和数据计数寄存器。DMA方式的I/O过程如下:→CPU对DMA控制器进行设置,告诉其存放I/O数据的主存区地址和传输长度(分别送入内存地址寄存器和数据计数寄存器);→启动DMA过程,将系统总线的使用权暂时移交给DMA控制器;→DMA控制器进行数据传输,即接管对系统总线的使用权(总线周期窃用),启动设备进行数据的I/O,并进行数据传送个数的计数以及内存区地址的
本文标题:OS2013UNIT9设备管理
链接地址:https://www.777doc.com/doc-1307244 .html