好文档 - 专业文书写作范文服务资料分享网站

操作系统概念第七版习题答案(中文版)完整版 

天下 分享 时间: 加入收藏 我要投稿 点赞

4.将文件映射到二级存储器上

5.在稳定(非易失的)的存储媒介上备份文件。

2.6在设备和文件操作上用相同的系统调用接口的好处与不足是什么?

Answer:每一个设备都可以被得到只要它是一个在文件系统的文件。因此大多数内核通过文件接口处理设备,这样相对容易,加一个新的设备通过执行硬件确定代码来支持这种抽象的文件接口。因此,这种方式不仅有利于用户程序代码的发展,用户程序代码可以被写入设备和文件用相同的方式,还有利于设备驱动程序代码,设备驱动程序代码可以书面支持规范定义的API.使用相同接口的缺点是很难获得某些设备档案存取的API范围内的功能,因此,结果或者是丢失功能或者是丢失性能。但有些能够被克服通过使用ioctl操作,这个操作为了进程在设备上援引操作提供一个通用接口。

2.7命令解释器的用途是什么?为什么它经常与内核是分开的?用户有可能通过使用由操作系统提供的系统调用接口发展一个新的命令解释器?

Answer:命令解释器从用户或文件中读取命令并执行,一般而言把他们转化成系统调用。它通常是不属于内核,因为命令解释会有所变动。用户能够利用由操作系统提供的系统调用接口开发新的命令解释器。这命令解释器允许用户创建、管理进程和确定它们通信的方法(例如通过管道和文件)。所有的功能都被用户程序通过系统调用来使用,这个也可能有用户开发一个新的命令行解释。

2.8通信的两种模式是什么?这两种模式的优点和缺点是什么?

Answer:通信的两种模式是1)共享内存,2)消息传递。这两种模式的最基本的不同是在它们的性能上。一个内存共享块是通过系统调用创建的。然而,一旦内存共享块在两个或更多的进程间建立,这些进程可以借助内存共享块来通信,不再需要内核的协助。另一方面,当send()和receive()操作被调用时,信息传递通常包含系统调用。因此,因为内核是直接的包含在进程间通信的,一般而言,它的影响比内存共享小。然而,消息传递可以用作同步机制来处理通信进程间的行动。也就是说,send()和receive()段可以用来协调两个通信进程的动作。另一方面,内存共享没有提供这种同步机制的进程。

2.9为什么要把机制和策略区分开来?

Answer:机制和策略必须区分开来,来保证系统能够被很容易的修改。没有两个系统的装置是完全相同的,所以每一个装置都想要把操作系统改为适合自己的。当机制和政策分开时,政策可以随意的改变但机制还是不能改变。这种安排提供了一个更灵活的制度

2.10为什么Java提供了从Java程序调用由C或C++编写的本地方法的能力?举

出一个本地方法有用的例子。

Answer:Java程序的开发是用来作为I/O独立的平台。因此,这种语言没有提供途径给许多特殊的系统资源,例如从I/O设备读取。为了运行一个系统特定的I/O操作,你必须用一种支持这些特性的语言(例如C或C++)写。记住一个Java程序调用由另外一种语言编写的本地方法写将不再结构中立。

2.11有时获得一个分层方法是有困难的如果操作系统的两个部件相互依存。识别一个方案,在这个方案中并不非常清楚如何为两个作用紧密相连的系统部件分层。

Answer:虚拟内存子系统和存储子系统 通常是紧密耦合,并由于以下的相互作用需要精心设计的层次 系统。许多系统允许文件被映射到一个执行进程的虚拟内存空间。另一方面,虚拟内存子系统通常使用存储 系统来提供当前不在内存中的页。此外,在刷新磁盘之前,更新的文件有时会缓冲到物理内存,从而需要认真 协调使用的内存之间的虚拟内存 子系统和文件系统。 2.12采用微内核方法来设计系统的主要优点是什么?在微内核中如何使客户程

序和系统服务相互作用?微内核方法的缺点是什么? Answer:优点主要包括以下几点:

a)增加一个新的服务不需要修改内核

b) 在用户模式中比在内核模式中更安全、更易操作 c) 一个简单的内核设计和功能一般导致一个更可靠的操作系统用户程序和系统服务通过使用进程件的通信机制在微内核中相互作用,例如发送消息。这些消息由操作系统运送。微内核最主要的缺点是与进程间通信的过度联系和为了保证用户程序和系统服务相互作用而频繁使用操作系统的消息传递功能。

2.13模块化内核方法的什么方式与分层方法相似?什么方式与分层方法不同?

Answer:模块化内核方法要求子系统通过创建的一般而言狭隘(从功能方面来说是揭露外部模块)的接口来相互作用。分层内核方法在细节上与分层方法相似。但是,分层内核必须要是有严格排序的子系统,这样的子系统在较低层次中不允许援引业务相应的上层子系统 。在模块化内核方法中没有太多的限制,模式在哪方面是随意援引彼此的是没有任何约束的。

2.14 操作系统设计员采用虚拟机结构的主要优点是什么?对用户来说主要有

什么好处?

Answer:系统是容易被调试的,此外,安全问题也是容易解决的。虚拟机同样为运作体系提供了一个很好的平台,因为许多不同的操作系统只可以在一个物理系统中运行。

2.15为什么说一个JIT编译器对执行一个Java程序是有用的?

Answer:Java是一种解释语言。这就意味着Java虚拟机一次解释一个字节代码。一般来说,绝大多数解释环境是比运行本地二进制慢,因为解释进程要求把每一个命令转化为本地机器代码。一个JIT编译器把字节代码转换成本地机器代码,第一次这种方法是偶然碰到的。这就意味着Java程序作为一个本地用途(当然,JIT的这种转换过程是要花费时间的,但并没有像字节代码花费的这么多)是非常重要的一种运行方式。此外,JIT存储器编译代码以便能够在下一次需要时使用。一个是被JIT运行的而不是传统的一般的解释运行的Java程序是非常快的。

2.16在一个系统(例如VWware)中,来宾作业系统和主机操作系统的关系是什

么?在选择主机操作系统时哪些因素需要考虑?

Answer:一个来宾作业系统提供它的服务通过映射到有主机操作系统提供的功能上。一个主要的事情需要被考虑,为了能够支持与来宾作业系统相联系的功能,选择的主机操作系统,从系统调用接口而言,是否足够一般。

2.17实验性的综合操作系统在内核里有一个汇编器。为了优化系统调用的性能,

内核通过在内核空间内汇编程序来缩短系统调用在内核必须经过的途径。这是一种与分层设计相对立的方法,经过内核的途径在这种设计中被延伸了,使操作系统的构造更加容易。分别从支持和反对的角度来综合设计方式对讨论这种内核设计和系统性能优化的影响。

Answer:综合是令人钦佩的由于这种性能通过即时复杂化取得了成功。不幸的是,由于代码的流动很难在内核中调试问题。这种复杂化是系统的详细的表现,让综合很难port(一个新的编译器必须写入每一种架构)。 3.1 论述短期,中期和长期调度之间的区别.

Answer:a.短期调度:在内存作业中选择就绪执行的作业,并为他们分配CPU。 b.中期调度:作为一种中等程度的调度程序,尤其被用于分时系统,一个交换方案的实施,将部分运行程序移出内存,之后,从中断处继续执行。 c.长期调度(作业调度程序):确定哪些作业调入内存以执行.

它们主要的不同之处是它们的执行的频率。短期调度必须经常调用一个新进程,由于在系统中,长期调度处理移动的作业时,并不频繁被调用,可能在进程离开系统时才被唤起。

3.2 问:描述一下内核在两个进程间进行上下文功换的动作.

Answer:总的来说,操作系统必须保存正在运行的进程的状态,恢复进程的状态。保存进程的状态主要包括CPU寄存器的值以及内存分配,上下文切换还必须执行一些确切体系结构的操作,包括刷新数据和指令缓存。

(书中答案)进程关联是由进程的PCB来表示的,它包括CPU寄存器的值和内存管理信息等。当发生上下文切换时,内核会将旧进程的关联状态保存在其 PCB中,然后装入经调度要执行的新进程的已保存的关联状态。

3.3考虑RPC机制。考虑的RPC机制。描述不可取的情况下可能出现或者不执行的”最多一次”或”到底一旦“语义。说明在没有这些保障的情况下,可能使用的一种机制。

Answer:如果一个RPC机制无法支持无论是“最多一次” 或“至少一次”的语义,那么RPC服务器不能保证远端程序不会引起多个事件的发生。试想,如果一个远端程序在一个不支持这些语义的系统上从银行账户中撤回投资的资金。很可能一个单一调用的远程过程会导致多种服务器的撤回。

如果一个系统不能支持这两种语义,那么这样一个系统只能安全提供远程程序,这些远程程序没有改变数据,没有提供时间敏感的结果,用我们的银行账户做例,我们当然需要“最多一次” 或“至少一次”的语义执行撤销(或存款)。然而,账户余额成其它账户信息的查询,如姓名,地址等,不需要这些语义。

3.4 图表3.24里显示的程序,说明A行将会输出什么?

Answer:当控制回到父进程时,它的值会保持在5,而子进程将更新并拷贝这个值。

3.5 问:下面设计的好处和坏处分别是什么?系统层次和用户层次都要考虑到.

A,对称和非对称通信 B,自动和显式缓冲

C,复制发送和引用发送

D,固定大小和可变大小消息

Answer:A.对称和非对称通信:对称通信的影响是它允许发送者和接收者之间有一个集合点。缺点是阻塞发送时,不需要集合点,而消息不能异步传递。因此,消息传递系统,往往提供两种形式的同步。

B.自动和显式缓冲:自动缓冲提供了一个无限长度的队列,从而保证了发送者在复制消息时不会遇到阻塞,如何提供自动缓存的规范,一个方案也许能保存足够大的内存,但许多内存被浪费缓存明确指定缓冲区的大小。在这种状况下,发送者不能在等待可用空间队列中被阻塞。然而,缓冲明确的内存不太可能被浪费。

C.复制发送和引用发送:复制发送不允许接收者改变参数的状态,引用发送是允许的。引用发送允许的优点之一是它允许程序员写一个分布式版本的一个集中的应用程序。Java’s RMI 公司提供两种发送,但引用传递一个参数需要声明这个参数是一个远程对象。

D.固定大小和可变大小消息:涉及的太多是有关缓冲问题,带有定长信息,一个拥有具体规模的缓冲课容纳已知数量的信息缓冲能容纳的可变信息数量是未知的。考虑 Windows 2000 如何处理这种情况。带有定长信息(<256bytes),信息从发送者的地址空间被复制至接受进程的地址空间。更大的信息(如变长信息)使用共享内存传递信息。

第四章线程

4.1举两个多线程程序设计的例子来说明多线程不比单线程方案提高性能

答:1)任何形式的顺序程序对线程来说都不是一个好的形式。例如一个计算个人报酬的

程序。

2)另外一个例子是一个“空壳”程序,如C-shell和korn shell。这种程序

必须密切检测其本身的工作空间。如打开的文件、环境变量和当前工作目录。

4.2描述一下线程库采取行动进行用户级线程上下文切换的过程

答:用户线程之间的上下文切换和内核线程之间的相互转换是非常相似的。但它依赖于线程库和怎样把用户线程指给内核程序。一般来说,用户线程之间的上下文切换涉及到用一个用户程序的轻量级进程(LWP)和用另外一个线程来代替。这种行为通常涉及到寄存器的节约和释放。 4.3在哪些情况下使用多内核线程的多线程方案比单处理器系统的单个线程方案提供更好的

性能。 答:当一个内核线程的页面发生错误时,另外的内核线程会用一种有效的方法被转换成使用交错时间。另一方面,当页面发生错误时,一个单一线程进程将不能够发挥有效性能。因此,在一个程序可能有频繁的页面错误或不得不等待其他系统的事件的情况下,多线程方案会有比单处理器系统更好的性能。

4.4以下程序中的哪些组成部分在多线程程序中是被线程共享的? a.寄存值 b.堆内存 c.全局变量 d.栈内存

答:一个线程程序的线程共享堆内存和全局变量,但每个线程都有属于自己的一组寄存值和栈内存。

4.5一个采用多用户线程的多线程方案在多进程系统中能够取得比在单处理器系统中更好

的性能吗?答:一个包括多用户线程的多线程系统无法在多处理系统上同时使用不同的处理器。操作系统只能看到一个单一的进程且不会调度在不同处理器上的不同进程的线程。因此,多处理器系统执行多个用户线程是没有性能优势的。 4.6就如4.5.2章节描述的那样,Linux没有区分进程和线程的能力。且Linux线程都

是用相同的方法:允许一个任务与一组传递给clone()系统调用的标志的进程或线程。但许多操作系统,例如windows XP和Solaris,对进程和线程都是一视同仁。基本上,这种使用notation的系统,一个进程的数据结构包括一个指向属于进程的不同线程的指针。区别建模过程和在内核中线程的两种方法。 答:一方面,进程和线程被视为相似实体的系统中,有些系统代码可以简化。例如,一个调度器可以在平等的基础上考虑不同的进程和线程,且不需要特殊的代码,在调度中审查有关线程的进程。另一方面,这种统一会使进程资源限制更加困难。相反,一些额外的复杂性被需要,用来确定哪个线程与哪个进程一致和执行重复的计数任务。

4.7由4.11给出的程序使用了Pthread的应用程序编程接口(API),在程序的第c行和

第p行分别会输出什么?

答:c行会输出5,p行会输出0.

4.8考虑一个多处理器系统和用多线程对多线程模式编写的多线程程序。让程序中的用户线程数量多于系统中的处理器的数量,讨论下列情况下的性能意义: a.由程序分配的内核线程的数量比处理器少

b. 由程序分配的内核线程的数量与处理器相同

c. 由程序分配的内核线程的数量大于处理器数量但少于用户线程的数量

答:当内核线程的数量少于处理器时,一些处理器将仍然处于空闲状态。因为,调度图中

只有内核线程的处理器,而不是用户线程的处理器。当程序分配的内核线程的数量与处理器相同时,那么有可能所有处理器将同时使用。然而,当一个内核块内的内核(因页面错误或同时援引系统调用)相应的处理器将闲置。当由程序分配的内核线程的数量大于处理器数量时,封锁一个内核线程并调出,换入另一个准备执行的内核线程。因此,增加多处理器系统的利用率。

第五章 CPU调度

5.1为什么对调度来说,区分I/0限制的程序和CPU限制的程序是重要的?

答:I/0限制的程序有在运行I/O操作前只运行很少数量的计算机操作的性质。这种程序一般来说不会使用很多的CPU。另一方面,CPU限制的程序利用整个的时间片,且不做任何阻碍I/O操作的工作。因此,通过给I/O限制的程序优先权和允许在CPU 限制的程序之前运行,可以很好的利用计算机资源。 5.2讨论以下各对调度标准在某种背景下会有的冲突 a.CPU利用率和响应时间

操作系统概念第七版习题答案(中文版)完整版 

4.将文件映射到二级存储器上5.在稳定(非易失的)的存储媒介上备份文件。2.6在设备和文件操作上用相同的系统调用接口的好处与不足是什么?Answer:每一个设备都可以被得到只要它是一个在文件系统的文件。因此大多数内核通过文件接口处理设备,这样相对容易,加一个新的设备通过执行硬件确定代码来支持这种抽象的文件接口。因此,这种方式不仅有利于用户程序代
推荐度:
点击下载文档文档为doc格式
0p72c1oe807g2499hhsu
领取福利

微信扫码领取福利

微信扫码分享