计算机操作系统(第四版)汤小丹课后答案完整版 下载本文

(3)UNIX 方式。未运行页面从文件区调入。曾经运行过但被换出页面,下次从对换区调入。UNIX系统允许页面共享,某进程请求的页面有可能已调入内存,直接使用不再调入。24.在请求分页系统中,常采用哪几种页面置换算法?

答:采用的页面置换算法有:最佳置换算法和先进先出置换算法,最近最久未使用(LRU)置换算法,Clock置换算法,最少使用置换算法,页面缓冲算法等。 25.在请求分页系统中,通常采用哪种页面分配方式?为什么?

答:固定分配方式是基于进程的类型(交互型)或根据程序员、系统管理员的建议,为每个进程分配固定页数的内存空间,整个运行期间不再改变;采用可变分配方式有全局置换和局部置换两种,前者易于实现,后者效率高。

26.在一个请求分页系统中,采用LRU 页面置换算法时,假如一个作业的页面走向为4 , 3 , 2 ,1 , 4 , 3 , 5 , 4 ,3 , 2 , 1 ,5,当分配给该作业的物理块数M分别为3和4时,试计算访问过程中所发生的缺页次数和缺页率 ? 比较所得结果?(参考答案有错)

答:当分配给该作业的物理块数M为3时,缺页7次,缺页率: 7/12=0.583; 当分配给该作业的物理块数M为4时,缺页4次,缺页率: 4/12=0.333. -------以上解答出错。正确解法见下面:

答:当分配给该作业的物理块数M为3时,缺页9次,缺页率: 9/12=3/4; 当分配给该作业的物理块数M为4时,缺页10次,缺页率: 10/12=5/6.

27.实现LRU算法所需的硬件支持是什么?

答:需要寄存器和栈等硬件支持。寄存器用于记录某进程在内存中各页的使用情况,栈用于 保存当前使用的各个页面的页面号。

28.试说明改进型 Clock 置换算法的基本原理.

答:因为修改过的页面在换出时付出的开销比未被修改过的页面大,在改进型Clock 算法 中,既考虑页面的使用情况,还要增加置换代价的因素;在选择页面作为淘汰页面时,把同 时满足未使用过和未被修改作为首选淘汰页面。 29.说明请求分段系统中的缺页中断处理过程。 答:请求分段系统中的缺页中断处理过程描述如下:

(1)根据当前执行指令中的逻辑地址查页表,判断该页是否在主存储器中

(2)该页标志为“0”形成缺页中断,中断装置通过交换PSW让操作系统的中断处理程序占用处理器。

(3)操作系统处理缺页中断处理的办法是查主存分配表找一个空闲的主存块,查页表找出该页在磁盘上位置,启动磁盘读出该页信息。 (4)把从磁盘上读出的信息装入找到的主存块中。

(5)当页面住处被装入主存后,应修改页表中对应的表目,填上该页所占用的主存块把标志置为“1”,表示该页已在主存储器中

(6)由于产生缺页中断时的那条指令并没执行完,所以在把页面装入之后应重新执行被中断指令。

请求分段系统中的缺页中断处理过程如下图所示:

30.如何实现分段共享 ?

答:在每个进程的段表中,用相应的表项指向共享段在内存中起始地址;配置相应的数据结构作为共享段表,在段表项中设置共享进程计数Count,每调用一次该共享段,Count值增 1,每当进程释放一个共享段时,Count减1,若减为0,则系统回收该共享段的物理内存,取消在共享段表中该段对应的表项;共享段应给不同的进程以不同的存取权限;不同的进程可以使用不同的段号去共享该段。 第五章

1.试说明设备控制器的组成。

答:由设备控制器与处理机的接口,设备控制器与设备的接口与I/O逻辑组成。 2.为了实现CPU与设备控制器间的通信,设备控制器应具备哪些功能?

答:接收和识别命令;数据交换;标识和报告设备状态;地址识别;数据缓冲;差错控制。 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控制器的计算机系统中。 (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将一个缓冲区数据送到用户区后再传送另一个缓冲区数据,计算者读出用户区数据进行处理。

由于将数据从缓冲区传到用户区操作必须与读用户区数据处理串行进行,而且可以与从外存传送数据填满缓冲区的操作并行。因此耗时大约为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设备串行工作。 ②不安全分配方式是指进程发出I/O 请求后仍继续执行,需要时又可发出第二个I/O 请求、第三个I/O请求。仅当进程请求的设备已被另一个进程占有时,进程才进入阻塞状态。优点是一个进程可同时操作多个设备,进程推进迅速。缺点是分配不安全,可能具有“请求和保持”条件,可能造成死锁。因此,在设备分配程序中需增加一个功能,用于对本次的设备分配是否会发生死锁进行安全性计算,仅当计算结果表明分配安全的情况下才进行分配。 15.为何要引入设备独立性?如何实现设备独立性?

答:现代操作系统为了提高系统的可适应性和可扩展性,都实现了设备独立性或设备无关性。基本含义是应用程序独立于具体使用的物理设备,应用程序以逻辑设备名请求使用某类设备。