第6章设备管理主要介绍I/0的控制方式和设备的分配和处理,具体包括I/O系统的硬件组成、I/O的控制方式、缓冲技术、设备分配、SPOOLing技术、设备驱动程序和I/O中断处理程序、磁盘存储器的管理等内容。
6.1基本内容
6.1.1设备管理概述
1.设备管理的任务设备管理是对计算机输入/输出设备的管理,是操作系统中最具有多样性和复杂性的部分。其主要任务是:
(1)按照用户的要求控制UO设备工作,完成用户所希望的I/0操作,以减轻用户编制程序的负担。这是设备管理的基本任务。
(2)按照一定的算法把I/0设备分配给对该设备提出请求的进程,保证系统有条不紊地工作。
(3)充分有效地使用I/0设备,尽可能提高这些设备的并行操作程度。
2.设备管理的功能为了完成上述任务,设备管理应具备以下功能:
(1)设备分配按照设备类型和相应的分配算法决定将I/0设备分配给哪一个要求该设备的进程。在分配设备的同时还要分配相应的控制器和通道,以保证I/0设备与CPU之间有传递信息的通路。凡未分配到所需设备的进程被放入一个等待队列。实现这一功能的是设备分配程序。
(2)设备控制完成这一功能的是设备处理程序。为实现这一功能,设备处理程序首先根据用户提出的I/O请求构成相应的通道程序,交给通道去执行:然后启动指定的设备进行I/0操作;最后要对通道发来的中断请求作出及时的响应和处理。
(3)实现其他功能其他功能包括对缓冲区的管理功能。为改善系统的可适应性和可扩充性,应使用户程序与实际使用的物理设备无关,即实现设备独立性。
6.1.2 I/0系统的硬件结构
1.I/O系统的相关概念
(1)设备:是指计算机系统中除中央处理机、主存和系统控制台以外的所有设备。通常也称为外部设备或I/0设备。
(2)输入输出操作:是主存与外设的介质之间的数据传输操作。多道程序设计技术引入系统之后,I/0操作的能力不仅影响系统的通用性和扩充性,而且也成为系统综合处理能力及性能价格比的重要因素。
(3)通道:又称I/O处理机。它能完成主存和外设之间的信息传输,并能与中央处理机并行操作。通道从属于中央处理机。
(4)设备控制器:设备控制器是CPU与I/O设备之间的硬件接口,它接收从CPU发来的命令,并去控制一个或多个设备。在微型机和小型机中,它通常是一块可以插入主板扩展槽的印刷电路板,也叫接口卡。
(5)总线系统:在计算机系统中的各部件,如CPU、存储器以及各种I/O设备之间的联系,都是通过总线来实现的。它的性能是用总线的时钟频率、带宽和相应的总线传送速率等指标来衡量的。随着计算机技术的发展,总线技术已由早期的ISA总线发展为EISA总线、VESA总线,进而又演变为当前广为流行的PCI总线。
2.I/O设备类型
(1)按使用特性分类:存储设备;输入/输出设备;终端设备;脱机设备。
(2)按所属关系分类:系统设备;用户设备。
(3)按资源分配角度分类:独占设备(如打印机、磁带机);共享设备(如磁盘);虚拟设备(虚拟设备是指通过虚拟技术将一台独占的物理设备变战若干台逻辑设备,以供若干个进程同时使用)。
(4)按传输数据数量分类:字符设备(如终端、打印机);块设备(如磁盘、磁带)。
(5)按传输速率分类:低速设备(如键盘、鼠标的传送速率仅为每秒钟几个字节至数百个字节)、中速设备(如行式打印机、激光打印机的传送速率一般为每秒钟数千个字节至数万个字节)和高速设备(如磁盘机、光盘机的传送速率可达每秒钟数百个字节至数十兆字节)。
3.I/O设备的物理特性不同I/0设备具有不同的物理特性。
(1)磁盘:磁盘是一种直接存取存储设备,可分为软盘和硬盘。磁盘的一个物理块的物理地址由三部分组成:柱面号、磁道号和物理记录号。磁盘由若干个圆盘组成,每个圆盘有上、下两个盘面,每个盘面有一个磁头,其中有一个称为伺服磁头,是用于控制定位的。磁盘执行一次操作时,盘组旋转,由存取臂带动所有的磁头来回移动。盘组旋转一周,对应的磁头在盘上的移动轨迹称磁道,一个磁道又可分许多扇区。
(2)时钟:时钟也是一种外部设备,它既不是块设备,也不是字符设备。时钟可以以设备驱动程序的形式进行工作。
(3)终端:每台计算机都有一个或多个终端。终端的种类、型号较多。根据操作系统如何与终端通信,终端可分为三类:(1〉存储映像终端z(2〉RS-232串行接口终端川3〉网络接口终端。
4.I/0 系统的硬件组织
(1)I/0控制方式:循环I/0测试方式;程序中断I/0方式;DMA方式;通道方式。
(2)设备控制器:I/0设备通常由机械和电子部件组成。其中的电子部件称为设备控制器,它处于CPU和设备之间,通常它由三部分组成:设备控制器与CPU的接口;设备控制器与设备的接口;I/O逻辑。
6.1.3 I/O控制方式
1.程序I/0方式早期的计算机系统中,由于无中断机构,处理机对I/0设备的控制采用程序I/O方式,或称"忙等"方式。
2.中断驱动I/O控制方式由于CPU可以与设备并行工作,比起程序I/O方式来,中断驱动方式成百倍地提高了CPU的利用率,但它每传送几个字节(具体字节数由数据缓冲寄存器的大小决定)便请求一次中断,故CPU仍需花费大量的时间来处理频繁的I/0中断。
3.直接存储器访问(DMA)I/O控制方式在DMA控制方式下,仅在传送一个数据块的开始和结束时,才需CPU干预,整块数据的传送是在DMA控制器的控制下直接完成的,因此,较之中断驱动方式,DMA控制方式又极大地提高了CPU的利用率。但当我们需要一次传送多个数据块时,则仍须由CPU分别发出多条I/0指令并进行多次中断处理。
4.I/O通道控制方式
I/0通道方式比DMA方式进一步减少了CPU对I/0的干预,它把以一个数据块的读(或写)为单位的干预,减少为以一组数据块的读(或写)为单位的干预,同时,又实现了CPU、通道和I/O设备三者的并行操作,从而更有效地提高了整个系统的资源利用率。
(1)通道类型
①字节多路通道:是为连接大量慢速外围设备而设置的。它以字节为单位交叉地工作。
②选择通道:它用于连接磁带、磁鼓和磁盘等快速设备,以成组方式工作。每次传送一批数据,但在一段时间内只能为一台设备服务。
③数组多路通道:它类似于选择通道又类似于字节多路通道,按次序交叉传送一批批信息,实质上是对通道程序采用多道程序设计技术的硬件实现。
(2)多通路I/O 系统
①由于通道的成本高,所以通道的数量远比设备少。这样,会因通道数量不足而产生一种"瓶颈"现象,影响整个系统的处理能力。
② 为了使设备能得到充分利用,在通道、控制器和设备的连接上,采用一个I/0设备与多个控制器相连,一个控制器与多个通道相连。这样,既实现了多通路I/0系统,提高了设备利用的灵活性,也提高了系统的可靠性。
③设备管理程序通过对所有通路上状态信息的管理,找出一条能用的通路来使用所请求的设备。
(3)通道命令和通道程序通道命令分为数据传送类、设备控制类和转移类三类。
每条通道命令由四个字段组成z操作码、数据主存始址、特征位、字节计数。
在通道进行输入/输出操作期间,要访问两个固定内存单元:通道地址字〈CAW)和通道状态字(CSW)。
① 通道地址字(CAW):由存储保护钥和通道程序的起始地址组成。
② 通道状态宇(CSW):包含有通道状态的编码信息。
(4)CPU和通道间的通讯输入/输出指令:是中央处理机的指令。在一般计算机中,这类指令均为特权指令,只能在管态下运行。
CPU和通道间的通讯。CPU和通道之间的关系是主从关系,CPU是主设备,通道是从设备。其通讯方式是:
①由CPU向I/O通道发I/0指令,命令通道工作,并检查其工作情况。
②通道以中断方式向CPU汇报,等候CPU处理。
6.1.4 I/0系统的软件组织
1.I/O软件设计的目标
(1)与设备无关性。
(2)错误处理。
(3)步/异步传输。
(4)能处理独占设备和共享设备的I/0操作。
2.I/O采统的四个层次为实现以上四个目标,I/O系统应组织成以下四个层次:
(1)中断处理程序:它位于I/O系统的最低层。当进程需要进行I/O操作时,操作系统将该进程挂起,即进入阻塞,直至I/O操作结束并发生中断。
(2)设备驱动程序:它包括了所有与设备有关的代码。每一个设备驱动程序只处理一种设备或一类密切相关的设备。其功能是从与设备无关的软件中接收抽象的请求,并执行该请求。
(3)与设备无关的I/0软件:它提供适用于所有设备的常用I/0功能,并向用户层软件提供一个一致的接口。
(4)用户空间的I/0软件:这是与用户程序链接在一起的库例程,或是在核心外运行的程序。系统调用包括I/0系统调用,通常是库例程调用。
6.1.5缓冲技术
1.缓冲技术的基本思想
(1)缓冲技术的基本思想是在CPU和外设之间设立缓冲区,用于暂存CPU和外设之间交换的数据,从而缓和CPU与外设速度不匹配所产生的矛盾。
(2)缓冲技术包括输入缓冲和输出缓冲。
(3)缓冲区按使用方式分为专用缓冲区和通用缓冲区。
(4)缓冲区按组织方式分为单缓冲、双缓冲和缓冲池。
2.儿种缓冲区的特点与作用
(1)单缓冲:是指在操作系统中设置一个缓冲区,供用户进程和操作系统之间交换数据使用。
(2)双缓冲:就是在操作系统中为某一设备设置两个缓冲区,当一个缓冲区中的数据尚未被处理时,可用另一缓冲区存放从设备读入的数据,以此来减小CPU和I/O设备之间速度的差异。
(3)缓冲池:为了克服专用缓冲区的缺陷,可采用公用缓冲技术,即缓冲池。
缓冲池的组成:①空闲缓冲区;②装满输入数据的缓冲区;③装满输出数据的缓冲区。
缓冲池的工作方式有:①收容输入工作方式;②提取输入工作方式;③收容输出工作方式;
④提取输出工作方式。
缓冲池管理的基本操作有:
①getbd(type),从队列的队首摘下一个缓冲区。
②putbuf(type,number),将number所指示的缓冲区,挂在type队列上。
为了提高设备的读写效率,操作系统广泛采用了预先读与延迟写技术。
6.1.7 设备分配每当进程提出I/O请求时,操作系统将按一定的策略把设备分配给它。在有的系统中,为了确保CPU和设各间能进行通信,还必须为进程分配相应的控制器和通道。
1.设备分配中的数据结构在进行设备分配时,必须通过一些数据结构来了解系统中设备和控制器的情况。相应的数据结构有:设备控制表(DCT)、控制器控制表(COCT)、通道控制表(CHCT)、和系统设备表(SDT)。
每个设备有一张设备控制表,用来记录相应设备的各种属性,其中的内容包括:设备的类型、设备的标识符、设各的状态、设备等待队列指针、与设备连接的控制器的COCT指针、重复执行次数等。其中,设备的状态中有用来指示设备是否正在使用的"忙/闲"标志,以及设备是否因相连的控制器或通道正在忙而无法启动的"等待/不等待"标志;设备等待队列指针指向等待使用该设备的所有进程的PCB所组成的队列:重复次数则规定了设备在工作中发生错误而未能成功传送数据时,可以重新传送的次数。
系统还为每个控制器都设置了一张用于记录相应控制器情况的控制器控制表,为每个通道都设置了一张用于记录相应通道情况的通道控制表。
另外,整个系统中还设置了一张系统设备表,用来登记系统中所有设备的情况,每个设备占一个表目,其中登记了相应设备的设备类型、设备标识符、设备控制表指针与设备驱动程序入口地址等内容。
2.设备分配时应考虑的因素
(1)设备的固有属性设备的固有属性决定了设各的使用方式,进而决定了设备的分配方式。某些设备的固有属性要求相应设备在一段时间内只能被一个进程独享,对它们只能采用独享分配方式;而另一些设备则允许被多个进程同时共享,因此可将它们同时分配给多个进程使用;还有一些设备虽然要求被独享,但可通过虚拟设备技术将它们改造成可同时共享的虚拟设备,此时便可将它们同时分配给多个进程使用。
(2)设备的分配算法在一个系统中,请求设备的进程数目往往多于设备数目,故在多个进程竞争同个设备时,系统必须按照某种算法将设备分配给其中的一个进程。常用的设备分配算法有先来先服务和高优先权优先两种。
(3)设备分配中的安全性在进程运行过程中,如果每当进程发出I/O请求后,它便进入阻塞状态,直到其I/0操作完成时才被唤醒,则设备的分配不会引起死锁。如果进程发出I/O请求后仍可继续运行,需要时又可发出下一个I/O请求,则可能会造成死锁,在这种分配方式下,设备分配程序应对每次设备分配产生的新状态进行安全性检查,仅当检查结果是安全时,才能进行设备分配。
(4)设备独立性设备的独立性是指应用程序独立于具体使用的物理设备,它可提高设备分配的灵活性和设备的利用率。为了实现设备独立性,在应用程序中应使用逻辑设备名称来请求使用某类设备:而系统中必须设置一张逻辑设备表LUT,其中每个表目中包含了逻辑设备名、物理设备名和设备驱动程序入口地址三项:当应用程序用逻辑设备名请求分配I/0设备时,系统必须为它分配相应的物理设备,并在LUT中建立一个表目,以后进程利用该逻辑设备名请求UO操作时,便可从中得到物理设各名和驱动程序入口地址
3.独占设备的分配程序在一个系统中,如果使用m通道并采用单通路的连接方式(即每个设备只与一个设备控制器相连,而每个设备控制器又只与一个通道相连),则当某进程以物理设备名对一独占设备提出I/O请求时,系统的设备分配程序可按下述步骤进行设备分配。
(1)分配设备根据进程给出的物理设备名,查找系统设备表SDT,从中找出该设备的设备控制表DCT。再检查DCT中的设备状态字段,若设备处于忙状态,则将请求I/O的进程插入设备等待队列;否则,便按照一定的算法来计算本次设备分配的安全性。若分配不会导致系统进入不安全状态,便将设备分配给请求进程:否则仍将该进程插入设备等待队列。
(2)分配控制器在系统把设备分配给请求进程后,再根据DCT中的与设备相连接的COCT指针找出对自应的控制器控制表COCT,检查COCT的状态字段。若控制器忙,便将请求进程插入控制器等待队列:否则,便将该控制器分配给请求进程。
(3)分配通道分配控制器后,通过COCT又可找到与该控制器连接的通道的通道控制表CHCT检查CHCT的状态字段。若通道忙,则将请求进程插入该通道的等待队列中;否则,便将该通道分配给进程。
为了获得设备独立性,进程应使用逻辑设备名来请求I/0,此时,系统先从SDT中找出第一个该类设备的DCT,若设备忙,则又可找出第二个该类设备的DCT,仅当所有该类设备都忙时,才把进程插入该类设备的等待队列中:而只要有一个该类设备可用,系统便可进一步计算分配该设备的安全性。同样,对使用多通路连接以防止"瓶颈"现象的系统,控制器和通道的分配也可能要经过几次反复。
只有在设备、控制器和通道三者都分配成功时,这次设备的分配才算成功,然后,系统便可启动该设备进行数据传送。
6.1.8 SPOOLing技术
SPOOLing技术,即同时联机外围操作技术,又称假脱机技术,是指在多道程序环境下,
利用多道程序中的一道或两道程序来模拟脱机输入输出中的外围控制机的功能,以达到"脱机"输入输出的目的,即在联机的条件下,将数据从输入设备传送到磁盘,或从磁盘传送到输出设备。通过它可以将一台独占的物理设备虚拟为多台逻辑设备,从而使该物理设备可被多个进程共享。-
1.SPOOLing系统的组成
SPOOLing技术是对脱机输入、输出系统的模拟,它必须建立在具有多道程序功能的操作系统上,而且还需要得到高速随机外存(通常采用磁盘)的支持。SPOOLing系统主要由以下三部分组成:
(1)输入井和输出井:这是在磁盘上开辟的两个大存储空间。输入井是模拟脱机输入时的磁盘,用于暂存UO设备输入的数据:输出井是模拟脱机输出时的磁盘,用来暂存用户程序的输出数据。
(2)输入缓冲区和输出缓冲区。这是在内存中开辟的两个缓冲区。输入缓冲区用于暂存由输入设备送来的数据,以后再传送到输入井:输出缓冲区用来暂存从输出井送来的数据,以后再传送给输出设备。
(3)输入进程SPi和输出进程SR。这是内存中的两个进程。输入进程SPi模拟脱机输入时的外围控制机,将用户要求的数据从输入设备通过输入缓冲区再送到输入井,当CPU需要输入数据时,直接从输入井读入内存:输出进程SP。模拟脱机输出时的外围控制机,把用户要求输出的数据,先从内存送到输出井,待输出设备空闲时,再将输出井中的数据经过输出缓冲区送到输出设备上。
2.利用SPOOLing技术共享打印机利用SPOOLing技术可将独占的打印机改造为一台供多个用户共享的设备,这种共享打印机技术已被广泛地用于多用户系统和局域网络中。当用户进程请求打印输出时,SPOOLing系统立即同意为它打印输出,但并不真正把打印机分配给该用户进程,而只为它做两件事:
(1)由输出进程在输出井中为之申请一个空闲的磁盘块区,并将要打印的数据送入其中。
(2)输出进程再为用户进程申请一张空白的用户请求打印表,并将用户的打印要求填入其中,然后将该表挂到打印机的请求打印队列上。
如果打印机空闲,输出进程将从请求打印队列的队首取出一张请求打印表,根据表中的要求将要打印的数据从输出井传送到内存缓冲区,再由打印机进行打印。打印完后,输出进程将再检查请求打印队列中是否还有待打印的请求表,若有则继续打印,否则便将自己阻塞起来,并在下次再有打印请求时被唤醒。
6.1.9设备处理设备处理是指在系统为请求I/0的进程分配了设备及相应的数据通路之后,启动设备去进行实际的IjO操作,它通常由设备驱动程序和IjO中断服务程序配合完成。
1.设备驱动程序设备驱动程序是I/O进程与设备控制器之间的通信程序,它接收来自上层软件的、抽象的I/0命令,再把它转换成具体要求后,发送给设备控制器,从而启动设备进行数据传送。设备驱动程序的处理过程如下:
(1)将抽象要求转换成具体要求。操作系统对用户屏蔽了有关物理设备的具体细节,并提供给用户一个一致的I/0接口。因此,用户进程或上层软件发出的I/O请求通常只能是一些抽象的命令,驱动程序必须将这些命令按设备控制器所要求的格式转换成具体的命令,如将read命令中的盘块号按地址寄存器的格式转换成盘面、磁道及扇区号。
(2)检查I/O请求的合法性。每种设备都只能完成→组特定的功能,设备驱动程序必须检查用户提出的I/O请求,若相应设备不支持这次I/O请求,则认为这次I/O请求非法。对某些设备,如磁盘上的文件操作,若它们的打开方式是读,则用户的写请求也必然被拒绝。
(3)读出和检查设备的状态。在启动设备之前,驱动程序要从设备控制器的状态寄存器中读出设备的状态,仅当它处于空闲状态时,才能启动其设备控制器,否则只能将相应的I/O请求插入请求I/0的队列。
(4)传送必要的参数。对带有参数的I/O命令,驱动程序必须将这些参数,如读盘时的磁盘地址、内存地址、本次要传送的字节数等,传送到设备控制器的相应寄存器中。对于字符设备,若发出的是写命令,驱动程序还必须把输出数据写入控制器的数据寄存器。
(5)工作方式的设置。有些设备可具有多种工作方式,典型的情况是利用RS-232接口进行异步通信。在启动该接口之前,应先按通信规程设定下述参数:波特率、奇偶校验方式、停止位数及数据字节长度等。
(6)启动I/O设备。在完成上述各项准备工作后,驱动程序可以向控制器的命令寄存器传送相应的命令,启动I/0设备开始I/0操作。
驱动程序发出I/O命令后,基本的I/0操作是在设备控制器的控制下进行的。通常I/O操作所要完成的工作较多,需要一定的时间,因此,执行驱动程序的进程把自己阻塞起来,直到I/0中断到来时才被唤醒。
2.I/O申断处理程序
I/O设备完成I/0操作后,设备控制器便向CPU发送一I/0中断请求。CPU响应中断后,先保护被中断进程的CPU现场,然后分析中断原因转去执行相应的I/O中断处理程序。
I/0中断处理程序的工作过程如下:
(1)检查本次I/0的执行结果。中断处理程序通过读设备控制器的状态寄存器来检查本次I/O操作的完成情况。若本次操作成功,则进行结束处理:否则,根据发生异常的原因做相应的处理,在允许时,还可按重复次数调用设备驱动程序重新传送数据。最终的I/0执行情况,将由中断处理程序向上层软件汇报。
(2)唤醒被阻塞的相应进程。I/0中断处理程序还必须唤醒等待本次I/O完成的相应进程,以使它能继续向前推进。若请求I/0的队列中还有I/O请求等待处理,则可调用设备驱动程序进行新一轮的数据传送。
当中断处理完成以后,便恢复被中断进程的现场,并通过执行中断返回指令,返回到断点继续执行被中断的程序。
6.1.9 磁盘存储管理磁盘存储器不仅容量大,存取速度快,、而且可以随机存取,故在现代计算机系统中都配置了磁盘,并以它为主来存放文件。磁盘I/O速度的高低和磁盘系统的可靠性,都将直接影响到系统性能。因此,设法改善磁盘系统的性能,已成为现代操作系统的重要任务之一
1.磁盘驱动调度的原则磁盘驱动调度的原则为:先进行移臂调度,再进行旋转调度。
2.移臂调度算法
(1)先来先服务算法(FCFS):FCFS按照输入/输出请求到达的顺序,逐一完成访问请求。
(2)最短查找时间优先法(SSTF):SSTF总是先完成距当前存取臂距离最近的柱面上的输入/输出请求。
(3)扫描法(SCAN):采用扫描法时,存取臂从磁盘的一端出发,向另一端移动,遇到访问的柱面就完成访问请求,直至到达磁盘的另一端,再倒转过来,继续完成这一方向上的访问请求。
(4)电梯调度算法:电梯调度算法是改进的扫描法。当存取臂仅需移到一个方向最远的所请求的柱面后,如果没有访问请求了,存取臂就改变方向。
3.提高磁盘I/0速度的方法磁盘的I/O速度远低于对内存的访问速度,通常要低上4-6个数量级,这使得磁盘存储系统很容易成为计算机系统的瓶颈。因此,人们便千方百计地去提高磁盘I/0的速度。下面将介绍几种提高磁盘I/O速度的常用方法:
(1)磁盘高速缓存(Disk Cache):磁盘高速缓存是在内存中为磁盘块设置的一个缓冲区,其中存放有磁盘中某些盘块的副本。当有一进程请求访问某个盘块中的数据时,系统首先检查该盘块是否在磁盘高速缓存中,如果在,则无需读盘而可直接从高速缓存中提取数据交付给请求进程,从而使本次的访问速度提高4-6个数量级:否则,应先从磁盘中将所要访问的数据读入并交付给请求进程,同时也将数据送高速缓存。
(2)提前读:提前读是指在读当前盘块的同时,将下一个可能要访问到的盘块中的数据也读入缓冲区。这样,当要读下一个盘块中的数据时,由于它们己被提前读入缓冲区,便可直接从缓冲区中取得所需数据,而无需启动磁盘。用户对文件进行访问时,经常采用顺序访问的方式,因此,可采用提前读来有效地减少读数据的时间,从而提高磁盘I/0的速度。
(3)延迟写:在写盘块时,本应将对应缓冲中的数据立即写盘,但考虑到该盘块中的数据在不久之后可能还会被再次访问,因而并不立即将对应缓神区中的数据写入磁盘,而只是将它置上"延迟写"标志并挂到空闲缓冲队列的末尾b当该缓冲医移到空闲缓冲队列的首部,并作为空闲缓冲被分配出去时,才将缓冲区中的数据写入磁盘。只要延迟写块仍在空闲缓冲队列中,任何要求访问该盘块的进程,都可直接从其中读出数据或将数据写入其中,而不必去访问磁盘,因此,可有效地提高磁盘I/0的速度。
(4)优化物理块布局:优化文件物理块的分布,从而使访问文件时磁头的移动距离尽量的小。例如,操作系统中经常将同一条磁道上的若干个盘块组成一簇,并以簇为单位来分配文件存储空间,这样就可以保证在访问这几个盘块时不必移动磁头,从而减少了磁头的平均移动距离,提高了磁盘存取的速度。
(5)虚拟盘:虚拟盘,又称为RAM盘,它是指利用内存空间去仿真磁盘。该盘的设备驱动程序,可以接受所有标准的磁盘操作,但这些操作的执行,不是在磁盘上而是在内存中,因此它们的速度也更快。用户可完全像使用真正的磁盘一样使用虚拟盘。由于虚拟盘是易失性存储器,当系统或电源发生故障或者系统重新启动时,其中的数据将会丢失,因此,虚拟盘通常只用来存放临时性的文件。
(6)廉价磁盘冗余阵列(RAID)
廉价磁盘冗余阵列RAID是利用一台磁盘阵列控制器,来统一管理和控制一组(几台到几十台)磁盘驱动器,从而组成一个高度可靠的、快速的大容量磁盘系统。
操作系统将RAID中的一组物理磁盘驱动器看作是一个单个的逻辑磁盘驱动器。用户数据和系统数据可分布在阵列的所有磁盘中,并可采取并行传输的方式,因此可大大地减少数据的传输时间。RAID的另一特点是它的高可靠性。
6.2 重点难点学习提示本章的目的是使学生了解操作系统处理用户I/O请求的基本过程,为此应对以下儿个重点、难点问题作认真的学习。
1.I/O控制方式
I/O控制方式随着计算机技术的发展而不断地由低效的方式演变为高效的方式,故应了解I/0控制方式的演变过程,每种I/0控制方式是如何进行控制的,又是如何提高CPU的利用率的。
(1)程序I/O方式:因为当时尚未出现中断机构,所以在进行I/0时,CPU不得不花费大量的时间去测试I/0设备的工作状态,此时CPU完全陷入I/0工作中。
(2)中断驱动I/0控制方式:应清楚地了解和掌握在中断机构的支持下,其I/0控制是如何实现的,CPU的利用率提高了多少。
(3)DMA I/O控制方式:应很好地了解此时I/0控制是如何实现的,CPU的效率提高了多少。
(4)I/O通道控制方式:系统中配置了通道控制器后,在通道程序的控制下,其传输的基本单位由一个数据块增为一组数据块。读者应了解什么是通道程序,它是如何实现I/0控制的。
2.缓冲管理在现代操作系统中,几乎所有的I/0设备在与处理机交换数据时,都使用了缓冲区。因此,应对下述问题作认真的学习和理解:
(1)缓冲的引入是为了提高CPU和I/O设备的并行性。在学习时,读者应了解如果没有缓冲区,CPU和IJO设备应如何工作:而引入缓冲后,可带来哪些好处。
(2)单缓冲是如何提高I/O速度的,它存在着哪些不足,而双缓冲、循环缓冲又是如何进一步提高CPU和I/O设备的并行性的。
(3)缓冲池是为了解决什么问题而引入的,引入缓冲池后系统将如何处理I/0设备和CPU间的数据传输。
3.设备独立性者应较深刻地理解下述几个问题:
(1)什么是设备独立性:应了解为什么设备独立性能提高设备分配的灵活性?并使I/O重定向的实现变得更为容易。
(2)如何实现设备独立性:应了解该层软件有哪些功能,它是如何实现逻辑设备名到实际使用的物理设备名之间的转换的。
4.虚拟设备和SPOOLing技术虚拟性是OS的四大特征之-,而实现虚拟设备最常用的技术便是SPOOLing技术,因此,必须对下列问题有较清晰的认识和掌握:
(1)什么是虚拟设备技术:虚拟设备技术是指把每次仅允许一个进程使用的物理设备,改造为能同时供多个进程共享的虚拟设备的技术,或者说将一个物理设备变换为多个对应的逻辑设备。必须了解实现虚拟设备技术的关键是什么。
(2)什么是SPOOLing技术:SPOOLing也称作假脱机操作,是指在多道程序的环境下,利用多道程序中的一道或两道程序来模拟外围控制机,从而在联机的条件下实现脱机I/0的功能。应了解SPOOLing系统由哪几部分组成,并注意对假脱机和脱机两种I/0技术加以比较。
(3)如何共享打印机:应了解在SPOOLing系统中,当用户申请打印机时,系统将如何为之服务,并可以通过这个例子来说明为什么SPOOLing技术可加快I/0的速度,为什么它可以把一台独占的设备变换成可供多个进程共享的虚拟设备。
5.设备处理必须清楚地了解下述内容:
(1)设备驱动程序:应了解为了完成任务,设备驱动程序应具备哪些功能。
(2)I/0中断处理程序:应了解这些结束处理通常应包含哪些工作。
(3)设备处理的过程:应了解CPU是如何响应I/0中断的,以及一次完整的I/O操作是如何在设备驱动程序和I/0中断的配合下完成的。
6.磁盘调度当有多个进程要求访问磁盘时,系统根据某种算法决定先为哪个请求服务的过程称为磁盘调度,它的目标是使各进程对磁盘的访问时间最小。应对下述问题有较好的理解:
(1)对移动头磁盘,磁盘访问时间应由哪几部分组成,各部分又分别是如何进行计算的,它可使我们自然地理解,为什么磁盘调度的主要目标是优化平均寻道时间。
(2)FCFS、SSTF、SCAN、CSCAN、N-Step-SCAN以及FSCAN等算法分别是如何进行磁盘调度的,以及在这些调度算法的演变过程中,分别解决了哪些问题。
7.磁盘高速缓存和廉价磁盘冗余阵列队磁盘是现代计算机系统中主要的文件存储设备,它的性能好坏将直接影响到整个计算机系统的性能。而磁盘高速缓存是提高磁盘I/0速度最常用的技术,磁盘冗余阵列队不仅能有效地提高磁盘I/0的速度,还能很好地改善磁盘系统的可靠性。
(1)磁盘高速缓存:磁盘高速缓存是开辟在内存中,专门用来暂存一系列磁盘块信息的缓冲区。应了解采用磁盘高速缓存后系统应如何访问磁盘,其磁盘I/O的速度提高了多少,当磁盘高速缓存己满时应如何进行磁盘块的置换,为保证磁盘块中数据的一致性应采取哪些措施。
(2)廉价磁盘冗余阵列RAID:应了解RAID是通过什么技术来提高磁盘I/0的速度,又是通过什么技术来改善磁盘系统的可靠性的,RAID可以分为哪儿级,它带来了哪些好处。
6.3典型问题分析和解答
1.什么是设备?按使用特性,设备可以分为哪几类?
答:设备是计算机系统中除中央处理机、主存和系统控制台以外的所有设备,也称为外部设备或I/0设备。设备按使用特性可以分为存储设备、输入/输出设备、终端设备和脱机设备。
2.数据传送控制方式有哪兀种?试比较它们各自的优缺点。
答:数据传送控制方式有程序直接控制方式、中断控制方式、DMA方式和通道方式4种。
程序直接控制方式就是由用户进程来直接控制内存或CPU和外围设备之间的数据传送。它的优点是控制简单,也不需要多少硬件支持。它的缺点是:CPU和外围设备只能串行工作,设备之间只能串行工作,无法发现和处理由于设备或其他硬件所产生的错误。
中断控制方式是利用向CPU发送中断的方式控制外围设备和CPU之间的数据传送。它的优点是大大提高了CPU的利用率且能支持多道程序和设备的并行操作。它的缺点是:由于数据缓冲寄存器比较小,如果中断次数较多,仍然占用了大量CPU时间在外围设备较多时,由于中断次数的急剧增加,可能造成CPU无法响应中断而出现中断丢失的现象如果外围设备速度比较快,可能会出现CPU来不及从数据缓冲寄存器中取走数据而丢失数据的情况。
DMA方式是在外围设备和内存之间开辟直接的数据交换通路进行数据传送。它的优点是除了在数据块传送开始时需要CPU的启动指令,在整个数据块传送结束时需要发中断通知CPU进行中断处理之外,不需要CPU的频繁干涉。它的缺点是在外围设备越来越多的情况下,多个DMA控制器的同时使用,会引起内存地址的冲突并使得控制过程进一步复杂化。
通道方式是使用通道来控制内存或CPU和外围设备之间的数据传送。通道是一个独立与CPU的专管输入/输出控制的机构,它控制设备与内存直接进行数据交换。它有自己的通道指令,这些指令受CPU启动,并在操作结束时向CPU发中断信号。该方式的优点是进一步减轻T CPU的工作负担,增加了计算机系统的并行工作程度。缺点是增加了额外的硬件,造价昂贵。
3.请说明什么是中断,并给出CPIJ响应中断并进行中断处理的一般过程。
答:中断是指计算机在执行期间,系统内部或外部设备发生了某-急需处理的事件,使得CPU暂时停止当前正在执行的程序而转去执行相应的事件处理程序,待处理完毕后又返回原来被中断处,继续执行被中断的过程。
CPU响应中断并进行中断处理的一般过程如下:
(1)保存现场。CPU 收到中断信号后,通常由硬件自动将处理机状态字PSW和程序计数器PC中的内容保存到中断保留区(栈)中。
(2)转中断处理程序进行中断处理。由硬件分析中断的原因,从相应的中断向量中获得中断处理程序的入口地址,并装入CPU的程序计数器中,从而使处理机转向相应的中断处理程序。
(3)中断返回。中断处理完成后通过中断返回指令,将保存在中断校中的被中断进程的现场信息取出,并装入到相应的寄存器中,从而使处理机返回到被中断程序的断点执行。
4.什么是缓冲?为什么要引入缓冲?
解:缓冲是用来在两种不同速度的设备之间传输信息时平滑传输过程的常用手段。除在关键的地方采用少量硬件缓冲器之外,大都采用软件缓冲。软件缓冲区是指在I/O操期间用来临时存放输入/输出数据的一块存储区域。在操作系统中,引入缓冲的主要原因归结为以下几点:
(1)缓和CPU与l/O设备间速度不匹配的矛盾:一般情况下,程序的运行过程是时而进行计算,时而进行输入或输出。以输出为例,如果没有缓冲,则程序在输出时,必然由于打印机的速度跟不上而使CPU停下来等待;然而在计算阶段,打印机又无事可做。如果设置一个缓冲区,程序可以将待输出的数据先输出到缓冲区中,然后继续执行;而打印机则可以从缓冲区取出数据慢慢打印。
(2)减少中断CPU的次数:例如,假定从系统外传来的数据只用一位二遏制位来接收,则每收到一位二进制数就要中断CPU一次,如果数据通信速率为9.6kb/s,则中断CPU的频率也为9.6KHz,即每100μs就要中断CPU一次,若设置一个具有8位的缓冲寄存器,则可使CPU被中断的次数降低为前者的1/8。
5.为什么要引入设备独立性?如何实现设备独立性?
答:引入设备独立性,可使应用程序独立于具体的物理设备。此时,用户用逻辑设备名来申请使用某类物理设备。当系统中有多台该类型的设备时,系统可将其中的任一台分配给请求进程,而不必局限芳某一台指定的设备。这样,可显著地改善资源的利用率及可适应性。
独立性还可以使用户程序独立T设备的类型。如进行输出时,既可用显示终端,也可以用打印机。有了这种j适应性,就可以很方便地进行输入输出重定向。
为了实现设备独立性,在应用程序中应使用逻辑设备名称来请求使用某类设备;系统中必须设置一张逻辑设备表L盯用来进行逻辑设备到物理设备的映射,其中每个表目中包含了逻辑设备名、物理设各名和设备驱动程序入口地址三项$当应用程序用逻辑设备名请求分配I/0设备时,系统必须为它分配相应的物理设备,并在LUT中建立一个表目,以后进程利用该逻辑设备名请求I/0操作时,便可从LUT中得到物理设备名和驱动程序入口地址。
6.什么是虚拟设备?为什么在操作系统中引入虚拟设备?
解:虚拟设备是指通过虚拟技术将一台独占设备变换为若干台逻辑设备,供若干个用户进程同时使用,通常把这种经过虚拟技术处理后的设备称为虚拟设备。
在操作系统设备管理中,引入虚拟设备是为了克服独占设备速度较慢、降低设备资源利用率的缺点,从而提高设备的利用率。
7.试述SPOOLING 系统统的工作原理。
答:在SPOOLING系统中,多台外围设备通过通道或DMA器件和主机与外存连接起来,作业的输入输出过程由主机中的操作系统控制。操作系统中的输入程序包含两个独立的过程,一个过程负责从外部设备把信J息读入缓冲区,另一个过程是写过程,负责把缓冲区中的信息送入到外存输入井中。
在系统输入模块收到作业输入请求后,输入管理模块中的读过程负责将信息从输入装置读入缓冲区。当缓冲区满时,由写过程将信息从缓冲区写到外存输入井中。读过程和写过程反复循环,直到一个作业输入完毕。当读过程读到一个硬件结束标志后,系统再次驱动写过程把最后一批信息写入外存并调用中断处理程序结束该次输入。然后,系统为该作业建立作业控制块JCB,从而使输入井中的作业海λ作业等待队列,等待作业调度程序选中后进入内存。
8.SPOOLing系统由哪几部分组成?以打印机为例说明如何利用SPOOLing技术实现多个进程对打印机的共享。
答:SPOOLing系统由磁盘上的输入井和输出井,内存中的输入缓冲区和输出缓冲区以及输入进程和输出进程构成。
在用SPOOLing技术共享打印机时,对所有提出输出请求的用户进程,系统接受它们的请求时,并不真正把打印机分配给它们,而是为每个进程做两件事情:
(1)由输出进程在输出井中为它申请一空闲缓冲区,并将要打印的数据送入其中。
(2)输出进程再为用户进程申请一张空白的用户打印请求表,并将用户的打印请求填入表中,再将该表挂到打印队列上。
至此,用户进程觉得它的打印过程已经完成,而不必等待真正的慢速的打印过程的完成。当打印机空闲时,输出进程将从请求队列队首取出一张打印请求表,根据表中的要求将要打印的数据从输出井传送到内存输出缓冲区,再由打印机进行输.出打印。打印完后,再处理打印队列中的下一个打印请求表,直至打印队列空。这样,且然系统中只有?台打印机,但系统并未将它分配给任何进程,而只是为每个提出打印请求的进程在输出井中分配一个存储区(相当于一个逻辑设各),使每个用户进程都觉得自己在独占一台打印机,从而实现了对打印机的共享。
9.设备驱动程序是什么?为什么要有设备驱动程序?用户进程怎样使用驱动程序?
答:设备驱动程序是驱动外部物理设备和相应DMA控制器或I/0控制器等器件,使之可以直接和内存进行I/0操作的子程序的集合。它们负责设置相应设备有关寄存器的值,启动设备进行I/0操作,指定操作的类型和数据流向等。
设备驱动程序屏蔽了直接对硬件操作的细节,为编程者提供操纵设备的友好接口。
用户进程通过调用设备驱动程序提供的接口来使用设备驱动程序。
10.假设磁盘有200个磁道,磁盘请求队列中是一些随机请求,它们按照到达的次序分别处于55、58、39、18、90、160、150、38、184号磁道上,当前磁头在100号磁道上,并向磁道号增加的方向上移动。请给出按FCFS、SSTF、SCAN及CSCAN算法进行磁盘调度时满足请求的次序,并计算出它们的平均寻道长度。
分析:FCFS算法按进程请求访问磁盘的先后次序进行服务;SSTF算法优先为距离当前磁头所在磁道最近的请求进行服务;SCAN算法则优先为在磁头当前移动方向上、与当前磁头所在磁道最近的请求进行服务;CSAN算法类似于SCAN算法,但它规定磁头只能作单向移动。
答:磁盘调度的次序以及它们的平均寻、道长度如表6.1所示。
表6.1磁盘调度的次序以及平均寻道时间
FCFS
SSTF
SCAN
CSCAN
被访问的下一个磁道号
移动的磁道数
被访问的下一个磁道号
移动的磁道数
被访问的下一个磁道号
移动的磁道数
被访问的下一个磁道号
移动的磁道数
55
45
90
10
150
50
150
50
58
3
58
32
160
10
160
10
39
19
55
3
184
24
184
24
18
21
39
16
90
94
18
166
90
72
38
1
58
32
38
20
160
70
18
20
55
3
39
1
150
10
150
132
39
16
55
16
38
112
160
10
38
1
58
3
184
146
184
24
18
20
90
32
平均寻道长度:55.3
平均寻道长度:27.6
平均寻道长度:27.8
平均寻道长度:35.8
11.假定一磁盘有200个柱面,编号为0—199,当前存取臂的位置在80号柱面上,并刚刚访问了75号柱面的服务请求。若有请求序列为:162,45,195,186,91,59,32,106。试问:用电梯调度算法,为完成上述请求,存取臂移动是多少?并写出存取臂的移动顺序。
答:磁盘调度的原则是先移臂调度,再旋转调度。
(1)移动总量=(195-80)+(195-32)= 278。
(2)存取臂的移动顺序为:91,106,162,186,195,59,45,32。
12.有5个记录A、B、C、D、E,存放在某磁盘的某磁道上;假定这个磁道划分成5块,每块存放一个记录,安排如下表所示。
块号
1
2
3
4
5
记录号
A
B
C
D
E
现在要顺序处理这5个记录,如果盘旋转一周需2Oms,处理程序每读出一个记录后要花6ms进行处理。
试问,(1)处理完这5个记录所需的总时间是多少?
(2)为减少磁盘旋转的周数,应如何安排这5个记录,并计算所需的总时间。
答:这是一个盘旋转调度问题。
(1)所需的总时间=2Oms×5+6ms=106ms。因为每转过一个记录需20ms/5=4ms,每读出一个记录后需要6ms的处理时间,等处理完再读下一个记录时,只能等到下一周。所以每旋一周读出一个记录,当读出第5个记录时,第5周刚好转完,因此,需要另外加6ms。
(2)为减少磁盘旋转的周数,将记录安排改进为:块号1、2、3、4、5分别存放记录A、
C、E、B、D。
改进后所需总时间=2Oms×3=6Oms。
13.试给出两种I/0调度算法,并说明为什么在I/0调度中不能采用时间片轮转法。
答:I/O调度程序通常采用如下两种调度算法:
①先来先服务;②优先级高者优先。I/0调度程序不能采用时间片轮转法,其原因是I/0操作有一特点:通道程序一经启动就一直运行下去,直至完成。在它完成之前不会被中断,即通道程序不接受从CPU来的中断。
14.假定磁盘的存取臂当前处于8号柱面上,有如下6个请求者等待访问磁盘,试列出最省时间的响应顺序:
序号
柱面号
磁道号
块号
(1)
9
6
3
(2)
7
5
6
(3)
15
20
6
(4)
9
4
4
(5)
20
9
5
(6)
7
15
2
答:最省时间的响应顺序是:(6),(2),(4),(1),(3),(5)。
15.假定一磁盘有200个柱面,编号为0~199,当前存取臂的位置在143号柱面上,并刚刚完成了125号柱面的服务请求,如果存在以下的请求序列:
86,147,91,177,94,150,102,175,130
试问:为完成上述请求,下列算法存取臂移动的总量是多少?并写出存取臂移动的顺序。
①先来先服务(FCFS)
②最短查找时间优先(SSTF)
③双向扫描(SCAN)
④电梯调度
⑤单向扫描答:下面分别给出了五种算法存取臂移动的顺序:
(1)先来先服务算法时的顺序:86,147,91,177,94,150,102,175,130。
移动量,565。
(2)最短查找时间优先算法时的顺序:147,150,130,102,94,91,86,175,177。
移动量:162。
(3)双向扫描算法时的顺序:147,150,175,177,130,102,94,91,86。
移动量:225。
(4)电梯调度算法时的顺序:147,150,175,177,130,102,94,91,86。
移动量:125。
(5)单向扫描算法时的顺序:147,150,175,177,86,91,94,102,130。
移动量:186(不包括快速返回的移动量〉。
16.旋转型存储设备上信息的优化分布能减少输入输出服务的总时间。例如,有10个记录A,B,…,J存放在某磁盘的一磁道上,假定这个磁道划分为10块,每块存放一个记录,安排如下表所示。
块 号
1
2
3
4
5
6
7
8
9
10
记录号
A
B
C
D
E
F
G
H
I
J
现在要顺序处理这些记录,如果磁盘旋转速度为mms转一周,处理程序每读出一个记录后花4ms进行处理。试问:处理完这10个记录的总时间是多少?为了缩短处理的总时间应进 行优化分布,试问:应如何安排这些记录?并计算优化后的处理总时间。
答:由题意,磁盘旋转一周为2Oms,读取一个记录的时间为:2Oms/10=2ms,处理一个记录的时间为4ms。
处理完记录A并到达记录B的起始位置所需的时间为:2ms+2Oms=22ms。
处理完记录B并到达记录C的起始位置所需的时间为:2ms+2Oms=22ms。
....
处理完记录J所需时间为:2ms+4ms=6ms。
综上,处理完这10个记录的总时间为:22ms×9+6=204ms。
为了缩短处理时间应进行优化分布,即安排成如下表所示。
块 号
1
2
3
4
5
6
7
8
9
10
记录号
A
H
E
B
I
F
C
J
G
D
在这种安排下,
处理完记录A的时间为6ms。
处理完记录B的时间为6ms。
.....
处理完记录J的时间为6ms。
综上,处理完这10个记录的时间为60ms。
17.假定有一个具有200个磁道(编号为0~199)的移动头磁盘,在完成了磁道125的请求后,当前正在磁道143处为一个请求服务,若请求队列以FIF0次序存放:
86,147,91,177,94,150,102,175,130.
对下列每一个磁盘调度算法,若要满足这些请求,则总的磁头移动次数是多少?
(1)FCFS
(2)SSTF
(3)SCAN
(4)LOOK
(5)C-SCAN
解:各种调度算法的寻道次序如表5.1所示.
表5.1
次序
FCFS
SSTF
SCAN
LOOK
S-SCAN
1
143
143
143
143
143
2
86
127
147
147
147
3
147
150
150
150
150
4
91
130
175
175
175
5
177
102
177
177
199
6
94
94
199
130
0
7
150
91
130
102
86
8
102
86
102
94
91
9
175
175
94
91
94
10
130
177
91
86
102
11
86
130
计算可得各算法的磁头移动次数如下.
(1)FCFS:565.
(2)SSTFz162.
(3)SCAN:169.
(4)LOOK:125.
(5)C-SCAN:386.
18.假定有一台可动头的磁鼓设备。磁头可读/写数据的位置有3个(道0,1,2).每道有8个记录(O—7),磁鼓转一周需8ms,在8ms中磁头也可在相邻道之间运动,如图5.2所示.
假设处理这台磁鼓的程序接受下面的读地址表(见图5—2):

(1)按给定的次序(FCFS)执行以上的I/O请求将占多少时间?设开始时磁头在位置(0,0)。
(2)为这些请求服务的最佳次序是什么?
解(1)由于磁鼓是单向旋转,所以磁头在读取记录号为N的记录后需旋转一周方可读/写另一道上的N号记录,因此,按照给定次序执行I/0请求所需时间为:
(2+8+1+2+7+7)ms=27ms
(2)显然,请求服务的最佳次序应使磁鼓每旋转一周后都能响应尽可能多的服务请求,按照扇区排队的方法可得出最佳次序为:
(0,2),(1,3),(1,5),1,2),(2,3),(2,4)
6.4习题
6.4.1 基本题一.判断题(正确的在括号中记√,错误的记×)
1.磁盘比磁鼓更适合用作分页设备。 ( )
2.当平均队列较小时,所有磁盘调度算法都退化为FCFS算法。 ( )
3.与CPU相比,通道处理I/O的功能较强,但价格较高。 ( )
4.在SPOOLing系统中,对用户进程的设备申请,系统将物理字符设备按时间片方式分配给用户进程使用。 ( )
5.磁盘是共享设备,所以每一时刻可有若干个进程同时与它交换信息。 ( )
6.一个盘块的物理地址由三个参数唯一确定的,它们是柱面号、盘面号和扇区号。 ( )
7.公用缓冲区方式通常采用缓冲池。 ( )
8.扇区排队算法只能用于固定头设备。 ( )
9.设备独立性是指系统具有使用不同设备的能力。 ( )
10.移臂调度的目标是使磁盘旋转周数最小。 ( )
二.选择题
1.从资源分配角度看,外设可分为若干种,其中不包括_________。
A.虚拟设备 B.物理设备 C.独占设备 D.共享设备
2.在一般大型计算机系统中,主机对外围设备的控制可通过通道、控制器和设备三个层次来实现。下述的叙述中正确的叙述是___________。
A.控制器可控制通道,设备在通道控制下工作。
B.通道控制控制器,设备在控制器控制下工作。
C.通道和控制器分别控制设备。
D.控制器控制通道和设备的工作。
3.引入缓冲的主要目的是________________。
A.改善CPU和I/O设备之间速度不匹配的情况 B.节省内存
C.提高CPU的利用率 D.提高I/O设备的效率
4.下面关于设备属性的论述中,正确的论述是________。
A.字符设备的一个基本特征是可寻址的,即能指定输入时的源地址和输出时的目标地址。
B.共享设备必须是可寻址的和随机访问的设备。
C.共享设备是指在同一时刻允许多个进程同时访问的设备。
D.在分配共享设备和独占设备时,都可能引起进程死锁。
5.在I/O设备控制的发展过程中,最主要的推动因素是__________。
A.提高资源利用率 B.减少主机对I/0控制的干预
C.提高CPU与I/O设备的并行操作程度。 D.提高系统吞吐量
6.大多数低速设备都属于_________设备。
A.独占 B.共享 C.虚拟 D.Spool
7.提高I/O速度和设备利用率,在操作系统中主要依靠______功能。
A.缓冲管理 B.设备管理 C.设备独立性 D.虚拟设备
8.缓冲技术中的缓冲池在__________中。
A.主存 B.外存 C.ROM D.寄存器
9.磁盘属于块设备,其信息的存取是以固定长数据块为单位的;磁盘的I/O控制主要采取_______方式。
A.程序I/O方式 B.程序中断 C.DMA D.SPOOLing
10.为了使多个进程能有效地同时处理输入和输出,最好使用________结构的缓冲技术。
A.缓冲池 B.闭缓冲区环 C.单缓冲区 D.双缓冲区
11.通道是一种_____________.
A.I/0端口 B.数据通道 C.I/O专用处理器 D.软件工具
12.CPU输出数据的速度远远高于打印机的打印速度,为了解决这一矛盾,可采用_______。
A.并行技术 B.通道技术 C.缓冲技术 D.虚存技术
13.操作系统中采用缓冲技术的目的是为了增强系统______的能力;为了使多个进程能有效地同时处理输入和输出,最好使用缓冲池。
A.串行操作 B.并行操作 C.控制操作 D.中断操作
14.如果I/O设备与存储设备进行数据交换不经过CPU来完成,这种数据交换方式是____。
A.程序查询 B.中断方式 C.DMA方式 D.无条件存取方式
15.下面关于设备独立性的论述中,正确的论述是__________。
A.设备独立性是指I/O设备具有独立执行I/O功能的一种特性
B.设备独立性是指用户程序独立于具体使用的物理设备的一种特性
C.设备独立性是指能独立实现设备共享的一种特性
D.设备独立性是指设备驱动程序独立于具体使用的物理设备的一种特性
16.中断发生后,应保留_________。
A.缓冲区指针 B.关键寄存器内容 C.被中断的程序 D.页表
17.下面关于虚拟设备的论述中,正确的论述是_________。
A.虚拟设备是指允许用户使用比系统中具有的物理设备更多的设备
B.虚拟设备是指允许用户以标准方式来使用物理设备
C.虚拟设备是指把一个物理设备变换成多个对应的逻辑设备
D.虚拟设备是指允许用户程序不必全部装入内存就可使用系统中的设备
18.通过硬件和软件的功能扩充,把原来独立的设备改造成能为若干用户共亭的设备,这种设备称为_______。
A.存储设备 B.系统设备 C.用户设备 D.虚拟设备
19..中断向量是指_______。
A.中断处理程序入口地址 B.中断向量表起始地址
C.中断处理程序入口地址在中断矢量表中的存放地址 D.中断断点的地址
20.如果有多个中断同时发生,系统将根据中断优先级响应优先级最高的中断请求。若要调整中断事件的响应次序,可以利用_________。
A.中断向量 B.中断嵌套 C.中断响应 D.中断屏蔽
21.设备管理程序对设备的管理是借助一些数据结构来进行的,下面的____不属于设备管理数据结构。
A.JCB B.DCT C.COCT D.CHCT
22._____________是直接存取的存储设备。
A.磁盘 B.磁带 C打印机 D键盘显示终端
23.以下叙述中正确的为________。
A.在现代计算机中,只有I/O设备才是有效的中断源
B.在中断处理过程中必须屏蔽中断
C.同一用户所使用的I/O设备也可能并行工作
D.SPOOLING是脱机I/O系统
24.______是操作系统中采用的以空间换取时间的技术。
A.SPOOLING技术 B.虚拟存储技术 C.覆盖与交换技术 D.通道技术
25.操作系统中的SPOOLING技术,实质是将_______转化为共享设备的技术。
A.虚拟设备 B.独占设备 C.脱机设备 D.块设备
26.SPOOLING系统提高了________利用率。
A.独占设备 B.共享设备 C.文件 D.主存储器
27.在操作系统中,_________指的是一种硬件机制。
A.通道技术 B.缓冲池 C.SPOOLING技术 D.内存覆盖技术
28.在操作系统中,用户在使用I/O设备时,通常采用_______。
A.物理设备名 B.逻辑设备名 C.虚拟设备名 D.设备牌号
29.采用假脱机技术,将磁盘的一部分作为公共缓冲区以代替打印机,用户对打印机的操作实际上是对磁盘的存储操作,用以代替打印机的部分是________。
A.独占设备 B.共享设备 C.虚拟设备 D.一般物理设备
30.________算法是设备分配常用的一种算法。
A.短作业优先 B.最佳适应 C.先来先服务 D.首次适应三.填空题
1.计算机设备按照工作特性可分为_______和_____两类.其中,前者又叫______、后者又叫_____。
2.通过硬件和软件的功能扩充,把独占设备改造成若干用户可共享的设备,这种设备称为___________。
3.通道按信息交换的方式可分为_______、________和________三种方式.
4.从资源管理(分配)的角度出发,I/0设备可分为________、_______和________三种类型。
5.总线结构中通常采用的I/O方式有________和_________两种。其中,前者又叫______,后者又叫______。
6.设备分配应保证设备有__________和___________。
7.I/0系统大致分为三个层次:底层的______、中层的______和高层的_____。
8.常用的I/O控制方式有程序直接控制方式、中断控制方式、_________和___________。
9.管理和分配设备常用的技术有______、______和________三种.
10.打印机是__________设备,磁带是顺序存取的设备,它最适合的存取方法是__________,磁盘是一种______存取设备,磁盘在转动时经过读/写磁头所形成的圆形轨迹称为_____。
11.设备分配中的安全性是指__________。
12.缓冲区的组织方式分为_______、_________和__________.
13.设备管理中采用的数据结构有________、_________、________、__________等四种。
14.完成一个磁盘服务请求的总时间由_______、_______和__________组成.
15.SCAN算法在实现时通常改进为磁头在当前方向上无请求时便反向,此时该算法称为________算法.
16.为实现设备分配,应为每个设备设置一张_______,在系统中配置一张_________;为实现设备独立性,系统中应设置一张__________。
17.SPOOLing是对脱机I/0工作方式的模拟,SPOOLing系统中的输入井是对脱机输入中的______进行模拟,输出井是对脱机输出中的________进行模拟,输入进程是对脱机输入中的_________进行模拟,输出进程是对脱机输出中的_________进行模拟。
18.下列磁盘调度算法中,平均寻道时间较短,但容易产生饥饿现象的是__________;电梯调度算法是指__________;能避免磁臂粘着现象的算法是________。
19.磁盘高速缓冲设在__________中,其主要目的是________________。
20.通道是一个独立于________的专管_______,它控制_________与内存之间的信息交换。
答:①CPU ②输入/输出的处理机 ③外设或外存
21.虚拟设备是通过________技术把__________设备变成能为若干用户_______的设备。
22.实现SPOOLING系统时,必须在磁盘上开辟出称为______和_________的专门区域以存放作业信息和作业执行结果。
四.简答题
1.设备管理的目标和功能是什么?
2.设备独立性的优点有哪些?
3.什么是中断?什么叫中断处理?什么叫中断响应?
4.什么是I/O控制?它的主要任务是什么?
5.什么是陷阱?什么是软中断?试述中断、陷阱和软中断之间异同。
6.实现SPOOLing技术系统需付出哪些代价?
7.通道、控制器和设备一般采用交叉连接方式,这样处理的原因是什么?
8.系统采用通道方式后,输入输出过程如何处理?
9.I/0软件设计的目标是什么?
10.缓冲技术的作用是什么?缓冲区按组织方式可分为几种?
11.I/O控制可用哪儿种方式实现?各有什么优缺点?
12.假脱机系统的基本工作原理是什么?
13.简述中断处理过程。
14,当平均队列长度较小时,所有的磁盘调度算法都退化为FCFS调度算法,请说明原因。
15.为什么磁盘调度中通常没使用等待时间(latency)优化技术?
16.SSTF算法比较有利于中间柱面的磁道,说明这是为什么?
6.4.2 解析题一.
1.试说明I/O控制发展的主要推动因素。
2.描述中断控制时的CPU动作过程。
3.请说明中断驱动I/O方式和DMA方式有什么不同。
4.以打印机为例说明SPOOLing的工作原理,系统如何利用SPOOLing技术将打印机模拟为虚拟打印机?
5.什么是缓冲?为什么要引入缓冲区?
6.简述设备分配的过程。
7.设备处理程序具有哪些功能?
8.有几种I/0控制方式?各有何特点?
9.DMA方式与通道方式有什么不同?
10什么是虚拟设备?实现虚拟设备的关键技术是什么?
11.什么是缓冲池?设计一个数据结构来管理缓冲池。
12.通过"再紧缩"信息可消除存储设备上的碎片,但磁盘和磁鼓一般没有定位或基址寄存器,那么怎样才能对文件进行重定位呢?为什么通常要避免对文件的再紧缩和重定位?
13.除FCFS外的所有磁盘调度算法都不是真正公平的(例如,会出现饥饿现象).
(1)说明为什么?
(2)提出一个确保公平性的方案.
(3)为什么公平性在分时系统中是一个很重要的指标?
二.
1.在某计算机系统中,其屏幕显示分辨率为640×480,若要存储一屏256彩色的图像,需要多少字节存储空间?
2.在某计算机系统中,时钟中断处理程序每次执行的时间为2ms(包括进程切换开销)。若时钟中断频率为6OHz,试问CPU用于时钟中断处理的时间比率为多少?
3.在某系统中,从磁盘将一块数据输入到缓冲区需要花费的时间为T,CPU对一块数据进行处理的时间为C,将缓冲区的数据传送到用户区所花时间为M,那么在单缓冲和双缓冲情况下,系统处理大量数据时,一块数据的处理时间为多少?
4.假定磁盘转速为2Oms/圈,磁盘格式化时每个磁道被划分成10个扇区,今有10个逻辑记录(每个记录的大小刚好与扇区大小相等)存放在同一磁道上,处理程序每次从磁盘读出一个记录后要花4ms进行处理,现要求顺序处理这10个记录,若磁头现在正处于首个逻辑记录的始点位置。请问:
(1)按逆时针方向安排10个逻辑记录(磁盘顺时针方向转),处理程序处理完这10个记录所花费的时间是多少?
(2)按最优化分布重新安排这10个逻辑记录,写出记录的安排,并计算出所需要处理的时间。
5.假定请求是均匀分布的,试比较C-SCAN和SCAN的吞吐量。
6.假定一个磁盘有200个柱面,编号为0-199;当前存取臂的位置在143号柱面上,并刚刚完成了130号柱面的服务请求,如果请求队列的先后次序是86,147,91,177,94,150,102,175,130。试问:完成了上述请求分别采用FCFS,SS霄,SCAN,电梯调度算法,存取臂移动的总量各是多少?并分别写出存取臂的移动顺序。
34.有5个记录A,B,c,D,E,存放在某盘的某一个磁道上,假定这个磁道被划分成5块,按顺序存放一个记录,即记录号1,2,3,4,5,分别存放记录A,B,c,D,E。现在要顺序处理这5个记录,如果盘旋转速度为2Oms转1周,处理程序每读出一个记录后要花4ms进行处理,试问:
(1)处理完这5个记录所需的总时间是多少?
(2)为了减少盘旋转的周数应如何安排这5个记录,并计算其总时间。
6.4自测练习答案一.判断题:
1.× 2,√ 3.× 4.× 5.× 6,√ 7,√ 8.× 9.× 10.×
二.单项选择:
1.B 2.B 3.A 4.B 5.C 6.A 7.B 8.A 9.C 10.A
11.C 12.C 13.B 14.C 15.B 16.B 17.C 18.D 19.A 20.D
21.A 22.A 23.C 24.A 25.B 26.A 27.A 28,B 29.C 30.C
三.填空题
1.存储设备 I/O设备 块设备 字符设备
2,虚拟设备
3.字节多路通道 选择通道 成组多路通道
4.独享 共享 虚拟
5.中断处理方式 DMA方式 字符传输方式 块传输方式
6.高的利用率 死锁问题
7.I/0中断管理程序 设备驱动程序 服务软件
8,DMA方式 通道控制方式
9.独占 共享 虚拟
10,独占 顺序存取 直接 磁道
11.单缓冲区 多缓冲区 缓冲池
12.设备分配中应保证不会引起进程死锁
13.系统设备表 设备控制表 控制器控制表 通道控制表
14.查找时间 等待时间 传输时间
15.Look算法
16.设备控制表 系统设备表 逻辑设备表
17.磁盘 磁盘 外围控制机 外围控制机
18.SSTF SCAN FSCAN
19.内存 提高磁盘I/0的速度
20.CPU 输入/输出的处理机 外设或外存
21.SPOOLING 独享 共享
22,输入井 输出井四.简答题
1.答:设备管理的目标是:选择和分配输入/输出设备以便进行数据传输操作;控制输入/输出设备和CPU〈或内存〉之间交换数据;为用户提供一个友好的透明接口;提高设备和设备之间、CPU和设备之间,以及进程和进程之间的并行操作,以使操作系统获得最佳效率。
设备管理的功能是:提供和进程管理系统的接口s进行设备分配p实现设备和设备、设备和CPU等之间的并行操作进行缓冲区管理。
2.设备独立性具有如下两个优点:
(1)提高设备资源利用率。假设申请者指定具体设备,而被指定的设备可能正被占用,因而无法得到,而其它同类设备可能空闲,造成资源浪费以及进程不必要的等待;利用设备独立性即可解决这类问题。
(2)用户程序不必因指定设备状态改变而修改程序。
3.答:中断是指计算机在执行期间,系统内发生任何非寻常的或非预期的急需处理事件,使得CPU暂时中断当前正在执行的程序而转去执行相应的事件处理程序,待处理完毕后又返回原来被中断处继续执行的过程。
CPU转去执行相应的事件处理程序的过程称为中断处理。
CPU收到中断请求后转到相应的事件处理程序称为中断响应。
4.答:I/0控制是指从用户进程的输入/输出请求开始,给用户进程分配设备和启动有关设备进行I/0操作,并在I/0操作完成之后响应中断,直至善后处理为止的整个系统控制过程。
5.答:陷阱指处理机和内存内部产生的中断,它包括程序运算引起的各种错误,如地址非法、校验错、页面失效。存取访问控制错、从用户态到核心态的切换等都是陷阱的例子。软中断是通信进程之间用来模拟硬中断的一种信号通信方式。
6.答:(1)占用大量内存作为外设间传送用的缓冲区,系统所用的表格页占用不少内存空间;
(2)占用大量磁盘空间用作输入和输出;
(3)增加了系统的复杂性。
7,答:通道、控制器和设备采用交叉连接方式的原因是:
可以提高系统的可靠性z当某条通路因控制器或通道故障而断开时,可使用其它通路。
(2)可以提高设备的并行性z对于同一个设备,当与它相连的某一条通路中的控制器或通道被占用时,可以选择另一条空闲通路,减少了设备因等待通路所需要花费的时间。
8.答:CPU在执行用户程序时遇到I/O请求,则可以根据用户的I/0请求生成通道程序(通道程序也可能是事先编制好的),放到内存中,并把该通道程序首地址放入CAW中。然后,CPU执行"启动I/O"指令,启动通道工作。通道接收"启动I/O"指令信号,从CAW中取出通道程序首地址,并根据此地址取出通道程序的第一条指令,放入CCA中;同时向CPU发回答信号,通知"启动I/O"指令执行完毕,CPU可继续执行,而通道开始执行通道程序,进行物理I/0操作。执行完一条指令,如果还有下一条指令则继续执行,否则表示传输完成,同时自行停止,CPU转去处理通道结束事件,并从CSW中得到有关通道状态。
9.答:I/0软件设计的目标是:
(1)与设备无关性;
(2)错误处理;
(3) 同步/异步传输;
(4)能处理独占设备和共享设备的I/O操作。为了实现这4个目标,I/O系统组成4个层次:
(1)中断处理程序(2)设备驱动程序(3)与设备无关的I/0软件(4)用户空间的I/O软件。
10.答:缓冲技术的基本思想是在CPU和外设之间设立缓冲区,其作用是用于暂存CPU和外设之间交换的数据,从而缓和CPU与外设速度不匹配所产生的矛盾。缓冲区按组织方式分为单缓冲、双缓冲和缓冲池。
11.答:I/0控制过程可用三种方式实现:作为请求I/O操作的进程实现;作为当前进程的一部分实现;由专门的系统进程一-I/0进程完成。
第一种方式请求对应I/0操作的进程能很快占据处理机,但要求系统和I/0操作的进程应具有良好的实时性。第二种方式不要求系统具有高的实时性,但I/0控制过程要由当前进程负责。第三种方式增加了一个额外的进程开销,但用户不用关心I/0控制过程。
12.答:假脱机技术主要由输入程序模块和输出程序模块所组成,系统分别为之创建输入进程和输出进程,它们的优先级高于一般用户进程。输入进程负责通过通道将信息从输入设备送到盘区的输入井中,输出进程负责通过通道将信息从盘区的输出井送到输出设备。主机仅和快速存储设备磁盘中的输入井和输出井交换信息,大大提高了信息处理的速率。
13.答:一旦CPU响应中断,系统就开始进行中断处理。中断处理过程如下:
(1)保护被中断进程现场。为了在中断处理结束后能使进程正确地返回到中断点,系统必须保存当前处理机状态字PSW和程序计数器PC等的值。
(2)分析中断原因,转去执行相应的中断处理程序。在多个中断请求同时发生时,处理优先级最高的中断源发出的中断请求。
(3)恢复被中断进程的现场,CPU继续执行原来被中断的进程。
14.答:当队列长度L为1时,算法FCFS、SSTF、LOOK和C-LOOK功能都是等同的.当L为2时,通过把FCFS和SSTF、LOOK和C-LOOK作比较,就会发现它们功能等同的情况大约是50%,而且访问的局部性也可以使调度算法之间差异变得极小。
15.答:这会发生定时问题:进行等待时间定序的程序需要知道在I/0服务时隶属于磁头的扇区数.该信息必须在服务该I/O请求之前尽快给出,以确保准确性。这就需要与外设进行额外的通信,从而浪费了时间,以致失掉了某些收益。
16.答:磁盘的中心是到盘中所有其他磁道的平均距离最短的位置,这样在服务了第一个请求后,磁头将很可能更靠近中心磁道。因此,使用SSTF算法将有更多的机会首先到达中心磁道.
一旦到达某个特定的磁道上,SSTF往往把磁头保持在该磁道附近,这样就可以调整最初的趋势而使磁头向中间移动.
五.解析题
1,答:促使I/0控制不断发展的几个主要因素如下:
(1)力图减少CPU对I/O设备的干预,把CPU从繁杂的I/O控制中解脱出来,以充分发挥CPU数据处理的能力。
(2)缓和CPU的高速性和I/O设备的低速性之间速度不匹配的矛盾,以提高CPU的利用率和系统的吞吐量。
(3)提高CPU和I/O设备操作的并行程度,使CPU和I/0设备都处于忙碌状态,从而提高整个系统的资源利用率和系统吞吐量。
事实上,I/O控制系统由两级(CPU-I/O设备)发展到三级(CPU一控制器-I/O设备),进而发展到四级(CPU-I/O通道一控制器-I/O设备),都是受上述三种因素促进的结果。
2.答:(l)首先,CPU检查响应中断的条件是否满足。如果中断响应条件不满足,则中断处理无法进行。
(2)如果CPU响应中断,则CPU关中断
(3)保存被中断进程现场
(4)分析中断原因,调用中断处理子程序
(5)执行中断处理子程序
(6)退出中断,恢复被中断进程的现场或调度新进程占据处理机
(7)开中断,CPU继续执行
3.答:它们的不同之处主要有:
(1)I/O中断频率。在中断方式中,每当输入数据缓冲寄存器中装满输入数据或将输出数据缓冲寄存器中的数据输出之后,设备控制器便发生一次中断。由于设备控制器中配置的数据缓冲寄存器通常较小,如1个字节或1个字,因此中断比较频繁。而在DMA方式中,在DMA控制器的控制下,一次能完成一批连续数据的传输,并在整批数据传送完后才发生一次中断,因此可大大减少CPU处理I/0中断的时间。
(2)数据的传送方式。在中断方式中,由CPU直接将输出数据写入控制器的数据缓冲寄存器供设备输出,或在中断发生后直接从数据缓冲寄存器中取出输入数据供进程处理,即数据传送必须经过CPU;而在DMA方式中,数据的传输在DMA控制器的控制节直接在内存和I/O设备间进行,CPU只需将数据传输的磁盘地址、内存地址和字节数传给DMA控制器即可。不过,DMA方式仍存在一定局限性。如数据传送的方向、存放数据的内存始址及传送数据的长度等都由CPU控制,并且每台设备需一个DMA控制器,当设备增加时,多个DMA控制器的使用也不经济。
4.答:当某进程要求打印输出时,操作系统并不是把某台实际打印机分配给该进程,而是在磁盘上输出井中为其分配一块区域,该进程的输出数据高速存入输出井的相关区域中,而并不直接在打印机上输出。输出井上的相关区域相当于一台虚拟的打印机,各进程.的打印输出数据都暂时存放在输出井中,形成一个输出队列。最后,由SPOOLing的缓输出程序依次将输出队列中的数据实际地打印输出。
这样,从用户的角度来看,他似乎独占一台打印机,可以随时根据运行的情况输出各种结果;但从系统的角度来看,同一台打印机又可以分时地为每一个用户服务。用户进程实际上获得的是虚拟设备。
SPOOLing系统的引入缓和了CPU与设备的速度的不均匀性,提高了CPU与设备的并行程度。
5.答:缓冲即是使用专用硬件缓冲器或在内存中划出一个区域用来暂时存放输入输出数据的器件。
在设备管理中,引入缓冲区的主要原因有以下几点:
(1)缓和CPU与I/0设备速度不匹配的矛盾。通常,UO设备的速率远远低于CPU的运算速率。如在输出数据时与如果没有缓冲,则必然会由于I/0设备的速度跟不上而使CPU停下来等待;而引入缓冲后,CPU将输出数据写入缓冲后,无需等待输出完成,便能继续执行下面的程序,而同时输出设备可慢慢地进行数据的输出。
(2)减少对CPU的中断频率,放宽CPUJ响应中断的时间。例如,在远程通信系统中,如果从远地终端发来的数据仅用一位缓冲来接收,则必须在每收到一位数据时便中断一次CPU,并在下一位数据到来之前要求CPU 进行中断处理以取走输入数据:若设置一个8位的缓冲,则可每收8位数据中断一次CPU,但在第9位数据到来之前仍必须完成中断处理;若再增设一个8位的缓冲,则可每收8位数据中断一次CPU,并允许CPU在下8位数据到来期间处理前8位数据的中断。
(3)提高CPU和I/0设备之间的并行性。如(1)所述,引入缓冲后CPU和I/O设备可并行地工作,而I/0设备对CPU中断频率的降低,则可进一步提高CPU和I/0设备之间的并行操作程度,提高系统的吞吐量和设备的利用率。
6.解:设备分配程序要用到系统设备表、设备控制表、控制器控制表和通道控制表。设备分配时要考虑到设备的固有属性、分配的算法、防止死锁以及用户程序与实际使用的物理设备无关等特性。设备分配的过程主要是:
(1)从系统设备表SDT中找到需要的物理设备的设各控制表DCT;
(2)若设备闲,则分配,然后从设备控制表DCT中找到控制器控制表指针所指出的控制器控制表COCT.
(3)若控制器闲,则分配,然后从控制器控制表COCT中找到通道控制表指针所指出的通道控制表CHCT.
(4)根据通道控制表CHCT中的状态信息来判断是否可以启动I/0设备传送信息,若闲则可以,若忙则把该进程插入到等待通道的队列中去。
7.答:设备处理程序应具有以下功能:
(1)接收由I/O进程发来的I/O命令和参数,并将命令中的抽象要求转换为具体要求,如将磁盘盘块号转换为磁盘的盘面、磁道和扇区号。
(2)检查用户I/O请求的合法性,如果请求不合法,则拒绝接收I/O请求并向用户进程汇报。
(3)了解I/0设备的状态,如果设备准备就绪,则可向设备控制器设置设备的工作方式、传递有关参数,并发送命令以启动I/O设备去完成指定的I/O操作:否则,将请求者的请求块挂到设备请求队列上等待。
(4)及时响应由I/0控制器或通道发来的中断请求,并根据其中断类型调用相应的中断处理程序进行处理。
(5)对设置有通道的计算机系统,驱动程序还应能够根据用户的I/O请求自动构成通道程序。
8.解:I/O控制方式有四种,即程序直接控制方式、中断控制方式、DMA方式和通道控制方式。
(1)程序直接控制方式:优点是控制简单,也不需要多少硬件支持。但CPU和外设只能串行工作,且CPU的大部分时间处于循环测试状态,使CPU的利用率大大降低;CPU在一段时间内只能和一台外设交换数据信息,从而不能实现设备之间的并行工作:由于程序直接控制方式依靠测试设备状态标志来控制数据传送,因此,无法发现和处理因设备或其他硬件所产生的错误。所以,程序直接控制方式只适用于那些CPU执行速度较慢且外设较少的系统。
(2)中断控制方式:优点是能实现CPU与设备以及设备与设备间的并行操作,CPU的利用率较程序直接控制方式大大提高。但由于I/0控制器的数据缓冲寄存器装满数据后将会发出中断且数据缓冲寄存器通常较小,因此在一次数据传送过程中发生中断次数较多而耗去大量CPU 时|曰:如果系统中配置的外设数目较多,且都以中断方式进行并行操作,则可能耗去大量CPU时间或因CPU来不及处理而造成数据丢失。
(3)DMA方式:与中断方式相比,DMA方式是在一批数据传送完成后中断CPU,从而大大减少了CPU进行中断处理的次数,且DMA方式下的数据传送是在DMA控制器控制下完成的。但DMA方式仍有一定的局限,如对外设的管理和某些操作仍由CPU控制,多个DMA控制器的使用也不经济。
(4)通道控制方式:通道是一个专管输入/输出控制的处理机。在通道控制方式下,CPU只需发出I/O指令,通道就能完成相应的UO操作,并在操作结束时向CPU发出中断信号:同时一个通道还能控制多台外设。但是,通道价格较高,从经济的角度出发不宜过多使用。
9.答,DMA方式中,在DMA控制器控制下,设备和主存之间可成批地进行数据交换,而不用CPU干预。这样既大大减轻了CPU的负担,也使I/O数据传送速度大大提高。这种方式应用于块设备的数据传输。
通道控制方式与DMA方式类似,也是一种以内存为中心,实现设备与内存直接交换数据的控制方式。在通道控制方式中,CPU只需发出启动指令,指出通道相应的操作和I/O设备,该指令就可启动通道并使该通道从内存中调出相应的通道指令执行。与DMA方式相比,通道方式所需的CPU干预更少,且可以做到一个通道控制多台设备,从而更进一步减轻了CPU的负担。
10.答:虚拟设备是指通过某种虚拟技术,将一台物理设备变换成若干台逻辑设备,从而实现多个用户对该物理设备的同时共享。由于多台逻辑设各实际上并不存在,而只是给用户的一种感觉,因此被称作虚拟设备。
虚拟设备技术常通过在可共享的、高速的磁盘上开辟两个大的存储空间(EP输入井和输出井)以及预输入、缓输出技术来实现。如对一个独占的输入设备,可预先将数据输入到磁盘输入井的一个缓冲区中,而在进程要求输入时,可将磁盘输入井中的对应缓冲区分配给它,供它从中读取数据:在用户进程要求输出时,系统可将磁盘输出井中的一个缓冲区分配给它,当将输出数据写入其中之后,用户进程仿佛觉得输出己完成并继续执行下面的程序,而在输出设备空闲时,'再由输出设备将井中的数据慢慢输出。由于磁盘是一个共享设备,因此便将独占的物理设备改造成为多个共享的虚拟设备(相当于输入井或输出井中的一个缓冲区)。预输入和缓输出可通过脱机和被脱机技术实现,而假脱机(即SPOOLing技术)是目前使用最广泛的虚拟设备技术。
11.解:如果将系统内所有的缓冲区统一管理起来(输入缓冲与输出缓冲)就形成了既能用于输入,又能用于输出的缓冲池,也称为缓冲区链表。缓冲池通常由若干个大小相同的缓冲区组成,任何进程都可以申请使用缓冲池。此时,操作系统的功能是管理这个缓冲池。
缓冲池应该有三个队列和四个工作缓冲区。一个队列是空缓冲区队列,链接着空缓冲区。另一个队列是装满输入数据的缓冲区队列,输入设备己将这些缓冲区中装满了输入数据等待CPU处理。第三个队列是装满输出数据的缓冲区队列,这些数据等待输出设备输出。
此外,还有四个现行工作缓冲区:
(1)收容输入工作缓冲区:
(2)收容输出工作缓冲区:
(3)提取输入工作缓冲区:
(4)提取输出工作缓冲区。
当输入设备欲输入数据时,从空缓冲区队列上取下来一个空缓冲区,作为收容输入工作缓冲区,待装满输入数据后,将其挂在装满输入数据的缓冲区队列上。
当CPU需要数据处理时,就从装满输入数据的缓冲区队列上取下一个缓冲区,作为提取输入工作缓冲区,当将其中数据消耗完后变成空缓冲区,将其挂在空缓冲区队列上。
当CPU欲输出结果时,从空缓冲区队列上取下来一个空缓冲区,作为收容输出工作缓冲区,当将输出数据装满后,将其挂在装满输出数据缓冲区队列。
当输出设备欲输出结果时,从装满输出数据的缓冲区队列上取下来一个缓冲区,作为提取输出工作缓冲区,当数据输出后变成了空缓冲区,将其挂到空缓冲区队列上。
如此周而复始不停地工作,任何进程都可使用缓冲池中的缓冲区。
12,答:辅存上的文件的重定位需要相当高的开销,即必须将数据块读入主存再将它们写回到辅存的新地址处.此外,重定位寄存器仅适合于顺序文件,而许多磁盘文件都不是顺序文件.基于同样的原因,许多新的磁盘文件并不要求连续的磁盘空间.若磁盘系统保存着逻辑连续块之间的链接,那么顺序文件也可以分配在非连续的块上。
13.答:(1)对位于当前磁头所在的磁道上的新请求,从理论上讲,只要它们一到达就可得到服务,对位于其他磁道上的请求则不然。
(2)预定一时间限额,把所有在这期间内尚未服务的请求"强行"移到队列的顶部,并置其相关的位以指明任何新的请求都不得移到这些请求之前.对SSTF而言,必须相对于这些"老"请求的最后一个,重新组织队列的剩余部分.
(3)将公平性作为分时系统中的重要指标的目的是,为了避免造成响应时间过长而使某些进程等待太久.
二.计算题
1.答:屏幕信息的显示是以像素为单位进行的。由于屏幕显示分辨率为640×480,故屏幕上有像素,640×480=300×2^10个当用256彩色显示时,每个像素需要8位二进制数(2^8=256)表示,因此一屏信息需要存储空间:8×300×2^10位=300×2^10字节=300K字节所以需要300K字节存储空间。
2.答:在计算机系统中,时钟以固定的频率中断CPU,以增加日历计数或控制系统中的一些定时操作。
由题目所给条件可知,时钟中断频率为6OHz,所以时钟周期为:
1/6Os=50/3ms
在每个时钟周期中,CPU要用2ms时间执行中断程序,所以CPU用于时钟中断处理的时间比率为,2/(50/3)=6/50=12%
3.答:(1)在无缓冲的情况下,先从磁盘把一块数据输入到用户数据区,所花费的时间为T;然后便由CPU对这一块数据进行计算,计算时间为C,所以每一块数据的处理时间为T+C。
(2)在单缓冲的情况下,先从磁盘把一块数据输入到缓冲区,所花费的时间为T;然后由操作系统将缓冲区的数据传送到用户区,其所花的时间为M;接下来便由CPU对这一块数据进行计算,计算时间为C。由于CPU的计算操作与磁盘的数据输入操作可以并行,因此一块数据的处理时间为max(C,T)+M。
(3)在双缓冲的情况下,先从磁盘把一块数据输入到第一个缓冲区,装满后便将数据输入第二个缓冲区,与此同时操作系统可将第一个缓冲区的数据传送到用户区;当CPU对第一块数据进行计算时,又可将磁盘输人数据送入第一个缓冲区,当计算完成后又可从第二个缓冲区中取数据,如此反复交替使用两个缓冲区。当C〉T时,计算操作比输入操作慢,在此情况下,上一块数据计算完成后,仍需将一个缓冲区中的数据传送到用户区,花费时间为M,再对这块数据进行计算,花费时间C,所以一块数据的处理时间为C+M,即max〈C,T〉+M;当C<T时,输入操作比计算操作慢,在此情况下,由于M远小于T,故在将磁盘上的一块数据传送到一个缓冲区期间(花费时间为T〉,计算机己完成了将另一个缓冲区中的数据传送到用户区并对这块数据进行计算的工作,所以一块数据的处理时间为T,即max(C,T)。
4.分析:数据处理时间=磁盘访问时间+数据实际处理时间,而磁盘访问时间=寻道时间+旋转延迟时间+数据传输时间。本题通过对旋转延迟时间的优化来提高访问磁盘数据的速度。
答:(1)由题意可知,读一个逻辑记录需2ms时间,读出记录后还需要4ms时间进行处理,故当磁头处于某记录的始点时,处理它共需6ms时间。而逻辑记录是按逆时针方向安排的,因此系统处理完→个逻辑记录后将磁头转到下一个逻辑记录的始点需要12ms时间。从而可以计算出处理程序顺序处理完这10个逻辑记录所需的时间为:6+9×(12+6)=168ms
(2)按最优化分布重新安排这10个逻辑记录,可使处理程序处理完一个逻辑记录后,磁头刚好转到下一个逻辑记录的始点,此时,按顺时针方向安排的逻辑记录顺序分别为:记录1、记录8、记录5、记录2、记录9、记录6、记录3、记录10、记录7、记录4,而所需要的处理时间为6×10=60ms。
5.答:两者的主要差异在于C-SCAN浪费了从磁盘的内边沿到外边沿的搜索时间.另外,下面的事实也会引起两者在吞吐量方面的差异,对内磁道的两次搜索中,SCAN只搜索一次边沿磁道,而且SCAN对一给定磁道的连续访问之间的时间间隔的变化比C-SCAN要大.
6.答:(1)104ms
(2)改进为块号1,2,3,4,5,分别存放记录A、D、B、E、C。所需总时间为40ms。