计算机操作系统原理培训及实操第4章.pdf

上传人:海阔****涯 文档编号:95378876 上传时间:2023-08-21 格式:PDF 页数:62 大小:449.76KB
返回 下载 相关 举报
计算机操作系统原理培训及实操第4章.pdf_第1页
第1页 / 共62页
计算机操作系统原理培训及实操第4章.pdf_第2页
第2页 / 共62页
点击查看更多>>
资源描述

《计算机操作系统原理培训及实操第4章.pdf》由会员分享,可在线阅读,更多相关《计算机操作系统原理培训及实操第4章.pdf(62页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第4章 设 备 管 理第4章 设 备 管 理4.1 概述概述4.2 数据传送控制方式数据传送控制方式4.3 缓冲管理缓冲管理4.4 设备分配设备分配4.5 设备虚拟性与独立性设备虚拟性与独立性4.6 设备处理过程设备处理过程第4章 设 备 管 理4.1 概概 述述4.1.1 设备的类别设备的类别 设备类别的划分可以从不同方面描述,比如按设备的使用特性,可分为存储设备、输入/输出设备、终端设备以及脱机设备等;按设备的从属关系,可把设备划分为系统设备和用户设备。在此我们主要从以下三方面来描述。按信息组织方式来划分设备。例如,UNIX系统就把外部设备划分为字符设备和块设备。键盘终端、打印机等以字符为

2、单位组织和处理信息的设备被称为字符设备;而磁盘、磁带等以字符块为单位组织和处理信息的设备被称为块设备。第4章 设 备 管 理 按照设备的数据传输速率可以分为低速设备、中速设备和高速设备,大致的速率级别是这样的,1 KB/s以下可以认为是低速设备,1 KB/s1 MB/s之间为中速设备,1 MB/s以上是高速设备。比如键盘、鼠标就属于低速设备,打印机、扫描仪属于中速设备,而磁盘、光盘驱动器属于高速设备。当然随着计算机技术的发展,这种速度划分标准也会随之变化。按照设备的共享属性可以分为独占设备、共享设备和虚拟设备。独占设备是指一段时间内只允许一个用户(进程)访问的设备。共享设备是指一段时间内可以允

3、许多个用户(进程)访问的设备,比如磁盘,它可以同时被多个进程访问。虚拟设备是指通过虚拟技术将一台独占设备当作多个设备共享,例如我们4.5节将要介绍的SPOOLing系统中打印机的应用。第4章 设 备 管 理4.1.2 设备管理的功能和任务设备管理的功能和任务 设备管理是对计算机输入/输出系统的管理,这是操作系统中最具有多样性和复杂性的部分。其主要任务是:(1)选择和分配输入/输出设备,以便进行数据传输操作。(2)控制输入/输出设备和CPU(或内存)之间交换数据。(3)为用户提供一个友好的透明接口,将用户和设备硬件特性分开,使得用户在编制应用程序时不必涉及具体设备,系统按用户要求控制设备工作。另

4、外,这个接口还为新增加的用户设备提供一个与系统核心相连接的入口,以便用户开发新的设备管理程序。(4)提高设备和设备之间、CPU和设备之间,以及进程和进程之间的并行操作程度,以使操作系统获得最佳效率。第4章 设 备 管 理 为了完成上述主要任务,设备管理程序一般要提供下述功能:(1)提供和进程管理系统的接口。当进程要求设备资源时,该接口将进程要求转达给设备管理程序。(2)进行设备分配。按照设备类型和相应的分配算法把设备和其它有关的硬件分配给请求该设备的进程,并把未分配到所请求设备或其它有关硬件的进程放入等待队列。(3)实现设备和设备、设备和CPU等之间的并行操作,其中需要大量的硬件支持,例如寄存

5、器、控制器、通道以及中断等。(4)进行缓冲管理,解决低速I/O设备与高速CPU之间传送数据的不匹配问题。第4章 设 备 管 理4.2 数据传送控制方式数据传送控制方式 设备管理的主要任务之一是控制设备和内存或CPU之间的数据传送,下面将介绍四种常用的数据传送控制方式:(1)程序直接控制方式;(2)中断控制方式;(3)DMA方式;(4)通道方式。第4章 设 备 管 理4.2.1 程序直接控制方式程序直接控制方式 程序直接控制方式(Programmed Direct Control)就是由用户进程来直接控制内存或CPU与外围设备之间的信息传送。这种方式的控制者是用户进程。当用户进程需要数据时,它通

6、过CPU发出启动设备准备数据的启动命令,同时将设备状态寄存器的忙/闲标志busy置为1,表示设备忙,然后用户进程进入测试等待状态。在等待时间内,CPU不断地用一条测试指令检查设备状态寄存器,当busy为0时,表示输入设备已将一个字符数据送入数据寄存器,于是处理机将该数据取出送到指定内存单元。接着开始读下一个数据,同时置busy为1。第4章 设 备 管 理 程序直接控制方式虽然控制简单,也不需要多少硬件支持,但是程序直接控制方式明显地存在下述缺点:(1)CPU和外围设备只能串行工作。由于CPU的处理速度要大大高于外围设备的数据传送和处理速度,因此,CPU大量时间都处于等待和空闲状态,这使得CPU

7、利用率大大降低。(2)CPU在一段时间内只能与一台外围设备交换数据信息,不能实现设备之间的并行工作。(3)由于程序直接控制方式依靠测试设备标志触发器的状态位来控制数据传送,因此无法发现和处理由于设备或其它硬件所产生的错误。因此,程序直接控制方式只适用于那些CPU执行速度较慢,而且外围设备较少的系统。第4章 设 备 管 理4.2.2 中断方式中断方式 为了减少程序直接控制方式中CPU等待时间以及提高系统的并行工作程序,中断(Interrupt)方式被用来控制外围设备与内存或者CPU之间的数据传送。中断方式的工作过程是这样的,当某进程要启动某个I/O设备工作时,由CPU向该设备的设备控制器发出一个

8、I/O命令,然后继续执行原来的工作,同时设备控制器开始控制I/O设备按照命令要求进行具体的I/O操作,当I/O完成后,设备控制器向CPU发出中断信号,表示一个I/O步骤完成,CPU再根据这条中断请求调用相应的中断处理程序进行处理。在这个过程中,我们看到CPU和I/O设备之间实现了并行工作。第4章 设 备 管 理 尽管中断方式与程序直接控制方式相比,CPU的利用率大大提高且能支持多道程序和设备的并行操作,但仍然存在着许多问题:(1)由于在I/O控制器的数据缓冲寄存器装满数据之后将会发生中断,而且数据缓冲寄存器通常较小(因为一般是以字为单位传送),因此在一些数据传送过程中,发生中断次数较多,这将耗

9、去大量的CPU处理时间。(2)现代计算机系统通常配置各种各样的外围设备。如果这些设备通过中断处理方式进行并行操作,则由于中断次数的急剧增加而造成CPU无法响应中断,出现数据丢失现象。第4章 设 备 管 理 (3)在采用中断控制方式时,我们都是假定外围设备的速度非常低,而CPU处理速度非常高。也就是说,当设备把数据放入数据缓冲寄存器并发出中断信号之后,CPU有足够的时间在下一个数据进入数据缓冲寄存器之前取走这些数据。如果外围设备的速度也非常高,则可能造成数据缓冲寄存器的数据由于CPU来不及取走而丢失。第4章 设 备 管 理4.2.3 DMA方式方式 DMA方式又称直接存取(Direct Memo

10、ry Access)方式,是一种完全由硬件执行I/O数据交换的工作方式。它既考虑到中断的响应,同时又要节约中断开销。此时,DMA控制器代替CPU完全接管对总线的控制,数据交换不经过CPU,直接在内存和外围设备之间成批进行。批量数据(数据块)的传送由计数器逐个计数,并由内存地址寄存器确定内存地址。除了在数据块传送开始时需要CPU启动指令和在整个数据块传送结束时需发中断通知CPU进行中断处理之外,不再像中断控制方式那样需要CPU的频繁干涉。第4章 设 备 管 理4.2.4 通道控制方式通道控制方式 不过,DMA方式仍存在着一定的局限性。首先,DMA方式对外围设备的管理和某些操作仍由CPU控制。在大

11、中型计算机中,系统所配置的外围设备种类越来越多,数量也越来越大,因而对外围设备的管理与控制也就愈来愈复杂。多个DMA控制器的同时使用显然会引起内存地址的冲突并使得控制过程进一步复杂化。同时,多个DMA控制器的同时使用也是不经济的。因此,在大中型计算机系统中,除了设置DMA器件之外,还设置专门的硬件装置通道。第4章 设 备 管 理 通道控制(Channel Control)方式与DMA方式相类似,也是一种以内存为中心,实现设备和内存直接交换数据的控制方式。与DMA方式不同的是,在DMA方式中,数据的传送方向、存取数据的内存始址以及传送的数据块长度等都由CPU控制,而在通道方式中,这些都由独立于C

12、PU的特殊处理机通道来进行控制。另外,与DMA方式时每台设备至少一个DMA控制器相比,通道控制方式可以做到一个通道控制多台设备与内存进行数据交换,从而进一步减轻了CPU的工作负担和增加了计算机系统的并行工作程度。第4章 设 备 管 理 通道是通过执行通道程序来完成CPU制定的I/O任务,当执行完成后,发出中断请求表示I/O结束,CPU再执行相应的中断处理程序。通道程序是由一系列通道指令组成的,通道指令一般包含有被交换数据在内存中应占据的位置、传送方向、数据块长度以及被控制的I/O设备的地址信息、特征信息(例如是磁带设备还是磁盘设备)等,通道指令在通道中没有存储部件时存放在内存中。通道指令的格式

13、一般由操作码、通道程序结束标志P、记录结束标志R、计数段(数据块长度)以及内存地址段等组成。通道程序由系统根据进程要求数据自动生成。图4-1是一个由5条指令组成的通道程序。第4章 设 备 管 理图4-1 通道程序举例操作码PR计数段内存地址writewritewritewritewrite00001010012505016019025615055085013802240第4章 设 备 管 理 该通道程序表示进行一个输出操作,向输出设备传送两组纪录,第一组纪录包含两部分,内存地址单元150399中250个字符和地址单元550599中50个字符;第二组记录包含三部分,内存地址单元8501009中1

14、60个字符、内存地址单元13801569中190个字符和内存地址单元22402495中256个字符。共计完成906个字符予以输出。第4章 设 备 管 理4.3 缓缓 冲冲 管管 理理4.3.1 缓冲的引入缓冲的引入 在计算机系统中,各种设备本身的属性决定了它们在数据传输速率方面的差异,最典型的就是外围设备和CPU的处理速度不匹配的问题。例如,当用户作业中的计算进程把大批数据输出到打印机上打印时,由于CPU计算数据的速度大大高于打印机的打印速度,因此,CPU只好停下来等待。当计算进程进行计算时,打印机又因无数据输出而空闲。这样看来,高速CPU与低速的I/O设备间的速度矛盾是设备利用率不高的主要原

15、因。引入缓冲区,可以解决这个问题。在设置了缓冲区之后,计算进程可以把数据高速输出到缓冲区,然后继续执行;而打印机则可以从缓冲区取出数据依次打印,实现了两者的并行工作。凡是数据到达速率与离去速率不同的地方,都可以设置缓冲区以缓和它们速率不匹配的矛盾。第4章 设 备 管 理 从减少中断的次数看,也存在着引入缓冲区的必要性。在中断方式时利用字符设备输入100个字符时,每输入一个字符就必须中断CPU一次,而且必须立即响应,否则将被后续字符冲掉,这样我们看到中断频率非常高。如果增加一个100个字符的缓冲区,等到能存放100个字符的字符缓冲区装满之后才向处理机发出一次中断,将这100个字符取走,这将大大减

16、少处理机的中断处理时间,而且放宽了CPU对中断的响应时间。在设备管理中引入了用来暂存数据的缓冲技术,显著提高了CPU和I/O设备之间的并行,提高了设备利用率和系统吞吐量。根据系统对缓冲区的不同设置,可把缓冲技术分为单缓冲、双缓冲和循环缓冲以及缓冲池等。第4章 设 备 管 理4.3.2 单缓冲与双缓冲单缓冲与双缓冲 单缓冲是在设备和处理机之间设置一个缓冲区。设备和处理机交换数据时,先把被交换数据写入缓冲区,然后需要数据的设备或处理机从缓冲区取走数据。由于缓冲区属于临界资源,不允许多个进程同时对一个缓冲区操作,因此单缓冲无法实现 CPU 与设备的并行操作。例如一个作业的输入进程在向缓冲区中写数据时

17、,计算进程必须等待。第4章 设 备 管 理 提高设备并行操作的办法可以采用双缓冲。输入进程将数据写到第一个缓冲区中,写满后转到另一个缓冲区继续写入,同时输出进程从第一个缓冲区读数据,当第二个缓冲区被写满后,第一个缓冲区数据被输出进程取走,所以输入进程又回到第一个缓冲区继续输入,而输出进程又到第二个缓冲区取数据,如此交替,可以实现一批数据的传递。显然,双缓冲只是一种说明设备和设备、CPU和设备并行操作的简单模型,并不能用于实际系统中的并行操作。这是因为计算机系统中的外围设备较多,读/写数据速度有很大差异,在向缓冲区读/写数据的过程中,高速设备等待的情况仍然比较严重,设备利用率比较低。第4章 设

18、备 管 理图4-2 单缓冲与双缓冲缓冲区 A写读缓冲区 B写读双缓冲(b)读、写交替访问缓冲区A和缓冲区B(a)读、写在单缓冲区上互斥发生单缓冲写读第4章 设 备 管 理4.3.3 循环缓冲循环缓冲 1循环缓冲管理的数据结构循环缓冲管理的数据结构 在循环缓冲中含有多个缓冲区,每个缓冲区的大小相同,通过指针链接为一个循环队列。缓冲区可分成三种类型:空缓冲区R、装满数据的缓冲区G、正在访问的工作缓冲区C,如图4-3所示。设置四个指针:Nextg:指示读进程下一个可用的缓冲区G。Nexti:指示写进程下次可用的空缓冲区R。Current_R:指示读进程正在使用的缓冲区。Current_W:指示写进程

19、正在使用的缓冲区。第4章 设 备 管 理图4-3 循环缓冲RCGGGGRCurrent_RNex tgNex tiCurrent_W第4章 设 备 管 理 2缓冲区的使用缓冲区的使用 (1)访问缓冲区过程Getbuf。对缓冲区的访问可能有读、写两种情况,程序表示如下:Current_R=Nextg;Nextg=Nextgnext;读操作;Current_W=Nexti;Nexti=Nexti next;写操作;即当前指针首先指向要访问的第一个缓冲区,将相应的满缓冲区指针或者空缓冲区指针后移,进行读或写操作。第4章 设 备 管 理 (2)释放缓冲区过程Releasebuf。当读或写缓冲区结束后,

20、应该修改缓冲区状态,释放对缓冲区的控制。Current_Rstate=R;(读完)Current_Wstate=G;(写完)第4章 设 备 管 理 3进程同步进程同步 在读、写进程并行地访问缓冲区时,指针Nexti和指针Nextg将不断地沿顺时针方向移动,这样就可能出现下述两种情况:(1)Nexti指针追赶上Nextg指针。这意味着写进程输入数据的速度大于读进程取数据的速度,已把全部缓冲区(可用空缓冲)装满。此时,写进程应该阻塞,直至读进程把某个缓冲区中数据全部提取完,使之成为空缓冲区R,并调用Releasebuf过程将它释放时,才将写进程唤醒。第4章 设 备 管 理 (2)Nextg指针追赶

21、上Nexti指针。这意味着读进程取数据的速度高于写进程输入数据的速度,使全部缓冲区(已有数据的)都已被抽空。这时读进程阻塞,直至写进程装满某个缓冲区,并调用Releasebuf过程将它释放时,才去唤醒读进程。第4章 设 备 管 理4.3.4 缓冲池缓冲池 循环缓冲区仅适用于某特定的I/O进程和计算进程,因而它们属于专用缓冲,共享程度低,而缓冲池中的缓冲区可供多个进程共享。1缓冲池的组成缓冲池的组成 缓冲池中的缓冲区链接形成三种队列:(1)空缓冲队列emq。这是由空缓冲区所链成的队列,其队首指针F(emq)和队尾指针L(emq)分别指向该队列的首缓冲区和尾缓冲区。第4章 设 备 管 理 (2)输

22、入队列inq。这是由装满输入数据的缓冲区所链成的队列,其队首指针F(inq)和队尾指针L(inq)分别指向该队列的首、尾缓冲区。(3)输出队列outq。这是由装满输出数据的缓冲区所链成的队列,其队首指针F(outq)和队尾指针L(outq)分别指向该队列的首、尾缓冲区。此外还应具有四种工作缓冲区:用于收容输入数据的工作缓冲区hin;用于提取输入数据的工作缓冲区sin;用于收容输出数据的工作缓冲区hout;用于提取输出数据的工作缓冲区sout。第4章 设 备 管 理 2Getbuf过程和过程和Putbuf过程过程 Getbuf(type)过程是根据type从相应队列中选择队首缓冲区,而Putbu

23、f(type,num)是将编号为num的缓冲区挂到相应的队列上。type表示缓冲区类型,num表示缓冲区号。但是需要注意的是,作为队列,它们也是临界资源,多个进程在访问一个队列时应该互斥且需要同步。所以在实现上,必须为每一个队列引入一个互斥访问信号量S1(type),初值为1;另外一个是资源同步信号量S2(type),初值为n,表示该类缓冲区的数目。这两个过程的流程如图4-4所示。第4章 设 备 管 理图4-4 Getbuf与Putbuf流程图Getbuf(type):P(S2(type)P(S1(type)按照type在相应队列上取队首缓冲区V(S1(type)Putbuf(type,num

24、):P(S1(type)V(S1(type)V(S2(type)按照type将num号缓冲区挂到对应缓冲队列第4章 设 备 管 理 3缓冲区的工作方式缓冲区的工作方式 缓冲区可以工作在收容输入、提取输入、收容输出和提取输出四种工作方式下。1)收容输入工作方式 在输入进程需要输入数据时,便调用Getbuf(emq)过程,从emq队列的队首摘下一个空缓冲区,把它作为收容输入工作缓冲区hin。然后将数据输入其中,装满后再调用Putbuf(inq,hin)过程,将该缓冲区挂在输入队列inq的队尾。第4章 设 备 管 理 2)提取输入工作方式 当计算进程需要输入数据时,调用Getbuf(inq)过程,从

25、输入队列取得一个缓冲区作为提取输入工作缓冲区,计算进程从中提取数据。计算进程用完该数据后,再调用Putbuf(emq,sin)过程,将该缓冲挂到空缓冲队列emq上。3)收容输出工作方式 当计算进程需要输出时调用Getbuf(emq)过程,从空缓冲队列emq的队首取得一个空缓冲,作为收容输出工作缓冲区hout。当其中装满输出数据后,又调用Putbuf(outq,hout)过程,将该缓冲区挂在outq末尾。第4章 设 备 管 理 4)提取输出工作方式 当要输出时,由输出进程调用Getbuf(outq)过程,从输出队列的队首取得一个装满输出数据的缓冲区,作为提取输出工作缓冲区sout。在数据提取完后

26、,再调用Putbuf(emq,sout)过程,将它挂在空缓冲队列的末尾。第4章 设 备 管 理4.4 设设 备备 分分 配配4.4.1 设备分配的原则与策略设备分配的原则与策略 1设备分配原则设备分配原则 设备分配的原则是根据设备特性、用户要求和系统配置情况决定的。设备分配的总原则是既要充分发挥设备的使用效率,尽可能使设备忙,但又要避免由于不合理的分配方法而造成进程死锁;另外还要做到把用户程序和具体物理设备隔离开来,即用户程序面对的是逻辑设备,而分配程序将在系统把逻辑设备转换成物理设备之后,再根据相应的物理设备号进行分配。第4章 设 备 管 理 设备分配方式有两种,即静态分配和动态分配。静态分

27、配方式是在用户进程开始执行之前,由系统一次分配该进程所要求的全部设备、控制器和通道。一旦分配之后,此设备、控制器和通道就一直为该进程所占用,直到该进程被终止。静态分配方式不会出现死锁,但设备的使用效率低,因此静态分配方式并不符合设备分配的总原则。动态分配是在进程执行过程中根据执行时不同阶段的具体需要进行分配。当进程需要设备时,通过系统调用命令向系统提出设备请求,由系统按照事先规定的策略给进程分配所需要的设备、I/O控制器和通道,一旦用完之后便立即释放。动态分配方式有利于提高设备的利用率,但如果分配算法使用不当,则有可能造成进程死锁。第4章 设 备 管 理 2设备分配策略设备分配策略 与进程调度

28、相似,动态设备分配也是基于一定的分配策略的。常用的分配策略有先请求先分配、优先级高者先分配策略等。1)先请求先分配 当有多个进程对某一设备提出I/O请求时,系统按提出I/O请求的先后顺序将进程发出的I/O请求消息排成队列。当该设备空闲时,系统从该设备的请求队列的队首取下一个I/O请求消息,将设备分配给发出这个请求消息的进程。第4章 设 备 管 理 2)优先级高者先分配 这种策略中的优先数和进程的优先数是一致的,即进程的优先级高,它的I/O请求也优先予以满足。对于相同优先级的进程来说,则按先请求先分配策略分配。优先级高者先分配策略把请求某设备的I/O请求命令按进程的优先级组成队列,从而保证在该设

29、备空闲时,系统能从I/O请求队列取下一个具有最高优先级进程发来的I/O请求命令,并将设备分配给发出该命令的进程。第4章 设 备 管 理4.4.2 设备分配中使用的数据结构设备分配中使用的数据结构 设备的分配和管理通过下列数据结构进行。1设备控制表DCT(Device Control Table)设备控制表DCT反映设备的特性、设备和I/O控制器连接情况。系统中每个设备都必须有一张DCT,且在系统生成时或在该设备和系统连接时创建,但表中的内容则根据系统执行情况而被动态地修改。DCT包括以下内容:(1)设备标识符:用来区别设备。(2)设备类型:反映设备的特性,例如是终端设备、块设备或字符设备等。第

30、4章 设 备 管 理 (3)设备地址或设备号:每个设备都有相应的地址或设备号,这个地址既可以是内存编址方式,也可以是单独编址的。(4)设备状态:指设备是处于工作状态还是处于空闲状态中。(5)等待设备队列指针:等待使用该设备的进程组成等待队列,其队首和队尾指针存放在DCT中。(6)设备控制器表指针:指向该设备相连接的一个或多个I/O控制器形成的队列。(7)重复执行次数:设备工作发生错误时,允许重复执行的次数。若在规定次数内恢复正常,则认为数据传送成功,否则认为传送失败。第4章 设 备 管 理 2系统设备表系统设备表SDT(System Device Table)整个系统有一张系统设备表SDT,它

31、记录已被连接到系统中的所有物理设备的情况,每个物理设备占一个表目项。SDT的每个表目项包括的内容有:(1)DCT指针,指向该设备的设备控制表。(2)设备类型。(3)设备标识符。(4)驱动程序入口。SDT的主要意义在于反映系统中设备资源的状态,即系统中有多少设备,有哪些设备是空闲的,而又有哪些设备已分配给了哪些进程。第4章 设 备 管 理 3控制器控制表控制器控制表COCT(COntroler Control Table)每个控制器有一张COCT,它反映I/O控制器的使用状态以及与通道的连接情况等(在DMA方式时,该项是没有的)。4通道控制表通道控制表CHCT(CHannel Control T

32、able)该表只在通道控制方式的系统中存在,每个通道一张。显然,一个进程只有获得了通道、控制器和所需设备三者之后,才具备了进行I/O操作的物理条件。第4章 设 备 管 理图4-5 SDT、DCT、COCT和CHCT结构(a)设备控制表DCT设备类型指向控制器表的指针设备状态设备地址设备标识符等待设备队列指针重复执行次数(b)控制器控制表COCT(c)通道控制表CHCT(d)系统设备表SDT相连的通道表指针控制器状态控制器标识符等待控制器队列队尾指针等待控制器队列队首指针相连的控制器指针通道状态通道标识符等待通道队列队尾指针等待通道队列队首指针DCT指针设备标识符设备类型驱动程序入口第4章 设

33、备 管 理4.4.3 设备分配算法设备分配算法图4-6 设备分配流程按物理设备名查SDT找到相应DCT忙?安全?等待Y等待NNY分配设备找相连COCT控制器忙?分配控制器找相连通道CHCT通道忙?分配通道开始I/ONY等待Y等待N第4章 设 备 管 理 对于I/O系统来说,因为通道和设备控制器等硬件成本的原因,系统外部设备本身增减的原因,以及设备使用的动态性等原因,通道、设备控制器的数量并非与设备数量或设备可能数量的最大值一样,可以几个设备共用一个设备控制器,而设备控制器又可以共用一个通道;或者是一个设备可以连接多个设备控制器,一个设备控制器连接多个通道。根据这种情况,把I/O操作分为单通路I

34、/O和多通路I/O。第4章 设 备 管 理 单通路I/O就是指在进行I/O操作时,只能利用外部设备和存储器之间惟一的一条通路,如图4-7(a)所示。从图中我们可以看到,如果进程首先申请设备3进行I/O,则系统可以将设备控制器2分配,再将通道1分配,然后就可以工作了。如果在此过程中,进程申请设备4进行I/O,系统就会检查与它相连的控制器2,但是因为设备控制器2处于忙状态,所以无法分配,针对设备4的I/O请求无法得到满足。同理,如果此时进程请求设备1进行I/O,会因为通道1处于忙状态而无法被满足。出现这种情况,我们称之为“瓶颈”,其主要原因就是因为缺少通道,它影响了系统I/O的效率。为了解决它,一

35、种方法就是增加系统中通道和设备控制器的数量,但这样极大地增加了成本,而且连线复杂;另外一种就是不增加通道和设备控制器数量,增加设备和存储器间的通路,进行多通路I/O。第4章 设 备 管 理 多通路I/O就是指在进行I/O操作时,可以利用外部设备和存储器之间存在多于一条通路的特点,从其中选择一条进行I/O,如图4-7(b)所示。从图中我们可以看到,如果进程首先申请设备3进行I/O,则系统可以将设备控制器1分配,再将通道1分配,然后就可以工作了。如果在此过程中,进程申请设备4 进行I/O,从设备4的控制器控制表指针中首先找到设备控制器1,但设备控制器1状态为忙,则可以继续找到另外一个相连设备控制器

36、2,设备控制器2的状态为空闲,则可以将设备控制器2分配,类似可以分配通道2,这样针对设备4的I/O请求就得到了满足。比起单通路I/O,显然它有效地减轻甚至消除了“瓶颈”,提高了I/O操作效率,只是在分配过程中对相关数据结构的查询稍微复杂了一些,当然这种通道和设备控制器与单通路中的通道和设备控制器相比也会有所不同。第4章 设 备 管 理图4-7 单通路I/O和多通路I/O(a)单通路I/O设备1设备2设备3设备4设备5设备6设备7控制器1控制器2控制器1控制器2通道1通道2存储器设备1设备2设备3设备4设备5设备6设备7控制器1控制器2控制器3通道1通道2存储器(b)多通路I/O第4章 设 备

37、管 理4.5 设备虚拟性与独立性设备虚拟性与独立性4.5.1 SPOOLing定义定义 在多道程序环境下,系统利用一道程序来模拟脱机输入时的外围控制机,把低速输入设备上的数据传送到高速的磁盘上,还需要利用另一道程序模拟脱机输出时的外围控制机,把高速的磁盘上的数据传送到低速输出设备。这样,在CPU直接控制下实现输入/输出操作,此时的外围操作与CPU对数据的处理是并行进行的。相对应于前边介绍的脱机输入/输出,我们将这样的操作称为假脱机操作,也就是SPOOLing(Simultaneous Peripheral Operations On-line,外围设备同时联机操作)。第4章 设 备 管 理4.

38、5.2 SPOOLing系统的组成系统的组成 SPOOLing的组成如图4-8所示,它包含三个部分:(1)输入井和输出井:它们是开辟的两个大容量外存空间。SPOOLing通常需要磁盘这种高速的随机外存来支持。输入井收容I/O设备输入的数据,输出井收容输出到I/O设备的数据。(2)输入缓冲区和输出缓冲区:在内存中开辟的两个缓冲区,分别暂存输入设备送到输入井的数据和输出井送到输出设备的数据。(3)输入进程和输出进程:分别模拟外围输入机和外围输出机的两个进程。输入进程通过输入缓冲区将数据送到输入井,当CPU需要数据时,直接从输入井读入内存;输出进程将用户输出的数据从内存送到输出井,当输出设备空闲时,

39、经输出缓冲区送到输出设备。第4章 设 备 管 理图4-8 SPOOLing系统组成SPOOLing输入进程输入缓冲区输出缓冲区输入井输出井SPOOLing输出进程磁盘CPU取数CPU输出数据输入设备输出设备内存第4章 设 备 管 理4.5.3 SPOOLing系统的应用系统的应用 打印机就是一个典型的独占设备,我们看如何通过SPOOLing技术将它改造为一个共享设备。在SPOOLing系统中,当用户进程有打印请求时,输出进程首先在输出井中申请一个空闲盘块区,将要打印的数据送入,然后将用户打印请求填入申请的空白打印请求表中,再把该表挂到请求打印队列上。如果还有后续打印请求,则重复上边的操作过程。

40、第4章 设 备 管 理 当打印机空闲时,输出进程就可以从请求打印队列上取下第一张请求打印表,根据要求将打印数据从输出井送到内存缓冲区,由打印机输出。经过这样的循环,就可以将打印队列中的所有打印要求分别予以满足。当队列为空后,输出进程将自身阻塞,直至再有打印请求时才被唤醒。从这个应用中我们看到,虽然只有一台打印机,但它可以同时接受多个用户进程的打印请求,使用户感觉自己在独享打印机。在这个过程中,实际上是把对低速的打印机进行的I/O操作演变为对输出井的高速传送,显著地缓和了高速CPU与低速打印机之间的速度不匹配的矛盾。第4章 设 备 管 理4.5.4 设备独立性设备独立性 与存储器管理中的物理地址

41、与逻辑地址类似,设备分配中也涉及到设备的物理名和逻辑名的情况,具体是指应用程序(或者进程)中以逻辑设备名请求设备,而系统以物理设备名来分配和使用设备。比如在系统上连接有几台打印机,几台打印机依次编号为printer 1、printer 2,当有用户程序(进程)中请求一台打印机设备时,如果以printer 1或者printer 2等来请求,而该台打印机正被其它程序使用,则该程序无法继续执行(或进程阻塞)。如果用户程序(进程)采用prn或者其它字符串请求,系统根据此时所有打印机的状况,决定prn针对一台具体的打印机,则不管系统情况如何,只要有一台打印机空闲,用户的打印请求就可以很快得到满足了。第4

42、章 设 备 管 理 再或者,对于包含输出到打印机要求的程序,在调试时为了提高效率,可以把“输出设备”定向为显示器,当调试通过后,再将“输出设备”重定向为打印机即可。在这两个例子中,“prn”、“输出设备”就是逻辑设备名,“printer 1”、“printer 2”、“显示器”、“打印机”就是物理设备名。引入了逻辑设备名、物理设备名之后,一方面系统对用户的设备分配可以灵活实现,它是采用多通路I/O方式之外提高I/O的效率有一种有效措施;另一方面用户程序中对设备的申请可以独立于具体的物理设备,所以设备的独立性也称为设备无关性。第4章 设 备 管 理 逻辑设备名到物理设备名的映射是通过逻辑设备表(

43、Logical Unit Table,LUT)实现的。LUT的结构在不同的用户环境下有不同的设置方式。在单用户系统中,整个系统有一张LUT,如图4-9(a)所示,记录了所有用户进程的设备分配情况,其中不允许逻辑设备名重名。在多用户系统中,为每个用户设置一张LUT,如图4-9(b)所示,存放于用户登录建立的进程PCB中,这样用户可根据自己的习惯使用逻辑设备名,在用户之间允许逻辑设备名重名。第4章 设 备 管 理图4-9 逻辑LUT(b)系统设备表指针36逻辑设备名/dev/tty/dev/print(a)逻辑设备名 物理设备名驱动程序入口地址/dev/tty11200/dev/print3302

44、1第4章 设 备 管 理4.6 设备处理过程设备处理过程4.6.1 设备驱动程序功能与特点设备驱动程序功能与特点 1设备驱动程序的功能设备驱动程序的功能 (1)将接受的抽象I/O请求转化为具体的I/O请求。(2)检查I/O请求合法性,了解设备状态并传递相关参数,设置设备的工作方式。(3)发出I/O命令,启动已分配的相应设备完成指定的I/O操作。(4)及时响应设备控制器或者通道的中断,并根据中断类型调用相应中断处理程序处理。(5)在有通道的系统中,驱动程序根据用户I/O请求,自动构成通道程序。第4章 设 备 管 理 2设备驱动程序的特点设备驱动程序的特点 (1)驱动程序主要是在请求I/O的进程与

45、设备控制器之间的一个通信程序,将进程I/O请求送到设备控制器,反馈回设备控制器中记录的设备状态、I/O完成情况。(2)驱动程序与I/O设备的特性紧密相关,一般情况下,各类设备包括不同厂家生产的同一类设备都采用不同的驱动程序,有些甚至用汇编语言编成,固化在ROM中。(3)根据不同的I/O控制方式,驱动程序驱动设备完成相应的I/O工作。比如DMA方式可以使设备能够传送一组数据。第4章 设 备 管 理4.6.2 设备处理方式与设备处理流程设备处理方式与设备处理流程 1设备处理方式设备处理方式 因为设备处理是I/O进程控制的,可以将设备处理方式根据进程的不同分为:(1)每类(个)设备设一个专门的I/O

46、进程,且该进程只能在系统态下执行。(2)整个系统设一个I/O进程,全面负责系统的数据传送工作。由于现代计算机系统设备十分复杂,I/O进程的负担很重,因此又可把I/O进程分为输入进程和输出进程。(3)每类(个)设备设一个专门的I/O进程,但该进程既可以在用户态也可以在系统态下执行。第4章 设 备 管 理2设备处理流程设备处理流程设备处理流程如图4-10所示。图4-10 设备处理流程抽象要求转变为具体要求检查I/O请求合法性读出并检查设备状态传送参数设置工作方式启动I/O设备I/O操作,驱动程序阻塞I/O完成分析中断,转相应中断处理程序保护中断进程环境唤醒驱动程序响应设备控制器中断中断处理恢复现场整个I/O完成,驱动程序向上层软件报告本次I/O情况

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 技术方案

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁