(1) 简单叙述设备管理的任务和功能。
解:
设备管理的主要任务包括:
为了完成上述任务,设备管理应具有下述功能:
(2) 简单比较一下各种I/O控制方式的优缺点。
解:
I/O控制方式有四种,即程序直接控制方式、中断控制方式、DMA方式和通道控制方式。它们各自的优缺点叙述如下:
(3) 为什么要引入缓冲技术,其基本实现思想是什么?
解:
缓冲技术是用来在两种不同速度的设备之间传输信息时平滑传输过程的常用手段。在操作系统的设备管理中,引入缓冲技术的主要原因可归结为以下几点。
缓冲技术的实现思想是在CPU和外设之间设立缓冲,用以暂存CPU和外设之间交换的数据,从而缓和CPU与外设速度不匹配所产生的矛盾。缓冲的实现方法有两种:一种实现方法是采用硬件缓冲器,但由于这种方法成本太高,除一些关键部位外,一般情况下不采用硬件缓冲器;另一种实现方法是在内存划出一块存储区,专门用来临时存放输入/输出数据,这个区域称为缓冲区。
(4) 什么是SPOOLing系统,如何利用SPOOLing系统实现打印机的虚拟分配?
解:
SPOOLing是外围设备同时联机操作,又称为假脱机输入/输出操作。SPOOLing技术可将一台物理I/O设备虚拟为多台逻辑I/O设备,从而允许多个用户共享一台物理I/O设备。
SPOOLing技术是对脱机输入、输出系统的模拟,因此,它必须建立在具有多道程序功能的操作系统上,而且还应该有高速随机外存的支持,这通常是采用磁盘存储技术。
SPOOLing系统通常由以下3部分组成:
(5) 简单描述I/O软件的设计原则以及各层的功能。
解:
I/O软件设计时主要考虑以下几个问题:
操作系统通常把I/O软件组织成如下4个层次。
(6) 为什么要引入设备独立性,如何实现设备独立性?
解:
设备独立性又称为设备无关性。它指的是应用程序在使用设备进行I/O时,使用的是逻辑设备,而系统在实际执行时使用的是物理设备,由操作系统负责逻辑设备与物理设备的映射。引入设备独立性可以使设备的分配具有极大的灵活性,并易于实现I/O重定向。
系统为每个进程设置一张逻辑设备表LUT。当某进程用逻辑名来请求设备时,系统查阅系统设备表SDT,为它分配相应的可用物理设备。系统将这种用户逻辑设备与系统物理设备的映射建立在该用户的LUT中,并将该物理设备的驱动程序入口地址填入LUT中。以后,该进程利用逻辑设备名请求I/O操作时,系统通过查找LUT即可找到物理设备及其驱动程序。
(7) 设备分配中会出现死锁吗,为什么?
解:
设备分配中会出现死锁。因为在不安全分配方式中,进程在发出I/O请求后仍继续运行,需要时则可以发出第二个、第三个I/O请求等。仅当进程所请求的设备已被另一个进程占用时,请求进程才进入阻塞状态。这种分配方式的优点是,一个进程可同时使用多个设备,使进程推进迅速。其缺点是分配不安全,因为它可能具备“请求和保持”条件,从而可能造成死锁。因此,在设备分配时,还应对本次的设备分配是否会发生死锁进行安全性检查,仅当分配是安全的情况下才可以进行设备分配。
(8) 试说明DMA的工作流程。
解:
(9) 什么是中断,简单叙述中断的处理过程?
解:
中断是指计算机在执行期间,系统内发生任何非寻常的或非预期的急需处理事件,使得CPU暂时中断当前正在执行的程序而转去执行相应的事件处理程序,待处理完中断程序之后又返回原来被中断处继续执行或调度新进程的过程。
中断处理的过程如下:
(10) 试说明设备驱动程序应完成哪些功能?
解:
设备驱动程序是请求I/O的进程与设备控制器之间的一个通信程序,主要功能有:
(11) 什么是设备的安全分配方式和不安全分配方式?
解:
安全分配是一种“摈弃请求和保持条件”的资源分配方式。在这种方式中,一个进程一旦获得请求资源,该进程就由运行状态变为阻塞状态,使它不可能再请求新的资源。相反,当该进程开始运行时(如I/O完成后被唤醒),它已不占有资源。因此,这种分配摈弃了造成死锁的一个条件,分配是安全的。这种分配方式的缺点是进程推进速度慢,因为CPU和I/O是串行的。
不安全的分配方式是指进程在提出资源请求时系统不做任何检查,将资源分配给它,当它再提出第2个资源请求时,若请求的资源已被其它进程占用,该进程不得不被阻塞等待,那么我们说该进程具备了“请求和保持”的条件。具备这种条件的进程可能产生死锁,因此说,这种分配是不安全的分配。
(12) I/O软件一般分为4个层次:用户层I/O软件、设备无关软件、设备驱动程序、I/O中断处理程序。请说明下列工作各由哪一层I/O软件来完成:
①为了读盘,计算磁道、扇区和磁头;
②维护最近使用的盘块所对应的缓冲区;
③把命令写到设备寄存器中;
④检查用户使用设备的权限;
⑤把二进制整数转换成ASCⅡ码并打印。
解:
①、③、④和⑤属于设备驱动程序的职责,②属于设备无关软件层的职责,
(13) 在某个系统的某个运行时刻,有如下表示的磁盘访问的请求序列,假设磁头当前在15柱面,磁臂方向为从小到大。
15、20、9、16、24、13、29
请给出最短查找时间优先算法和电梯调度算法的柱面移动数,并分析为何通常情况下,操作系统并不采用效率更高的最短查找时间优先算法。
解:
1) 按照最短查找时间优先算法,柱面的访问次序是:
15、16、13、9、20、24、29
令磁臂移动方向从小到大为正向,从大到小的方向为反向,那么,最短查找时间优先算法的柱面移动次数为:1+|-3|+|-4|+11+4+5=28。
2) 按照电梯调度算法,柱面的访问次序是:
15、16、20、24、29、13、9
电梯调度算法的柱面移动数为:1+4+4+5+|-16|+|-4|=34。
3) 从本题给的例子看,最短查找时间优先算法比电梯调度算法的柱面移动数少6。因此说前者的效率更高一些。但是,由于磁头在访问操作中,可能不断有新的柱面请求加入,使磁头忙于应付一些距离较近的柱面请求,冷落了对远距离柱面的响应。长此以往,将可能造成某些远距离柱面处于“饥饿”状态。这就是通常情况下操作系统并不采用最短查找时间优先算法的原因。
(14) 假设有A、B、C和D四个记录存放在磁盘的某个磁道上。该磁道分成4块,每块存放一个记录,其布局如下:
块号 |
1 |
2 |
3 |
4 |
记录号 |
A |
B |
C |
D |
现在要顺序处理这些记录,如果磁盘旋转速度为20ms转一周,处理程序每读出一个记录后花5ms的时间进行处理。试问处理完这4个记录的总时间是多少?为了缩短时间,应该如何优化分布,优化后的处理时间是多少?
解:
由题分析可知,读出一个扇区的时间为5ms(也就是盘片旋转一周的1/4),处理的时间也为5ms。系统处理完记录A后要读记录B必须等待磁盘旋转3个扇区。因此系统处理完记录B需要耗时3´5+5+5=25ms。
其它记录的读出与处理耗时皆如此分析,则优化前总处理耗时T1为:
T1=(5+5)+(5´3+5+5)+(5´3+5+5) +(5´3+5+5)=85ms
为了减少系统的等待时间,可以将记录的存储序列进行优化,优化后的顺序为:A, C, B, D。
优化后处理总时间T2为:
T2=(20/4+5) ´4+5=45ms
(15) 为什么要引入磁盘高速缓存?什么是磁盘高速缓存?
解:
磁盘的I/O速度远低于内存的访问速度,通常要低4~6个数量级。因此,磁盘的I/O已成为计算机系统的性能瓶颈。为了提高磁盘I/O的速度,其中最主要的技术便是采用磁盘高速缓存。
磁盘高速缓存并非通常意义下的内存和CPU之间增设的一个小容量高速存储器,而是指利用内存中的存储空间来暂存从磁盘中读出的一系列盘块中的信息。因此,这里的高速缓存是一组在逻辑上属于磁盘,而物理上驻留在内存中的盘块。高速缓存在内存中可分成两种形式。第一种是在内存中开辟一个单独的存储空间来作为磁盘高速缓存,其大小是固定的,不会受应用程序多少的影响;第二种是把所有未利用的内存空间变为一个缓冲池,供请求分页系统和磁盘I/O共享。
(16) 廉价磁盘冗余阵列是如何提高对磁盘的访问速度和可靠性的?
解:
用一台专门控制磁盘阵列的控制器,统一管理和控制一组磁盘驱动器,这样形成廉价磁盘冗余阵列。