操作系统概念 第七版 课后题 答案 联系客服

发布时间 : 星期六 文章操作系统概念 第七版 课后题 答案更新完毕开始阅读106c56f3770bf78a65295455

C.如果驻留页面只有一个,系统如何决定 D.如果没有空闲帧,系统如果决定

答:A.在这种情况下,空闲帧中的一个页面被替换到磁盘上,为驻留页面创建一个空间,再

转移到空闲帧里,浏览页面时,又被称动到驻留页面上。

B.引进一套驻留页面,并将页面搬进空闲帧 C.系统在空闲帧里使用页置换法通常是LRU算法 D.系统进行FIFO算法

9.10问:假设一个具有下面时间度量利用率的请求调页系统:

CPU利用率20%,分页磁盘 97.7%,其他I/O设备,5%

说明下面哪一个(可)能提高CPU的利用率,为什么? A安装一个更快的CPU B安装一个更大的分页磁盘 C提高多道程序设计程序 D降低多道程序设计程度 E安装更多内存

F安装一个更快的硬盘,或对多个硬盘使用多个控制器 G对页面调度算法添加预取页 H增加页面大小。

答:该系统显然花费了许多时间进行分页,显示过度分配的内存,如果多级程序水平减少驻

地进程,将页面错误变少和提高CPU利用率。另一种方式来提高利用率是获得更多的物理内存或更快的分页鼓。

ABC都不行,D可以

E.可能提高CPU利用率为更多页面保持驻地,而不需要分页或磁盘。

F.另一个改进,因为磁盘的瓶颈是删除更快的响应,和更多的磁盘容量,CPU将会获得更多的数据传输速度

G.CPU将获得更快的数据传输率,所以更多地被使用。如果分页服从预调(即一些访问顺序)这只是一个方面。

H.增加页面大小将导致减少页面错误,如果数据进行是随机的,则分页可以随之,因为较少页面可保存在内存上,更多的数据转移到页面错误上,这种变化可以减少CPU利用率或者增加CPU利用率。

9.11 假设一台机器使用一级间接引用方法提供可以访问内存位置的指令。当一个程序的所有页未驻留,程序的第一条指令是一个间接内存load操作时,将会出现什么页错误?当操作系统正在使用一个单进程帧分配技术,只有两个页被分配至此进程时,将会发生什么? Answer:

出现以下页错误:访问指令的页错误,访问包含一个指向目标内存位置指针的内存位置的页的错误,访问目标内存位置的页错误。第三页置换包含指令的页,操作系统将产生三个页错误。如果需要再次取出指令,重复被陷指令,那么,页错误将无限期地继续下去。如果指令在寄存器中缓存,那么将能在第三页错误后完全执行。

9.12 假设你的置换策略(在分页系统中)是有规律地检查每个页并将最近一次检测后没有再被引用的页丢弃。与LRU或二次机会置换算法相比,使用这种策略有哪些好处和坏处? Answer:

这种算法可以靠引用位的使用来实现。每次检查过后,置位为0;如果页被引用,置位为1。然后,该算法将从自上次检查后未使用过的页中选择任意页来置换。

这种算法的优点是算法比较简单——只需保持一个引用位。这种算法的缺点是,只能使用很短的时间帧来决定是否置换一页,从而忽略了局部性。例如,一个页可能是一个进程工作集合的一部分,但因为自上次检查后未被引用而被置换。(即不是所有工作集合中的页可以在检查之间被引用)

9.13 一个页面置换算法应使发生页错误的次数最小化。怎样才能通过将使用频率高的页平均分配到整个内存而不只是竞争少数几个页帧页来达到这种最小化。可以对每个页帧设置一个计数器来记录与此帧相关的页数。那么当置换一个页时,就可以查找计数器值最小的页帧 Answer:

a.定义一个页面置换算法解决问题:

Ⅰ.计数器初始值——0;

Ⅱ.计数器值增加——每当新的一页与此帧相关联;

Ⅲ.计数器值减少——每当与此帧相关联的一个页不再需要;

Ⅳ.怎样选择要被置换的页——找到带有最小计数器值的帧。使用先进先出算法

解除其关系

b.14个页错误 c.11个页错误

9.14 假设一个请求调页系统具有一个平均访问和传输时间为20ms的分页磁盘。地址转换是通过在主存中的页表来进行的,每次内存访问时间为1μs。这样,每个通过页表进行的内存引用都要访问内存两次。为了提高性能,加入一个相关内存,当页表项在相关内存中时,可以减少内存引用的访问次数。

假设80%的访问发生在相关内存中,而且剩下中的10%(总量的2%)会导致页错误。内存的有效访问时间是多少? Answer:

有效访问时间= (0.8) × (1 μsec)+ (0.1) × (2 μsec) + (0.1) × (5002 μsec)

= 501.2 μsec = 0.5 millisec

9.15 颠簸的原因是什么?系统怎样检测颠簸?一旦系统检测到颠簸,系统怎样做来消除这个问题? Answer:

分配的页数少于进程所需的最小页数时发生颠簸,并迫使它不断地页错误。该系统可通过对比多道程序的程度来估计CPU利用率的程度,以此来检测颠簸。降低多道程序的程度可以消除颠簸。

9.16 一个进程可能有两个工作集合吗,一个代表数据,另一个代表代码?请解释。 Answer:

是的,事实上,许多处理器因为这个原因提供两个TLB。举个例子,一个进程访问的代码可长时间地保留同样的工作集合。然而,代码访问的数据可能改变,这样为工作集合的数据访问映射了一个改变。

9.17 假设使用参数Δ定义工作集合模型下的工作集合窗口。设置Δ为一个较小值,其表示页错误频率和系统中当前正在执行的活动页(非暂停的)进程数量,则影响如何?当设置Δ为一个非常大的值呢? Answer:

当设置Δ为一个较小的值,那么有可能低估一个进程的驻留页集合,允许安排一个进程,即使其所需的所有页未驻留。这可能导致大量的页错误。当设置Δ为较大的值,那么将高估一个进程的驻留集合,这可能阻止许多进程被安排,尽管他们需要的页驻留。然而,一旦一个进程被安排,高估驻留集合后就不可能产生页错误

9.18 假设有一个初始值为1024 kB的段,使用伙伴(Buddy system)系统分配其内存。以图9.27为指导,画出树来说明下列内存请求是如何分配的:

? ? ? ?

请求240字节 请求120字节 请求60字节 请求130字节

下一步,为下列内存释放修改树。只要有可能便执行接合:

? 释放250字节 ? 释放60字节 ? 释放120字节 Answer:

伙伴(Buddy system)系统进行了下列分配:为240字节的请求分配一个256字节段。为120字节的请求分配一个128字节段,为60字节的请求分配一个64字节段,为130字节的请求分配一个256字节段。分配后,下列大小的段是可用的:64 bytes,256 bytes,1K, 2K, 4K, 8K, 16K, 32K, 64K, 128K, 256K, 和 512K。内存释放后,仅剩包含130字节数据的256字节段在使用。下列段将是空