《设备管理方法与信息化课程34894.pptx》由会员分享,可在线阅读,更多相关《设备管理方法与信息化课程34894.pptx(173页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第五章 设 备 管 理 第五章 设备管理 5.1 引言 5.2 操作系统与中断处理 5.3 操作系统与时钟系统 5.4 操作系统对I/O操作的控制 5.5 设备管理的数据结构 5.6 磁盘调度 5.7 UNIX系统V的设备管理5.8 设备分配1第五章 设 备 管 理 第五章 设备管理 5.1 引言 设备管理是指计算机系统中,除中央处理器、主存储器以外的设备的管理,是操作系统的主要功能之一。通常把这些设备及其接口线路、控制部件和管理软件统称为I/O系统。2第五章 设 备 管 理 在I/O系统中,普遍地使用中断、通道、缓冲区等各种技术,使主机和外设并行工作,改善了设备的使用效率。但是,在另一方面却
2、给用户带来困难。用户想使用一台外部设备,除了需掌握相关 I/O部分的原理之外,还要求对接口、控制器以及设备的物理特性都要有一定了解。为了使用户摆脱这些限制,操作系统承担了这项任务,凡是有关外设的驱动、控制、分配等技术问题都统一由设备管理程序负责。3第五章 设 备 管 理 5.1.1 设备的概念和分类 1.设备的概念 它既指进行实际输入输出操作的物理设备,也指控制这些设备并进行I/O操作的支持设备和支持部件,也指为提高设备利用率,采用某种 I/O技术形成的逻辑设备和虚拟设备。因此可以说,输入输出设备可指计算机系统所能控制的一切控制对象或者与控制对象相联系的媒体。4第五章 设 备 管 理 2.设备
3、的分类 按照功能分类:可以分为输入设备、输出设备、存储设备、供电设备、网络联网设备等。从设备的数据组织方式分类:可以分为块设备(blockdevice)和字符设备(characterdevice)。块设备以数据块为单位组织和传送数据。它将数据存储在定长块中,每个数据块都有自己的地址,块的大小与设备和具体的操作系统有关,一般在5124096字节之间。块设备的基本特征是能够单独地读写每一个数据块,所读写的块与其他数据块无关。字符设备以字符为单位组织和传送数据。它传送或接收一连串字符,数据组织不考虑块结构,也不能单独寻址。5第五章 设 备 管 理 从设备的管理模式分类,可以分为物理设备和逻辑设备。物
4、理设备指计算机系统硬件配置的实际设备。这些设备在操作系统内具有一个惟一的符号名称,系统可以按照该名称对相应的设备进行物理操作。逻辑设备是指一种在逻辑意义上存在的设备,在未加以定义前,它不代表任何硬件设备和实际设备。逻辑设备是系统提供的,它也是独立于物理设备而进行输入输出操作的一种“虚拟设备”。6第五章 设 备 管 理 从设备的资源属性分类,可以分为独占设备、共享设备和虚拟设备。独占设备在用户作业或者进程运行期间为该用户所独享,只有等它用完,才能让别的用户和进程使用;共享设备是指能被多个用户或进程交替共用的设备,宏观上似乎多个用户同时在使用,如磁盘等随机存储设备。虚拟设备具有将一种物理设备模拟成
5、另一种设备的能力。用户进行输入输出所使用的设备并不是他所指定的设备,系统用另一种设备代替了用户指定的设备。7第五章 设 备 管 理 SPOOLING技术l系统采用某种 I/O技术(如 SPOOLING),将某个独占设备改进为多用户共享的设备,以提高系统运行效率和资源利用率。l随着SPOOLING技术的引入,I/O 设备不再被看做仅仅是一个孤立的物理设备,而且把它们与文件系统联系起来,看做是一种流式文件(数据流的I/O),建立了设备文件的概念,采用了直接I/O端口控制语句和文件操作语句来进行I/O设备操作,使I/O设备的操作更加灵活。8第五章 设 备 管 理 5.1.2 I/O设备控制与驱动I/
6、O 设备的控制和驱动技术包括了硬件控制驱动技术和驱动软件。前者是 I/O 设备厂商设计建立的与设备密切相关的技术,这些技术根据不同的设备依赖性很大。后者涉及系统所有I/O 处理的软件,通过它们完成整个 I/O 操作。9第五章 设 备 管 理 操作系统中的I/O驱动(处理)软件一般分为几个层次,如中断处理程序、设备驱动程序、操作系统 I/O原语和用户级软件。中断处理程序位于最底层,它作为系统和I/O操作的激励,响应来自系统内部和外部的 I/O请求。设备驱动程序处理一种设备类型或者一类密切相关的设备,程序代码依赖于设备操作,其任务是接收来自与设备无关的上层软件的抽象请求,确保操作的具体实施。操作系
7、统I/O原语是系统和用户进程请求 I/O操作的抽象的高级的操作,它们不针对某个具体设备,而在 I/O处理过程中由设备控制表和设备驱动程序转接到物理设备。用户级软件是用户程序中负责处理 I/O 操作的程序部分,经编译后产生对I/O的高级处理,操作再逐层下交。10第五章 设 备 管 理 5.1.3 设备管理的设计要求和任务1.设计要求 第一,为用户提供方便、统一的设备使用界面;第二,提高外部设备的利用率,尽量提高并行程度。第三,用户程序应独立于设备,即实现程序与设备的无关性,当物理设备发生意外或有更改时,用户程序不必修改,就可使用系统分配的其他设备11第五章 设 备 管 理 2.设备管理的任务为了
8、达到上述目标,管理功能通常包括设备的配置和资源分配、设备的控制和驱动、系统与设备之间的缓冲协调、设备的调度与分配等。(1)设备配置和资源分配是针对 I/O 设备本身的。由于系统要配置各种 I/O 设备和部件,它们都要使用一定的系统资源,包括I/O通道、I/O地址、I/O端口、存储器地址、中断请求号及 DMA 通道等,它们的共享在硬件和软件上可能会产生冲突,必须由操作系统对 I/O 设备进行正确的配置和分配。12第五章 设 备 管 理(2)设备控制和驱动主要是按照 I/O 控制的方式,对不同的设备完成相应的 I/O 中断、设备控制器操作、读写操作等物理过程。针对不同的设备请求,通过设备处理程序或
9、设备驱动程序完成对设备的直接控制。(3)系统与设备间的协调主要是速度上的协调,通常要解决快速的处理器与慢速的I/O 设备之间的操作匹配的问题,在操作系统中采用缓冲区的方式来缓解这个矛盾,设备管理要实现这些缓冲区的建立、分配、释放与回收。(4)设备调度与分配是针对两种不同情况:对等待设备和I/O 操作的进程进行调度;对多个进程争用设备进行分配。13第五章 设 备 管 理 UNIX设备管理在UNIX操作系统中,采用比较统一的方法对外设进行管理。首先将各种外部设备分成特性迥然不同的两大类,即块设备和字符设备;接着又把与设备物理特性密切相关的部分与设备管理的基本方式和使用的基本技术分离开来。系统为各个
10、设备设置单独的数据结构,然后用基本相同的方式和技术对同类设备的I/O操作进行处理。14第五章 设 备 管 理 5.2 操作系统与中断处理中断是参与计算机系统设备管理的一个重要因素和重要结构。它是操作系统中与硬件最接近的一部分,是操作系统和硬件的界面,是由软、硬件结合形成的一套中断机构实施的。15第五章 设 备 管 理 5.2.1 中断的基本概念当一个正在运行的过程被另外一个过程打断,停止运行过程而转向执行另一过程的活动称为中断。中断的过程是打断目前正在进行的工作,转而处理更紧急的事务,处理完成后再继续原来的工作。计算机系统的中断既来自系统内部,也来自系统外部,分别称为内(部)中断和外(部)中断
11、。内部中断是计算机系统本身在工作过程中出现的各种需要紧急处理的事务,如出错中断、程序中断等,也称为软件中断。内部中断多采用程序陷入(trap)的方式。外部中断主要是来自 I/O 设备的中断,如设备请求中断、打印中断、掉电中断、数据传输中断等,大部分是硬件中断。16第五章 设 备 管 理 17第五章 设 备 管 理 5.2.2 中断的类型(1)I/O中断这是来自通道或者各种外部设备的中断,用于反映通道或设备的工作情况。例如,打印机打印结束、磁盘传输完成、利用终端进行 I/O 操作等,也包括外设在执行 I/O 操作时出错而引起的中断。18第五章 设 备 管 理(2)时钟中断一类特殊的 I/O 完成
12、中断,它不一定与具体的 I/O 相连,既可由硬件引起,也可由软件引起。经由硬件定时芯片产生规则的时钟间隔(时间片)或者由软件计数产生的时间间隔,每一次中断都意味着一段固定时间已到,时钟中断需要定时、复位和更新。19第五章 设 备 管 理(3)系统请求中断向操作系统提出的请求服务,是由系统指令产生的。系统调用指令是这一类中断的特例。各种 I/O 指令,如 TRAP、IOT 等均可产生系统请求。该中断把命令传送到操作系统,以确定一个进程需要什么样的服务,操作系统对请求做出分析并提供所需要的服务。20第五章 设 备 管 理(4)报警中断一般由计算机系统的外部条件引起,如计算机的中断键、启动键、求助键
13、等,以及由外部通信信号和网络传输信号到达产生的中断。(5)程序错误中断因编程错误、逻辑条件判断或分支错误、运行参数错误而产生的中断。它通常会通过用户终端或显示器给予提示。这类中断的类型包括:除数为零、浮点运算溢出、存储器使用无效、地址越界、使用特权或非法指令、越权访问、错误的格式化数据等21第五章 设 备 管 理(6)机器错误中断对应于系统硬件的错误中断。如存储器错误、I/O 设备错误、显示器错误、接口通道错误等。一般操作系统只报告这些错误,并终止操作。22第五章 设 备 管 理 UNIX 中断机构处理一切外部设备的 I/O 中断。陷入机构处理在系统内发生的需要立即干预的事件,包括使用指令的陷
14、入(自陷)和由于软、硬件故障或错误造成的陷入。系统调用是UNIX操作系统面向在用户态下运行的程序的界面,在C语言和汇编语言级上都允许用户态程序使用系统调用。23第五章 设 备 管 理(补充)系统调用命令操作系统里预先编制了很多不同功能的子程序。用户可以在自己的程序里调用这些子程序,请求操作系统提供服务。这些子程序称为“系统功能调用”程序。系统调用是操作系统程序模块的一部分,它应该在管态下执行。不能直接被用户程序调用,用户程序只有通过系统提供的“访管”指令,才能实现由目态转为管态、进而调用这些功能程序的目的。24第五章 设 备 管 理 访管指令访管指令:是一条非特权指令,功能是执行它就会产生一个
15、软中断,促使处理器由目态转换到管态,进入操作系统,并处理中断。利用访管指令的这种功能,编译程序就把源程序中的系统调用都转换成访管指令,把具体的功能转换成不同的编码。这样,就能使处理机执行访管指令由目态进入管态,再根据编码,转到相应的功能处理程序去执行。25第五章 设 备 管 理 例:在c语言中,write(fd,buf,count)系统调用命令。C编译程序在编译C的源程序时,总把系统调用命令翻译成能够引起软中断的访管指令trap.该指令长两个字节,第一个字节为操作码,第二个字节为系统调用命令的功能编码。Trap功能码FdBufcountTrap Trap的 的16 16进制操作码 进制操作码8
16、9 89;Write Write的功能码 的功能码04 04;Write Write的机器指令:的机器指令:二进制 二进制1000100100000100 1000100100000100;八进制 八进制104404 10440426第五章 设 备 管 理 Trap指令中的功能码是用来区分不同的功能调用的。在UNIX操作系统中,有一张“系统调用程序入口地址表”。该表表目从0开始、以系统调用命令所对应的功能码为顺序排列。自带参数个数 自带参数个数该系统调用处理程序的入口地址 该系统调用处理程序的入口地址表目内容 表目内容27第五章 设 备 管 理 系统调用处理过程语言编译程序产生中断查看入口表W
17、rite处理程序Write 入口3write(fd,buf,write(fd,buf,count)count)104404(trap 04)C语言源程序目标程序Trap中断处理程序34528第五章 设 备 管 理 系统调用与一般过程调用的区别(1)一般过程调用,调用者与被调用者都运行在相同的cpu状态。但发生系统调用时,发出调用命令的调用者运行在目态,而被调用者运行在管态。(2)一般过程调用,是直接通过转移指令转向被调用程序的;但发生系统调用时,只能通过软中断指令提供的一个统一入口,由目态进入管态,经分析后,才转向相应的命令处理程序。(3)一般过程调用,在被调用者执行完后,就径直返回断点继续执
18、行;但系统调用可能会招致进程状态的变化,从而引起系统重新分配处理机。因此,系统调用结束后,不一定是返回调用者断点处继续执行。29第五章 设 备 管 理 1与进程管理和控制有关的系统调用属于这一类的有21种。进程的创建和消亡:fork、exit。进程间的同步:wait、pause等。2 与文件系统有关的系统调用属于这一类的有28种。文件生成和取消:creat、unlink。文件打开、关闭及控制:open、close、fcntl。UNIX SVR4 提供了 53 种系统调用,它们大致可分为 3 类。30第五章 设 备 管 理 3其他系统调用属于这一类的有4种。设置和获得系统或进程时间:stime、
19、time、times。在指定时间后发告警信号:alarm31第五章 设 备 管 理 5.2.3 中断的响应和实现过程中断是在中断控制机构的管理下实现的。设备提出的中断请求信号由中断控制机构响应,然后予以实施。中断控制机构的主要功能如下。记录各中断源的中断请求信号,以便于分别处理。在CPU硬件中,每当执行完一条指令,或开始取一条指令前,检测有无中断请求,若有则硬件自动转入中断处理周期。32第五章 设 备 管 理 系统对不同的中断类型规定了不同的优先级,当同时存在多个中断请求时,选优先级最高的予以响应。如果两个中断的优先级相等,将按照一定算法,如先来先服务(FIFO)等进行处理。优先级机制可能使中
20、断服务形成嵌套,即优先级低的中断处理程序的执行会被优先级高的中断打断,从而又调用了另一个处理程序。在有的操作系统(如实时系统)中是不允许中断嵌套的。33第五章 设 备 管 理 响应中断后,根据中断源找出相应的中断处理程序入口地址,以便转去执行。如何转入相应的中断处理程序,目前常用的结构是中断矢量(interruptvector)结构。中断矢量结构是一类地址指针的集合,在主存中开辟了一个特殊的存储区域来存放这种结构,其中的某一个或者几个存储单元存放一个指向中断处理程序的地址,它被称为中断矢量。一个中断发生,总可以在固定的位置找到这个指针,再根据指针所指的位置(即指针的内容)获得相应的处理程序或者
21、驱动程序入口地址。34第五章 设 备 管 理 保护现场,以便中断返回时可以在断点处继续执行。中断现场主要指:相应中断时指令计数器PC的内容(即下一条指令的地址,也称为断点);进程运行参数和条件;现运行程序状态寄存器 PS 的内容以及累加器或通用寄存器的内容和标记,有的计算机也把 PC 和PS 合起来统称为程序状态字 PSW。现场保护是把它们保存到主存中的特殊区域(一般是堆栈)中,并保证中断过程中原有现场不做任何改变。35第五章 设 备 管 理 当正在进行某一中断处理时,或在执行程序的某些阶段,有时不允许响应某些中断,所以应该在程序控制下,禁止响应某些中断,即屏蔽这些中断。当不需要屏蔽时,又能及
22、时在程序控制下撤销屏蔽。在实时系统中中断屏蔽必须小型化,并且严格限制中断处理程序的执行时间。36第五章 设 备 管 理 5.2.4 中断处理程序和驱动程序中断处理程序也叫做中断服务程序,它是与设备硬件密切相关的处理程序,一般情况下,处理设备的各个 I/O 操作的细节是采用汇编语言和机器语言编写。为了将这种与设备有关的程序对用户透明,使用户不必去了解每一种设备操作的具体细节,通常采用统一的简单方式,如上述的中断矢量方式来进行。37第五章 设 备 管 理 在微型机和个人计算机中,常常把I/O 中断处理程序以设备驱动程序的方式作为操作系统设备管理和控制的依据,用户采用一种通用的界面和操作来使用这些设
23、备。例如,UNIX和 DOS 操作系统中都把设备作为一种虚拟的文件对待,每个设备有一个像文件名那样的名字,并对它像一个文件那样存取。设备驱动程序被作为一种特殊的文件存放在系统辅助存储设备(如磁盘)中,在需要时由操作系统装入使用。38第五章 设 备 管 理 在操作系统设计时,考虑了所有可能与计算机系统配置的设备,所有设备的驱动程序随操作系统软件一起提供给用户,用户在安装操作系统时,根据当时配置的 I/O 设备情况,调入相应的设备驱动程序文件,将它们设置并嵌入操作系统中,做好系统运行操作的环境准备。如果操作系统的设备配置有变化,则需要重新引导或者重新配置安装操作系统。39第五章 设 备 管 理 在
24、UNIX系统中,将设备分成两类:块设备和字符设备。核心与驱动程序的接口是由块设备开关表和字符设备开关表描述的.40第五章 设 备 管 理 5.2.5 中断的返回与恢复当中断请求操作完成时,系统必须返回被中断的程序。此时,必须将中断开始保存下来的原来程序的状态、寄存器内容和标记、进程运行参数和条件等一一恢复,复原到中断未出现时的状态,称为现场恢复。41第五章 设 备 管 理 UNIX 操作系统中,中断处理都是在核心态下进行的。如果中断前处理机状态为核心态,则在执行完设备处理子程序后就恢复现场,然后用中断返回指令回到中断前状态,继续执行被中断的操作系统程序。如果中断前为用户态,则在执行完设备处理子
25、程序后,先要检查重新调度标志runrun是否设置。如若已经设置,则调用进程切换调度程序进行进程调度,中断时被保护的现场就不必立即恢复。如果runrun标志没有设置,则恢复保护在堆栈中的现场,继续在用户态下执行被中断的程序。42第五章 设 备 管 理 5.4 操作系统对I/O操作的控制 外围设备与内存或CPU间常用的数据传送控制方式:1.程序循环测试方式2.中断控制方式3.直接存储器存取(DMA)方式4.通道方式43第五章 设 备 管 理 1.程序I/O方式 等待发Start指令Test测试,设备标志触发器为“Done”?CPU执行下一条指令开始数据传送 否是外围设备接收到Start指令作接收或
26、发送数据准备准备好?标志触发器置为“Done”等待CPU来的下一条指令是否44第五章 设 备 管 理 程序I/O方式 在程序I/O方式中,由于CPU的高速性和I/O设备的低速性,致使CPU的绝大部分时间都处于等待I/O设备完成数据I/O的循环测试中,造成对CPU的极大浪费。在该方式中,CPU之所以要不断地测试I/O设备的状态,就是因为在CPU中无中断机构,使I/O设备无法向CPU报告它已完成了一个字符的输入操作。45第五章 设 备 管 理 2.中断驱动I/O控制方式 I/O操作由程序发起,在操作完成时(如数据可读或已经写入)由外设向CPU发出中断,通知该程序。数据的每次读写通过CPU。硬件要求
27、:要在CPU与控制器之间连有中断请求线路;要在设备控制器的状态寄存器中增设“中断允许位”46第五章 设 备 管 理 数据传输的步骤1)通过CPU发出start指令。启动设备,将中断允许位加以设置2)发出I/O请求的进程由运行状态改变为阻塞状态,等待输入/输出的完成。3)输入/输出完成时,设备控制器通过中断请求线向CPU发出中断请求信号。CPU响应该中断后,就转向中断处理程序,对数据的传输工作进行相应的处理。4)输入/输出请求全部完成后,进程被解除阻塞,改变状态为“就绪态”,以便进入它的下一步工作。47第五章 设 备 管 理 中断控制方式的处理过程接收到CPU发来的Start指令缓冲寄存器满?设
28、备控制器发中断信号是准备数据并将其置入缓冲寄存器否CPU调度程序调度其它进程收到中断信号了吗?中断处理被中断进程执行是否向设备发Start指令,置中断允许位为“1”其它进程执行48第五章 设 备 管 理 在I/O设备输入每个数据的过程中,由于无须CPU干预,因而可使CPU与I/O设备并行工作。仅当输完一个数据时,才需CPU花费极短的时间去做些中断处理。可见,这样可使CPU和I/O设备都处于忙碌状态,从而提高了整个系统的资源利用率及吞吐量。例如,从终端输入一个字符的时间约为100 ms,而将字符送入终端缓冲区的时间小于 0.1 ms。若采用程序I/O方式,CPU约有 99.9 ms的时间处于忙等
29、待中。采用中断驱动方式后,CPU可利用这 99.9 ms的时间去做其它事情,而仅用 0.1 ms的时间来处理由控制器发来的中断请求。可见,中断驱动方式可以成百倍地提高CPU的利用率。49第五章 设 备 管 理 3.直接存储器访问DMA I/O控制方式 1)DMA(Direct Memory Access)控制方式的引入 该方式的特点是:数据传输的基本单位是数据块,即在CPU与I/O设备之间,每次传送至少一个数据块;所传送的数据是从设备直接送入内存的,或者相反;仅在传送一个或多个数据块的开始和结束时,才需CPU干预,整块数据的传送是在控制器的控制下完成的。可见,DMA方式较之中断驱动方式,又是成
30、百倍地减少了CPU对I/O的干预,进一步提高了CPU与I/O设备的并行操作程度。50第五章 设 备 管 理 2).DMA控制器的组成 51第五章 设 备 管 理 为了实现在主机与控制器之间成块数据的直接交换,必须在DMA控制器中设置如下四类寄存器:(1)命令/状态寄存器CR。用于接收从CPU发来的I/O命令或有关控制信息,或设备的状态。(2)内存地址寄存器MAR。在输入时,它存放把数据从设备传送到内存的起始目标地址;在输出时,它存放由内存到设备的内存源地址。(3)数据寄存器DR。用于暂存从设备到内存,或从内存到设备的数据。(4)数据计数器DC。存放本次CPU要读或写的字(节)数。52第五章 设
31、 备 管 理 当进程要求输入数据时,CPU将准备存放输入数据的内存起始地址、要传送的字节数送入DMA控制器的内存地址寄存器和传送字节计数器,将中断允许位和启动位置成1,启动设备。CPU将总线让给DMA控制器,在DMA控制器进行数据传输期间,CPU不再使用总线,而是DMA控制器获得总线控制权。发出传输要求的进程进入等待状态,执行指令被暂时挂起,进程调度其他进程占据CPUDMA工作原理53第五章 设 备 管 理 4)DMA控制器按照地址寄存器的指示,不断与内存储器进行直接的数据传输,并随时修改地址寄存器和字节计数器的值。5)输入设备不断窃取CPU工作周期,数据不断写入内存6)传送完毕,发出中断信号
32、7)CPU接到中断信号转入中断处理程序处理8)中断处理结束,CPU返回原进程或切换到新的进程DMA工作原理54第五章 设 备 管 理 DMA方式的工作流程设置MAR和DC初值启动DMA传送命令挪用存储器周期传送数据字存储器地址增1字计数寄存器减1DC=0?请求中断在继续执行用户程序的同时,准备又一次传送55第五章 设 备 管 理 DMA方式与中断方式的主要区别中断方式是在数据缓冲寄存器满后,发中断请求,CPU进行中断处理;DMA方式则是在所要求传送的数据块全部传送结束时要求CPU进行中断处理 大大减少了CPU进行中断处理的次数中断方式的数据传送是由CPU控制完成的 而DMA方式则是在DMA控制
33、器的控制下不经过CPU控制完成的,因此避免了因速度不匹配而造成数据丢失的现象。(DMA硬件比较复杂)56第五章 设 备 管 理 4.I/O通道控制方式 1)I/O通道控制方式的引入 I/O通道方式是DMA方式的发展,它可进一步减少CPU的干预,即把对一个数据块的读(或写)为单位的干预,减少为对一组数据块的读(或写)及有关的控制和管理为单位的干预。同时,又可实现CPU、通道和I/O设备三者的并行操作,从而更有效地提高整个系统的资源利用率。例如,当CPU要完成一组相关的读(或写)操作及有关控制时,只需向I/O通道发送一条I/O指令,以给出其所要执行的通道程序的首址和要访问的I/O设备,通道接到该指
34、令后,通过执行通道程序便可完成CPU指定的I/O任务。57第五章 设 备 管 理 5.4.1 I/O设备的资源分配计算机系统的各类I/O 设备及其控制部件具有不同的连接方式和接口,需要使用和占据系统的某些资源,这些资源是 I/O 设备正常工作必不可少的,也是由设备所共享的。操作系统应当检测和确认哪些 I/O 设备使用哪些系统资源,如何分配协调这些资源以避免冲突。下面介绍这些资源的含义。58第五章 设 备 管 理 1I/O 地址I/O 地址是 I/O 设备或控制卡所在的位置,处理器通过这个地址找到对应的 I/O 部件和设备寄存器,并对它进行控制和数据传输操作。由于很多设备共享某个 I/O 地址,
35、这样就会产生 I/O 地址冲突。因此,需要在系统启动时进行正确的 I/O 地址设置,或者在应用软件运行时进行I/O地址的重新设置59第五章 设 备 管 理 2I/O 中断请求每个 I/O 设备在工作过程中都会向处理器发出各种 I/O 中断请求,例如数据就绪、数据到达、发送结束、纸张用完、操做出错等。处理器接收这些 I/O 请求后将转入 I/O 中断处理程序,完成相应的 I/O 处理。然而,系统拥有的 I/O 中断请求号是有限的,其中一些已经用于系统的标准功能性中断,如时钟中断、除零中断、系统异常中断等。I/O 设备可能争用剩余的中断请求,也会产生冲突。因此,这也是I/O资源分配的重要问题。60
36、第五章 设 备 管 理 3DMA 数据传输通道直接存储器访问(DMA)通道提供了I/O设备与系统间有效的数据传输机制,在设备与主存储器之间进行直接的数据传输,而无需处理器干预。由硬件组成的DMA 通道数是有限的,对争用同一个DMA通道的I/O设备需要进行协调和重新配置。61第五章 设 备 管 理 4I/O 缓冲区输入输出缓冲区是为了加快I/O 设备的数据传输、协调快速处理器和慢速设备间的一个有效机制。缓冲区的设置要占用主存储器一定的空间,各种 I/O 设备开设的缓冲区的大小和位置可能不一样,也可能一样,这个系统资源也是 I/O 设备争用的。系统必须保证各个 I/O设备开辟的缓冲区不相互冲突,并
37、不影响主存储器的使用。62第五章 设 备 管 理 5.4.2 I/O 通道技术I/O 通道是一种硬件设施,带有专用处理器的、有很强 I/O 处理功能的智能部件,它可以独立地完成系统处理器交付的 I/O 操作任务,此时,I/O 总线直接与通道相连而不与处理器相连。通道具有自己专门的指令集,即通道指令,用于与连接到总线上的 I/O 控制器通信,在设备与存储器之间传送数据。采用这种方式,系统主处理器只需进行I/O操作的委托,其后的所有I/O操作均由通道自己进行。通道执行来自主处理器的通道程序,完成后只需向系统处理器发出中断,请求结束。可见,这种方式可以形成系统处理器与I/O设备之间的并行操作。63第
38、五章 设 备 管 理 I/O 设备与系统的数据交换通常采用程序查询、I/O 中断和直接存储器存取(DMA)的方式,这3种控制方式也同样适用于通道机制。根据信息交换方式,通道可以分成3种类型:字节多路通道、数据选择通道和成组多路通道。64第五章 设 备 管 理 通道类型 1)字节多路通道(Byte Multiplexor Channel)这是一种按字节交叉方式工作的通道。它通常都含有许多非分配型子通道,其数量可从几十个到数百个,每一个子通道连接一台I/O设备,并控制该设备的I/O操作。这些子通道按时间片轮转方式共享主通道。这样,只要字节多路通道扫描每个子通道的速率足够快,而连接到子通道上的设备的
39、速率不是太高时,便不致于丢失信息。65第五章 设 备 管 理 66第五章 设 备 管 理 2)数据选择通道(Block Selector Channel)字节多路通道不适于连接高速设备,这推动了按数组方式进行数据传送的数据选择通道的形成。这种通道虽然可以连接多台高速设备,但由于它只含有一个分配型子通道,在一段时间内只能执行一道通道程序,控制一台设备进行数据传送,致使当某台设备占用了该通道后,便一直由它独占,即使是它无数据传送,通道被闲置,也不允许其它设备使用该通道,直至该设备传送完毕释放该通道。可见,这种通道的利用率很低。67第五章 设 备 管 理 3)成组多路通道(Block Multipl
40、exor Channel)数据选择通道虽有很高的传输速率,但它却每次只允许一个设备传输数据。成组多路通道是将数据选择通道传输速率高和字节多路通道能使各子通道(设备)分时并行操作的优点相结合而形成的一种新通道。它含有多个非分配型子通道,先为一台设备执行一条通道指令,然后自动转接,为另一台设备执行一条通道指令。因而这种通道既具有很高的数据传输速率,又能获得令人满意的通道利用率。也正因此,才使该通道能被广泛地用于连接多台高、中速的外围设备,其数据传送是按数组方式进行的。68第五章 设 备 管 理 5.4.3 I/O缓冲技术提高中央处理器与外设的并行程度的另一项技术措施是缓冲技术。减少了 I/O 设备
41、对处理器的中断请求次数;简化了中断机制;节省了系统开销;提高了处理机与外设的并行程度69第五章 设 备 管 理 图 利用缓冲寄存器实现缓冲 70第五章 设 备 管 理 5.4.3 I/O缓冲技术缓冲技术可以采用硬件缓冲和软件缓冲两种方式。硬件缓冲是利用专门的硬件寄存器作为缓冲器。而软件缓冲是借助操作系统的管理,采用内存中的一个或者多个区域作为缓冲区。目前采用最多的是软件缓冲,它由缓冲区和对缓冲区的管理两部分组成。软件缓冲可以改变缓冲区的大小和数量,但也占据了一定的存储空间。71第五章 设 备 管 理 5.4.4 设备的驱动为了将设备的硬件复杂性与用户隔离,也为了建立一种通用的I/O 接口,操作
42、系统采用设备驱动程序来完成设备的驱动。设备驱动程序常用汇编语言编写,它向上与高级 I/O 操作系统调用相对应,向下与 I/O 硬件设备相对应,完成两者间的相互通信。一般每一类设备有一个相应的驱动程序,能控制同一类中多台设备的工作。每个设备生产厂商和软件开发商都必须按照设备驱动程序的标准结构编写独立的设备驱动程序,当系统需要时,再将它安装配置到系统中。72第五章 设 备 管 理 5.4.4 设备的驱动目前,设备驱动程序是作为操作系统所提供的选择项,用户可以根据需要配置设备,灵活地选择、装载、卸载驱动程序,从而极大地增强了系统的开放性和可扩展性。设备驱动程序一般不由用户执行,也不能被用户进程直接执
43、行,只能通过I/O 请求和调用方式,由系统或者I/O处理器执行。73第五章 设 备 管 理 5.5 设备管理的数据结构操作系统提供了若干高级I/O系统调用,它包含了对I/O设备的操作请求、响应、处理、控制、缓冲、恢复等,从而用这些抽象的I/O操作把用户与复杂的I/O设备操作隔离开来。将抽象的I/O 操作映射到专门的设备驱动程序,由此隐藏设备操作细节,有利于编写与设备无关的程序。要完成抽象到实际的映射,操作系统通常采用一个数据结构来完成,称为设备控制表(DCT),简称设备表。它记录每一个抽象设备描述、对应的实际设备的地址和所使用的设备驱动程序等参数。用户和进程对设备的调用通过设备表映射到物理设备
44、,使I/O操作与设备无关,与硬件接口和硬件地址无关。5.5.1 设备控制表74第五章 设 备 管 理 设备表设备表有多个表项,每个表项对应一个设备;表项的内容包括设备标识符、设备地址、设备属性、设备状态、设备驱动程序地址、设备等待队列指针等。图 5-4 给出了设备表的一个简单示例。表中包含了若干抽象的 I/O 操作系统调用,每个调用以函数指针的形式映射到实际的I/O处理程序,再经过对应的设备驱动程序对物理设备进行操作。75第五章 设 备 管 理 76第五章 设 备 管 理 Struct devtabint dvid;int dvadd;int*dvec;int*dvbuf;int*dvque;
45、int(*dvinit)();int(*dvopen)();int(*dvclose)();int(*dvread)();int(*dvwrite)();int(*dvseek)();int(*dvcntl)();int(*dvgetc)();int(*dvputc)();dct;77第五章 设 备 管 理 设备读read抽象操作read(dvcrp,buf,size)/*系统调用接收3个传递来的参数*/int dvcrp,size;/*参数为设备标识符、数据块大小和缓冲区指针char*buf;struct devtab*devptr;/*定义一个指向设备表的指针*/if(isbaddev(d
46、vcrp)/*确认设备标识符是否有效*/return(SYSERR);/*无效,系统返回出错*/devptr=&dctdvcrp;/*有效,找到对应的设备表项*/return(*devptr-dvread)(devptr,buf,size);/*将参数传向设备驱动程序并返回*/78第五章 设 备 管 理 5.5.2 设备开关表针对各类设备不同的物理特性,系统为它们各自设置了一套子程序,它们包括打开、关闭和启动子程序。系统为每类设备又设置了一数据结构,存放这些程序的入口地址,该数据结构称为设备开关。各类设备的开关构成设备开关表。为使设备开关表与设备控制表建立联系,在设备开关表中还设立了该设备的控
47、制表指针或设备控制表在系统中的编号,即设备号。79第五章 设 备 管 理 5.6 磁盘调度磁盘的特点是存储容量大,存取速度快,并且能够顺序或随机存取。磁盘系统硬件可分为两大部分:一部分是磁盘驱动器,它是机械部分,包括驱动电机、读写磁头和相应的逻辑电路;另一部分是磁盘控制器,实现与计算机的逻辑接口。磁盘控制器接收来自CPU的指令,命令盘驱动器执行该指令。这样,一个磁盘控制器就可以控制多个磁盘驱动器的工作80第五章 设 备 管 理 磁盘结构示意图每个盘片有正反两个盘面,若干个盘片组成一个磁盘组。每个盘面有一个读写磁头,所有的读写磁头被固定在移动臂上,同时进行内、外的运动。81第五章 设 备 管 理
48、 硬盘俯视图82第五章 设 备 管 理 硬盘的磁头臂83第五章 设 备 管 理 数据的组织和格式 磁盘设备可包括一或多个盘片,每片分两面,每面可分成若干条磁道(500-2000),各磁道之间留有必要的间隙。每条磁道上可存储相同数目的二进制位。每条磁道又分成若干各扇区(10100)。每个扇区的大小相当于一个盘块。各扇区之间保留一定的间隙。盘上信息的地址是多重编址的,通常包括驱动器号、面号、道号和扇区号。84第五章 设 备 管 理 85第五章 设 备 管 理 磁盘访问时间 1)寻道时间 这是指把磁臂(磁头)移动到指定磁道上所经历的时间。该时间是启动磁臂的时间s与磁头移动 n条磁道所花费的时间之和,
49、即寻道时间=m n+s其中,m是一常数,与磁盘驱动器的速度有关,对一般磁盘,m=0.2;对高速磁盘,m0.1,磁臂的启动时间约为2 ms。这样,对一般的温盘,其寻道时间将随寻道距离的增加而增大,大体上是530 ms。86第五章 设 备 管 理 2)旋转延迟时(等待时间)这是指定扇区移动到磁头下面所经历的时间。对于硬盘,典型的旋转速度大多为5400 r/min,每转需时11.1 ms,平均旋转延迟时间为5.55 ms;对于软盘,其旋转速度为300 r/min或600 r/min,这样,平均旋转延迟时间为50100 ms。87第五章 设 备 管 理 3)传送时间 这是指把数据从磁盘读出或向磁盘写入
50、数据所经历的时间。传送时间的大小与每次所读/写的字节数b和旋转速度有关:其中,r为磁盘每秒钟的转数;N为一条磁道上的字节数。88第五章 设 备 管 理 由上式可以看出,在访问时间中,寻道时间和旋转延迟时间基本上都与所读/写数据的多少无关,而且它通常占据了访问时间中的大头。例如,我们假定寻道时间和旋转延迟时间平均为20ms,而磁道的传输速率为10MB/s,如果要传输10KB,此时总的访问时间为21ms,可见传输时间所占比例非常小。目前磁盘的传输速率已达80MB/s以上,数据传输时间所占的比例更低。可见适当的集中数据(不要太零散)传输,将有利于提高传输效率。89第五章 设 备 管 理 操作系统要提