7.5 自测练习答案
一、填空题
1.块设备、字符设备
2.输入输出操作
3.通道命令字CCW
4.可共享的虚拟设备
5.独占型设备(或独享设备)
6.单缓冲区、多缓冲区、缓冲池
7.块设备、字符设备
8.逻辑(设备)名、物理(设备)名
9.改善CPU与I/O设备之间速度不匹配的矛盾
10.死锁问题
11.一般写方式、异步写方式、延迟写方式
12.设备独立性
13.通道、CPU、CPU
14.输入井、输出井、输入缓冲区、输出缓冲区、输入进程、输出进程
15.设备控制表(DCT)、系统设备表(SDT)、控制器表(COCT)、通道控制表(CHCT)
16.路径名
17.字节多路通道、数据选择通道、数据多路通道
18.块、字符
19.独占设备
20.共享设备
21.内存
22.分时(或时间片轮转)
23.SPOOLing、独享、共享
24.字节
25.中断处理方式、DMA、字符传输方式、块传输方式
二、单项选择题
1.D 2.D 3.B 4.B 5.B
6.D 7.C 8.B 9.C 10.A
11.B 12.C 13.D 14.B 15.C
16.B 17.C
18.A(由于驱动程序与硬件紧密相关,因而其中的一部分必须用汇编语言书写。)
19.C 20.A 21.B 22.C 23.D
24.C 25.B 26.D 27.A 28.D
29.D
30.D(B不正确,是因为只有基于设备特性(如最小寻道时间)的调度在设备驱动程序层实现。)
三、不定项选择题
1.BE
2.AE
3.ABCD
4.AE
5.ABD
6.ABCD
7.ACD
8.ABD(C错误是因为CPU和内存无需驱动程序便可使用。)
9.ABD
10.D
11.ADE
12.ABCD
13.ABCD
14.BC
15.ABCD
四、是非题
1.错误:是在内存中开辟的区域。
2.正确
3.错误:寻道时间所花费的时间最长。
4.错误:这种数据交换方式是DMA控制方式。
5.错误:不是借助外存储器而是内存。
6.错误:按设备所属关系分为系统设备和用户设备两类。按共享属性分为独享设备、共享设备和虚拟设备3种。
7.正确
8.正确
9.错误:主要用来连接低速或中速设备,如终端、打印机等。
10.错误:通道是一种I/O专用处理器。
11.正确
12.正确
13.错误:设备控制器是CPU与I/O设备之间的接口。
14.正确
15.正确
五、综合题
1.答:设备管理的目标是:
1)方便性:向用户提供方便的设备使用接口。
2)并行性:设备传输与CPU重叠,各设备之间并行工作。
3)均衡性:既要使设备忙碌,又要避免忙闲不均。
4)独立性:与设备无关,隐蔽设备的物理特性。
设备管理的功能可归纳为:动态地掌握并记录设备的状态;按设备的类型和系统中所采用的分配算法,决定把一个I/O设备分配给要求该设备的进程;完成实际的I/O操作。
为了完成上述功能,设备管理软件应包括:I/O交通管制程序、I/O调度程序(即设备分配程序)、I/O设备处理程序。
2.答:实现虚拟设备的硬件条件:大容量磁盘;中断装置和通道;中央处理器与通道并行工作的能力。
实现虚拟设备的软件条件是:要求操作系统采用多道程序设计技术。
3.答:操作系统利用共享设备来模拟独占设备的工作,当系统只有一台输入设备,或一台输出设备的情况下,可允许两个以上的作业并行执行,并且每个作业都感觉到获得了供自己独占使用的输入设备和输出设备。操作系统采用这种技术为用户提供了虚拟设备。
SPOOLing技术借助磁盘和通道技术,实现了输入、输出过程的共享。当用户提出输入、输出请求时,系统及时响应,此时用户会认为已独占输入、输出设备;但事实上却非如此。假设如下情况:第一道作业提出打印申请,得到响应后正在打印机上输出;此时第二道作业提出输出请求,系统响应后将其送入磁盘输出井,一旦第一道作业打印结束,第二道作业可马上开始打印;接着第三道、第四道作业也源源不断地提出输出请求并得到响应,先后进入输出井及占用打印机。系统如果控制得好,可令整个过程被数道作业共享,每个作业都会感觉到自己在独占打印机。可以说,系统向用户提供了多台虚拟打印机。
4.【分析】UNIX操作系统块设备缓冲区的管理,最大的特色在于分配缓冲区的对象是设备而不是进程,这样,使用同一设备的进程就可以共享缓冲区。UNIX操作系统共享文件的技术,还包括文件系统的一些技术。这里仅就缓冲区管理方面进行了讨论。
答:UNIX操作系统块设备缓冲区的管理与缓冲池技术类似,但它为了适应分时系统的要求,有其独特之处,既缓冲区动态地组成空闲缓冲区队列、设备缓冲区队列和设备I/O请求队列。空闲缓冲区组成空闲队列(av链),按设备占用缓冲区的情况构成的散列队列——设备缓冲区队列,设备缓冲区队列中正在进行读、写的缓冲区,构成I/O请求队列。设备用完缓冲区释放后,只挂在空闲缓冲区队列中,设备缓冲区队列的关系保持不变。这样,在该缓冲区未被重新分配之前,缓冲区中的信息还可以为后来申请使用该缓冲区信息者使用,减少访问磁盘次数。在多个用户共享同一个副本时,可以避免重复申请缓冲区,减少磁盘访问次数。
5.答:扫描算法同时考虑两个条件作为优先的准则,即考虑申请者要求磁盘移动方向,又考虑要求磁盘移动的距离,而且首先是方向一致,其次才是距离最短。因此,在实现扫描算法时,遵循5条规则:
1)建立两个独立的等待队列,向上扫描队列和向下扫描队列。
2)磁头臂向上运动时,调度向上扫描队列;向下运动时,调度向下扫描队列。
3)当申请者的目的柱面号大于当前柱面号时,加入向上扫描队列,其余情况加入向下扫描队列。
4)向上扫描队列的调度原则是柱面号小者优先,向下扫描队列的调度原则是柱面号大者优先。
5)当前调度对列为空时,改变扫描方向。
6.【分析】关于对SPOOLing系统的理解,要注意几个方面:
1)联机控制需要CPU的干预,CPU的控制通过专用的SPOOLing进程实现。
2)实现了假脱机操作,外部设备可以同时操作。
3)输入、输出数据通过外存中的输入井和输出井缓存。
4)I/O系统的缓存和I/O控制仍然与不支持SPOOLing的系统一样。
5)实现了虚拟设备,目的在于提高并行性。
答:所有字符设备都是独占设备,并且是慢速度设备,本质上属于顺序存取设备,并且在数据交换完成之前,其他进程不能同时访问这台设备。当一个进程正在使用这类设备进行一次大量的数据交换时,其他需要同时访问该设备的进程就要等待较长的时间,从而降低了整个系统的并发能力。SPOOLing系统正是针对这一问题引入的一种设备管理技术,它的意思是外部设备联机并行操作。其核心思想是利用一台可共享的、高速大容量的块设备(磁盘)来模拟独占设备的操作,使一台独占设备变为多台可并行使用的虚拟设备,即把独占设备变成逻辑上的共享设备。
SPOOLing系统带来的好处:
1)字符设备和各虚拟设备之间的数据交换,由SPOOLing进程统一调度实施,而且这种数据交换以并行方式进行,系统呈现出高度的并行性。
2)用户使用的是虚拟设备,可以减少用户进程的等待时间。
7.答:用于设备分配的数据结构主要包括:
1)设备控制表(DCT):系统为每个设备配置一张设备控制表,用于记录本设备的情况,如设备类型、设备标志号、设备状态、设备队列、控制器表。
2)控制器控制表(COCT):系统为每个控制器设置一张用于记录本控制器控制情况的控制器控制表。
3)系统设备表(SDT):记录系统中全部设备的情况,每个设备占一个表目,包括设备类型、设备标志符、设备控制表、设备驱动程序入口等。
此外,在配有通道、控制器系统的设备管理中,还要有通道控制表(CHCT),用来记录通道特性、状态和其他管理信息。
系统设备表中有对应设备的设备控制表的指针,设备控制表中有与该设备相连的控制器的控制器控制表的指针,控制器控制表中有与该控制器相连的通道控制表。也就是说,从系统设备表,可以找到该设备的设备控制表,然后找到相连的控制器控制表,最后找到相连的通道的通道控制表。
8.答:系统在进行设备分配时,应考虑设备的固有特性、分配的算法、防止死锁、设备独立性。对于独占设备、共享设备、虚拟设备等具有不同属性的设备,通常采用相应的设备分配算法,常见的有先来先服务算法、优先级高者优先的算法。为了提高系统的适应性和均衡性,分配设备时要考虑物理设备和程序的无关性,以及系统的安全性。
设备分配程序要用到系统设备表、设备控制表、控制器控制表和通道控制表。
设备分配的主要过程如下:
1)从系统设备表(SDT)中找到需要的物理设备控制表(DCT)。
2)若设备空闲,则分配,然后从设备控制表(DCT)中,找到控制器控制表指针所指出的控制器控制表(COCT)。
3)若控制器空闲,则分配,然后从控制器控制表(COCT)中,找到通道控制表指针所指出的通道控制表(CHCT)。
4)根据通道控制表(CHCT)中的状态信息,判断是否可以启动I/O设备传送信息,若闲,则启动I/O设备传送信息;否则,将该进程插入到等待通道的队列中去。
9.答:getblk(dev,blkno)首先检查散列队列,看该盘块是否已在某个缓冲区中。若在散列队列,则不需分配缓冲区;否则,分配一个空闲缓冲区。处理过程如下:
1)根据设备号和盘块号,检查散列队列。
2)若在散列队列,则检查该缓冲区是否空闲。若空闲,则先上锁,然后将其从空闲链上取下,置该缓冲区忙;否则,必须等待该缓冲区空闲。
3)若缓冲区不在散列队列,便从空闲链分配一个缓冲区,调整散列队列,置该缓冲区忙。
10.答:独占型设备的使用效率低,在一段时间内只能有一个用户所占用,常常影响整个系统的效率。如果采用SPOOLing技术,实现程序运行过程中所需的输入信息从独占型设备上输至输入井,从而使程序运行时,可以直接从输入井获得所需的信息。对用户来说,只要保证信息的正确存取就行,至于信息是从磁盘获得,还是从输入设备上获得都无关紧要。系统借助于硬件的中断装置和通道技术,使得CPU与各种外围设备,以及各外围设备之间均可并行工作。作业执行是从磁盘上读信息来代替从输入机的输入操作,不仅使多个作业可以同时执行,而且加快了作业的执行速度,提高了单位时间内处理作业的能力。在作业执行的同时,还可以利用输入设备继续预输入作业信息,这种联机同时操作,极大地提高了独占设备的利用率。
11.答:设备独立性又称为设备无关性,其实现体现在两个方面:一方面是从程序设计的角度看待设备。从这个角度看,各种设备所体现的接口应该是一致的。程序中可使用相同的命令,读出不同设备上的数据,也可以用相同的命令,将输出数据送到各种不同的设备上,不同设备之间的差异由操作系统来处理,对程序加以屏蔽。
设备无关性的另一方面是指,在操作系统管理设备和响应操作时,对所有的设备都采用统一的方式进行。由于各类设备之间的差异,软件实现时,很难达到真正的一致。一般采用层次式、模块化的思想来实现设备管理子系统。低层程序用来屏蔽设备的具体细节,高层软件将各类设备的操作都以一致的界面对用户提供。与设备无关性紧密相关的是统一命名法,设备名同文件一样需要命名,简单地只是一个字符或一个整数,而完全不依赖于设备。
设备独立性是指用户程序独立于所使用的具体物理设备,即用户只使用逻辑设备名。为实现设备独立性,系统应为每个用户进程,配置一张用于联系逻辑设备名和物理设备名的映射表,表中一般应包括:逻辑设备名、物理设备名和设备驱动程序入口地址等。
12.答:打印机是临界资源,即任何时刻仅允许一个作业使用,需要互斥使用;而磁盘不是互斥资源,可以允许多个作业同时使用。
13.答:启动磁盘执行一次输入输出操作所花费的时间由3部分组成,分别是寻道时间、旋转延迟时间和传输时间。其中,寻道时间是指磁头在移动臂带动下移动到指定柱面所需要的时间;旋转延迟时间是指,指定扇区旋转到磁头下所需要的时间;数据传送时间是指,数据写入磁盘,或者从磁盘读出数据的时间。
14.答:为了尽可能减少寻道时间和延迟时间,系统需要采用一定的调度策略来决定各等待访问进程的执行次序。由系统来决定等待磁盘访问进程的执行次序的工作,称为磁盘的驱动调度。对应的调度算法称为磁盘驱动调度算法。
驱动调度由两部分组成:磁盘的移臂调度和磁盘的旋转调度。根据访问进程指定柱面位置来决定进程执行次序的调度称为磁盘的移臂调度;当移动臂定位后,如有多个进程等待访问该柱面时,根据延迟时间来决定进程执行次序的调度称为磁盘的旋转调度。
磁盘的旋转调度应根据下列各种情况,分别制定旋转调度算法。
1)若干等待访问进程请求访问同一磁道上的不同扇区。
2)若干等待访问进程请求访问不同磁道上的不同扇区。
3)若干等待访问进程请求访问不同磁道上相同扇区。
15.答:1)采用FCFS算法调度时,磁头移动的顺序是:143、86、147、91、177、94、150、102、175、130,磁头移动总量是565(柱面)。
2)采用SSTF算法调度时,磁头移动的顺序是:143、147、150、130、102、94、91、86、175、177,磁头移动总量是162(柱面)。
3)采用SCAN算法调度时,磁头移动的顺序是:143、147、150、175、177、130、102、94、91、86,磁头移动总量是125(柱面)。
注意 在采用SCAN算法时,一定要确定磁头移动方向,如果题目中没有明确给出磁头移动方向,就要分两种情况分别讨论。
16.答:每次进行磁盘读、写时,核心都要检查读、写操作对应的磁盘块是否在缓冲池中。如果在缓冲池中,就直接引用缓冲池中的数据;否则,就分配一个空缓冲区。当需要分配缓冲区时,通常是从空闲队列首部摘下缓冲区。
17.答:由题目可知,一次只允许1个磁盘传输数据,也就是说,对于一个磁盘控制器一次只能处理1个磁盘的I/O操作。另外,由题目知,串行控制器可以同时处理20个终端的I/O操作,因此可得:
该系统的最大I/O传输速率为:2×480+20×11=1180MB/秒。
18.答:磁盘以7200转/分钟的速度旋转,表示一个7200(转/分钟)的硬盘,每旋转一周所需时间为60×1000/7200=8.33毫秒,即8.33毫秒之内,每个磁道都可以读到。
总的磁道数为:26310×16=420960。
读取所有磁道需要的时间为:420960×8.33=3506597毫秒。
总的寻道时间为:(26310-1)×1=26309毫秒。
读整个磁盘需要的时间为:3506597+26309=3532906毫秒。
19.答:用户程序通过陷入指令以系统调用的方式向CPU提出通道I/O请求时,CPU执行“启动I/O”指令去启动通道,如启动成功,则通道从内存指定位置取出通道程序来控制外设,实现数据传送。当数据传送正常结束,或者因为设备故障或设备特殊情况(如硬件故障、缺纸等)造成的操作异常结束时,通道向CPU发出中断请求,等待CPU响应处理。CPU响应中断,处理通道结束事件,并从CSW中得到有关通道状态,若为正常结束,执行正常结束,中断服务程序;否则,执行错误处理中断服务程序。
20.答:数据传输率=7200转/分钟×160扇/转×512B/扇=576000KB/分钟=9600KB/秒
21.答:由题目可知:延迟时间为100毫秒,传输时间为25毫秒;磁盘访问时间=寻道时间+延迟时间+传输时间。
1)整理前的寻道时间为:13×6=78毫秒,则磁盘访问时间为:78+100+25=203毫秒。因此,可得读取一个100块的文件需要的时间为:100×203=20300毫秒。
2)整理后的寻道时间为:2×6=12毫秒,则磁盘访问时间为:12+100+25=137毫秒。因此,可得读取一个100块的文件需要的时间为:100×137=13700毫秒。
22.答:1)采用先来先服务算法:
磁头臂响应请求的移动顺序为:20、44、40、4、80、12、76。
移动臂移动的总量为:57+24+4+36+76+68+64=329。
花费的总时间为:329×5=1645毫秒。
2)采用最短寻道时间优先算法:
磁头臂响应请求的移动顺序为:76、80、44、40、20、12、4。
移动臂移动的总量为:1+4+36+4+20+8+8=81。
花费的总时间为:81×5=405毫秒。