




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第五章设备管理5.1引言5.2操作系统与中断处理5.3操作系统与时钟系统5.4操作系统对I/O操作的控制5.5设备管理的数据结构5.6磁盘调度5.7UNIX系统V的设备管理5.8设备分配1第五章设设备备管理5.1引引言设备管理理是指计算算机系统统中,除除中央处处理器、、主存储储器以外外的设备备的管理理,是操操作系统统的主要要功能之之一。通常把这这些设备备及其接接口线路路、控制制部件和和管理软软件统称称为I/O系系统。2在I/O系统中中,普遍遍地使用用中断、通道、缓冲区等各种技技术,使使主机和和外设并并行工作作,改善善了设备备的使用用效率。。但是,在在另一方方面却给用户带带来困难难。用户想想使用一一台外部部设备,,除了需需掌握相相关I/O部部分的原原理之外外,还要要求对接接口、控控制器以以及设备备的物理理特性都都要有一一定了解解。为了使用用户摆脱脱这些限限制,操操作系统统承担了了这项任任务,凡是有关关外设的的驱动、、控制、、分配等等技术问问题都统统一由设设备管理理程序负负责。35.1..1设备的概概念和分分类1.设设备的概概念它既指进进行实际际输入//输出操操作的物理设备备,也指控控制这些些设备并并进行I/O操操作的支持设备备和支持部件件,也指为为提高设设备利用用率,采采用某种种I//O技术术形成的的逻辑设备备和虚拟设备备。因此可以以说,输入/输输出设备备可指计计算机系系统所能能控制的的一切控控制对象象或者与与控制对对象相联联系的媒媒体。42.设设备的分分类①按照功能能分类::可以分为为输入设设备、输输出设备备、存储储设备、、供电设设备、网网络联网网设备等等。②从设备的的数据组组织方式式分类::可以分为为块设备备(blockdevice)和字字符设备备(characterdevice)。。块设备以数据块块为单位位组织和和传送数数据。它将数数据存储储在定长长块中,,每个数数据块都都有自己己的地址址,块的的大小与与设备和和具体的的操作系系统有关关,一般般在512~4096字节之之间。块块设备的的基本特特征是能够单独独地读写写每一个个数据块块,所读写写的块与与其他数数据块无无关。字符设备备以字符为为单位组组织和传传送数据据。它传送送或接收收一连串串字符,,数据组组织不考考虑块结结构,也也不能单单独寻址址。5③从设设备的管管理模式式分类,可以分分为物理设备备和逻辑设备备。物理设备备指计算机机系统硬硬件配置置的实际际设备。。这些设设备在操操作系统统内具有有一个惟惟一的符符号名称称,系统统可以按按照该名名称对相相应的设设备进行行物理操操作。逻辑设备备是指一种种在逻辑辑意义上上存在的的设备,,在未加加以定义义前,它它不代表表任何硬硬件设备备和实际际设备。。逻辑设设备是系系统提供供的,它它也是独独立于物物理设备备而进行行输入输输出操作作的一种种“虚拟拟设备””。6④从设备的的资源属属性分类类,可以分分为独占设备备、共享设备备和虚拟设备备。独占设备备在用户作作业或者者进程运运行期间间为该用用户所独独享,只只有等它它用完,,才能让让别的用用户和进进程使用用;共享设备备是指能被被多个用用户或进进程交替共用用的设备,,宏观上上似乎多多个用户户同时在在使用,,如磁盘盘等随机机存储设设备。虚拟设备备具有将一一种物理理设备模模拟成另另一种设设备的能能力。用用户进行行输入输输出所使使用的设设备并不不是他所所指定的的设备,,系统用用另一种种设备代代替了用用户指定定的设备备。7SPOOLING技术术系统采用用某种I/O技术((如SPOOLING),,将某个个独占设设备改进进为多用用户共享享的设备备,以提提高系统统运行效效率和资资源利用用率。随着SPOOLING技术的的引入,,I/O设备备不再被被看做仅仅仅是一一个孤立立的物理理设备,,而且把把它们与与文件系系统联系系起来,,看做是是一种流流式文件件(数据据流的I/O)),建立立了设备文件件的概念,,采用了了直接I/O端端口控制制语句和和文件操操作语句句来进行行I/O设备操操作,使使I/O设备的的操作更更加灵活活。85.1..2I/O设设备控制制与驱动动I/O设设备的的控制和和驱动技技术包括括了硬件控制制驱动技技术和驱动软件件。前者是I/O设备备厂商设设计建立立的与设设备密切切相关的的技术,,这些技技术根据据不同的的设备依依赖性很很大。后者涉及及系统所所有I//O处处理的软软件,通通过它们们完成整整个I/O操操作。。9操作系统统中的I/O驱驱动(处处理)软软件一般般分为几几个层次次,如中断处理理程序、设备驱动动程序、操作系统统I//O原语语和用户户级软件件。中断处理理程序位于最底底层,它它作为系系统和I/O操操作的激激励,响响应来自自系统内内部和外外部的I/O请求。。设备驱动动程序处理一种种设备类类型或者者一类密密切相关关的设备备,程序序代码依依赖于设设备操作作,其任任务是接接收来自自与设备备无关的的上层软软件的抽抽象请求求,确保保操作的的具体实实施。操作系统统I/O原语是系统和和用户进进程请求求I//O操作作的抽象象的高级级的操作作,它们们不针对对某个具具体设备备,而在在I//O处理理过程中中由设备备控制表表和设备备驱动程程序转接接到物理理设备。。用户级软软件是用户程程序中负负责处理理I//O操操作的程程序部分分,经编编译后产产生对I/O的的高级处处理,操操作再逐逐层下交交。105.1..3设设备管理理的设计计要求和和任务1.设计计要求第一,为用户户提供方方便、统统一的设设备使用用界面;;第二,提高外外部设备备的利用用率,尽尽量提高高并行程程度。第三,用户程程序应独独立于设设备,即即实现程程序与设设备的无无关性,,当物理理设备发发生意外外或有更更改时,,用户程程序不必必修改,,就可使使用系统统分配的的其他设设备112.设设备管理理的任务务为了达到到上述目目标,管管理功能能通常包包括设备的配配置和资资源分配配、设备的控控制和驱驱动、系统与设设备之间间的缓冲冲协调、设备的调调度与分分配等。(1)设设备配置置和资源源分配是针对I/O设备备本身的的。由于于系统要要配置各各种I/O设设备和和部件,,它们都都要使用用一定的的系统资资源,包包括I//O通道道、I//O地址址、I//O端口口、存储储器地址址、中断断请求号号及DMA通通道等等,它们们的共享享在硬件件和软件件上可能能会产生生冲突,,必须由由操作系系统对I/O设备备进行正正确的配配置和分分配。12(2)设设备控制制和驱动动主要是按按照I/O控控制的的方式,,对不同同的设备备完成相相应的I/O中断断、设备备控制器器操作、、读写操操作等物物理过程程。针对对不同的的设备请请求,通通过设备备处理程程序或设设备驱动动程序完完成对设设备的直直接控制制。(3)系系统与设设备间的的协调主要是速速度上的的协调,,通常要要解决快快速的处处理器与与慢速的的I/O设备备之间的的操作匹匹配的问问题,在在操作系系统中采用缓冲冲区的方方式来缓解这这个矛盾盾,设备备管理要要实现这这些缓冲冲区的建建立、分分配、释释放与回回收。(4)设设备调度度与分配配是针对两两种不同同情况::对等待设设备和I/O操操作的的进程进行调度度;对多个进程程争用设设备进行分配配。13UNIX设备管管理在UNIX操作作系统中中,采用用比较统统一的方方法对外外设进行行管理。。首先将各各种外部部设备分分成特性性迥然不不同的两两大类,,即块设备和字符设备备;接着又把把与设备备物理特特性密切切相关的的部分与与设备管管理的基基本方式式和使用用的基本本技术分分离开来来。系统为各各个设备备设置单单独的数数据结构构,然后后用基本本相同的的方式和和技术对对同类设设备的I/O操操作进行行处理。。145.2操作系统统与中断断处理中断是参与计计算机系系统设备备管理的的一个重重要因素素和重要要结构。。它是操操作系统统中与硬硬件最接接近的一一部分,,是操作作系统和和硬件的的界面,,是由软软、硬件件结合形形成的一一套中断断机构实实施的。。155.2..1中中断的基基本概念念当一个正正在运行行的过程程被另外外一个过过程打断断,停止止运行过过程而转转向执行行另一过过程的活活动称为为中断。中断的过过程是打打断目前前正在进进行的工工作,转转而处理理更紧急急的事务务,处理理完成后后再继续续原来的的工作。。计算机系系统的中中断既来来自系统统内部,,也来自自系统外外部,分分别称为为内(部))中断和外(部))中断。内部中断断是计算算机系统统本身在在工作过过程中出出现的各各种需要要紧急处处理的事事务,如如出错中中断、程程序中断断等,也也称为软件中断断。内部中中断多采采用程序序陷入((trap)的的方式。。外部中断断主要是是来自I/O设备备的中断断,如设设备请求求中断、、打印中中断、掉掉电中断断、数据据传输中中断等,,大部分分是硬件中断断。16175.2..2中中断的类类型(1)I/O中中断这是来自自通道或或者各种种外部设设备的中中断,用用于反映映通道或或设备的的工作情情况。例例如,打打印机打打印结束束、磁盘盘传输完完成、利利用终端端进行I/O操作作等,也也包括外外设在执执行I/O操操作时时出错而而引起的的中断。。18(2)时时钟中断断一类特殊殊的I/O完完成中中断,它它不一定定与具体体的I/O相相连,,既可由由硬件引引起,也也可由软软件引起起。经由硬件件定时芯芯片产生生规则的的时钟间间隔(时时间片))或者由由软件计计数产生生的时间间间隔,,每一次次中断都都意味着着一段固固定时间间已到,,时钟中中断需要要定时、、复位和和更新。。19(3)系系统请求求中断向操作系系统提出出的请求求服务,,是由系系统指令令产生的的。系统统调用指指令是这这一类中中断的特特例。各种I/O指指令,,如TRAP、IOT等等均可产产生系统统请求。。该中断断把命令令传送到到操作系系统,以以确定一一个进程程需要什什么样的的服务,,操作系系统对请请求做出出分析并并提供所所需要的的服务。。20(4)报报警中断断一般由计计算机系系统的外外部条件件引起,,如计算算机的中中断键、、启动键键、求助助键等,,以及由由外部通通信信号号和网络络传输信信号到达达产生的的中断。。(5)程程序错误误中断因编程错错误、逻逻辑条件件判断或或分支错错误、运运行参数数错误而而产生的的中断。。它通常常会通过过用户终终端或显显示器给给予提示示。这类类中断的的类型包包括:除除数为零零、浮点点运算溢溢出、存存储器使使用无效效、地址址越界、、使用特特权或非非法指令令、越权权访问、、错误的的格式化化数据等等21(6)机机器错误误中断对应于系系统硬件件的错误误中断。。如存储储器错误误、I//O设设备错误误、显示示器错误误、接口口通道错错误等。。一般操操作系统统只报告告这些错错误,并并终止操操作。22UNIX中断机构构处理一切切外部设设备的I/O中断断。陷入机构构处理在系系统内发发生的需需要立即即干预的的事件,,包括使使用指令令的陷入入(自陷陷)和由由于软、、硬件故故障或错错误造成成的陷入入。系统调用用是UNIX操作作系统面面向在用用户态下下运行的的程序的的界面,,在C语语言和汇汇编语言言级上都都允许用用户态程程序使用用系统调调用。23(补充)系系统调用用命令操作系统统里预先先编制了了很多不不同功能能的子程程序。用用户可以以在自己己的程序序里调用用这些子子程序,,请求操操作系统统提供服服务。这这些子程程序称为为“系统统功能调调用”程程序。系统调用用是操作作系统程程序模块块的一部部分,它它应该在在管态下下执行。。不能直直接被用用户程序序调用,,用户程程序只有有通过系系统提供供的“访管””指令,才能实实现由目目态转为为管态、、进而调调用这些些功能程程序的目目的。24访管指令令访管指令令:是一条条非特权权指令,,功能是是执行它它就会产产生一个个软中断断,促使使处理器器由目态态转换到到管态,,进入操操作系统统,并处处理中断断。利用访管管指令的的这种功功能,编编译程序序就把源源程序中中的系统统调用都都转换成成访管指指令,把把具体的的功能转转换成不不同的编编码。这这样,就就能使处处理机执执行访管管指令由由目态进进入管态态,再根根据编码码,转到到相应的的功能处处理程序序去执行行。25例:在c语言中,,write(fd,buf,,count)系统调用用命令。。C编译程程序在编编译C的的源程序序时,总总把系统统调用命命令翻译译成能够够引起软软中断的的访管指指令trap..该指令长长两个字字节,第第一个字字节为操作码,第二个个字节为为系统调调用命令令的功能编码码。Trap功能码FdBufcountTrap的16进制操作作码89;Write的功能码码04;Write的机器指指令:二进制1000100100000100;八进制10440426Trap指令中中的功能能码是用用来区分分不同的的功能调调用的。。在UNIX操作作系统中中,有一一张“系统调用用程序入入口地址址表”。该表表表目从从0开始始、以系系统调用用命令所所对应的的功能码码为顺序序排列。。自带参数个数该系统调用处理程序的入口地址表目内容27系统调用用处理过过程语言编译译程序产生中断断查看入口口表Write处理理程序Write入口3write(fd,buf,count)104404(trap04)C语言源程序目标程序Trap中断处理程序34528系统调用用与一般般过程调调用的区区别(1)一般过程程调用,,调用者者与被调调用者都都运行在在相同的的cpu状态。。但发生生系统调调用时,,发出调调用命令令的调用用者运行行在目态态,而被被调用者者运行在在管态。。(2)一般过程程调用,,是直接接通过转转移指令令转向被被调用程程序的;;但发生生系统调调用时,,只能通通过软中中断指令令提供的的一个统统一入口口,由目目态进入入管态,,经分析析后,才才转向相相应的命命令处理理程序。。(3)一般过程程调用,,在被调调用者执执行完后后,就径径直返回回断点继继续执行行;但系系统调用用可能会会招致进进程状态态的变化化,从而而引起系系统重新新分配处处理机。。因此,,系统调调用结束束后,不不一定是是返回调调用者断断点处继继续执行行。291.与进进程管理理和控制制有关的的系统调调用属于这一一类的有有21种种。—进程程的创建建和消亡亡:fork、、exit。进进程间间的同步步:wait、、pause等等。2.与文件系系统有关关的系统统调用属于这一一类的有有28种种。—文件件生成和和取消::creat、、unlink。文文件打开开、关闭闭及控制制:open、、close、、fcntl。。UNIXSVR4提提供了了53种系系统调用用,它们们大致可可分为3类类。303.其他系系统调用用属于这一一类的有有4种。。—设置置和获得得系统或或进程时时间:stime、time、times。—在指指定时间间后发告告警信号号:alarm315.2..3中中断的响响应和实实现过程程中断是在在中断控制制机构的管理下下实现的的。设备备提出的的中断请请求信号号由中断断控制机机构响应应,然后后予以实实施。中断控制制机构的的主要功能能如下。①记录录各中断断源的中中断请求求信号,,以便于于分别处处理。②在CPU硬硬件中,,每当执执行完一一条指令令,或开开始取一一条指令令前,检检测有无无中断请请求,若若有则硬硬件自动动转入中中断处理理周期。。32③系统统对不同同的中断断类型规规定了不不同的优优先级,,当同时时存在多多个中断断请求时时,选优优先级最最高的予予以响应应。如果两个个中断的的优先级级相等,,将按照照一定算算法,如如先来先先服务((FIFO)等等进行处处理。优先级机机制可能能使中断断服务形形成嵌套套,即优优先级低低的中断断处理程程序的执执行会被被优先级级高的中中断打断断,从而而又调用用了另一一个处理理程序。。在有的的操作系系统(如如实时系系统)中中是不允允许中断断嵌套的的。33④响应应中断后后,根据据中断源源找出相相应的中中断处理理程序入入口地址址,以便便转去执执行。如何转入入相应的的中断处处理程序序,目前前常用的的结构是是中断矢量量(interruptvector)结构构。中断矢量量结构是一类地址指针针的集合合,在主存存中开辟辟了一个个特殊的的存储区区域来存存放这种种结构,,其中的的某一个个或者几几个存储储单元存存放一个个指向中中断处理理程序的的地址,,它被称称为中断断矢量。。一个中中断发生生,总可可以在固固定的位位置找到到这个指指针,再再根据指指针所指指的位置置(即指指针的内内容)获获得相应应的处理理程序或或者驱动动程序入入口地址址。34⑤保护现场场,以便中中断返回回时可以以在断点点处继续续执行。。中断现场场主要指::相应中中断时指令计数数器PC的内容((即下一一条指令令的地址址,也称称为断点点);进程运行行参数和和条件;现运行程程序状态态寄存器器PS的内容以以及累加器或通用寄存存器的内容和和标记,,有的计计算机也也把PC和和PS合合起来来统称为为程序状态态字PSW。现场保护护是把它它们保存存到主存存中的特特殊区域域(一般般是堆栈栈)中,,并保证证中断过过程中原原有现场场不做任任何改变变。35⑥当正正在进行行某一中中断处理理时,或或在执行行程序的的某些阶阶段,有有时不允允许响应应某些中中断,所所以应该该在程序序控制下下,禁止止响应某某些中断断,即屏蔽这些些中断。当不需需要屏蔽蔽时,又又能及时时在程序序控制下下撤销屏屏蔽。在实时系系统中中中断屏蔽蔽必须小小型化,,并且严严格限制制中断处处理程序序的执行行时间。。365.2..4中中断处理理程序和和驱动程程序中断处理理程序也也叫做中断服务务程序,它是与与设备硬硬件密切切相关的的处理程程序,一一般情况况下,处处理设备备的各个个I//O操操作的细细节是采采用汇编编语言和和机器语语言编写写。为了将这这种与设设备有关关的程序序对用户户透明,,使用户户不必去去了解每每一种设设备操作作的具体体细节,,通常采采用统一一的简单单方式,,如上述述的中断断矢量方方式来进进行。37在微型机机和个人人计算机机中,常常常把I/O中中断处处理程序序以设备驱动动程序的方式作作为操作作系统设设备管理理和控制制的依据据,用户户采用一一种通用的界界面和操操作来使用这这些设备备。例如,UNIX和DOS操操作系系统中都都把设备备作为一一种虚拟的文文件对待,每每个设备备有一个个像文件件名那样样的名字字,并对对它像一一个文件件那样存存取。设备驱动动程序被作为一一种特殊殊的文件件存放在在系统辅辅助存储储设备((如磁盘盘)中,,在需要要时由操操作系统统装入使使用。38在操作系系统设计计时,考考虑了所所有可能能与计算算机系统统配置的的设备,,所有设设备的驱驱动程序序随操作作系统软软件一起起提供给给用户,,用户在在安装操操作系统统时,根根据当时时配置的的I//O设设备情况况,调入入相应的的设备驱驱动程序序文件,,将它们们设置并并嵌入操操作系统统中,做做好系统统运行操操作的环环境准备备。如果果操作系系统的设设备配置置有变化化,则需需要重新新引导或或者重新新配置安安装操作作系统。。39在UNIX系统统中,将将设备分分成两类类:块设备和字符设备备。核心与与驱动程程序的接接口是由由块设备开开关表和字符设备备开关表表描述的..405.2..5中中断的返返回与恢恢复当中断请请求操作作完成时时,系统统必须返返回被中中断的程程序。此时,必必须将中中断开始始保存下下来的原原来程序序的状态态、寄存存器内容容和标记记、进程程运行参参数和条条件等一一一恢复复,复原原到中断断未出现现时的状状态,称称为现场恢复复。41UNIX操作作系统中中,中断处理理都是在在核心态态下进行行的。如果中断前处处理机状状态为核核心态,则在执执行完设设备处理理子程序序后就恢恢复现场场,然后后用中断断返回指指令回到到中断前前状态,,继续执执行被中中断的操操作系统统程序。。如果中断前为为用户态态,则在执执行完设设备处理理子程序序后,先先要检查查重新调调度标志志runrun是否设设置。如如若已经经设置,,则调用用进程切切换调度度程序进进行进程程调度,,中断时时被保护护的现场场就不必必立即恢恢复。如如果runrun标志志没有设设置,则则恢复保保护在堆堆栈中的的现场,,继续在在用户态态下执行行被中断断的程序序。425.4操作系统统对I/O操作的控控制外围设备备与内存存或CPU间常常用的数数据传送送控制方方式:程序循环环测试方方式中断控制制方式直接存储储器存取取(DMA)方方式通道方式式431.程程序I//O方式式等待发Start指令Test测试,设备标志触发器为“Done”?CPU执行下一条指令开始数据传送否是外围设备接收到Start指令作接收或发送数据准备准备好?标志触发器置为“Done”等待CPU来的下一条指令是否44程序I//O方式式在程序I/O方方式中,,由于CPU的的高速性性和I//O设备备的低速速性,致致使CPU的的绝大部部分时间间都处于于等待I/O设设备完成成数据I/O的的循环测测试中,,造成成对CPU的极极大浪费费。在该方式式中,CPU之之所以要要不断地地测试I/O设设备的状状态,就就是因为为在CPU中无无中断机机构,使使I//O设备备无法向向CPU报告它它已完成成了一个个字符的的输入操操作。452.中中断驱动动I/O控制方方式I/O操操作由程程序发起起,在操操作完成成时(如如数据可可读或已已经写入入)由外外设向CPU发发出中断断,通知知该程序序。数据据的每次次读写通通过CPU。硬件要求求:要在CPU与控控制器之之间连有有中断请求求线路;
要在在设备控控制器的的状态寄存存器中增设““中断允许许位”46数据传输输的步骤骤通过CPU发出出start指指令。启启动设备备,将中中断允许许位加以以设置发出I//O请求求的进程程由运行行状态改改变为阻阻塞状态态,等待待输入//输出的的完成。。输入/输输出完成成时,设设备控制制器通过过中断请请求线向向CPU发出中中断请求求信号。。CPU响应该该中断后后,就转转向中断断处理程程序,对对数据的的传输工工作进行行相应的的处理。。输入/输输出请求求全部完完成后,,进程被被解除阻阻塞,改改变状态态为“就就绪态””,以便便进入它它的下一一步工作作。47中断控制制方式的的处理过过程接收到CPU发来的Start指令缓冲寄存器满?设备控制器发中断信号是准备数据并将其置入缓冲寄存器否CPU调度程序调度其它进程收到中断信号了吗?中断处理被中断进程执行是否向设备发Start指令,置中断允许位为“1”其它进程执行48在I/O设备输输入每个个数据的的过程中中,由于于无须CPU干干预,因因而可使使CPU与I//O设备备并行工工作。仅仅当输完完一个数数据时,,才需CPU花花费极短短的时间间去做些些中断处处理。可可见,这这样可使使CPU和I//O设备备都处于于忙碌状状态,从从而提高高了整个个系统的的资源利利用率及及吞吐量量。例如,从从终端输输入一个个字符的的时间约约为100ms,而而将字字符送入入终端缓缓冲区的的时间小小于0.1ms。。若采采用程序序I/O方式,,CPU约有99..9ms的时时间处于于忙—等等待中。。采用用中断驱驱动方式式后,CPU可可利用这这99.9ms的的时间去去做其它它事情,,而仅用用0..1ms的时时间来处处理由控控制器发发来的中中断请求求。可可见,中中断驱动动方式可可以成百百倍地提提高CPU的利利用率。。493.直直接存储储器访问问DMAI//O控制制方式1)DMA((DirectMemoryAccess))控制方方式的引引入该方式的的特点是是:①数据据传输的的基本单单位是数数据块,,即在CPU与与I/O设备之之间,每每次传送送至少一一个数据据块;②所传传送的数数据是从从设备直直接送入入内存的的,或者者相反;;③仅在在传送一一个或多多个数据据块的开开始和结结束时,,才需CPU干干预,整整块数据据的传送送是在控控制器的的控制下下完成的的。可见见,DMA方式式较之中中断驱动动方式,,又是成成百倍地地减少了了CPU对I//O的干干预,进进一步提提高了CPU与与I/O设备的的并行操操作程度度。502).DMA控制器器的组成成51为了实现现在主机机与控制制器之间间成块数数据的直直接交换换,必必须在DMA控控制器中中设置如如下四类类寄存器器:(1)命令/状状态寄存存器CR。用于接接收从CPU发发来的I/O命命令或有有关控制制信息,,或设设备的状状态。(2)内存地址址寄存器器MAR。在输入入时,它它存放把把数据从从设备传传送到内内存的起起始目标标地址;;在输出出时,它它存放由由内存到到设备的的内存源源地址。。(3)数据寄存存器DR。用于暂暂存从设设备到内内存,或或从内存存到设备备的数据据。(4)数据计数数器DC。存放放本次CPU要要读或写写的字((节)数数。52当进程要要求输入入数据时时,CPU将准备存存放输入入数据的的内存起起始地址址、要传传送的字字节数送送入DMA控制器的的内存地地址寄存存器和传传送字节节计数器器,将中中断允许许位和启启动位置置成1,启动设设备。CPU将总线让让给DMA控制器,,在DMA控制器进进行数据据传输期期间,CPU不再使用用总线,,而是DMA控制器获获得总线线控制权权。发出传输输要求的的进程进进入等待待状态,,执行指指令被暂暂时挂起起,进程程调度其其他进程程占据CPUDMA工作原理理53DMA控制器按按照地址址寄存器器的指示示,不断断与内存存储器进进行直接接的数据据传输,,并随时时修改地地址寄存存器和字字节计数数器的值值。输入设备备不断窃窃取CPU工作周期期,数据据不断写写入内存存传送完毕毕,发出出中断信信号CPU接到中断断信号转转入中断断处理程程序处理理中断处理理结束,,CPU返回原进进程或切切换到新新的进程程DMA工作原理理54DMA方式的工工作流程程设置MAR和DC初值值启动DMA传送送命令挪用存储储器周期期传送数数据字存储器地地址增1字计数数寄存器器减1DC=0?请求中断断在继续执执行用户户程序的的同时,,准备又又一次传传送55DMA方方式与中中断方式式的主要要区别中断方式式是在数数据缓冲冲寄存器器满后,,发中断断请求,,CPU进行中中断处理理;DMA方方式则是是在所要要求传送送的数据据块全部部传送结结束时要要求CPU进行行中断处处理大大减少了CPU进行中断处理理的次数中断方式式的数据传送送是由CPU控制完成成的而DMA方式则则是在DMA控控制器的控制下下不经过过CPU控制完完成的,,因此避避免了因因速度不不匹配而而造成数数据丢失失的现象象。(DMA硬硬件比较较复杂))564.I/O通道控控制方式式1)I//O通道道控制方方式的引引入I/O通通道方式式是DMA方式式的发展展,它可可进一步步减少CPU的的干预,,即把对对一个数数据块的的读(或或写)为为单位的的干预,,减少为为对一组组数据块块的读((或写))及有关关的控制制和管理理为单位位的干预预。同同时,又又可实现现CPU、通道道和I//O设备备三者的的并行操操作,从从而更有有效地提提高整个个系统的的资源利利用率。。例如,,当CPU要完完成一组组相关的的读(或或写)操操作及有有关控制制时,只只需向I/O通通道发送送一条I/O指指令,以以给出其其所要执执行的通通道程序序的首址址和要访访问的I/O设设备,通通道接到到该指令令后,通通过执行行通道程程序便可可完成CPU指指定的I/O任任务。575.4..1I/O设设备的资资源分配配计算机系系统的各各类I//O设设备及其其控制部部件具有有不同的的连接方方式和接接口,需需要使用用和占据据系统的的某些资资源,这这些资源源是I/O设设备正正常工作作必不可可少的,,也是由由设备所所共享的的。操作系统统应当检检测和确确认哪些些I//O设设备使用用哪些系系统资源源,如何何分配协协调这些些资源以以避免冲冲突。下下面介绍绍这些资资源的含含义。581.I//O地地址I/O地地址是是I//O设设备或控控制卡所所在的位位置,处理器器通过这这个地址址找到对对应的I/O部件件和设备备寄存器器,并对对它进行行控制和和数据传传输操作作。由于很多多设备共共享某个个I//O地地址,这这样就会会产生I/O地址址冲突。。因此,,需要在在系统启启动时进进行正确确的I/O地地址设设置,或或者在应应用软件件运行时时进行I/O地地址的重重新设置置592.I//O中中断请求求每个I/O设设备在在工作过过程中都都会向处处理器发发出各种种I//O中中断请求求,例如如数据就就绪、数数据到达达、发送送结束、、纸张用用完、操操做出错错等。处理器接接收这些些I//O请请求后将将转入I/O中断断处理程程序,完完成相应应的I/O处处理。。然而,,系统拥拥有的I/O中断断请求号号是有限限的,其其中一些些已经用用于系统统的标准准功能性性中断,,如时钟钟中断、、除零中中断、系系统异常常中断等等。I//O设设备可能能争用剩剩余的中中断请求求,也会会产生冲冲突。因因此,这这也是I/O资资源分配配的重要要问题。。603.DMA数数据传输输通道直接存储储器访问问(DMA)通通道提供供了I//O设备备与系统统间有效效的数据据传输机机制,在在设备与与主存储储器之间间进行直直接的数数据传输输,而无无需处理理器干预预。由硬硬件组成成的DMA通通道数是是有限的的,对争争用同一一个DMA通道道的I//O设备备需要进进行协调调和重新新配置。。614.I//O缓缓冲区输入输出出缓冲区区是为了了加快I/O设设备的的数据传传输、协协调快速速处理器器和慢速速设备间间的一个个有效机机制。缓缓冲区的的设置要要占用主主存储器器一定的的空间,,各种I/O设备备开设的的缓冲区区的大小小和位置置可能不不一样,,也可能能一样,,这个系系统资源源也是I/O设备备争用的的。系统统必须保保证各个个I//O设备备开辟的的缓冲区区不相互互冲突,,并不影影响主存存储器的的使用。。625.4..2I/O通通道技技术I/O通通道是是一种硬硬件设施施,带有有专用处处理器的的、有很很强I/O处处理功功能的智智能部件件,它可可以独立立地完成成系统处处理器交交付的I/O操作作任务,,此时,,I/O总线线直接与与通道相相连而不不与处理理器相连连。通道具有有自己专专门的指指令集,,即通道道指令,,用于与与连接到到总线上上的I/O控控制器器通信,,在设备备与存储储器之间间传送数数据。采采用这种种方式,,系统主主处理器器只需进进行I//O操作作的委托托,其后后的所有有I/O操作均均由通道道自己进进行。通通道执行行来自主主处理器器的通道道程序,,完成后后只需向向系统处处理器发发出中断断,请求求结束。。可见,,这种方方式可以以形成系系统处理理器与I/O设设备之间间的并行行操作。。63I/O设设备与与系统的的数据交交换通常常采用程程序查询询、I//O中中断和直直接存储储器存取取(DMA)的的方式,,这3种种控制方方式也同同样适用用于通道道机制。。根据信息息交换方方式,通通道可以以分成3种类型型:字节多路路通道、数据选择择通道和成组多路路通道。64通道类型型1)字字节多路路通道((ByteMultiplexorChannel)这是一种种按字节节交叉方方式工作作的通道道。它通通常都含含有许多多非分配配型子通通道,其其数量可可从几十十个到数数百个,,每一个个子通道道连接一一台I//O设备备,并控控制该设设备的I/O操操作。这这些子通通道按时时间片轮轮转方式式共享主主通道。。这样,只只要字节节多路通通道扫描描每个子子通道的的速率足足够快,,而连接接到子通通道上的的设备的的速率不不是太高高时,便便不致于于丢失信信息。65662)数数据选择择通道((BlockSelectorChannel)字节多路路通道不不适于连连接高速速设备,,这推动动了按数数组方式式进行数数据传送送的数据选择择通道的形成。。这种通通道虽然然可以连连接多台台高速设设备,但但由于它它只含有有一个分分配型子子通道,,在一段段时间内内只能执执行一道道通道程程序,控控制一一台设备备进行数数据传送送,致致使当某某台设备备占用了了该通道道后,便便一直由由它独占占,即即使是它它无数据据传送,,通道被被闲置,,也不不允许其其它设备备使用该该通道,,直至至该设备备传送完完毕释放放该通道道。可见见,这种种通道的的利用率率很低。。673)成成组多路路通道((BlockMultiplexorChannel)数据选择择通道虽虽有很高高的传输输速率,,但它却却每次只只允许一一个设备备传输数数据。成成组多路路通道是是将数据据选择通通道传输输速率高高和字节节多路通通道能使使各子通通道(设设备)分分时并行行操作的的优点相相结合而而形成的的一种新新通道。。它含有有多个非非分配型型子通道道,先为为一台设设备执行行一条通通道指令令,然后后自动转转接,为为另一台台设备执执行一条条通道指指令。因因而这这种通道道既具有有很高的的数据传传输速率率,又能能获得令令人满意意的通道道利用率率。也正正因此,,才使该该通道能能被广泛泛地用于于连接多多台高、、中速的的外围设设备,其其数据传传送是按按数组方方式进行行的。685.4..3I/O缓缓冲技术术提高中央央处理器器与外设设的并行行程度的的另一项项技术措措施是缓缓冲技术术。减少了I/O设备备对处理理器的中中断请求求次数;;简化了中中断机制制;节省了系系统开销销;提高了处处理机与与外设的的并行程程度69图利用用缓冲寄寄存器实实现缓冲冲705.4..3I/O缓缓冲技术术缓冲技术术可以采采用硬件缓冲冲和软件缓冲冲两种方式式。硬件缓冲冲是利用专专门的硬硬件寄存存器作为为缓冲器器。而软件缓冲冲是借助操操作系统统的管理理,采用用内存中中的一个个或者多多个区域域作为缓缓冲区。。目前采用用最多的的是软件件缓冲,,它由缓缓冲区和和对缓冲冲区的管管理两部部分组成成。软件件缓冲可可以改变变缓冲区区的大小小和数量量,但也也占据了了一定的的存储空空间。715.4..4设设备的驱驱动为了将设设备的硬硬件复杂杂性与用用户隔离离,也为为了建立立一种通通用的I/O接接口,,操作系系统采用用设备驱动动程序来完成设设备的驱驱动。设备驱动动程序常常用汇编编语言编编写,它它向上与与高级I/O操作作系统调调用相对对应,向向下与I/O硬件件设备相相对应,,完成两两者间的的相互通通信。一一般每一一类设备备有一个个相应的的驱动程程序,能能控制同同一类中中多台设设备的工工作。每个设备备生产厂厂商和软软件开发发商都必必须按照照设备驱驱动程序序的标准准结构编编写独立立的设备备驱动程程序,当当系统需需要时,,再将它它安装配配置到系系统中。。725.4..4设设备的驱驱动目前,设设备驱动动程序是是作为操操作系统统所提供供的选择择项,用用户可以以根据需需要配置置设备,,灵活地地选择、、装载、、卸载驱驱动程序序,从而而极大地地增强了了系统的的开放性性和可扩扩展性。。设备驱动动程序一一般不由由用户执执行,也也不能被被用户进进程直接接执行,,只能通通过I//O请请求和调调用方式式,由系系统或者者I/O处理器器执行。。735.5设备管理理的数据据结构操作系统统提供了了若干高高级I//O系统统调用,,它包含含了对I/O设设备的操操作请求求、响应应、处理理、控制制、缓冲冲、恢复复等,从从而用这这些抽象象的I//O操作作把用户户与复杂杂的I//O设备备操作隔隔离开来来。将抽象的的I/O操作作映射到到专门的的设备驱驱动程序序,由此此隐藏设设备操作作细节,,有利于于编写与与设备无无关的程程序。要完成抽抽象到实实际的映映射,操操作系统统通常采采用一个个数据结结构来完完成,称称为设备控制制表(DCT),简简称设备备表。它记录每每一个抽抽象设备备描述、、对应的的实际设设备的地地址和所所使用的的设备驱驱动程序序等参数数。用户户和进程程对设备备的调用用通过设设备表映映射到物物理设备备,使I/O操操作与设设备无关关,与硬硬件接口口和硬件件地址无无关。5.5..1设设备控制制表74设备表设备表有有多个表表项,每每个表项项对应一一个设备备;表项项的内容容包括设备标识识符、设备地址址、设备属性性、设备状态态、设备驱动动程序地地址、设备等待待队列指指针等。图5-4给出出了设备备表的一一个简单单示例。。表中包包含了若若干抽象象的I/O操操作系系统调用用,每个个调用以以函数指指针的形形式映射射到实际际的I//O处理理程序,,再经过过对应的的设备驱驱动程序序对物理理设备进进行操作作。7576Structdevtab{intdvid;intdvadd;;int**dvec;;int**dvbuf;int**dvque;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个传递递来的参参数*//intdvcrp,size;//*参数数为设备备标识符符、数据据块大小小和缓冲冲区指针针char*buf;{structdevtab*devptr;//**定义一一个指向向设备表表的指针针*/if(isbaddev((dvcrp)))//**确认设设备标识识符是否否有效**/return(SYSERR);//*无无效,系系统返回回出错**/devptr==&dct[dvcrp];;//**有效,,找到对对应的设设备表项项*/return((*devptr-->dvread)((devptr,buf,size));;/*将参参数传向向设备驱驱动程序序并返回回*/}785.5..2设设备开关关表针对各类类设备不不同的物物理特性性,系统统为它们们各自设设置了一一套子程程序,它它们包括括打开、、关闭和和启动子子程序。。系统为每每类设备备又设置置了一数数据结构构,存放放这些程程序的入入口地址址,该数数据结构构称为设备开关关。各类设备备的开关关构成设设备开关关表。为为使设备备开关表表与设备备控制表表建立联联系,在在设备开开关表中中还设立立了该设设备的控控制表指指针或设设备控制制表在系系统中的的编号,,即设备备号。795.6磁盘调度度磁盘的特特点是存存储容量量大,存存取速度度快,并并且能够够顺序或或随机存存取。磁盘系统统硬件可可分为两两大部分分:一部分是是磁盘驱动动器,它是机机械部分分,包括括驱动电电机、读读/写磁磁头和相相应的逻逻辑电路路;另一部分分是磁盘控制制器,实现与与计算机机的逻辑辑接口。。磁盘控控制器接接收来自自CPU的指令令,命令令盘驱动动器执行行该指令令。这样样,一个个磁盘控控制器就就可以控控制多个个磁盘驱驱动器的的工作80磁盘结构构示意图图每个盘片片有正反反两个盘盘面,若若干个盘盘片组成成一个磁磁盘组。。每个盘面面有一个个读写磁磁头,所所有的读读写磁头头被固定定在移动动臂上,,同时进进行内、、外的运运动。81硬盘俯视视图82硬盘的磁磁头臂83数据的组组织和格格式磁盘设备备可包括括一或多多个盘片片,每片片分两面面,每面面可分成成若干条条磁道((500-2000)),各磁磁道之间间留有必必要的间间隙。每条磁道道上可存存储相同同数目的的二进制制位。每条磁道道又分成成若干各各扇区((10--100)。每每个扇区区的大小小相当于于一个盘盘块。各各扇区之之间保留留一定的的间隙。。盘上信息息的地址址是多重重编址的的,通常常包括驱动器号号、面号号、道号号和扇区区号。8485磁盘访问问时间1)寻寻道时间间这是指把把磁臂((磁头))移动到到指定磁磁道上所所经历的的时间。。该时间间是启动动磁臂的的时间s与磁头头移动n条磁道所所花费的的时间之之和,即即寻道时间间=m×n+s其中,m是一常数数,与磁磁盘驱动动器的速速度有关关,对一一般磁盘盘,m=0.2;对高高速磁盘盘,m≤0.1,磁磁臂的启启动时间间约为2ms。这这样,对对一般的的温盘,,其寻寻道时间间将随寻寻道距离离的增加加而增大大,大大体上是是5~30ms。862)旋旋转延迟迟时(等等待时间间)这是指定定扇区移移动到磁磁头下面面所经历历的时间间。对于于硬盘,,典型的的旋转速速度大多多为5400r/min,,每转需需时11.1ms,,平均旋旋转延迟迟时间为为5.55ms;对对于软盘盘,其旋旋转速度度为300r/min或600r/min,,这样,,平均旋旋转延迟迟时间为为50~~100ms。873)传传送时间间这是指把把数据从从磁盘读读出或向向磁盘写写入数据据所经历历的时间间。传传送时间间的大小小与每次次所读//写的字字节数b和旋转速速度有关关:其中,r为磁盘每每秒钟的的转数;;N为一条磁磁道上的的字节数数。88由上式可可以看出出,在访访问时间间中,寻寻道时间间和旋转转延迟时时间基本本上都与与所读//写数据据的多少少无关,,而且它它通常占占据了访访问时间间中的大大头。例如,我我们假定定寻道时时间和旋旋转延迟迟时间平平均为20ms,而磁磁道的传传输速率率为10MB//s,如如果要传传输10KB,,此时总总的访问问时间为为21ms,可可见传输输时间所所占比例例非常小小。目前前磁盘的的传输速速率已达达80MB/s以上,,数据传传输时间间所占的的比例更更低。可见适当当的集中中数据((不要太太零散))传输,,将有利利于提高高传输效效率。89操作系统统要提供供合适的的调度算算法,以以改善磁磁盘服务务的平均均时间。。进程需要要与磁盘盘交换信信息时必必须向操操作系统统发出系系统调用用,对磁磁盘的请请求一般般要有下下述几个个部分内内容:输入或输输出、盘地址(驱动器器、柱面面、面号号、扇区区)、内存地址址和传送长度度。如果所需需磁盘驱驱动器和和控制器器是可用用的,则则该请求求可立即即得到服服务;如如果它们们正在为为别的进进程服务务,该进进程就要要排队等等待。在在多道程程序系统统中,往往往有很很多进程程在磁盘盘队列中中等待,,当一个个进程的的请求完完成之后后,必须须选一个个新的请请求,并并为它服服务。905.6..2磁磁盘调调度由于在访访问磁盘盘的时间间中,主主要是寻寻道时间间,因此此,磁盘盘调度的的目标,,是使磁磁盘的平均寻道道时间最最少。目前常用用的磁盘盘调度算算法有::先来先服服务;最短寻道道时间优优先扫描等算算法。911.先先来先服服务FCFS((First--Come,FirstServed)原理:磁盘I/O执执行顺序序为磁盘盘I/O请求的的先后顺顺序。该算法的的特点是是公平性性;在磁磁盘I//O负载载较轻且且每次读读写多个个连续扇扇区时,,性能较较好。缺点:效率不不高,相相临两次次请求可可能会造造成最内内到最外外的柱面面寻道,,使磁头头反复移移动,增增加了服服务时间间,对机机械也不不利92例:假设设磁盘访访问序列列:98,183,37,122,14,124,65,67读写头起起始位置置:53安排磁头头服务序序列计算磁头头移动总总距离((道数))例如:93总共移动动了640个磁磁道。143753656798122124183458514685108110592942.最最短寻道道时间优优先SSTF((ShortestSeekTimeFirst)考虑磁盘盘I/O请求队队列中各各请求的的磁头定定位位置置,选择择从当前前磁头位位置出发发,移动动最少的的磁盘I/O请请求。该算法的的目标是是使每次次磁头移移动时间间最少。。它不一一定是最最短平均均柱面定定位时间间,但比比FIFO算法法有更好好的性能能。对中间的的磁道有有利,可可能会有有进程处处于饥饿饿状态。。95总共移动动了236个磁磁道。14375365679812212418312230238424259963.扫扫描(SCAN)算法法1)进进程“饥饥饿”现现象SSTF算法虽虽然能获获得较好好的寻道道性能,,但却却可能导导致某个个进程发发生“饥饥饿”((Starvation)现现象。因因为只要要不断有有新进程程的请求求到达,,且其所所要访问问的磁道道与磁头头当前所所在磁道道的距离离较近,,这种新新进程的的I/O请求必必须优先先满足。。对SSTF算算法略加加修改后后所形成成的SCAN算算法,即即可防防止老进进程出现现“饥饿饿”现象象。972)SCAN算法选择在磁磁头前进进方向上上从当前前位置移移动最少少的磁盘盘I/O请求执执行,直直至到达达磁盘的的另一端端时才改改变方向向。该算法是是对SSTF算算法的改改进,磁磁盘I//O较好好,且没没有进程程会饿死死。由于这种种算法中中磁头移移动规律律类似电电梯的运运行,因因而又常常称之为为电梯调调度算法
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年 东莞市望牛墩镇招聘机关事业单位考试试题附答案
- “丝绸之路”丝路文化戏剧商业计划书
- 天然气化工项目可行性研究报告
- 中国苗圃行业市场运营现状及投资战略咨询报告
- 2025-2030年中国席卡夹项目投资可行性研究分析报告
- 中国单反行业市场全景监测及投资前景展望报告
- 中国蜂制品行业市场深度研究及投资规划建议报告
- 信息与计算机工程学院080400仪器科学与技术报录数据分析报告
- 中国清洁能源行业市场调查报告
- 2025年中国鸡精市场全面调研及行业投资潜力预测报告
- 医疗器械法规对医疗器械经销商资质的规定
- 阿森斯失眠评定量表2
- 安全防水知识培训内容
- 梨生产技术规范
- 红旗H7汽车说明书
- 劳保鞋管理制度
- GB/T 15622-2023液压缸试验方法
- 1.2音乐情感及情绪《祝酒歌》课件-高中音乐人音版必修音乐鉴赏
- 制造业转型升级的产业协同创新研究
- 父母多爱我-完整版课件
- 运维服务质量保障措施方案
评论
0/150
提交评论