计算机操作系统(第三版 汤小丹等)课后习题答案(全) 联系客服

发布时间 : 星期五 文章计算机操作系统(第三版 汤小丹等)课后习题答案(全)更新完毕开始阅读670bcb8d84868762caaed57d

答:接收和识别命令;数据交换;标识和报告设备状态;地址识别;数据缓冲;差错控制。 3.什么是字节多路通道?什么是数组选择通道和数组多路通道?

答:(1)字节多路通道。按字节交叉方式工作的通道。通常含有许多非分配型子通道,数 量从几十到数百个,每个子通道连接一台I/O 设备,控制其I/O 操作。子通道按时间片轮 转方式共享主通道。

(2)数组选择通道。按数组方式传送数据,传输速率很高,每次只允许一个设备数据。

(3)数组多路通道。将数组选择通道传输速率高和字节多路通道的各子通道分时并行操作的优点结合而成。含有多个非分配型子通道,具有很高的数据传输率和通道利用率。 4.如何解决因通道不足而产生的瓶颈问题?

答:解决问题的有效方法是增加设备到主机间的通路而不增加通道,把一个设备连到多个控制器上,控制器又连到多个通道上,这种多通路方式解决了“瓶颈”问题,提高了系统可靠性,个别通道或控制器的故障不会使设备和存储器之间没有通路。 5.试对VESA 及PCI两种总线进行比较。

答:VESA总线的设计思想是以低价占领市场。总线带宽32位,最高传输速率132Mb/s。 广泛用于486微机。缺点是能连接的设备数仅为2~4 台,控制器中无缓冲,难于适应处理 器速度的提高,不支持Pentium机。

PCI总线在CPU和外设间插入了复杂的管理层,协调数据传输和提供一致接口。管理 层中配有数据缓冲,放大了线路的驱动能力,最多支持10种外设,支持高时钟频率的CPU 运行,最大传输速率132Mb/s。可连接ISA、EISA 等传统总线,又支持Pentium的64 位系统,是基于奔腾等新一代微处理器而发展的总线。 6.试说明推动I/O控制发展的主要因素是什么?

答:推动I/O 控制发展的主要动力在于尽量减少主机对I/O 控制的干预,把主机从繁杂的I/O控制事务中解脱出来,用更多的时间和精力去完成其数据处理任务。同时,中断机制在计算机系统中的引入、DMA 控制器的出现和通道研制的成功使I/O 控制的发展具备了技术支持和成为可能。

7.有哪几种I/O控制方式?各适用于何种场合? 答:共有四种I/O 控制方式。

(1)程序I/O 方式:早期计算机无中断机构,处理机对I/O设备的控制采用程序I/O方式或称忙等的方式。

(2)中断驱动I/O 控制方式:适用于有中断机构的计算机系统中。

(3)直接存储器访问(DMA)I/O 控制方式:适用于具有DMA控制器的计算机系统中。

33

(4)I/O 通道控制方式:具有通道程序的计算机系统中。 8.试说明DMA 的工作流程。

答:以从磁盘读入数据为例,说明DMA的工作流程。当CPU要从磁盘读入数据块时,先向磁盘控制器发送一条读命令。该命令被送到命令寄存器CR中。同时还发送本次要读入数据的内存起始目标地址,送入内存地址寄存器MAR;本次要读数据的字节数送入数据计数器DC,将磁盘中的源地址直接送DMA控制器的I/O 控制逻辑上。然后启动DMA 控制器传送数据,以后CPU 便处理其它任务。整个数据传送过程由DMA控制器控制。下图为DMA方式的工作流程图。

9.引入缓冲的主要原因是什么? 答:引入缓冲的主要原因是:

(1)缓和CPU与I/O 设备间速度不匹配的矛盾

(2)减少对CPU的中断频率,放宽对中断响应时间的限制 (3)提高CPU与I/O 设备之间的并行性

10.在单缓冲情况下,为什么系统对一块数据的处理时间为max(C,T)+M ?

答:在块设备输入时,先从磁盘把一块数据输入到缓冲区,耗时为T;然后由操作系统将缓冲区数据送给用户区,耗时M;接下来由CPU 对块数据进行计算,耗时C。在单缓冲情况下,磁盘把数据输入到缓冲区的操作和CPU 对数据的计算过程可以并行展开,所以系统对每一整块数据的处理时间为max(C, T) + M。

11.为什么在双缓冲情况下,系统对一块数据的处理时间为max(T,C)?

答:写入者花费时间T 将数据写满一个缓冲区后再写另一个缓冲区;读出者花费时间M 将一个缓冲区数据送到用户区后再传送另一个缓冲区数据,计算者读出用户区数据进行处理。由

34

于将数据从缓冲区传到用户区操作必须与读用户区数据处理串行进行,而且可以与从外存传送数据填满缓冲区的操作并行。因此耗时大约为max(C+M,T)。考虑M 是内存数据块的移动耗时非常短暂可以省略,因此近似地认为系统对一块数据处理时间为max(C,T)。

12.试绘图说明把多缓冲用于输出时的情况。 答:多缓冲用于输出的示意图如下:

13.试说明收容输入工作缓冲区和提取输出工作缓冲区的工作情况。 答:

① 收容输入工作缓冲区的工作情况为:在输入进程需要输入数据时,调用GetBuf(EmptyQueue)过程,从EmptyQueue队列的队首摘下一个空缓冲区,作为收容输入工作缓冲区Hin。然后把数据输入其中,装满后再调用PutBuf(InputQueue, Hin)过程,将该缓冲区挂在输入队列InputQueue的队尾。

② 提取输出工作缓冲区的工作情况为:当要输出数据时,调用GetBuf(OutputQueue)过程,从输出队列的队首取得一装满输出数据的缓冲区作为提取输出工作缓冲区Sout。在数据提取完后,再调用PutBuf(EmptyQueue, Sout)过程,将该缓冲区挂到空缓冲队列EmptyQueue的队尾。

14.何谓安全分配方式和不安全分配方式? 答:

① 安全分配方式是指每当进程发出I/O 请求后,便进入阻塞状态,直到其I/O 操作完成时才被唤醒。在采用这种分配策略时,一旦进程已获得某种设备资源后便阻塞,使它不可能再请求任何资源,而在它运行时又不保持任何资源。这种分配方式已经摒弃了造成死锁的“请求和保持”条件,分配是安全的。缺点是进程进展缓慢,CPU与I/O 设备串行工作。

35

②不安全分配方式是指进程发出I/O 请求后仍继续执行,需要时又可发出第二个I/O 请求、第三个I/O 请求。仅当进程请求的设备已被另一个进程占有时,进程才进入阻塞状态。优点是一个进程可同时操作多个设备,进程推进迅速。缺点是分配不安全,可能具有“请求和保持”条件,可能造成死锁。因此,在设备分配程序中需增加一个功能,用于对本次的设备分配是否会发生死锁进行安全性计算,仅当计算结果表明分配安全的情况下才进行分配。 15.为何要引入设备独立性?如何实现设备独立性?

答:现代操作系统为了提高系统的可适应性和可扩展性,都实现了设备独立性或设备无关性。基本含义是应用程序独立于具体使用的物理设备,应用程序以逻辑设备名请求使用某类设备。实现了设备独立性功能可带来两方面的好处:(1)设备分配时的灵活性;(2)易于实现I/O 重定向。

为了实现设备的独立性,应引入逻辑设备和物理设备概念。在应用程序中,使用逻辑设备名请求使用某类设备;系统执行时是使用物理设备名。鉴于驱动程序是与硬件或设备紧密相关的软件,必须在驱动程序之上设置一层设备独立性软件,执行所有设备的公有操作、完成逻辑设备名到物理设备名的转换(为此应设置一张逻辑设备表)并向用户层(或文件层)软件提供统一接口,从而实现设备的独立性。

16.在考虑到设备的独立性时,应如何分配独占设备?

答:在考虑到设备的独立性时,应按如下步骤来分配独占设备: (1) 进程以逻辑设备名提出I/O请求。

(2) 根据逻辑设备表获得I/O请求的逻辑设备对应物理设备在系统设备表中的指针。 (3) 检索系统设备表,找到属于请求类型、空闲可用且分配安全设备的设备控制表,将对应 设备分配给请求进程;未找到则等待等待唤醒和分配。

(4) 到设备控制表中找出与其相连接的控制器的控制器控制表,根据状态字段判断是否忙 碌,忙则等待;否则将该控制器分配给进程。

(5) 到该控制器的控制器控制表中找出与其相连接的通道的通道控制表,判断通道是否忙 碌,忙则等待;否则将该通道分配给进程。

(6) 只有在设备、控制器和通道三者都分配成功时,这次的设备分配才算成功,然后便可启 动设备进行数据传送。

17.何谓设备虚拟?实现设备虚拟时所依赖的关键技术是什么? 答:设备虚拟是指把独占设备经过某种技术处理改造成虚拟设备。

可虚拟设备是指一台物理设备在采用虚拟技术后,可变成多台逻辑上的虚拟设备,则可虚拟设备是可共享的设备,将它同时分配给多个进程使用,并对这些访问该物理设备的先后次序进行控制。

18.试说明SPOOLing 系统的组成。

答:SPOOLing 系统由输入井和输出井、输入缓冲区和输出缓冲区、输入进程 SPi 和输出进

36