版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第4章设备管理 ●设备管理是指计算机系统中除了CPU和内存以外的其它所有设备的管理。●除了进行实际I/O操作的设备之外,也包括了诸如设备控制器、DMA控制器、中断控制器、I/O处理机等支持设备。●在实际使用过程中,外围设备的种类繁多,功能各异,管理复杂。如何有效而又方便地使用这些设备是设备管理的重要任务。●设备管理是操作系统的重要和根本的组成局部,对设备管理的好坏,直接影响系统的效率。2023/7/274.1.设备管理概述
4.2.I/O控制方式
4.3.缓冲技术
4.4.设备分配
4.5.WINDOWS2003Server的I/O系统
4.6.本章小结2023/7/274.1.1设备的分类计算机系统的外围设备包括:显示器、键盘、纸带阅读器、纸带穿孔机、打印机、磁带、磁盘、光盘、激光打印机、绘图仪、图形数字化仪、鼠标器、声音输入、声音输出设备以及办公自动化设备等等,种类相当繁多,可从不同的角度对它们进行分类。
4.1设备管理概述2023/7/27系统设备:在操作系统生成时已登记于系统的标准设备,一般至少有键盘、显示器、打印机、磁盘或磁带设备等。用户设备:在系统生成时并没有登入系统的非标准设备,一般由用户提供设备及其处理程序,并通过适当的手段把它们纳入系统中,由系统实施管理。例如实时测控系统中的各种A/D、D/A转换器,图像处理系统中的图像设备,CAD系统所需的专用设备等。1.设备的附属关系分类2023/7/27块设备:指以数据块为单位来组织和传送数据的设备,如磁盘、磁带等。字符设备:指以单个字符为单位来传送信息的设备,如终端、打印机等。2.设备中的数据组织方式分类2023/7/27存储设备:磁带、磁盘〔软盘、硬盘〕、光盘、其它〔磁鼓等〕。输入输出设备:键盘、打印机、显示器、图形输入输出设备、图像输入输出设备、绘图仪、声音输入输出设备、网卡、其它。终端设备:通用终端〔会话型、批量型、智能型〕、多用终端、虚终端。3.按设备的使用特性分类2023/7/27独占设备:这类设备在用户作业的整个运行期间必须为此用户所占有,才能保证传送设备的连贯性。大多数低速I/O设备,如用户终端、打印机、纸带输入机等均属于这类设备。共享设备:这类设备通常指磁盘这类直接存取设备,很容易被多个用户所共享。实际上是几个进程或作业交替地对它们进行读写,而宏观上看是同时对它们进行访问。虚拟设备:在一类设备上模拟另一类设备,常用共享设备模拟独占设备,用高速设备模拟低速设备,被模拟的设备称为虚拟设备。4.按资源分配的角度分类2023/7/27为将慢速的独占设备改造成多个用户可共享的设备,以提高设备的利用率,可借助于假脱机技术〔Spooling〕。Spooling技术的根本思想是:当某作业或进程请求分配独占设备时,系统就分配给它共享设备中的某一局部,使其与独占设备相关联。2023/7/27例如用磁盘中的某一局部代替打印机,程序欲打印输出的信息先写入磁盘的这局部存储空间中,适当的时候,例如打印机空闲时,再从盘中取出该信息交由打印机输出。这样,用户或进程是直接和磁盘打交道,而间接地使用打印机。由于磁盘的存取速度远高于打印机的打印速度,而且磁盘是可共享的,所以,对用户来说似乎有了一台高速的可共享的打印机。2023/7/27I/O系统的结构CPU磁盘控制器存储器打印机控制器其他控制器一、微型机I/O系统:总线结构磁盘驱动器打印机2023/7/27二、主机系统输入输出结构 在一台通用的计算机系统中,通过输入输出控制系统完成外围设备与主存储器之间的信息传送。各种外围设备连接在相应的设备控制器上,这些设备控制器又通过通道连接在公共的系统总线上。I/O系统共分为4级:最低级为I/O设备,次低级为设备控制器,次高级为I/O通道,最高级是主机。2023/7/27
2023/7/27三.设备控制器设备控制器是CPU与I/O设备的接口(1)作用:接收从CPU发来的命令,控制I/O设备工作。(2)功能:接收和识别命令数据交换设备状态的了解和报告地址识别2023/7/27I/O设备一般由机械与电子线路两局部组成。为了使设计模块化、具有通用性,也为了降低设备本钱,通常总是把这两局部分开:机械部称为设备本身,电子局部称为“设备控制器〔或适配器〕〞。设备控制器上有供插接用的连接器,通过电缆与设备内部相连。由于设备控制器是电子设备,工作速度快,因此很多设备控制器可以连接2个、4个、甚至8个相同类型的设备。2023/7/27每种I/O设备都要通过一个控制器和CPU相连。例如软磁盘通过软盘控制器和CPU连接,打印机通过打印机控制器和CPU连接。控制器是通过自己内部的假设干个存放器与CPU进行通信的。有用作数据缓冲的数据存放器;有用作保存设备状态信息供CPU对外部设备进行测试的状态存放器;还有用来保存CPU发出的命令以及各种参数的命令存放器。为了标识这些存放器,有的计算机系统把它们作为常规存储器地址空间的一个局部来对待;有的计算机系统那么给予它们专用的I/O地址。比方图列出了IBMPC机上某些控制器所配置的I/O地址和相应的中断向量。2023/7/272023/7/27由于是设备挂接在控制器上,因此要让设备做输入/输出操作,操作系统总是与控制器交往,而不是与设备交往。操作系统把命令以及执行命令时所需要的参数一起写入控制器的存放器中,以实现输入/输出。在控制器接受了一条命令后,就可以独立于CPU去完成命令指定的任务。2023/7/27(3)设备控制器的组成
1.与处理机的接口2.与设备的接口3.I/O逻辑2023/7/271.设备备管理的目标(1)提高外围设备的利用效率设备管理的首要目标是要提高外围设备的利用率,尽可能地提高外设之间,外设和CPU之间的并行程度,使系统中的各种设备尽可能地处于忙碌状态。
4.1.2设备管理的目标和功能2023/7/27所谓方便,是指用户程序应该与给定的不同类型、型号的设备无关,并且与具体设备的物理特性无关,而方便的使用设备。所谓统一,是指对不同设备尽量能有统一的操作方式。方便和统一都要求操作系统去实现具体设备的物理I/O操作,而对用户程序屏蔽这些细节,呈现给用户的是一种性能理想化的、操作简便的逻辑设备。
〔2〕为用户提供方便、统一的界面2023/7/27有时把系统的这种性能称为设备的独立性。例如对于用户的同一个程序,操作系统应该能够让用户程序对不同的打印机进行操作,而对不同的打印机的具体特性不必理睬,且用户程序也不必修改。2023/7/27为实现设备的有效管理和用户方便使用,设备管理一般应具备下述功能:〔1〕设备分配在多道程序环境中,多个用户和进程往往同时要求使用同一个设备,按照设备的类型和系统中采用的方法,决定把某个设备分配给哪一个要求该类设备的进程。在进行分配的同时还应分配相应的控制器和通道,以保证设备与CPU之间能够传递信息,未能分配到所需设备的进程,应排成一个队列,按一定的次序等待使用设备。设备分配程序完成这一工作。2.设备管理的功能2023/7/27在设置通道的系统中,其I/O操作一般由通道执行通道程序来完成。因此,操作系统的设备管理软件应具有这样的功能:根据用户提出的I/O要求,生成相应的通道程序并提交给通道,然后用专门的通道指令启动通道对指定设备进行I/O操作,并能响应通道的中断请求。在未设置通道的系统中,由设备管理软件对设备I/O请求做必要的处理,如设备分配、缓冲区分配,并直接对设备接口编程,然后驱动指定的设备进行I/O操作。〔2〕实现物理I/O操作2023/7/27设备管理程序应具有对缓冲区进行管理的功能。此外,为改善系统的可适应性和可扩展性,应使用户程序与实际的设备无关。
〔3〕实现其它功能2023/7/27输入输出操作的控制方式一般有四种:查询方式中断方式直接内存存取方式通道方式它们的主要差异在于处理器和外设并行工作的方式和程度的不同。4.2I/O控制方式2023/7/27查询方式是最简单的I/O控制方式。在设备控制器中有两个存放器,一个是状态存放器,由其中的一个状态位的值反映设备的忙或闲;另一个是数据缓冲存放器。当设备启动时,状态存放器的启动位为1,此时外设把数据送往数据缓冲存放器,并将状态存放器的状态位置1。CPU执行完一条指令后就测试状态位,如果为1,就把数据存放器中的数据取到内存;假设状态位为0,那么再测试,直到状态存放器的状态位为1,然后再读取数据。所以此种方式也称循环测试I/O方式。4.2.1查询方式2023/7/27就绪向设备控制器发读命令读设备控制器的状态检查状态从设备控制器中读入字向存储器中写字传送完成CPU->I/OCPU->内存I/O->CPU出错I/O->CPU完成下条指令未完成未就绪2023/7/27由于CPU的速度远高于设备I/O的速度,使得CPU绝大局部时间都处于等待I/O完成的循环测试中。显然,这是对CPU的极大浪费。但是,它的管理简单,在要求不高的场合下常被采用,而且不能支持多道程序。2023/7/27查询方式是主机向外设询问,而引入中断后,每当设备完成I/O操作,它便以中断请求方式主动向CPU汇报。因此,CPU一旦启动I/O设备后便可转去处理其他程序,仅在接到I/O中断信息请求时才花费极少时间去处理。
4.2.2中断方式2023/7/27例如,打印机每打一行需要60ms,在查询方式中,大约有59.99ms,CPU都处于循环等待中,而以中断方式处理的话,CPU仅花费0.1ms时间来处理I/O设备发来的中断,其余的59.99ms都可以用来做别的事情。所以中断方式比查询方式节省CPU的时间。2023/7/27向设备控制器发读命令读设备控制器的状态检查状态从设备控制器中读入字向存储器中写字传送完成CPU->I/OCPU->内存I/O->CPU出错I/O->CPU完成下条指令未完成CPU做其他中断2023/7/27中断方式的方法是当设备完成I/O操作后,主动向CPU报告,CPU只用少量时间处理I/O中断,并将数据取回。在多道程序中的环境下,一个程序或进程启动I/O设备并允许中断后,不是自己主动去执行别的程序或继续执行主流程,而是应当把自己挂起,控制权交还给进程调度程序。在中断处理程序中,完成指定的I/O操作之后应把等待此结果的进程唤醒,而后由进程调度程序在适当时机把此进程投入运行。多道程序下的中断处理方式如图4-3所示。2023/7/27某进程其他进程输入中断处理中断调度调度唤醒启动I/O并允许中断阻塞等待处理输入的数据保护现场输入处理唤醒等待进程恢复现场2023/7/27中断处理方式提高了主机的利用率,但是每次中断都要保存现场信息,恢复现场等,仍占用CPU时间。在传送数据量大、速度高的情况下,中断方式就不适应了。目前在块设备〔如磁盘〕的传输系统中,都普遍采用了直接内存存取方式,即DMA方式。是指对I/O设备的控制由DMA控制器完成,在DMA控制器的作用下,设备和主存之间可以成批地进行数据交换,而不用CPU的干预。4.2.3直接内存存取方式2023/7/27DMA方式 控制器功能更强,除有中断功能外,还有一个DMA控制机构。在DMA控制器的控制下,设备同主存之间可成批交换数据,不用CPU干预。DMA控制器组成:2023/7/27DMA方式直接存储器存取控制方式的步骤:①当进程要求设备输入一批数据时,CPU将设备存放输入数据的内存始址以及要传送的字节数分别送入DMA控制器中的地址存放器和传送字节计数器;另外,还要将中断位和启动位置为1,以启动设备开始进行数据输入并允许中断。②发出数据要求的进程进入等待状态,进程调度程序调度其他进程占据CPU。③输入设备不断地挪用CPU工作周期,将数据存放器中的数据源源不断地写入内存,直到所要求的字节全部传送完毕。④DMA控制器在传送字节数完成时,通过中断请求线发出中断信号,CPU收到中断信号后转中断处理程序,唤醒等待输入完成的进程,并返回被中断的程序。⑤在以后的某个时刻,进程调度程序选中提出请求输入的进程,该进程从指定的内存始址取出数据做进一步处理。2023/7/27DMA方式有以下四个特点:〔1〕它是高速外围设备与内存之间成批量的数据传输,但是不对数据再做加工处理,I/O操作类型简单;〔2〕它需要使用一个专门的硬件DMA控制器〔DMAC〕。DMAC内有控制存放器、状态存放器、传送字数计数器和内存地址存放器以及数据缓冲存放器;2023/7/27〔3〕它采用偷窃总线控制权的方法,由DMAC送出内存地址和发出内存读、设备写或者设备读、内存写的控制信号来完成内存与设备之间的直接数据传送,而不用CPU干预。有的DMA传送甚至不经过DMAC内的数据缓冲存放器的再吞吐,传输速率非常高。〔4〕每传送一个数据并不产生中断,只有DMAC中的传送字数计数器减1至0时,也就是本次DMA传送的数据全部传送完毕时,才产生中断,请求CPU进行结束处理。2023/7/27DMA方式只能完成简单的数据传送、计数、内存地址加1或减1等操作,不能满足复杂的I/O操作要求。2023/7/27在大中型计算机系统中,普遍采用的是由专用的I/O处理机来管理外设和内存之间的信息交换,这就是通道技术。可以把通道看成一个比DMAC功能更强的接口设备,或者说DMA方式是我们下面将要介绍的一种称之为选择通道的简易形式。
2023/7/27DMA方式与中断的主要区别中断方式是在数据缓冲存放区满后,发中断请求,CPU进行中断处理DMA方式那么是在所要求传送的数据块全部传送结束时要求CPU进行中断处理大大减少了CPU进行中断处理的次数中断方式的数据传送是由CPU控制完成的而DMA方式那么是在DMA控制器的控制下不经过CPU控制完成的2023/7/27CPU向控制器发出启动DMA通知和有关参数控制器向内存发出询问请求访问内存〔读、写〕计数器减1结束否发中断NYDMA的实现流程2023/7/27通道的引入是为了建立独立的I/O操作。它不仅要求数据传送独立于CPU,而且要求I/O操作的组织、管理、结束等也尽量独立,以保证CPU有更多的时间从事计算。这样就可以实现CPU计算和I/O操作的并行工作。通道是一种硬件机构,又称I/O处理机。因其是专用,故有很强的I/O处理能力。它接受CPU的委托,独立地执行自己的通道程序来实现内存与外设之间的数据传输。当CPU委托的I/O任务完成后,通道发出中断,请求CPU进行结束处理。4.2.4通道方式2023/7/27
2023/7/27根据信息交换方式,通道可分成:字节多路通道、选择通道、成组多路通道三种类型。1.通道分类2023/7/27〔1〕字节多路通道它适用于连接打印机、终端、卡片机等低速或中速的I/O设备,是按字节交叉方式工作的,这种通道可以连接8,16,32甚至更多的子通道子通道所连接的I/O设备以字节为单位经通道与内存交换数据,一个子通道传送一个字节后,立即让位于另一个子通道。由于字节通道的速度较高,而所连接的主要是低速I/O设备,因此,一个字节通道可以连接很多这样的低速设备。2023/7/272023/7/27选择通道的数据传送是按成批的方式进行的,故传送速率很高。〔2〕选择通道选择通道2023/7/27它适用于连接高速I/O设备,如磁带、磁盘等。选择通道只有一个分配型子通道,即这个子通道可以连接多台设备,但每次只能把子通道分配给一台设备使用。一旦分配给某台设备,子通道就被它独占,即使暂时出现空闲,也不允许其他设备利用该子通道。直到它被释放,再选择另一台设备为其效劳。因此选择通道的利用率是很低的。2023/7/27这种通道综合了字节多路通道分时并行工作和选择通道传输速率高的特点。它具有多个非分配型子通道,每个子通道连接一台中、高速I/O设备,如:磁带、磁鼓、磁盘等,因而通道所连接的几个设备可以并行工作。每台设备的数据传送是按成组方式进行的。
〔3〕成组多路通道2023/7/27它首先为某台设备执行一条通道命令,传送一批数据,然后再选择另一台设备执行另一条通道命令,即几台设备的通道程序都在同时执行中;但任何时刻,通道只能为一台设备的数据传输提供效劳。因此成组多路通道技术相当于通道程序的多道程序设计技术。存在这三种通道的计算机系统的各硬件的连接关系如图4-5所示。2023/7/27
CPU字节多路通道
打印机1打印机2
I/O控制器
I/O控制器
内存
选择通道成组多路通道
磁盘
I/O控制器
磁盘
I/O控制器
I/O控制器
I/O控制器
磁带
磁带
图4-5通道与计算机系统各硬件的关系
2023/7/27通道I/O操作由两种指令实现控制,即CPU的I/O指令和通道本身提供的通道命令字CCW〔ChannelCommandWord〕。I/O指令的功能一般包括有:去除、停止、启动、查询等功能,除了操作码之外,I/O指令中还有通道地址和设备地址。I/O指令属特权指令,只能由操作系统使用。CCW一般有读、写、查询、控制和转移等功能。2.通道的工作方式2023/7/27系统程序设计人员依据驱动设备的要求,使用CCW编写的程序称为通道程序,不同的设备有不同的通道程序。通道程序存放在内存中,由I/O指令启动执行。用户请求I/O时,CPU对通道的通信是向通道发出查询、启动和停止通道程序工作,而通道向CPU的通信那么采用中断方式。其执行过程如图4-6所示。2023/7/27用户I/O请求
查询设备忙闲?
调用通道程序
执行通道程序
I/O操作完成,发中断请求
CPU响应中断,进行结束处理
以I/O指令启动通道结束通道工作
进入设备请求队列,等待忙不忙图4-6通道程序的执行过程
2023/7/27通道有自己的指令系统,为了与CPU的指令相区别,通道的指令被称为“通道命令字〞。通道命令字条数不多,主要涉及控制、转移、读、写及查询等功能。通道命令字一般包含有:被交换数据在内存中的位置、传输方向、数据块长度以及被控制的I/O设备的地址信息、特征信息等。图给出了IBM通道命令字的格式。2023/7/27假设干通道命令字构成一个“通道程序〞,它规定了设备应该执行的各种操作和顺序。在CPU启动通道后,由通道执行通道程序,完成CPU所交给的I/O任务。通常,通道程序存放在通道自己的存储部件里。当通道中没有存储部件时,就存放在内存储器里。这时,为了使通道能取到通道程序去执行,必须把存放通道程序的内存起始地址告诉通道。存放这个起始地址的内存固定单元,被称为“通道地址字〞。2023/7/27综上所述,在前三种I/O控制方式中,CPU直接对设备控制器和I/O接口编程,可以简化接口的设计。对于非DMA传送,需要CPU实际去完成数据传送。对于高速数据传送可以使用DMA,但还是需要CPU设置设备控制器,初始化DMA操作和操作完毕去检查端口传送状态。而通道不同于DMA控制器,它能够去取和执行它自己的指令;而且这些指令的功能已不仅仅是数据传送,还包括检索、分支转移,甚至一些简单的算术、逻辑运算。2023/7/27大、中型计算机系统普遍用通道方式去控制设备完成I/O操作,以提高CPU与外设,外设与外设并行的程度。一些小型机和绝大多数微型机都是以CPU直接控制设备接口和设备控制器以查询、中断或DMA方式完成I/O操作,以降低系统造价。2023/7/27缓冲的引入原因:可减少占用通道的时间,从而缓和“瓶颈〞现象,可以显著提高CPU、通道、I/O设备之间的并行操作程度。改善CPU和I/O设备之间速度不匹配的情况。可以减少I/O对CPU的中断次数,放宽CPU对中断响应时间要求。但凡数据到达和离去速度不匹配的地方均可采用缓冲技术。4.3.缓冲技术2023/7/27缓冲有硬件缓冲和软件缓冲之分。硬件缓冲是以专用的存放器作为缓冲器。由于经济上的考虑,除了在最必要的地方采用少量硬件缓冲器外,大都采用软件技术来实现缓冲。即在操作系统的管理下,在内存中划出假设干个单元作为缓冲区。软件缓冲的好处是易于改变缓冲区的大小和数量,缺点是占据了一局部内存空间。2023/7/27根据缓冲区设置个数的多少,缓冲区有单缓冲、双缓冲和多重缓冲之分。在只有一个缓冲区的情况下,如果把一批数据读入并打印出来,事实上,CPU和打印机是完全串行工作的,CPU将数据读入缓冲区时打印机是空闲的,打印机工作时,从缓冲区取出数据打印,CPU是空闲的。2023/7/27如果有两个缓冲区,就可以先读入一局部数据到缓冲区1,装满后在打印缓冲区1中的数据的同时,便向缓冲区2中读入另一局部数据。在缓冲区1中的内容打印完毕,缓冲区2的内容也输入完毕后,然后进行交换,即打印缓冲区2中的同时,又继续向缓冲区1中读入数据。此时CPU和打印机已处于并行工作状态,I/O设备得到充分利用。2023/7/27
2023/7/27虽然在采用双缓冲时,能实现CPU和I/O操作并行化,但在一般情况下,并不能获得令人满意的CPU和I/O设备的并行操作。由于CPU的速度远远高于输入和输出的速度,而使CPU经常处于等待状态。2023/7/27这时,为了获得良好的并行操作,就需要设置多个缓冲区,称之为多重缓冲。例如,由于打印机输出数据时,假设CPU输出的数据又多又快,可能很快占满缓冲区,只有等打印机打印输出完毕,缓冲区空了,CPU才能进行第二次输出,设置多个缓冲区,可使这种情况得到改善,CPU和设备的利用率、并行度都将有所提高。缓冲区究竟开辟多大、多少为好,要根据CPU、设备、内存容量等具体情况来考虑。另外,根据设置缓冲区的附属关系,还可以分为专用缓冲区和缓冲池。2023/7/27专用缓冲区是每个设备的专用资源,当系统配置的设备比较多时,即便每一个设备只配置一个缓冲区,那么累积起来其内存开销也十分可观。另外,专用缓冲区的利用率也不高。把系统内的缓冲区统一管理起来,变专用为通用,这就是缓冲池,它由假设干个大小相同缓冲区组成。2023/7/27当某进程需要使用缓冲区时,提出申请,由管理程序分配给它,用完后,释放缓冲区。这样可用少量的缓冲区为更多的进程效劳,当然这需要一个缓冲区管理软件的支持。在分时系统中常采用缓冲池方式。
2023/7/27补充:其它技术1总线技术2USB技术3SCSI接口技术4即插即用技术5网络I/O设备2023/7/27新一代计算机出现,带来了总线技术的更新1、总线的根本概念:在计算机系统内各种子系统,如CPU、内存、I/O设备等之间,构建公用的信号或数据传输通道这种可共享的传输通道称为总线1总线技术2023/7/27总线的分类CPU-内存总线I/O总线数据总线地址总线控制总线〔非本课程范围〕2、总线的分类2023/7/27微型计算机总线的种类和开展PC/XT总线ISA总线MCA总线EISA总线VESA总线
PCI总线USB总线…...(过时)1394总线SCSI总线2023/7/27ISA〔工业标准结构〕ISA基于PC/AT总线,是由IEEE〔美国电气电子工程师协会〕1987年正式确立的标准。ISA槽是一个黑色的62+36线插槽。ISA工作频率定在8.33MHz,数据传输率为8.33MB/s。随着系统工作频率的迅速提高,其配用的扩展卡也逐渐被淘汰,现在最新的主板已开始取消ISA槽。2023/7/27PCI〔外围部件互连〕1993年Intel发表PCI2.0版,PCI开始走进主板。PCI有32位和64位两种,32位PCI槽124线,64位槽188线,目前常用的是32位插槽。PCI槽的时钟频率为33.3MHz,32位PCI的数据传输率为133MB/s,大大高于ISA。所以PCI问世后迅速成了扩展总线的主流,流行的扩展卡也都转移到PCI上,如显示卡、声卡、网卡、MODEM卡等等。2023/7/27AGP〔加速图形端口〕1996年Intel公司在PCI的根底上专为显示卡接口提出AGP标准。AGP使用32位数据总线,工作频率为66.6MHzAGP1x的数据传输率可达266MB/s,AGP2x在一个时钟周期的上升沿和下降沿各传输一次资料,其数据传输率可到达533MB/s,而AGP4x的理论传输率为1.066GB/s。2023/7/27IEEE1394IEEE1394是1995年由IEEE将APPLE公司高速串行总线“FIREWIRE〞标准化而成,目前还在开展中。IEEE1394适用于声音、图像和视频多媒体产品、高速打印机和扫描仪产品、硬盘等存储设备、数码摄影机、显示器和影音录放设备等。2023/7/27IEEE1394的特点标准数据传输率分三种:100Mbps、200Mbps和400Mbps,IEEE1394商业联盟方案将它提高到800Mbps、1Gbps和1.6Gbps;支持同步模式传输,可实现“准实时〞的多媒体数据传输;连接方便,易于扩展,不必设定标识号和连接终端负载,可采用菊花链或树形方式连接,所有连接的设备是平等关系,不用个人计算机介入也可形成系统,支持热插拔;2023/7/27单根线缆最长为4.5米,最大可进行15级级联,连接最大距离为72米;采用6股铜芯线缆,两股用于供电,另外四股分为两对双绞线,接头小巧耐用。2023/7/27USB〔UniversalSerialBus〕通用串行总线一种连接I/O串行设备的技术标准USB是以Intel为主并有Compaq、MicroSoft、IBM、DEC、NEC、NorthernTelecom7家公司共同制定的串行接口规格。USB接口适用于低、中速的外围设备如键盘、鼠标、打印机、数码相机、调制解调器、扫描仪等。2USB技术2023/7/27USB设备的分类USB设备分为两类:〔1〕USB集线器:本身可再接其他USB外围设备〔2〕USB设备:连接在计算机上用来完成特定功能并符合USB标准的I/O设备单元,如鼠标、键盘等2023/7/27USB的传输方式4种不同的数据传输方式:〔1〕等时传输方式以固定的传输速率,连续不断传输数据,发生错误时,USB不处理,而是继续传送新的数据。用于需要连续传输,且对数据的正确性要求不高而对时间极为敏感的外部设备,如麦克风、音箱以及等〔2〕中断传输方式该方式传送的数据量很小,但这些数据需要及时处理,以到达实时效果,此方式主要用在键盘、鼠标以及游戏手柄等外部设备上2023/7/27〔3〕控制传输方式处理器与USB设备的数据传输,包括设备控制指令、设备状态查询及确认命令。当USB设备收到这些数据和命令后将按照先进先出的原那么按队列方式处理到达的数据〔4〕批传输方式用来传输要求正确无误的数据。通常打印机、扫描仪和数码相机以这种方式与主机连接除等时传输方式外,其他3种方式在数据传输发生错误时,都会试图重新发送数据以保证其准确性2023/7/27USB的特点数据传输具有1.5Mbps和12Mbps两种方式;连接方便,易于扩展,可使用集线器进行树形连接,连接的设备最多可达6层127个,支持热插拔;连接的设备之间不是平等关系而是亲子关系,上下游的关系明确,对上和对下的电缆插头不一样,而且必须用个人计算机作为主设备,各个分设备只能同主设备进行通信并受主设备的控制;2023/7/27单根线缆最长为5米;采用4股铜芯线缆,两股用于供电,直接由主板提供+5V电源,另外二股为信号线。USB2.0标准将最高速率提高到480Mbps2023/7/273SCSI接口技术小型计算机系统接口〔SmallComputerSystemInterface〕最早研制于1979年,原是为小型机的研制出的一种接口技术,但随着电脑技术的开展,现在它被完全移植到了普通微机上。2023/7/27在计算机外部设备,尤其是存储设备的接口方面SCSI接口和IDE接口一直是飞速开展的两大阵营。IDE接口价格低廉,兼容性好,主板的BIOS能够支持,使用方便,长期以来的不断改进,使其性能也有了长足的进步,传输速率现已到达66MB/S。SCSI接口从技术和性能上说,其始终拥有着顶级设备的特征。
2023/7/27IDE接口在PC机上拥有绝大多数的市场份额SCSI接口却以其优异的性能成为高端电脑市场的绝佳选择。二者的区别主要在于:IDE的工作方式需要CPU的全程参与SCSI接口那么完全通过独立的高速的SCSI卡来控制数据的读写操作2023/7/27优缺点SCSI接口优点:1.适应面广,在一块SCSI控制卡上就可以同时挂接15个设备2.高性能〔具有很多任务、宽带宽及少CPU占用率等特点〕3.具有外置和内置两种SCSI接口缺点:价格昂贵、安装复杂2023/7/27PlugandPlay
计算机系统I/O设备与部件配置的应用技术顾名思义:插入就可用,不需要进行任何设置操作4即插即用技术2023/7/27
由于一个系统可以配置多种外部设备,设备也经常变动和更换,它们都要占有一定的系统资源,彼此间在硬件和软件上可能会产生冲突。因此在系统中要正确地对它们进行配置和资源匹配;当设备撤除、添置和进行系统升级时,配置过程往往是一个困难的过程PnP技术的产生2023/7/27〔1〕支持I/O设备及部件的自动配置,使用户能够简单方便地使用系统扩充设备〔2〕减少由制造商装入的种种用户支持和限制,简化部件的硬件跳接设置,使I/O附加卡和部件不再具有人工跳接线设置电路PnP技术的特点2023/7/27〔3〕在主机板和附加卡上保存系统资源的配置参数和分配状态,有利于系统对整个I/O资源的分配和控制〔4〕支持和兼容各种操作系统平台,具有很强的扩展性和可移植性。〔5〕在一定程度上具有“热插入〞、“热拼接〞技术2023/7/275网络I/O设备典型网络I/O设备——网络打印以往的打印模式 打印机连接到网上PC上,或连到文件效劳器上,提供网络打印效劳新的网络打印 采用网络打印效劳器技术,打印机直接上网任何数据直接送到网络打印机输出2023/7/27打印效劳器还能实现多种网络自动切换:不同网络环境中的用户都可以直接向同一台打印机发送打印作业,打印效劳器会自动识别较强的打印管理功能:可以管理网络打印驱动,而且容易安装和管理;可以实现远程登录访问,进行远程打印机管理提高工作效率分布式的环境设置:可以安装在网络的任何地方,这种打印效劳方式,就显得更加灵活和满足需要2023/7/27设备分配的任务是按照一定的算法将设备及有关资源分配给申请者进程。除分配设备外,有些设备还要分配缓冲区、控制器和通道。为了提高系统的适应性和均衡性,应考虑设备的独立性,即不能因物理设备的更换而影响用户程序的正常进行。最后还必须考虑系统的平安性,设备分配不能导致死锁现象的发生。4.4.设备分配2023/7/27在系统中,要求设备的进程总是多于设备,这样,造成多个进程竞争同一个设备的情况,也就是有多个进程等待设备,于是就有了设备的分配和调度问题,或者说设备的分配策略问题。4.4.1设备分配策略2023/7/27按照资源分配的观点,可把设备分成独占设备、共享设备和虚拟设备三类。独占设备是指这类设备被分配给作业后,为作业所独占使用,不能为几个作业同时使用。大多数低速设备如:打印机、绘图仪等均属此类设备。共享设备是指允许多个用户同时共同使用的设备。例如磁盘、磁鼓等设备,可由多个进程同时进行访问。
虚拟设备是指通过Spooling技术把独占设备变为可由多个用户共享的设备,以提高独占设备的利用率,Spooling技术把一台共享设备模拟成独占设备,从而使独占设备能为多个用户共享。设备类型不同,设备的分配策略也不同。2023/7/27独占设备的分配策略在一般情况下,按照先来先效劳的原那么进行。在具有优先级作业调度的系统中,需考虑优先级的因素。但不管是什么算法分配设备,都应考虑死锁问题,因为设备分配往往是产生死锁的主要原因。尤其是独占设备,它本身的性质已是构成死锁的必要条件之一,所以在考虑独占设备的分配算法时,应结合有关的防止死锁和防止死锁的算法。1.独占设备的分配策略2023/7/27随着用户处理的信息量的越来越大,一般将各种数据以文件的形式存放在磁盘或磁鼓等共享设备上,以便进行访问。特别在多道程序系统中,用户对磁盘和磁鼓等设备的访问是十分频繁的,因此对磁盘或磁鼓等设备的使用是否适当,直接影响着系统的效率。2.共享设备的分配和磁盘调度策略2023/7/27由于磁盘、磁鼓等共享设备,可让多个作业同时使用,所以一般不必进行分配。〔1〕磁盘的结构磁盘机是一种高速、大容量、旋转型的存储设备,它能把信息记录在盘片上,也能把盘片上的信息读出。每个盘片有正反两面,假设干张盘片可以组成一个盘组。一个盘组中的盘片都被固定在一个轴上,沿着一个方向高速旋转。2023/7/27●每个盘面有一个读写磁头,所有的读写磁头被固定在惟一的移动臂上同时移动,把所有的读写磁头按从上到下的次序从0开始进行编号,称为“磁头号〞。●每个盘面上有许多磁道,从0开始按由外向里的次序顺序编号,不同盘面上具有相同编号的磁道在同一个柱面上,把盘面上的磁道号称为“柱面号〞。●移动臂可以带动读写磁头访问所有的磁道,当移动臂移动到某一位置时,所有的读写磁头都在同一柱面上,每次只有其中的一个磁头可以进行读或写的操作。2023/7/27●在磁盘初始化时把每个盘面划分成相等数量的扇区,按磁盘旋转的反向从0开始给各扇区编号,称为扇区号。●每个扇区的各磁道上均可存放相等数量的字符,我们称它为“块〞,块是信息读写的最小单位。●要确定一个块所在的位置必须给出三个参数:柱面号、磁头号、扇区号。磁盘的结构如下图。2023/7/27
2023/7/27●启动磁盘执行输入输出操作时,要把移动臂移动到指定的柱面,再等待指定的扇区旋转到磁头位置下,然后让指定的磁头进行读写,完成信息传送。因此,执行一次输入输出所花的时间有: 寻找时间——磁头在移动臂带动下移动到指定柱面所花的时间。〔Seek〕 延迟时间(Delay)——指定扇区旋转到磁头下所需的时间。 传送时间——由磁头进行读写完成信息传送的时间。其中传送信息所花的时间是硬件设计就固定的,而寻找时间和延迟时间是与信息在磁盘上的位置有关。是访问磁盘的操作时间示意。2023/7/27
2023/7/27●各磁盘块的编号按柱面顺序〔从0号柱面开始〕,每个柱面按磁道顺序,每个磁道又按扇区顺序进行排序。假定用t表示每个柱面上的磁道数,用s表示每个盘面上的扇区数,那么第i柱面,j磁头,k扇区所对应的块号b可有如下公式确定:b=k+S*〔j+i*t〕
2023/7/27同样地,根据块号也可确定该块在磁盘上的位置。在上述的假定下,每个柱面上有s*t个磁盘块,为了计算第P块在磁盘上的位置,可以令D=s*t,设M=[P/D],N=PmodD。
第P块在磁盘上的位置为:
柱面号=M
磁头号=[N/S]
扇区号=NmodS2023/7/27磁盘的调度策略有很多,在制订调度策略时,主要考虑三个方面:吞吐量、平均响应时间和响应时间的变化幅度等。根据这三个方面,当前使用比较普遍的查找操作的策略有如下四种:〔2〕磁盘查找操作的调度策略2023/7/27各进程对磁盘请求的等待队列按提出请求的时间进行排序,并按次序给予效劳。这个策略对各进程是公平的,它也不管进程优先级有多高,只要是新来到的访问请求,就被排在队尾。1〕先来先效劳策略:2023/7/27例如,如果现在读写磁头正在53号柱面上执行输入输出操作,而等待访问者依次要访问的柱面为98,183,37,122,14,124,65,67。那么,当53号柱面上的操作结束后,移动臂将按请求的先后次序先移到98号往面,最后到达67号柱面,如下页图所示。其相应的臂的总移动量为:〔98-53〕+〔183-98〕+〔183-37〕+〔122-37〕+〔122-14〕+〔124-14〕+〔124-65〕+〔67-65〕=45+85+146+85+108+110+59+2=496+144=6402023/7/2798,183,37,122,14,124,65,67
2023/7/27当用户提出的访问请求比较均匀地遍布整个盘面,而不是集中某局部时,先来先效劳策略导致了随机访问模式,在这种策略下无法对访问进行优化。在对磁盘的访问请求比较多的情况下,此策略将降低设备效劳的吞吐量和提高响应时间,但各进程得到效劳的响应时间的变化幅度较小。先来先效劳策略在访问请求不是很多的情况下,是一个可以接受地策略,而且算法的实现比较简单。2023/7/272〕最短查找时间优先的策略是选择请求队列中柱面号最接近于磁头当前所在的柱面的访问要求,作为下一个效劳对象。此策略可以得到比较好的吞吐量和较低的平均响应时间。其缺点是对用户的效劳请求的响应时机不是均等的,对中间磁道的访问请求得到最好的效劳,对内、外两侧磁道的效劳随偏离中心磁道的距离愈远而愈差,因而导致响应时间的变化幅度很大,在效劳请求很多的情况下,对内、外边缘磁道的请求将会无限期地被延迟。因而有些请求的响应时间将不可预期。2023/7/27●我们还是用同一个例子来讨论,现在当53号柱面的操作结束后,应该先处理65号柱面的请求,然后到达67号柱面执行操作。随后应处理37号柱面的请求〔它与67号柱面相距30个柱面〕而不是98号柱面的请求〔它与67号柱面相距31个柱面〕,后继操作的次序应该是14,98,122,124,183。如下页图所示。从图中可以看到采用最短寻找时间优先算法决定等待访问者执行输入输出操作的次序时,读写磁头总共移动了236个柱面的距离。与先来先效劳算法比较,大幅度地减少了寻找时间。因而缩短了为各请求访问者效劳的平均时间,也就提高了系统效率。2023/7/27现对需要存取得磁筒进行排序:14,37,65,6798,122,124,183。相对于53最近的磁筒为65。余下的问题是在到达67后,下一个目标是?37,67,98其差为30与31,所以下一个目标为37。
2023/7/27其目的是克服最短查找时间优先策略的缺点。对于最短查找时间优先策略来说,只要某访问请求所在的柱面离磁头当前位置最近,而不管该柱面是在磁臂地前进方向上,还是相反。而扫描策略是选择请求队列中,按磁臂前进方向最接近于磁头当前所在柱面的访问要求作为下一个效劳对象。3〕扫描策略2023/7/27此策略根本上克服了最短查找时间优先策略的效劳集中于中间磁道和响应时间变化比较大的缺点。并且具有最短查找时间优先策略地优点,即吞吐量比较大,平均响应时间较小,但是由于是摆动式的扫描方法,两侧磁道被访问的频率仍然低于中间磁道,比最短查找时间优先策略要好多了。2023/7/27对相同的例子采用单向扫描调度算法的执行次序为:65,6798,122,124,183,此时移动臂继续向里移动,直到最内的柱面〔图中为199号柱面〕后,再返回到0号柱面,重新扫描时依次为14,37柱面的访问者效劳。总的臂移动量为:〔199-53〕+200+37=3832023/7/27
2023/7/27作为对扫描策略的改进提出了N步扫描策略与循环扫描策略。N步扫描策略根本上与扫描策略相同,只是当它在磁臂向内或向外移动过程中,只效劳于在磁臂改变方向前到达的访问请求,而不理会在磁臂单向移动过程中到达的那些新的访问请求。4〕N步扫描和循环扫描策略:2023/7/27循环扫描策略与扫描策略的不同之处在于循环扫描是单向反复地扫描。当磁臂向内移动时,它对本次移动开始前到达的各访问请求,自外向内地依次给予效劳,直到对最内柱面上的访问请求满足后,磁臂直接向外移动,使磁头停在所有新的访问请求的最外边的柱面上,然后再对本次移动前到达的各访问要求依次给予效劳。2023/7/27这两个策略具有扫描策略的优点,并且消除了其缺点。根据模拟研究说明,再访问负荷较小的情况下,扫描策略是最好的。在中等以上的负荷情况下,循环扫描策略那么产生最好的结果。2023/7/275〕电梯调度算法●“电梯调度〞算法总是从移动臂当前位置开始沿着臂的移动方向去选择离当前移动臂最近的那个住面的访问者,如果沿臂的移动方向无请求访问时,就改变臂的移动方向再选择。这好比乘电梯,如果电梯已向上运动到4层时,依次有3位乘客A,B,C,他们的要求是:A在2层等待去10层;B在5层等待去底层;C在8层等待上15层。电梯管理员不是按照乘客来到的先后次序效劳,而是考虑电梯的效率。在这种情况下,沿电梯运动方向总是先把乘客C带到15层,然后把乘客B带到底层,最后再把乘客A送到10层。2023/7/27●我们仍用同一例子来讨论采用“电梯调度〞算法的情况,由于该算法是与移动臂的方向有关,所以,应分两种情况来讨论。〔1〕移动臂是向外移的。当前正在53号柱面,在这种情况下为等待访问者效劳的次序是:37,14,65,67,98,122,124,183。总的臂移动量为:(53–14〕+〔183–14〕=208〔2〕移动臂是向里移的。当前正在53号柱面,在这种情况下为等待访问者效劳的次序是:65,67,98,122,124,183,37,14。总的臂移动量为:〔183–53〕+〔183–14〕=2992023/7/27
2023/7/27磁盘调度算法总结●除了“先来先效劳〞调度算法外,其余几种调度算法都是根据欲访问的柱面位置来进行调度的。●在调度过程中可能有新的请求访问者参加,这些新的请求访问者参加时,如果读写磁头已经超过了它们所要访问的柱面位置,那么只能在以后的调度中被选择执行。所以,在处理过程中,除了先来先效劳算法外,其他的算法一般都需要对需要存取得磁筒进行排序,以便进行判断,而且不会漏掉。2023/7/27●对于这些调度算法的优劣比较:1.先来先效劳〔FIFS〕:算法简单,但效率差。2.最短寻找时间优先调度算法:效率比较高,但会出现有的请求很长时间得不到响应。3.单向扫描调度算法:效率比较高,但有一个空行程。4.双向扫描调度算法:比单向扫描调度算法效率高,调度算法也相对合理。但还是有一个空行程。5.电梯调度算法:是一个比较合理、优化的算法。2023/7/27为了减少旋转延迟时间,对同一柱面上各磁道的扇区的对个访问请求也需重新排队,进行旋转优化,通常使用的优化策略是最短延迟时间优化策略。〔3〕磁盘旋转优化策略2023/7/27在选择请求队列中,对同一柱面上各磁道的扇区按磁头到达的先后顺序进行排序,首先访问最近的扇区,
然后根据顺序进行访问,直到本柱面的所有请求扇区都访问过。因为磁头是旋转的,这样按离磁头由近到远的访问,可以减少磁头的旋转时间,降低磁头旋转的圈数。从而提高系统效率。对于磁盘的查找优化和旋转优化都可以采用硬件的方法来实现。2023/7/27●用共享设备模拟独占设备的动作,使独占型设备成为共享设备。实现这一功能的技术称为Spooling技术。●采用Spooling技术后,用预输入程序和缓输出程序取代外围处理机,通过管理程序,用一台磁盘机代替两台磁盘机,所以把这种系统称为假脱机系统。假脱机系统输入输出的工作原理如图4-7所示。3.虚拟设备和Spooling系统2023/7/27要输入的作业结果信息作业执行
CPU预输入程序缓输出程序输入井输出井硬盘作业图4-7假脱机系统输入输出的工作原理2023/7/27通过预输入程序把作业信息送到输入井中,当作业被选中执行时,直接从输入井中读取信息,与读卡机是脱离的;作业执行的结果先放在输出井中,待作业执行执行结束后由缓输出程序将作业结果打印输出。由于预输入程序和缓输出程序的执行是在主机控制下进行的,所以也称作外围设备同时联机操作。2023/7/27采用Spooling技术后,读卡机不用等待作业执行完毕,就可以输入其它作业的信息,CPU也不用等待读卡机把作业输入和打印机把作业的结果信息打印出来,这样,不仅提高了CPU的利用率,也提高了独占设备的利用率。2023/7/27由此可以看出,虚拟设备分配的特点:〔1〕用户进程并未真正分得打印机,即打印机并未被某各进程所独占;〔2〕用户进程时间被分给的不是打印设备,而是共享设备中的一个存储区或文件,即虚拟设备,实际的打印机由Spooling调度依次按某一策略逐个地打印存储区中的数据。〔3〕由于实际打印由Spooling系统调度,依次完成,这样,打印机的效率就提高了,从而整个系统的效率也提高了。2023/7/27目前不但在大、中型计算机的操作系统中广泛使用Spooling技术,而且微机上也使用了Spooling技术。在Spooling系统设计中,为了弥补独占设备与共享设备间数据传输速度的差异,需要使用缓冲技术,另外,需要注意同步和互斥的问题。2023/7/27设备分配程序的功能是当某进程向系统提出I/O请求后,设备分配程序按照一定的策略,把所要求的设备分配给它。为确保CPU和设备之间能进行通讯,还应分配相应的控制器和通道。假设使用选择型通道,那么设备应独占该通道与控制器,假设是其它两种类型的通道,那么通道无需独占,但要防止通道程序过长,以免影响中断响应时间。4.4.2设备分配程序2023/7/27设备管理程序对I/O设备进行分配和控制,必须记录设备的信息才能实现控制,于是,在系统中建立了一些表,来记录对I/O设备控制所需的信息,它们是设备管理程序实现管理功能的数据结构。其中根本的表有:系统设备表、设备控制表、控制器表和通道表。1.设备分配中的数据结构2023/7/27系统设备表是系统范围的数据结构,它记录了系统中所拥有的全部I/O设备,每一设备一个表目,每个表目又包括假设干项。其具体内容如图4-8所示。〔1〕系统设备表2023/7/27表目i┊设备类型
设备标识符
进程标识符
设备接口模块标识符
表目1┊图4-8系统设备表2023/7/27其中,设备类型:说明设备的类别,如打印机、磁盘等;设备标识符:设备控制表中所用的设备标识符;进程标识符:当设备未分配时,该项为0,设备不能工作时为-1,假设设备以被分配给某进程,那么填上该进程标识符。设备接口模块标识符:指出负责该设备进行实际操作的软件的标识符。2023/7/27系统中每一设备都设置一张用以记录本设备情况的设备控制表,该表的具体内容如以下图4-9所示。〔2〕设备控制表2023/7/27表目i┊设备类型
设备标识符
设备状态
控制器表指针重复执行次数和时间设备队列的队首指针
设备队列的队尾指针
表目1┊设备控制表集合设备控制表图4-9系统设备表2023/7/27设备控制表包括:设备类型、设备标识符、设备状态、控制器表指针、重复执行次数和时间、设备队列的队首指针和设备队列的队尾指针等七项。其中,设备类型和设备标识符来指明设备的类型和名字。2023/7/27设备状态:有四种状态:等待、不等待、忙、闲,等待和不等待用一个“等待/不等待〞标志位表示,忙和闲用一个“忙/闲〞标志位表示。当某进程提出I/O请求时,系统除了为该进程分配设备外,还须同时分配相应的通道和控制器。假设此时与设备相连的所有控制器和通道都忙,那么把该进程插入该控制器或通道队列,并置位“等待/不等待〞标志位。假设设备自身也处于忙的状态,那么置位“忙/闲〞标志位。2023/7/27控制器表指针:假设I/O设备与内存之间仅有一条通道,此时设备仅连向一个控制器,该表目便填上该控制器表的首址。为提高I/O系统的灵活性和可靠性,不少系统在I/O设备和内存之间都配置了多条通道,此时该表目中应填上相应的多个控制器表的首址。2023/7/27重复执行的次数或时间:在数据传送中,假设发生信息错误,系统并不立即认为传送失败,而是重复执行该传送操作。只要在规定的重复执行次数或时间内恢复正确的传送,那么仍认为此次传送成功,否那么才宣布此次传送操作失败,并停止它。设备队列的队首指针和队尾指针:凡因请求本设备未得到满足的进程,将其按一定的策略排成一个队列,该队列称为设备请求队列或简称设备队列。该队列的队首和队尾指针分别指向其队首和队尾。当队列不太长时,队尾指针可以省去。2023/7/27系统中设置一张用以记录系统中所有控制器情况的控制器表,该表的具体内容如下4-10所示。〔3〕控制器表2023/7/27表目i┊控制器标识符
控制器状态
与控制器连接的通道表指针控制器队列的队首指针
控制器队列的队尾指针
表目1┊控制器表
图4-10控制器表其中控制器表中包括:控制器标识符、控制器状态、与控制器连接的通道表指针、控制器队列的队首指针和队尾指针。与设备控制表的表目类似,不再重复。2023/7/27系统中设置一张用以记录系统中所有通道情况的通道表,该表的具体内容如下4-11所示。〔4〕通道表2023/7/27
表目i┊通道标识符
通道状态
与通道连接的控制器表首址通道队列的队首指针通道队列的队尾指针
表目1┊通道表图4-11通道表其中通道表中包括:通道标识符、通道状态、与通道连接的控制器表首址、通道队列的队首指针和队尾指针。与设备控制表的表目类似,不再重复。2023/7/27为使系统正常的工作,系统必须具有合理的设备分配原那么,一般与下述的四个因素有关:●I/O设备的固有属性,即该设备是适于某进程独占还是可供多个进程共享;●系统采用的分配算法,是采用先请求先分配方式,还是按优先级最高者优先的方式;●设备分配中的平安性,不合理的设备分配有可能导致死锁的发生;●与设备的无关性,用户程序与实际使用的物理设备无关。2.设备分配原那么2023/7/27我们主要来研究以下设备分配的平安性以及与设备的无关性。〔1〕设备分配中的平安性设备分配程序应保证不发生进程死锁。在CPU和I/O设备之间串行工作时,不会发生死锁现象,因为每当进程以命令形式发出I/O请求后,便立即进入阻塞状态,直到所提出的I/O请求完成才被唤醒。这种方法具有程序的编址较为方便和设备分配比较平安的优点,其缺点是进程进展比较缓慢。为了加速进程的推进,使CPU和I/O设备并行工作的情况下,进程可以同时操作多个设备,即某进程可以以命令形式发出I/O请求后仍可继续运行,需要时又可发出第二个I/O请求,第三个I/O请求,仅当进程所请求的设备以被另一进程占用时才进入阻塞状态。2023/7/27这种分配方式可以加速进程的推进速度,但这种多请求的方式的缺点是设备分配不平安。例如,进程A和进程B都需要使用卡片输入机和打印机,进程A先提出使用卡片输入机并已获得,进程B要求打印机且已分到,因此进程A、B都将继续运行,当进程A又需要打印机时,由于进程B已占用打印机,进程A因此阻塞。同样,当进程B提出使用读卡机请求时,又因为读卡机已被进程A占用,进程B也被阻塞,此时,进程A和B都指望对方释放出自己需要的资源,但两者都不能释放自己的占有资源而使两者都不能继续运行,于是发生了死锁现象。因此,在多请求方式中,设备的分配程序应保证不发生进程死锁。2023/7/27为提高系统的可适应性和可扩展性,希望所编制的程序与实际使用的物理设备无关,即与设备的无关性。为此使用逻辑设备名和物理设备名,实现用户程序与物理设备的无关性。逻辑设备是实际物理设备属性的抽象,它并不局限于某个具体设备。
〔2〕与设备无关性2023/7/27例如一台名为LST的具有打印机属性的逻辑设备,它可能是0号打印机或1号打印机,在某些情况下,也可能是显示终端,甚至是一台磁盘的某局部空间〔虚拟打印机〕。逻辑设备究竟和哪一个具体的物理设备相对应,这要由系统根据当时的设备忙、闲情况来决定或由用户指定。2023/7/27用户程序使用逻辑设备名,而不直接使用物理设备名有以下优点:1〕当物理设备发生意外情况无法工作或设备型号发生变动时,用户程序无须修改也不用重新编译,只需更换控制卡或用命令重新修改逻辑设备名和物理设备名之间的连接即可。2〕能适应多用户多进程的需要,系统可根据设备的忙闲情况合理调整逻辑设备名与物理设备名之间的连接情况。使用逻辑设备名能保证设备的独立性。2023/7/273.设备分配流程
当系统中已经具备了设备分配的数据结构,且确定了一定的分配原那么后,假设某进程提出了I/O请求,便可按照下述步骤实施设备分配。设备分配包括分配设备、分配控制器和分配通道。设备分配的具体流程如图4-12所示。2023/7/27上面的设备分配流程只是面向单通路的I/O系统,即每个I/O设备只有一条通路与内存连接,实际上,为了可靠性和灵活性,往往采用多通路的I/O系统,这样,一个I/O设备可连至几个控制器,每个控制器又连接几个通道,使得设备分配更为复杂化。当进程已获得所需的设备、控制器和通道之后,便可执行具体的I/O操作。对于设置有通道的系统,CPU启动I/O就是调用相应的通道程序,由通道专用处理机执行通道程序完成I/O操作。2023/7/27许多微机并不设置通道,在这种情况下,CPU启动I/O是调用相应的设备驱动程序和I/O处理程序,由CPU直接向I/O设备发出指令,控制设备来完成实际的I/O操作。设备驱动程序与物理设备有关,针对具体的I/O设备控制器进行编码和操作。
2023/7/27从系统设备表中找到该设备的设备控制表此设备是否忙?检查设备的平安性?分配此设备给进程检查控制器忙否?分配此控制器给进程
检查通道忙否?分配通道给进程启动I/O,进行具体的I/O操作
从系统设备表中找到该设备的设备控制表将进程放入此设备的等待队列将进程放入此控制器的等待队列进程申请I/O设备将进程放入此通道的等待队列忙不平安不忙平安不忙不忙忙忙图4-12设备分配流程图2023/7/27MicrosoftWindows2003I/O系统是Windows2003执行体的组件,并且存在于Ntoskrnl.exe中。它接受I/O请求,并且以不同的形式把它们传送到I/O设备。在用户函数和实际的I/O硬件之间有几个分立的系统组件,包括文件系统驱动程序、过滤器驱动程序和低层设备驱动程序。4.5MicrosoftWindows2003I/O系统2023/7/27Windows2003I/O系统的设计目标是:1〕加快系统的I/O处理。2〕使用标准的Windows2003平安机制保护共享的资源。3〕满足各种环境子系统指定的I/O效劳的需要。4〕提供效劳,使设备驱动程序的开发尽可能地简单,并且允许用高级语言编写驱动程序。2023/7/275〕允许在系统中动态地添加或删除设备驱动程序。6〕通过添加驱动程序透明地修改其他驱动程序或设备的行为。7〕为多种可安装的文件系统提供支持,如FAT、CD-ROM文件系统〔CDFS〕、统一磁盘格式〔UDF〕文件系统和Windows2003文件系统〔NTFS〕。8〕允许整个系统或单个硬件设备进入和离开低功耗状态,这样可以节约能源。2023/7/27Windows2003的I/O系统是由一些执行体组件和设备驱动程序组成,包括:I/O子系统、I/O管理器、设备驱动程序、PnP管理器、电源管理器、WMI支持例程、注册表、硬件抽象层I/O访问例程等。I/O系统结构如图4-13所示。4.5.1.I/O系统的结构2023/7/27图4-13I/O系统结构
WDMWMI例程应用程序WIN32系统效劳WMI效劳用户模式的即插即用管理器安装组件.inf文件.cat文件.注册表即插即用管理器电源管理器I/O管理器硬件抽象层〔HAL)……驱动程序核心模式用户模式I/O系统2023/7/27在I/O系统中,各个组件的作用如下:I/O子系统:它是内部的执行体系统效劳,系统调用它们实现子系统的文档化的I/O函数。即用户程序所发出的I/O操作函数,调用它实现I/O操作。I/O管理器:它负责驱动I/O请求的处理。设备驱动程序:负责把I/O请求转化为对硬件设备的特定的控制请求。PnP管理器:通过与I/O管理器和总线驱动程序的协同工作来检测硬件资源的分配,并且检测相应硬件设备的添加和删除。2023/7/27电源管理器:通过与I/O管理器的协同工作来检测整个系统和单个硬件设备,完成不同电源状态的转换。WMI支持例程:也称为Windows驱动程序模型〔WDM〕WMI提供者,允许驱动程序使用这些支持例程作为媒介,与用户模式下运行的WMI效劳通信。注册表:作为一个数据库,存储根本硬件设备的描述信息以及驱动程序的初始化和配置信息。硬件抽象层I/O访问例程:负责把驱动程序与多种多样的硬件平台隔离开来,使它们在给定的体系中是可移植的,并保证在Windows2003支持的硬件体系结构中的源代码是可移植的。2023/7/27大局部I/O操作并不会涉及所有的组件,一个典型的I/O操作从应用程序调用一个与I/O操作有关的函数开始,通常会涉及I/O管理、一个或多个设备驱动程序以及硬件抽象层。一个典型的I/O请求流程的结构如图4-14所示。2023/7/27驱动程序支持例程用户模式APII/O系统效劳APII/O管理器核心模式设备驱动程序设备抽象层I/O访问例程
I/O端口和存放器图4-14典型的I/O请求流程2023/7/27I/O管理器实现与设备无关的输入输出,并建立执行体I/O的模型,它并不进行实际的I/O处理。在该模型里,I/O请求被提交给设备驱动程序。I/O系统是包驱动的,大多数I/O请求用“I/O请求包〔IRP〕〞来表示,它从一个I/O系统组件移动到另一个I/O系统组件。1.I/O管理器2023/7/27I/O管理器创立代表每个I/O操作的IRP,传递IRP给正确的设备驱动程序,并且当此I/O操作完成后,处理这个数据包,最后撤消这个IRP。相反,驱动程序接受IRP,执行IRP指定的操作,并且在完成后把IRP送回I/O管理器或为下一步的处理而把它通过I/O管理器送到另一个驱动程序。2023/7/27除了创立并处理IRP外,I/O管理器还为不同的驱动程序提供了公共的代码,驱动程序调用这些代码执行它们的I/O处理。通过在I/O管理器中合并公共的任务,单个的驱动程序将变得更加简洁和紧凑。例如,I/O管理器提供一个允许某个驱动程序调用其它驱动程序的函数。2023/7/27I/O管理器还管理用于I/O请求的缓冲区,为驱动程序提供超时支持,并记录操作系统中加载了哪些可安装的文件系统。I/O管理器提供灵活的I/O效劳,允许环境子系统执行它们自己的I/O函数。这些效劳包括用于异步I/O的效劳,它们也允许开发者建立可升级的高性能的效劳器应用程序。2023/7/27驱动程序呈现的统一的、模块化的接口允许I/O管理器调用任何驱动程序而不需要与它的结构和内部细节有关的任何特殊的知识。驱动程序可以通过I/O管理器进行互相调用来完成I/O请求的分层、独立的处理。例如文件驱动程序调用磁盘驱动程序。
2023/7/27在Windows2003系统中,有许多文件和I/O的函数,除了通常的翻开、关闭、读写函数外,Windows2003I/O系统还提供了一些高级的特性,例如异步I/O和映射文件等。2.I/O函数2023/7/27应用程序发出的大多数I/O操作都是“同步〞的,也就是说,设备执行数据传输并在I/O完成后返回一个状态码。然后,程序可以立即访问这个被传输的数据。在Windows2003系统中,有一些函数是这样执行的,在把控制返回给调用程序之前,完成I/O操作。〔1〕异步I/O2023/7/27“异步I/O〞允许应用程序发布I/O请求,然后当设备传输数据的同时,应用程序继续执行,如在屏幕上编辑程序或画某个图形等。这类I/O能够提高应用程序的吞吐率,因为它允许在I/O操作进行期间,应用程序继续其它的工作。在发出异步I/O操作后,线程必须小心地不访问任何来自I/O操作的数据,直到驱动程序完成数据传输。线程必须等待同步对象的句柄,使它的执行与I/O请求的完成同步。2023/7/27与I/O请求
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 四川省能源地质调查研究所2026年公开考核招聘工作人员(5人)考试备考题库及答案解析
- 2026年内蒙古自治区乌海市高职单招职业技能考试题库附答案详细解析
- 2026浙江省湖州市市级医疗卫生单位招聘事业编制卫生人才75人笔试模拟试题及答案解析
- 2026辽宁黄海实验室招聘笔试参考题库及答案解析
- 2026年上海市第一人民医院蚌埠医院(蚌埠医科大学第二附属医院)公开招聘工作人员5名笔试备考题库及答案解析
- 2026上海市闵行区华漕学校教师第二批招聘考试备考题库及答案解析
- 2026广西钦州市统计局面向社会招聘编外人员2人笔试备考题库及答案解析
- 乐山师范学院2026年公开考核招聘专职博士辅导员(10人)笔试模拟试题及答案解析
- 2026届浙江省杭州余杭区重点名校初三下学期中考教学质量评测卷(四)(期末)英语试题含解析
- 2025-2026学年浙江省温州市初三下学期押题卷第四套英语试题含解析
- 2026广东深圳市优才人力资源有限公司公开招聘聘员(派遣至龙城街道)18人备考题库附答案详解(典型题)
- 2024-2025学年度哈尔滨传媒职业学院单招考试文化素质数学通关题库完美版附答案详解
- 2026年司法协理员考试题及答案
- 2026年宁夏财经职业技术学院单招综合素质考试题库附答案详解(能力提升)
- 2026年四川艺术职业学院单招综合素质考试题库附参考答案详解(满分必刷)
- 2026年安徽国际商务职业学院单招职业技能测试题库附参考答案详解(培优)
- 华为业务接待管理制度
- 套期保值业务管理制度
- 2026年世界水日节约用水主题班会
- 2026山东铁路投资控股集团有限公司招聘80人笔试参考题库及答案解析
- 2025年湖南医药发展投资集团有限公司总部社会招聘2人笔试历年常考点试题专练附带答案详解2套试卷
评论
0/150
提交评论