二、综合题1. 设备管理的目标和功能是什么?
设备管理的目标:
(1) 向用户提供外部设备的方便、统一的接口,按照用户的要求和设备的类型,控制设备工作,完成用户的输入输出请求;
(2) 充分利用中断技术、通道技术和缓冲技术,提高CPU与设备、设备与设备之间的并行工作能力,以充分利用设备资源,提高外部设备的使用效率;
(3) 设备管理就是要保证在多道程序环境下,当多个进程竞争使用设备时,按照一定的策略分配和管理设备,以使系统能有条不紊地工作。
设备管理的功能:
(1) 设备分配和回收;
(2 )管理输入/输出缓冲区;
(3) 设备驱动,实现物理I/O操作;
(4) 外部设备中断处理;
(5) 虚拟设备及其实现。
2. 简述通道及通道控制结构。
通道是一个用来控制外部设备工作的硬件机构,相当于一个功能简单的处理机。
在一般大型计算机系统中,主机对外部设备的控制可以分成三个层次来实现,即通道、控制器和设备。
一旦CPU发出启动通道的指令,通道就可以独立于CPU工作。通道控制控制器工作,控制器用来控制设备的电路部分。这样,一个通道可以连接多个控制器,而一个控制器又可以连接若干台同类型的外部设备。最终,设备在控制器控制下执行操作。
3. 系统采用通道方式后,输入/输出过程如何处理。
CPU在执行用户程序时遇到I/O请求,则可以根据用户的I/O请求生成通道程序(通道程序也可能是事先编制好的),放到内存中,并把该通道程序首地址放入CAW中。然后,CPU执行“启动I/O”指令,启动通道工作。通道接收“启动I/O”指令信号,从CAW中取出通道程序首地址,并根据此地址取出通道程序的第一条指令,放入CCW中;同时向CPU发回答信号,通知“启动I/O”指令执行完毕,CPU可继续执行。而通道开始执行通道程序,进行物理I/O操作。执行完一条指令,如果还有下一条指令则继续执行,否则表示传输完成,同时自行停止,CPU转去处理通道结束事件,并从CSW中得到有关通道状态。
4. 何谓虚拟设备?请说明SPOOLing系统是如何实现虚拟设备的。
当系统只有一台输入设备或一台输出设备的情况下,可允许两个以上的作业并行执行,并且每个作业都感觉到获得了供自己独占使用的输入设备和输出设备,操作系统采用的这种技术为用户提供了虚拟设备。
SPOOLing技术借助磁盘和通道实现了输入/输出过程的共享。当用户提出输入/输出请求时,系统及时响应,此时用户会认为已独占输入/输出设备;但事实上,有多道作业同时进入该过程,并分别占用各个阶段。可假设如下情况:第一道作业提出打印申请,得到响应后正在打印机上输出;此时第二道作业提出输出请求,系统响应后将其送入磁盘输出井,一旦第一道作业打印结束,第二道作业可马上开始打印;接着第三道、第四道作业也源源不断地提出输出请求并得到响应,先后进入输出井及占用打印机。若系统控制得好,可令整个过程被数道作业共享,而每一个进入输出过程的作业都会认为自己在独占打印机。可以说,该系统向用户提供了多台打印机。
5. 在设备管理中,何谓设备独立性?如何实现设备独立性?
设备独立性又称设备无关性,其体现在两个方面。一方面是从程序设计的角度看待设备。从这个角度去看,各种设备所体现的接口应该都是一致的。程序中可使用相同的命令读出不同设备上的数据,也可以用相同的命令将输出数据送到各种不同的设备上,不同设备之间的差异由操作系统来处理,对程序加以屏蔽。设备无关性的另一方面是指,在操作系统管理设备和相应操作时,对所有的设备都采用统一的方式进行。由于各类设备之间的差异,软件实现时,很难达到真正的一致。一般采用层次式、模块化的思想来实现设备管理子系统。低层程序用来屏蔽设备的具体细节,高层软件将各类设备的操作都以一致的界面对用户提供。与设备无关性紧密相关的是统一命名法。一个文件或设备名将简单地只是一个字符串或一个整数,而完全不依赖于设备。
设备独立性是指用户程序独立于所使用的具体物理设备,即用户只使用逻辑设备名。为实现设备独立性,系统应为每个用户进程配置一张用于联系逻辑设备名和物理设备名的映射表,表中一般应包含逻辑设备名、物理设备名和驱动程序入口地址。
6. 简述扫描磁盘调度算法(SCAN)的工作过程。
SCAN算法也是一种寻道优化的算法,它克服了最短查找时间优先(SSTF)算法的缺点。SSTF算法只考虑访问磁道与磁头当前位置的距离,而未考虑磁臂的移动方向,而SCAN算法则既考虑距离,也考虑方向,且以方向优先。即当无访问请求时,磁头臂停止不动;当有访问请求时,磁头臂按照方向扫描。假设初始时,磁头处于最外磁道,并向内磁道移动。在移动的过程中,如果经过的磁道有访问请求,则为其服务,然后判断内磁道是否还有访问请求,如果有,则继续向内磁道移动并服务;否则改变磁头移动方向,即开始向外磁道移动,同时为经过的请求服务;如此反复。
7. 简述中断、陷阱、软中断之间的异同。
中断即外中断,是指来自处理机和内存外部的中断,包括I/O设备发出的I/O中断、外部信号中断、各种定时器引起的时钟中断及调试程序中设置的断点等引起的调试中断等。陷阱即内中断,主要是指在处理机和内存内部产生的中断。它包括程序运算引起的各种错误。软中断是通信进程之间用来模拟硬中断的一种信号通信方式。
中断和陷阱的主要区别如下。
①陷阱通常由处理机正在执行的现行指令引起,而中断则是由与现行指令无关的中断源引起的。
②陷阱处理程序提供的服务为当前进程所用,而中断处理程序提供的服务则不是为了当前进程的。
③CPU在执行完一条指令之后,下一条指令开始之前响应中断,而在一条指令执行中也可以响应陷阱。
④在有的系统中,陷入处理程序被规定在各自的进程上下文中执行,而中断处理程序则在系统上下文中执行。
软中断与硬中断的比较的相同点:其中断源发中断请求或软中断信号后,CPU或接收进程在适当的时机自动进行中断处理或完成软中断信号所对应的功能。软中断与硬中断的不同点:接收软中断信号的进程不一定正好在接收时占有处理机,而相应的处理必须等到该接收进程得到处理机之后才能进行。
8. 简述独占设备的一般分配过程。
对于具有通道的系统,在进程提出I/O请求后,系统的设备分配程序可按下述步骤进行设备分配。
①分配设备。首先根据物理设备名、查找系统设备表SDT,从中找出该设备的DCT,根据表中的设备状态字段,可知该设备是否正忙。若忙,便将请求I/O进程的PCB挂在设备等待队列上;否则,便按照一定的算法来计算本次设备分配的安全性,如果不会导致系统进入不安全状态,便将设备分配给请求进程;否则,仍将其PCB插入设备等待队列。
②分配控制器。在系统把设备分配给请求I/O的进程后,再到其DCT中找出与该设备连接的控制器的控制器表(COCT),从表内的状态字段中可知该控制器是否忙碌。若忙,便将请求I/O的进程的PCB挂在该控制器的等待队列上;否则,将该控制器分配给进程。
③分配通道。在该COCT中又可找到与该控制器连接的通道的通道表(CHCT),再根据CHCT内的状态信息可知该通道是否忙碌,若忙,便将请求I/0的进程挂在该通道的等待队列上;否则,将该通道分配给进程。只有在设备、控制器和通道三者都分配成功时,这次的设备分配才算成功;然后、便可启动该I/O设备进行数据传送。
9. I/O控制方式有几种?各有什么特点?
I/O控制方式的发展经历了四个阶段:程序查询方式、I/O中断方式、DMA方式和I/O通道方式。
(1) 程序查询方式。在早期计算机或现代一些简单的微型计算机系统中,采用程序查询I/O方式。程序查询是一种用程序直接控制I/O操作的方式。CPU与外设的活动本质上是异步的,为了实现CPU与外设间的信息传送,CPU必须重复测试外设的状态,仅当外设是处在准备好的状态时,CPU才能与外设交换信息。所以,在程序查询I/O方式的接口电路中必须设置一状态端口,以使CPU通过执行输入指令了解外设的状态。当采用程序查询传送方式时,每当程序要使用某一外设进行I/O操作时,CPU要执行一段循环测试程序,以实现在外设准备好时执行一条输入/输出指令,进行一字节或字的数据传送操作。在这种方式下,CPU的大量时间消耗在等待输入/输出的循环检测上,使CPU与外设串行工作,严重影响了CPU和外设的使用效率,致使整个系统效率很低。
(2) I/O中断方式。引入中断技术后,每当设备完成I/O操作时,便向CPU发出中断请求信号,通知CPU外设已准备好,可以进行数据传送操作。这样,CPU一旦启动I/O设备后便可执行其他程序,仅在收到I/O中断请求时才执行其中断服务程序,进行I/O处理和I/O操作。程序中断传送方式改善了CPU的利用率,并使CPU与外设并行操作。但I/O数据的处理和I/O操作的控制都是由CPU承担的,仍然消耗了CPU不少时间。
(3) 直接存储器访问(DMA)方式。虽然I/O中断方式比程序查询方式更有效,但须注意,它仍是以字节或字为单位进行输入/输出的,每当完成一字节或字时,控制器便要向CPU请求一次中断。换言之,采用I/O中断方式时的CU,是以字节或字为单位进行干预的。如果将这种方式用于块设备的I/O,显然是低效的。例如,为了从磁盘中读出1KB的数据块,需要中断CPU 1000次。为了进一步减少CPU对I/O的干预而引入了直接存储器访问(DMA)方式。
(4) I/O通道方式。I/O通道方式是DMA方式的发展,它会进一步较少对CPU的干预,即把对一个数据块的读(或写)为单位的干预,减少为对一组数据块的读(或写)有关的控制和管理为单位的干预。I/O通道有自己的指令系统,即通道程序,可以与CPU并行操作,独立管理外设和实现主存和外设之间的信息传输,使CPU摆脱了繁忙的I/O操作。在配置通道的计算机系统中,不仅能实现CPU与通道的并行操作,而且通道与通道、各通道的外设之间均能实现并行操作,因而有效地提高了整个系统的使用效率。
10. 以打印机为例说明SPOOLing的工作原理,系统如何利用SPOOLing技术将打印机模拟为虚拟打印机。
当某进程要求打印输出时,操作系统并不是把某台实际打印机分配给该进程,而是在磁盘上输出井中为其分配一块区域,该进程的输出数据高速存入输出井的相关区域中,而并不直接在打印机上输出。输出井上的区域相当于一台虚拟的打印机,各进程的打印输出数据都暂时存放在输出井中,形成一个输出队列。最后,由SPOOLing的缓输出程序依次将输出队列中的数据实际地打印输出。
这样,从用户的角度来看,他似乎独占一台打印机,可以随时根据运行的情况输出各种结果;但从系统的角度来看,同一台打印机又可以分时地为每一个用户服务。用户进程实际上获得的是虚拟设备。
SPOOLing系统的引入缓和了CPU与设备的速度的不均匀性,提高了CPU与设备的并行程度。
11. 什么是独立磁盘的冗余阵列?它分为几级?各有什么特色?
使用多个磁盘来统一管理和组织磁盘上存储的数据,从而改善磁盘上数据传输速率和磁盘容错能力。这种系统称为独立磁盘的冗余阵列(RAID)。目前公认的RAID方案包括0~6共7层,简称RAID0~RAID6。
各自的特色是:
(1) RAID第0层使用磁盘阵列是在块一级以条带(strip)形式将数据循环地分布在各磁盘上。它既不包含磁盘镜像,也不包含奇偶校验位等任何冗余信息。可以实现两个或多个不同I/O请求的并行存取,具有较高的数据传输率。
(2) RAID第1层使用的磁盘阵列是通过复制所有的数据来实现冗余的。它实现了磁盘镜像。它不仅可以提高数据存储速度,而且提高了数据冗余能力。但它的系统代价比较高。
(3) RAID第2层采用以字节或字为单位的奇偶校验方式。这样,一个磁盘的错误,可通过该字节的其他位和相关的奇偶校验位来恢复。这种模式需要的奇偶校验磁盘个数与数据盘个数成正比。
(4) RAID第3层不管数据磁盘阵列有多大,仅需要一个冗余磁盘。它采用位交叉校验组织。系统计算该扇区的各位奇偶校验是否与存储的奇偶校验相等。它与RAID第2层实现相同的功能,但开销却大大降低。
(5) RAID第4层采用块交叉奇偶校验组织,使用块级条带。对每个带逐位计算奇偶校验,并存储在奇偶校验磁盘的相应条带上。如果有一个磁盘受损,则用奇偶校验盘上的奇偶校验块进行恢复。这种模式适合并行存取。
(6) RAID第5层与RAID第4层类似,只是RAID5把奇偶校验条带分布在所有磁盘中,从而避免了奇偶校验盘的I/O瓶颈。
(7) RAID第6层又叫P+Q冗余模式。它采用RAID4和RAID5使用的异域算法及独立数据校验算法。两种不同的冗余信息存储在不同磁盘的不同块中,每4个数据位存储2个冗余位,这样即使有两个磁盘失效,也可以重新恢复被破坏的数据,从而提供极高的数据可用性。
12. 缓冲技术主要包括哪几种方式?
根据缓冲器的个数,缓冲技术可分为如下几种。
·单缓冲:在设备和处理机之间只设置一个缓冲区,由输入设备和输出设备公用,每当一个用户进程发出一个I/O请求时,系统便在主存中为之分配一个缓冲区,设备和设备之间能通过单缓冲达到并行操作。
·双缓冲:为输入和输出设备分配两个缓冲区,两个缓冲区交替使用,双缓冲很难匹配设备和处理机的处理速度,如图5-4所示。

·多缓冲:为输入/输出设备分别设置多个缓冲区,一部分专门用于输入,另一部分专门用于输出,可以实现对缓冲区中数据的输入和提取,以及CPU的计算三者并行工作,如图5-5所示。

·缓冲池:将多个缓冲区合并在一起构成公用缓冲池进行统一管理,池中的缓冲区可供多个进程共享。
13. 简述设备的分配与回收过程。
系统设立“设备类表”和“设备表”记录系统设备的分配情况,例如图5-6所示,系统有如下的“设备类表”和“设备表”。

当一作业申请某类设备时,先查“设备类表”,若该类设备的现存台数可满足申请时,从设备表入口找到“设备表”中该类设备的登记项,从中找出“好/未分配”的设备进行分配,将分配标志改为“已分配”,并登记作业名,最后修改“设备类表”的现存台数。
当某作业释放设备时,根据作业名从“设备表”找到登记项,将分配标志改为“未分配”,把“设备类表”的现存台数加上释放的台数。
14. 为什么说有了通道技术和中断技术才真正做到了处理机和外部设备的并行操作?
通道是负责外围设备与主存储器之间进行数据交换,能单独完成输入/输出操作的装置。有了通道,主存和外围设备之间的数据交换就不要处理机负责了,处理机有可能去做其他的事情,但是,如果没有中断技术,处理机要不断地去查询通道及设备执行的情况,这样一来,处理机还是把大量的时间花在查询状态上,并不能很好地为其他进程服务。有了中断技术后,处理机可以完全不管通道和设备的执行,如果有特殊情况(异常或正常结束),通道就会发生I/O中断,通知处理机来处理,所以通道技术与中断技术的出现,使得主存储器可以直接和外设之间交换数据,整个交换过程中如果没有特殊情况,处理机完全可以并行地去做其他事情,大大提高了处理机的效率。
15. 在设备管理中数据传输控制有哪几种方式?并用流程图来描述DMA传输控制的处理过程。
随着计算机技术的发展,I/O控制方式也在不断地发展。当前,设备管理中数据传输控制方式主要有:程序直接控制方式、中断控制方式、DMA方式和通道方式。实际上,在:I/O控制的整个发展过程中,都始终贯穿着这样一条宗旨:尽量减少处理机对:I/O控制的干预,把处理机从繁杂的I/O控制事物中解脱出来,完成其他数据的处理任务。如图5-7所示是DMA传输控制的处理过程的流程图。

16. 设备分配策略与哪些因素有关?简述设备分配的过程。
系统在进行设备分配时,应考虑设备的固有特性、分配的算法、防止死锁和设备独立性。对于独占设备、共享设备、虚拟设备等具有不同属性的设备,通常采用相应的分配算法,常见的有先来先服务算法、高优先级算法。为了提高系统的适应性和均衡性,分配设备时要考虑物理设备和程序的无关性,以及系统的安全性。
设备分配程序要用到系统设备表、设备控制表、控制器控制表和通道控制表。设备分配的过程主要如下:
·从系统表中找到需要的物理设备的控制表;
·若设备空闲,则分配,然后从设备控制表中找到控制器控制表指针所指出的控制器控制表;
·若控制器空闲,则分配,然后从控制器控制表中找到通道控制表指针所指出的通道控制表;
·根据通道控制表中的状态信息,来判断是否可以启动I/O设备传送信息,若闲,则可以,否则把该进程插入到等待通道的队列中去。
17. 假定一磁盘有200个柱面,编号为0~199,完成了磁道125处的请求后,当前在磁道143处为一个请求服务。若请求队列的先后顺序是
86,147,91,177,94,150,102,175,130
分别采用FCFS(先来先服务)、SSTF(最短寻道时间优先)、SCAN算法完成上述请求,写出存取臂移动的顺序,并计算臂移动的总量。
采用FCFS算法调度时,磁头移动的顺序是:
143→86→147→91→177→94→150→102→175→130
磁头移动总量是565(柱面)。
采用SSTF算法调度时,磁头移动的顺序是:
143→147→150→130→102→94→91→86→175→177
磁头移动总量是163(柱面)。
采用SCAN算法调度时,磁头移动的顺序是:
143→147→150→175→177→130→102→94→91→86
磁头移动总量是125(柱面)。
18. 假定磁盘的存储臂现在处于6号柱面上,有如表5-1所示的6个请求等待访问磁盘,试列出最省时间的响应顺序。
表5-1 6个请求等待访问磁盘的情况 序号 | 柱面号 | 磁面号 | 块号 | 1 | 7 | 6 | 3 | 2 | 5 | 5 | 6 | 3 | 15 | 20 | 6 | 4 | 7 | 4 | 4 | 5 | 20 | 9 | 5 | 6 | 5 | 15 | 2 | |
由题目可知应选择最短寻道时间优先(SSTF,Short Seek Time First)算法,该算法要求访问的磁道离所在磁道距离最近,以使每次寻道时间最短,但这种调度算法却不能保证平均寻道时间最短。
由于磁臂先处于6号柱面上,由表5-1可知,6号和2号均在第5号柱面,但因为6号的磁面号比2号的大,也就是更靠近6号柱面,所以第一个响应的请求是6,然后是2。此时,磁臂处于5号柱面。同理,4号请求比1号请求更接近磁臂,故先4号响应,然后是1号响应,以此类推,再响应3号和5号。
所以正确的响应顺序是:6→2→4→1→3→5。
19. 假设有4个记录A、B、C、D存放在磁盘的某个磁道上,该磁道被划分为4块,每块存放一个记录,安排如表5-2所示:
现在要顺序处理这些记录,如果磁盘旋转速度为20ms一周,处理程序每读一个记录后5ms处理完成。试问处理完这4个记录的总时间是多少?为了缩短处理时间应进行优化分布,试问应如何安排这些记录,并计算处理的总时间。
根据题意,记录是顺序处理的,即A→B→C→D,4个记录刚好占用一个磁道,因此读一个记录的时间为:20ms/4=5ms。读完记录A后还需要处理5ms,因此在读第2个记录B时,磁头已经移动到了第3个记录C处,因此需要等磁盘再次旋转一周,才能读记录B。这样4个记录处理完的总时间是:10ms(移动到记录A的平均时间)+5ms(读记录A)+5ms(处理记录A)+3×[15ms(服务下一记录)+5ms(读记录)+5ms(处理记录)]=95ms。
由于读第1个记录并处理完成后,磁头移动到了第3个记录开始处,所以可将记录的排列优化为1、3、2、4,这样安排后,4个记录处理完的总时间是:[10ms(移动到记录A的平均时间)+5ms(读记录A)+5ms(处理记录A)]+[5ms(读记录B)+5ms(处理记录B)]+[5ms(空转)+5ms(读记录C)+5ms(处理记录C)]+[5ms(读记录D)+5ms(处理记录D)]=55ms。
20. 一个磁盘有19456个柱面,16个读/写头,每个磁道有63个扇区。磁盘以每分钟5400转的速度旋转。相邻两个磁道之间的寻道时间为2ms。假定读/写头在0磁道上,那么完成整个磁盘的读/写需要花费多长时间?
磁盘以每分钟5400转的速度旋转,旋转一周的时间为:60000/5400=11.111ms。一个磁盘有19456个柱面,16个读/写头,每个磁道读一次需要的时间为:
19456×16×11.11=3458s
完成整个磁盘的读/写需要花费的时间为:3458+(19456×2ms)=3497s。
21. 若磁盘扇区的大小为512字节(512B),每磁道有80个扇区,该磁盘有4个面可用。假定磁盘的旋转速度为5400转/分钟,若CPU使用中断驱动I/O从磁盘读取一个扇区,每个字节产生一个中断。如果处理每个中断需要25ms,问CPU花在处理I/O上的时间占多少百分比(忽略寻道时间)?若采用DMA方式,假定一个扇区产生一个中断,处理机处理一个中断的时间不变,则CPU花在处理I/O上的时间占多少百分比(忽略寻道时间)?
磁盘旋转一周的时间为:60/5400=1/90s=11.11ms。
查找一个扇区平均需要的时间为1/2周,即(1/90)/2=1/180=5.56ms。访问一个扇区需要的时间为:
(1/90)/80=1/7200s=0.139ms
(1) CPU使用中断驱动I/O从磁盘读取一个扇区,每个字节产生一个中断时,处理每个中断需要25ms,CPU花在处理I/O上的时间所占的百分比为:
(512×25)/((1/180+1/7200)+(512×25)≈99.95%
(2) 若采用DMA方式,假定一个扇区产生一个中断,处理机处理一个中断的时间不变,CPU花在处理I/O上的时间所占的百分比为:
25/((1/180+1/7200)+25)≈81.43%
22. 在使用磁盘高速缓存的系统中,平均的访问时间是80.6ms,高速缓存的平均访问时间是1ms,磁盘平均访问时间是200ms,系统有8MB的高速缓存。高速缓存增加一倍时,非命中率将降低40%。问需要增加多少高速缓存才能将平均访问时间减少到20ms(假定高速缓存的数据按2的倍数增加)。
假定现在访问高速缓存的比率为n,显然
80.6=1×n+(1-n)×200
由此可得n=(200-80.6)/199=0.6。
这说明配置8MB高速缓存时,高速缓存的访问比率为0.6,磁盘的访问比率为0.4。
要使平均访问时间减少到20ms,则有
20=1×n+(1-n)×200
由此可得n=0.9,磁盘的访问比率为0.1。即:
0.1=0.4×(1-0.4)x
x=2.71≈3
解得
8×23=64MB,故应该配置64MB的高速缓存。
若某磁盘的旋转速度为20ms/周,磁盘初始化时每个盘面分成10个扇区,扇区按磁盘旋转的反向编号,依次为0~9,现有10个逻辑记录R0,R1,…,R9,依次存放在0~9十个扇区上。处理程序要顺序处理这些记录,每读出一个记录后处理程序要花6ms进行处理,然后再顺序读下一个记录并处理,直到全部记录处理完毕,请回答:23. 顺序处理完这10个记录总共花费多少时间?
顺序存放:R0→R9;由20ms/10=2ms知,每读一个扇区花2ms,由2ms+6ms=8ms知,读出并处理完R0后,读写磁头已在R4的位置,要读R1记录,则要有14ms延迟时间。顺序处理完这十个记录需花费时间为:10×(2+6)+9×(2×7)=926(ms)
24. 优化分布这些记录,使这10个记录的处理总时间最短,并算出优化分布时需花费的时间。
优化分布:R0→R5→R3→R8→R1→R6→R4→R9→R2→R7,即得逻辑记录的最优分布。此时处理十个记录所花费的时间为:10×(2+6)=80(ms)