文档库 最新最全的文档下载
当前位置:文档库 › 操作系统 习题答案(中文版)

操作系统 习题答案(中文版)

操作系统  习题答案(中文版)
操作系统  习题答案(中文版)

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

1.1在多道程序和分时环境中,多个用户同时共享一个系统,这种情况导致多种安全问题。a. 列出此类的问题 b.在一个分时机器中,能否确保像在专用机器上一样的安全度?并解释之。

答:a.窃取或者复制某用户的程序或数据;没有合理的预算来使用资源(CPU,内存,磁盘空间,外围设备)b.应该不行,因为人类设计的任何保护机制都会不可避免的被另外的人所破译,而且很自信的认为程序本身的实现是正确的是一件困难的事。

1.2资源的利用问题在各种各样的操作系统中出现。试例举在下列的环境中哪种资源必须被严格的管理。(a)大型电脑或迷你电脑系统(b)与服务器相联的工作站(c)手持电脑

答:(a)大型电脑或迷你电脑系统:内存和CPU资源,外存,网络带宽(b)与服务器相联的工作站:内存和CPU资源(c)手持电脑:功率消耗,内存资源

1.3在什么情况下一个用户使用一个分时系统比使用一台个人计算机或单用户工作站更好?

答:当另外使用分时系统的用户较少时,任务十分巨大,硬件速度很快,分时系统有意义。充分利用该系统可以对用户的问题产生影响。比起个人电脑,问题可以被更快的解决。还有一种可能发生的情况是在同一时间有许多另外的用户在同一时间使用资源。当作业足够小,且能在个人计算机上合理的运行时,以及当个人计算机的性能能够充分的运行程序来达到用户的满意时,个人计算机是最好的,。

1.4在下面举出的三个功能中,哪个功能在下列两种环境下,(a)手持装置(b)实时系统需要操作系统的支持?(a)批处理程序(b)虚拟存储器(c)分时

答:对于实时系统来说,操作系统需要以一种公平的方式支持虚拟存储器和分时系统。对于手持系统,操作系统需要提供虚拟存储器,但是不需要提供分时系统。批处理程序在两种环境中都是非必需的。

1.5描述对称多处理(SMP)和非对称多处理之间的区别。多处理系统的三个优点和一个缺点?

答:SMP意味着所以处理器都对等,而且I/O可以在任何处理器上运行。非对称多处理有一个主处理器控制系统,与剩下的处理器是随从关系。主处理器为从处理器安排工作,而且I/O也只在主处理器上运行。多处理器系统能比单处理器系统节省资金,这是因为他们能共享外设,大容量存储和电源供给。它们可以更快速的运行程序和增加可靠性。多处理器系统能比单处理器系统在软、硬件上也更复杂(增加计算量、规模经济、增加可靠性)

1.6集群系统与多道程序系统的区别是什么?两台机器属于一个集群来协作提供一个高可靠性的服务器的要求是什么?

答:集群系统是由多个计算机耦合成单一系统并分布于整个集群来完成计算任务。另一方面,多道程序系统可以被看做是一个有多个CPU组成的单一的物理实体。集群系统的耦合度比多道程序系统的要低。集群系统通过消息进行通信,而多道程序系统是通过共享的存储空间。为了两台处理器提供较高的可靠性服务,两台机器上的状态必须被复制,并且要持续的更新。当一台处理器出现故障时,另一台处理器能够接管故障处理的功能。

1.7试区分分布式系统(distribute system)的客户机-服务器(client-server)模型与对等系统(peer-to-peer)模型

答:客户机-服务器(client-server)模型可以由客户机和服务器的角色被区分。在这种模型下,客户机向服务器发出请求,然后服务器满足这种请求。对等系统(peer-to-peer)模

型没有这种严格的区分角色,。实际上,在系统中的所有结点被看做是对等的,而且这些结点既可以是客户机也可以是服务器,或者两这都是。也许一个结点从另一个对等结点上请求一个服务,或者,这个结点满足在系统中的另一个结点的请求。比如,一个系统中的结点共享烹饪方法。在客户机-服务器(client-server)模型下,所有方法都被存储在服务器上。如果一个客户机想要获得烹饪方法,它必须向那台服务器发出请求。在对等系统(peer-to-peer)模型下,一个结点可以向另外的结点请求指定的烹饪方法。存储了这种烹饪方法的那个结点(或几个结点)可以把烹饪的方法提供给发出请求的结点。注意每个对等结点既可以扮演客户机(发出请求),也可以扮演服务器(提供请求)。

1.8如果一个由两个结点组成的集群系统正在运行一个数据库,试描述集群软件可以用哪两种方法管理存取磁盘的数据,并说明每种方法的优点和缺点。

答:两种方法:非对称集群系统(asymmetric clustering)和并行集群系统(parallel clustering).对于非对称集群系统,一个主机运行这个数据库,而其它主机只是监测这个数据库。如果服务器出现故障,进行监测的主机就会转变成运行这个数据库的主机。这是提供适当的冗余。然而,它没有利用具有潜在处理能力的主机。对于并行集群系统,数据库可以在两个并行的主机上运行。在并行集群系统上实现的困难是提供一些分布式锁机制给共享磁盘上的文件。

1.9网络计算机是怎样不同与传统的个人计算机的?试取出一些使用网络计算机的好处的方案。

答:网络计算机是基于一台核心的计算机作为其服务器。同时,它也具有一个最小化的操作系统来管理这些资源。另一方面,个人计算机必须在不依赖于核心计算机的基础上,能够独立提供所有被请求的功能。在行政花费太高以及共享导致更高效的使用资源的情景下是精确的,在这些环境中网络计算机是理想的。

1.10中断(interupt)的目的是什么?陷阱(trap)与中断的区别是什么?陷阱可以被用户程序(user program)有意地的产生吗?如果可以,那目的是什么?

答:中断是一种在系统内硬件产生的流量变化。中断操作装置是用来处理中断请求;然后返回控制中断的上下文和指令。陷阱是软件产生的中断。中断可以被用来标志I/O的完成,从而排除设备投票站(device polling)的需要。陷阱可以被用来调用操作系统的程序或者捕捉到算术错误。

1.11内存存储是被用于高速的I/O设备,其目的是为了避免增加CPU的过度运行。

(a)设备的CPU接口是怎样与转换器(transfer)协作的?

(b)当内存操作完全时,CPU是怎么知道的?

(c)当DMA控制器正在转换数据时,CPU是被允许运行其它程序的。这种进程与用户程序的运行冲突吗?如果冲突的话,试描述可能引起哪种冲突?

答:CPU可以通过写数据到可以被设备独立存储的寄存器中来启动DMA操作。当设备接收到来自CPU的命令时,启动响应的操作。当设备完成此操作时,就中断CPU来说明操作已经完成。设备和CPU都可以被内存同时访问。内存控制器对这两个实体以公平的方式给内存总线提供存取。CPU可能不能同时以很快的速度配给给内存操作,因为它必须去竞争设备而使得自己存取到内存总线中去。

1.12一些计算机系统没有在硬件中提供个人模式(privileged mode)。对于这种计算机系统来说,可能构成安全的操作系统吗?对可能和不可能两种情况分别给出理由。

答:一种类型处理器的操作系统需要在任何时候都被控制(或监测模式)。有两种方法可以完成这个操作:a.所有用户程序的软件翻译(像一些BASIC,Java,LISP systems)。在软件中,软件解释程序能够提供硬件所不能提供的。b.要求所有程序都用高级语言编写,以便于所以目标代码都被编译出来。编译器将会产生硬件忽略的防护性检查(in-line或功能调用)。

1.13给出缓存(caches)十分有用的两个理由。他们解决了什么问题?他们引起了什么问题?

如果缓存可以被做成装备想要缓存的容量(例如,缓存像磁盘那么大),为什么不把它做的那么大,其限制的原因是什么?

答:当两个或者更多的部件需要交换数据,以及组成部件以不同的速度完成转换时,缓存是十分有用的。缓存通过在个组成部件之间提供一个中间速度的缓冲区来解决转换问题。如果速度较快的设备在缓存中发现它所要的数据,它就不需要再等待速度较慢的设备了。缓存中的数据必须与组成部件中的要一致。如果一个组成部件中的数据值改变了,缓存中的这个数据也必须更新。在多进程系统中,当有不止一个进程可能进入同一个数据时,这就成了一个显著的问题。一个组成部件将会被一个同等大小的组成部件所消除,但是只有当;(a)缓存和组成部件有相同状态存储能力(也就是,当断电的时候,组成部件还能保存它的数据,缓存也一样能保存它的数据),(b)缓存是可以负担的起的,因为速度更快的存储器意味着更高的价格。

1.14试举例说明在下列的进程环境中,快速缓冲贮存区的数据保持连贯性的问题是怎样表明的?(a)单道程序系统(Single-processor systems)(b)多道程序系统(Mulitiprocessor systems)(c)分布式系统(Distribute systems)

答:在单道程序系统(Single-processor systems)中,当一个进程发布更新给快速缓冲贮存区的数据时,内存需要被更新。这些更新一种快速的或缓慢的方式执行。在多道程序系统(Mulitiprocessor systems)中,不同的进程或许在它的本地存储上存储相同的内存位置。当更新发生时,其它存储的位置需要使其无效或更新。在分布式系统(Distribute systems)中,快速存储区数据的协调不是问题,然而,当客户机存储文件数据时,协调问题就会被提及。

1.15试描述一个机器装置为了阻止一个程序避免修改与其它程序有联系的内存而执行内存保护。

答:处理器可以追踪哪个位置是与每个进程相联系的以及限制进入一个程序的范围的外面位置。信息与一个程序的内存范围有关,它可以通过使用库,限制寄存器和对每个进入内存的信息执行检查来维持其本身。

1.16哪种网络结构最适合下列环境:(a)一个寝室楼层(b)一个大学校园(c)一个州(d)一个国家。

答:

(a)一个寝室楼层:A LAN

(b)一个大学校园: A LAN,possibly a WAN for a very large campuses.

(c)一个州:A W AN

(d)一个国家: A W AN

1.17列出下列操作系统的基本特点:

a.批处理

b.交互式

c.分时

d.实时

e.网络

f.并行式

g.分布式

h.集群式

i.手持式

答: a.批处理:具有相似需求的作业被成批的集合起来,并把它们作为一个整体通过一个操作员或自动作业程序装置运行通过计算机。通过缓冲区,线下操作,后台和多道程序,运用尝试保持CPU和I/O一直繁忙,从而使得性能被提高。批处理系统对于运行那些需要较少互动的大型作业十分适用。它们可以被更迟地提交或获得。

b.交互式:这种系统由许多短期交易构成,并且下一个交易的结果是无法预知的。从用户提交到等待结果的响应时间应该是比较短的,通常为1秒左右。

c.分时:这种系统使用CPU调度和多道程序来经济的提供一个系统的人机通信功能。CPU从一个用户快速切换到另一个用户。以每个程序从终端机中读取它的下一个控制卡,

并且把输出的信息正确快速的输出到显示器上来替代用soopled card images定义的作业。

d.实时:经常用于专门的用途。这个系统从感应器上读取数据,而且必须在严格的时间内做出响应以保证正确的性能。

e.网络:提供给操作系统一个特征,使得其进入网络,比如;文件共享。

f.并行式:每一个处理器都运行同一个操作系统的拷贝。这些拷贝通过系统总线进行通信。

g.分布式:这种系统在几个物理处理器中分布式计算,处理器不共享内存或时钟。每个处理器都有它各自的本地存储器。它们通过各种通信线路在进行通信,比如:一条高速的总线或一个本地的网络。

h.集群式:集群系统是由多个计算机耦合成单一系统并分布于整个集群来完成计算任务。

i.手持式:一种可以完成像记事本,email和网页浏览等简单任务的小型计算机系统。手持系统与传统的台式机的区别是更小的内存和屏幕以及更慢的处理能力。

1.18手持计算机中固有的折中属性有哪些?

答:手提电脑比传统的台式PC机要小的多。这是由于手提电脑比台式PC机具有更小的内存,更小的屏幕,更慢的处理能力的结果。因为这些限制,大多数现在的手提只能完成基本的任务,比如:记事本,email和简单的文字处理。然而,由于它们较小的外形,而十分便于携带,而且当它们具备无线上网时,就可以提供远程的email通信和上网功能。

2.1操作系统提供的服务和功能可以分为两个类别。简单的描述一下这两个类别并讨论他们的不同点。

答:第一种操作系统提供的服务是用来保护在系统中同时运行的不同进程。进程只被允许获得与它们地址空间有联系的内存位置。同样,进程不允许破坏和其他用户有关的文件。一个进程同样不允许在没有操作系统的干预下直接进入设备。第二种服务由操作系统提供的服务是提供一种新的功能,而这种功能并不直接被底层的硬件支持。虚拟存储器和文件系统就是由操作系统提供的这种新服务的实例。

2.2列出操作系统提供的五项服务。说明每项服务如何给用户提供便利。说明在哪些情况下用户级程序不能够提够这些服务。

答: a.文件执行.操作系统一个文件的目录(或章节)装入到内存并运行。一个用户程序不能被信任,妥善分配CPU时间。

b.I/O操作. 磁盘,磁带,串行线,和其他装置必须在一个非常低的水平下进行通信。用户只需要指定装置和操作执行要求,然后该系统的要求转换成装置或控制器的具体命令.用户级程序不能被信任只在他们应该获得时获得装置和只使用那些未被使用的装置。

c.文件系统操作.在文件创建、删除、分配和命名时有许多细节是用户不能执行的。磁盘空间块被文件所使用并被跟踪。删除一个文件需要清除这个文件的信息和释放被分派给这个文件的空间。用户程序不仅不能够保证保护方法的有效实施,也不能够被信任只会分配空闲的空间和在删除文件是清空空间。

d.通信.信息在系统间交换要求信息转换成信息包,送到网络控制器中,通过通信媒介进行传播,并由目的地系统重新组装。信息包调整和数据修改是一定会发生的。此外,用户程序也许不能够协调网络装置的取得,或者接收完全不同的其他进程的信息包。

e.错误检测.错误检测在硬件和软件水平下都会发生。在硬件水平下,所有数据转移都必须仔细检查以确保数据在运送中不会被破坏。在媒介中的所有数据都必须被检查以确保他们在写入媒介时没有被改变。在软件水平下,为了数据,媒介不需不间断的被检查。例如,确保信息存储中被分配和还未被分配的空间块的数量和装置中所有块的数量的一致。进程独立经常有错误(例如,磁盘中数据的破坏),所以必须有一个统筹的程序(操作系统)来处

理各种错误。同样,错误经过操作系统的处理,在一个系统中程序不再需要包含匹配和改正所遇可能错误的代码。

2.3讨论向操作系统传递参数的三个主要的方法。

答:

1.通过寄存器来传递参数

2.寄存器传递参数块的首地址

3.参数通过程序存放或压进堆栈中,并通过操作系统弹出堆栈。

2.4描述你怎样能够统计到一个程序运行其不同部分代码时,它的时间花费数量的数据图表,并说明它的重要性。

答:一个能够发布定期计时器打断和监控正在运行的命令或代码段当中断被进行时。一个满意的配置文件,其中的代码块都应积极覆着被程序在代码的不同的部分花费时间。一旦这个配置文件被获得,程序员可以尽可能的优化那些消耗大量CPU资源的代码段。

2.5操作系统关于文件管理的五个主要活动是什么?

答:

1.创建和删除文件

2.创建和删除目录

3.提供操作文件和目录的原语的支持

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

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

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

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

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

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

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

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

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

答:机制和策略必须区分开来,来保证系统能够被很容易的修改。没有两个系统的

装置是完全相同的,所以每一个装置都想要把操作系统改为适合自己的。当机制和政策分开时,政策可以随意的改变但机制还是不能改变。这种安排提供了一个更灵活的制度

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

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

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

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

2.12采用微内核方法来设计系统的主要优点是什么?在微内核中如何使客户程序和系统服务相互作用?微内核方法的缺点是什么?

答:优点主要包括以下几点:

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

b) 在用户模式中比在内核模式中更安全、更易操作

c) 一个简单的内核设计和功能一般导致一个更可靠的操作系统

用户程序和系统服务通过使用进程件的通信机制在微内核中相互作用,例如发送消息。这些消息由操作系统运送。微内核最主要的缺点是与进程间通信的过度联系和为了保证用户程序和系统服务相互作用而频繁使用操作系统的消息传递功能。

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

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

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

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

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

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

2.16在一个系统(例如VWware)中,来宾作业系统和主机操作系统的关系是什么?在选择主机操作系统时哪些因素需要考虑?

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

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

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

3.1 论述短期,中期和长期调度之间的区别.

答:a.短期调度:在内存作业中选择就绪执行的作业,并为他们分配CPU。

b.中期调度:作为一种中等程度的调度程序,尤其被用于分时系统,一个交换方案的实施,将部分运行程序移出内存,之后,从中断处继续执行。

c.长期调度(作业调度程序):确定哪些作业调入内存以执行.

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

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

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

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

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

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

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

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

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

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

A,对称和非对称通信

B,自动和显式缓冲

C,复制发送和引用发送

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

答: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利用率和响应时间

b.平均周转时间和最大等待时间

c.I/O设备利用率和CPU利用率

答:a.CPU利用率和响应时间:当经常性的上下文切换减少到最低时,CPU利用率增加。通过减少使用上下文切换程序来降低经常性的上下文切换。但这样可能会导致进程响应时间的增加。

b.平均周转时间和最大等待时间:通过最先执行最短任务可以使平均周转时间最短。然而,这种调度策略可能会使长时间运行的任务永远得不到调度且会增加他们的等待时间。

c.I/O设备利用率和CPU利用率:CPU利用率的最大化可以通过长时间运行CPU限制的任务和同时不实行上下文切换。I/O设备利用率的最大化可以通过尽可能调度已经准备好的I/O限制的任务。因此,导致上下文切换。

5.3考虑指数平均公式来预测下一次CPU区间的长度,使用以下参数值会有什么影响?

a.a=0和t=100毫秒

b.a=0.99和t=10毫秒

答:当a=0和t=100毫秒时,公式总是会预测下一次的CPU区间为100毫秒。当a=0.99和t=10毫秒时,进程最近的行为是给予更高的重量和过去的就能成相比。因此,调度算法几乎是无记忆的,且简单预测未来区间的长度为下一次的CPU执行的时间片。

5.4考虑下列进程集,进程占用的CPU区间长度以毫秒来计算:

进程区间时间优先级

P1 10 3

P2 1 1

P3 2 3

P4 1 4

P5 5 2

假设在时刻0以进程P1,P2,P3,P4,P5的顺序到达。

a.画出4个Gantt图分别演示用FCFS、SJF、非抢占优先级(数字小代表优先级高)和RR(时间片=1)算法调度时进程的执行过程。

b.在a里每个进程在每种调度算法下的周转时间是多少?

c.在a里每个进程在每种调度算法下的等待时间是多少?

d.在a里哪一种调度算法的平均等待时间对所有进程而言最小?

答:a.甘特图略

5.5下面哪些算法会引起饥饿

a.先来先服务

b.最短工作优先调度

c.轮换法调度

d.优先级调度

答:最短工作优先调度和优先级调度算法会引起饥饿

5.6考虑RR调度算法的一个变种,在这个算法里,就绪队列里的项是指向PCB的指针。

a.如果把两个指针指向就绪队列中的同一个进程,会有什么效果?

b.这个方案的主要优点和缺点是什么?

c.如何修改基本的RR调度算法,从而不用两个指针达到同样的效果?

答.a.实际上,这个过程将会增加它的优先权,因为通过经常得到时间它能够优先得以运行。

b.优点是越重要的工作可以得到更多的时间。也就是说,优先级越高越先运行。然而,结果将由短任务来承担。

c.分配一个更长的时间给优先级越高的程序。换句话说,可能有两个或多个时间片在RR调度中。

5.7考虑一个运行十个I/O限制任务和一个CPU限制任务的系统。假设,I/O限制任务一次分配给一个I/O操作1毫秒的CPU计算,但每个I/O操作的完成需要 10毫秒。同时,假设间接的上下文切换要0.1毫秒,所有的进程都是长进程。对一个RR调度来说,以下情况时CPU的利用率是多少:

a.时间片是1毫秒

b.时间片是10毫秒

答:a.时间片是1毫秒:不论是哪个进程被调度,这个调度都会为每一次的上下文切换花费一个0.1毫秒的上下文切换。CPU的利用率是1/1.1*100=92%。

b.时间片是10毫秒:这I/O限制任务会在使用完1毫秒时间片后进行一次上下文切换。这个时间片要求在所有的进程间都走一遍,因此,10*1.1+10.1(因为每个I / O限定任务执行为1毫秒,然后承担上下文切换的任务,而CPU限制任务的执行10毫秒在承担一个上下文切换之前) 。因此,CPU的利用率是20、21.1*100=94%。

5.8考虑一个实施多层次的队列调度系统。什么策略能够使一个计算机用户使用由用户进程分配的最大的CPU时间片。

答:这个程序可以使分配给它的没有被完全利用的CPU时间最大化。它可以使用分配给它的时间片中的绝大部分,但在时间片结束前放弃CPU,因此提高了与进程有关的优先级。

5.9考虑下面的基于动态改变优先级的可抢占式优先权调度算法。大的优先权数代表高优先权。当一个进程在等待CPU时(在就绪队列中,但未执行),优先权以α速率改变;当它运行时,优先权以速率β改变。所有的进程在进入就绪队列时被给定优先权为0。参数α和β可以设定给许多不同的调度算法。

a.β>α>0时所得的是什么算法?

b.α<β<0时所得的是什么算法?

答:a.FCFS

b.LIFO

5.10解释下面调度算法对短进程编程度上的区别:

a.FCFS

b.RR

c.多级反馈队列

答:a.FCFS----区别短任务是因为任何在长任务后到达的短任务都将会有很长的等待时

间。

b.RR-----对所有的任务都是能够相同的(给它们相同的CPU时间区间),所以,短任务可以很快的离开系统,只要它们可以先完成。

c. 多级反馈队列和RR调度算法相似——它们不会先选择短任务。

5.11用Window XP的调度算法,下列什么是数字优先的线程。

a.相对优先级的值为REALTIME_PRIORITY_CLASS的属于实体优先类型的线程

b.相对优先级的值为NORMAL_PRIORITY_CLASS的属于NORMAL类型的线程

c.相对优先级的值为HIGH_PRIORITY_CLASS的属于ABOVE_NORMAL类型的线程

答:a.26

b.8

c.14

5.12考虑在Solaris操作系统中的为分时线程的调度算法:

a:一个优先权是10的线程的时间片是多少?优先权是55的呢?

b:假设优先权是35的一个线程用它所有的时间片在没有任何阻止的情况下,这调度算法将会分配给这个线程什么样新的优先权?

c:假设一个优先权是35的线程在时间片结束前阻止I/O操作。这调度算法将会分配给这个线程什么样新的优先权?

答:a:160和40

b:35

C:54

5.13传统UNIX调度在优先数和优先级间成反比关系:数字越高,优先权越低。该调度进程利用下面的方程重新计算进程的优先权一次一秒:

优先权= (最近CPU使用率/ 2 )+基本数

这里的基本数= 60,最近的CPU使用率是指一个表明优先权从上一次重新计算后开始进程被CPU使用的情况。

假设最近进程p1的CPU使用率是40个,p2是18 ,p3是10。当优先权重新计算后这三个进程的新的优先权是什么?在此信息的基础上,传统UNIX的调度会不会提高或降低CPU限制的进程的相对优先权?

答:分配给这些进程的优先权分别是80,69和65.这调度降低了CPU限制的进程的相对优先权。

第六章管程

6.1第一个著名的正确解决了两个进程的临界区问题的软件方法是Dekker设计的。两个进程P0和P1共享以下变量:

boolean flag[2]; /*initially false*/

int turn;

进程Pi(i==0或1)和另一个进程Pj(j==0或1)的结构见图7.27。

证明这个算法满足临界区问题的所有三个要求。

do{

flag[i]=ture;

while(flag[j]){

if(turn==j){

flag[i]=false;

while(turn==j);

flag[i]=true;

}

}

临界区

turn=j;

flag[i]=false;

剩余区

}while(1);

图7.27 Dekker算法中的进程P i结构

答:该算法满足三个相互排斥条件。(1)相互排斥是为了确保使用的变量和标志是可变的。如果所有进程都把他们的变量设置为真,只有一个会成功,那就是哪个进程轮到的问题了。等待中的进程只能够进入它的重要部分当其他进程在更新变量值时。

6.1这两个进程的临界区域问题的最初的正确的软件解决方案是由Dekker提出的。P0、P1两个进程,具有以下共同的变量:

boolean flag[2]; /* initially false */

int turn;

进程Pi(i==0 or1)的结构在6.25中已经出现过;其他进程为Pj(j == 1 or 0)。证明这个算法满足关键问题的三个要求。

答:这个算法满足临界区域的三个条件:

(1)在标记和返回变量的使用中,互斥条件是保证的。如果两个进程将它们的标识设为真,那么只有一个进程会成功进行,即轮到的那个进程。当另一个进程更新它的返回变量时,等待的那个进程只能进入它的临界区域。

(2)就绪的进程,通过标志,返回变量。这个算法没有提供严格的交替。如果一个进程想要进入它们的临界区域,它可以将它的标识设为真,然后进入它们的临界区域。当退出它的临界区域,它可以设置转向其他进程的值。如果这个进程想要在其他进程之前再次进入它的临界区域,它会重复这样的进程:进入它的临界区域,在退出时转向另一个进程。

(3)在双T返回变量的使用过程中,界等待受阻。假设两个进程想要进入它们的责任所在的临界区域。它们都将它们的标志的值设为真;而只有轮到的那个线程可以执行;其他的线程处于等待状态。如果界等待没有受阻,当第一个进程重复“进入-退出”它的临界区域这一过程。Dekker算法在一个进程中设置一个转向另一个进程的值,从而保证另一个进程接下来进入它的临界区域。

6.2针对有n个进程在带有较低时间限制的等待n-1个的轮次这样一个临界区域最早的

解决该问题的正确方法是由艾森伯格和麦圭尔提出的。这些进程有以下的共同的变量:枚举pstate{idle, want in, in cs};

pstate flag[n];

int turn;

所有的枚举标志被初始为空,轮次的最初值是无关紧要的(在0和n-1之间)。进程p 的结构在6.26中有说明。证明这个算法满足临界区域问题的三项要求。

答:a.互斥:注意到一个进程只有在下列条件满足时才能进入临界区域:没有其他进程在CS中有设置的标识变量。这是由于进程在CS中设置自身的标识变量之前要先检查其他进程的状态。我们保证没有两个进程将同时进入临界区域。

b.有空让进:考虑以下情况,当多进程同时在CS中设置它们的标识变量,然后检查是否有其他进程在cs中设置标识变量。当这种情况发生时,所有的进程意识到这里存在进程竞争,在外层while(1)的循环下进入下一次迭代,重置它们的标识变量到want中。现在只有唯一的进程将设置它的轮次变量到cs中,这个唯一的进程就是其序号是最接近轮次的。从这个角度来说,对于哪些序号次接近轮次的新的进程就能决定进入临界区域,而且能同时在CS中设置它们的标识。随后这些进程意识到这里存在竞争的进程,于是重新启动进入临界区域的进程。在每次迭代中,进程在cs中设置的序号值将变得更加接近轮次,最后我们得出以下结论:只有进程k在cs中设置它的标识,而其他哪些序号在轮次和k之间不能在cs 中设置它们的标识。这个进程仅能进入临界区域。

c.有限等待:有限等待需要满足以下事实:当进程k在打算进入临界区域时,它的标识不再置为空闲。任何序号不在轮次和k之间的进程不能进入临界区域。与此同时,所有序号落在轮次和k之间且又想要进入临界区域的进程能够进入临界区域(这是基于系统一直在进步的事实),这个轮次值变得越来越接近k。最后,要么轮次变为k,要么没有哪些序号在轮次和k之间的进程,这样进程k就进入临界区域了。

6.3忙等待的含义是什么?在操作系统中还有哪些其他形式的等待?忙等待能完全避免吗?给出你的答案。

答:忙等待意味着一个进程正在等待满足一个没有闲置处理器的严格循环的条件。或者,一个进程通过放弃处理器来等待,在这种情况下的块等待在将来某个适当的时间被唤醒。忙等待能够避免,但是承担这种开销与让一个进程处于沉睡状态,当相应程序的状态达到的时候进程又被唤醒有关。

6.4解释为什么自旋锁不适合在单处理器系统,而经常在多处理器系统下使用?

答:自旋锁不适合在单处理器系统是因为从自旋锁中打破一个进程的条件只有在执行一个不同的进程时才能获得。如果这个进程没有闲置处理器,其他进程不能够得到这个机会去设定一个第一个进程进展需要的程序条件。在一个多处理器系统中,其他进程在其他处理器上执行,从而为了让第一个进程从自旋锁中释放修改程序状态。

6.5如果一个同步元是在一个用户级程序中使用的,解释在一个单处理器系统中为什么通过停止中断去实现这个同步元是不适合的?

答:如果一个用户级程序具有停止中断的能力,那么它能够停止计时器中断,防止上下文切换的发生,从而允许它使用处理器而不让其他进程执行。

6.6解释为什么在一个多处理器系统中中断不适合同步元?

答:由于只有在防止其他进程在一个中断不能实现的处理器上执行来停止中断,中断在

多处理器系统中是不够的。在对于进程能在其他处理器上执行是没有心智的,所以进程停止中断不能保证互斥进入程序状态。

6.7

6.8服务器能够设计成限制打开连接的数量。比如,一台服务器可以在任何时候有n个插座连接。这n个连接一形成,服务器就不能接收再有进来的连接直到一个现有的连线释放。解释为什么信号量能够通过服务器限制当前连线的数量而被使用。

答:信号量初始化为允许开放式的插座连接的数量。当一个连接被接受,收购方法调用。当连接释放时,释放方法调用。如果系统道道了允许开放式的插座连接的数量,相继调用收购方法将受阻直到一个现有的连线终止,释放方法调用。

6.9证明如果获得和释放的信号量操作没有动态地执行,那么互斥会受干扰。

答:收购操作自动递减和信号量有关的值。如果两个收购操作在信号量的值为1的信号量上执行,而且这两种操作不是自动执行的,那么这两个操作在进展中会递减信号量的值,从而干扰互斥。

6.10(程序,不用翻)(6.13)

6.12证明管程和信号量是相当于它们能在执行相同类型的同步问题时使用

答:在用下列方法使用信号量时,管程可以实施。每个条件变量是由一个队列中的线程等待条件组成的。每个线程有一个和它的队列进入有关的信号量。当线程表现出等待操作时,它创造一个心得信号量(初始化为0),附加信号量到和条件变量有关的队列中,在新创造的信号量上执行阻塞信号递减操作。

6.15讨论在读者-作者问题中的公平和吞吐量的权衡问题。提出一种解决读者-作者问题而不引起饥饿的方法

答:在读者-作者问题中吞吐量是由利益多的读者增加的,而不是让一个作家独占式地获得共同的价值观。另一个方面,有利于读者可能会导致饥饿的作者。在读者-作者问题中的借能够通过保持和等待进程有关的时间戳来避免。当作者完成他的任务,那么唤醒那些已经等了最长期限的进程。当读者到达和注意到另一个读者正在访问数据库,那么它只有在没有等待的作者时才能进入临界区域。这些限制保证公平。

6.16

管程的signal操作和信号量的signal操作有什么不同?

管程的signal操作在以下情况下是不能继续进行的:当执行signal操作并且无等待线程时,那么系统会忽略signal操作,认为signal操作没有发生过。如果随后执行wait操作,那么相关的线程就会被阻塞。然后在信号量中,即使没有等待线程,每个signal操作都会是相应的信号量值增加。接下来的等待操作因为之前的信号量值的增加而马上成功进行。

6.17

假设signal语句只能作为一个管程中的最后一条语句出现,可以怎样简化6.7节所描述的实现?

如果signal语句作为最后一条语句出现,那么锁会使发出信号的进程转化成接受信号的进程。否则,发出信号的进程将解锁,并且接受信号的进程则需要和其他进程共同操作获

得锁从而使操作继续下去。

6.21

假设将管程中的wait和signal操作替换成一个单一的构件await(B),这里B是一个普通的布尔表达式,进程执行直到B变成真

用这种方法写一个管程实现读者—作者问题。

解释为什么一般来说这种结构实现的效率不高。

要使这种实现达到高效率需要对await语句加上哪些限制?(提示,限制B的一般性,参见Kessels[1977].)

读者—作者问题可以进行以下修改,修改中产生了await声明:读者可以执行“await(active writers == 0 && waiting writers == 0)”来确保在进入临界区域时没有就绪的作者和等待的作者。作者可以执行“await(active writers == 0 && active readers == 0)”来确保互斥。

在signal操作后,系统检查满足等待条件满足的等待线程,检查其中被唤醒的等待线程。这个要求相当复杂,并且可能需要用到交互的编译器来评估在不同时间点下的条件。可以通过限制布尔条件,使布尔变量和其他部分分开作为独立的程序变量(仅仅用来检查是否相等的一个静态值)。在这种情况下,布尔条件可以传达给运行时系统,该系统可以执行检查每一个它所需要的时间,以确定哪些线程被唤醒。

6.23

为什么Solaris、Linux和Windows2000都使用自旋锁作为多处理器系统的同步机制而不作为单处理器系统的同步机制?

Solaris,Linux和Windows 2000中只有在多处理器系统才能使用自旋锁作为一个同步机制。自旋锁不适合单处理器的系统,因为打破了这一进程的自旋锁只有通过执行不同的进程才可以得到。如果这一进程不会放弃此处理器,其他进程就无法设置第一个进程所要求的程序条件,从而不能继续操作。在一个多处理器系统,其他进程执行其他处理器,从而修改程序状态从自旋锁中释放第一个进程。

6.24

在基于日志的系统中可以给事务提供支持,在相应日志记录写到稳定存储之前不能允许真正地更新数据项。为什么这个限制是必需的?

如果事务需要放弃,那么更新的数据项的值应该要恢复到原来的值。这就需要原来值的数据在进行操作之前完成更新。

6.25

证明两段锁协议能确保冲突的串行执行。

调度是指一个或多个事务的执行顺序。一个串行调度是指每个事务执行的原子调度。如果一个调度由两个不同的事务组成,通过连续的操作从这两个事务中获得相同的数据,并至少有一个write 操作,然后有所谓的冲突。如果一个调度可以通过一系列非冲突操作的交换而转化成串行调度,那么这个调度为是冲突可串行化。

这两阶段加锁协议确保冲突串行化,因为独占锁(这是用于写操作)必须连续收购,不

释放任何锁在获取(增长)的阶段。其他事务希望获得同样的锁必须等待第一个事务开始释放锁。通过要求任何锁必须首先释放所有锁,从来避免潜在的冲突。

6.26

分配一个新时间戳给已经恢复到原值的事务有什么影响?对于新进入系统进程的事务,其所赋予的时间戳是如何大于原先事务的时间戳的?

在原先事务的访问变量改变后执行事务,那么相应的事务也恢复到原先的值。如果他们没有执行此项操作(也就是说没有重复的原先事务的访问变量值),那么这些操作在适当的时候就不会受到约束。

6.27

假设数目有限的资源中的一个单一的资源型必须加以管理。进程需要一定数量的这种资源,一旦用完将释放它们。例如,许多商业软件包提供了一定数量的许可证,这表明一些应用程序可以同时运行.当应用程序启动时,许可证的计数递减。当申请终止,许可证计数递增。如果所有的许可证都在使用,那么要求启动该应用程序的申请被剥夺了。只有当现有的许可证持有人终止申请并切许可证已经返还,那么这种申请将被授予.下列程序段是用来管理一个数目有限的情况下的可用资源。最多的资源数量和一些可用的资源数量如下所示:#define MAX RESOURCES 5

int available resources = MAX RESOURCES;

When a process wishes to obtain a number of resources, it invokes the

decrease count()function:

/* decrease available resources by count resources */

/* return 0 if sufficient resources available, */

/* otherwise return -1 */

int decrease count(int count) {

if (available resources < count)

return -1;

else {

available resources -= count;

return 0;

}

}

When a process wants to return a number of resources, it calls the de-

crease count()function:

/* increase available resources by count */

int increase count(int count) {

available resources += count;

return 0;

}

前面的程序段将会产生一个竞争的条件。如下:

确定数据参与竞争

当竞争的条件发生时,确定代码段的位置(或是区域)

利用Java同步,确定竞争的条件,同时修改decrease Count()以使一个线程在没有足够的现有的资源下阻塞。

确定数据参与竞争:可以利用的变量资源

当竞争的条件发生时,确定代码段的位置(或是区域):代码使现有的资源递减和代码现有资源递增的声明可以放在竞争的条件。

使用信号量,确定竞争条件:使用信号量表示当前可用资源变量,并且用信号量递增和信号量递减的操作代替递增和递减的操作。

7.1

假设有如图7.1所示的交通死锁。

证明这个例子中实际上包括了死锁的四个必要条件。

给出一个简单的规则用来在这个系统中避免死锁。

死锁的四个必要条件: (1)互斥;(2)占有并等待;(3)非抢占;(4)循环等待。

互斥的条件是只有一辆车占据道路上的一个空间位置。占有并等待表示一辆车占据道路上的位置并且等待前进。一辆车不能从道路上当前的位置移动开(就是非抢占)。最后就是循环等待,因为每个车正等待着随后的汽车向前发展。循环等待的条件也很容易从图形中观察到。

一个简单的避免这种的交通死锁的规则是,汽车不得进入一个十字路口如果明确地规定,这样就不会产生相交。

7.2

考虑如下的死锁可能发生在哲学家进餐中,哲学家在同个时间获得筷子。讨论此种情况下死锁的四个必要条件的设置。讨论如何在消除其中任一条件来避免死锁的发生。

死锁是可能的,因为哲学家进餐问题是以以下的方式满足四个必要条件:1)相斥所需的筷子, 2 )哲学家守住的筷子在手,而他们等待其他筷子, 3 )没有非抢占的筷子,一个筷子分配给一个哲学家不能被强行拿走,4 )有可能循环等待。死锁可避免克服的条件方式如下: 1 )允许同时分享筷子, 2 )有哲学家放弃第一双筷子如果他们无法获得其他筷子, 3 )允许筷子被强行拿走如果筷子已经被一位哲学家了占有了很长一段时间4 )实施编号筷子,总是获得较低编号的筷子,之后才能获得较高的编号的筷子。

7.3

一种可能以防止死锁的解决办法是要有一个单一的,优先于任何其他资源的资源。例如,如果多个线程试图访问同步对象A?…E,那么就可能发生死锁。(这种同步对象可能包括互斥体,信号量,条件变量等),我们可以通过增加第六个对象来防止死锁。每当一个线程希望获得同步锁定给对象A???E,它必须首先获得对象F的锁.该解决方案被称为遏制:对象A???E的锁内载对象F的锁。

对比此方案的循环等待和Section7.4.4的循环等待。

这很可能不是一个好的解决办法,因为它产生过大的范围。尽可能在狭隘的范围内定义死锁政策会更好。

7.4

对下列问题对比循环等待方法和死锁避免方法(例如银行家算法):

a.运行费用

b.系统的吞吐量

死锁避免方法往往会因为追踪当前资源分配的成本从来增加了运行费用。然而死锁避免

方法比静态地防止死锁的形成方法允许更多地并发使用资源。从这个意义上说,死锁避免方案可以增加系统的吞吐量。

7.5

在一个真实的计算机系统中,可用的资源和进程命令对资源的要求都不会持续很久是一致的长期(几个月)。资源会损坏或被替换,新的进程会进入和离开系统,新的资源会被购买和添加到系统中。如果用银行家算法控制死锁,下面哪些变化是安全的(不会导致可能的死锁),并且在什么情况下发生?

增加可用资源(新的资源被添加到系统)

减少可用资源(资源被从系统中永久性地移出)

增加一个进程的Max(进程需要更多的资源,超过所允许给予的资源)

减少一个进程的Max(进程不再需要那么多资源)

增加进程的数量

减少进程的数量

增加可用资源(新的资源被添加到系统):这个可以在没有任何问题的情况下安全地改变

减少可用资源(资源被从系统中永久性地移出):这可能会影响到系统,并导致可能性死锁因为系统的安全性假定其拥有一定数量的可用资源

增加一个进程的Max(进程需要更多的资源,超过所允许给予的资源):这可能会影响到系统,并可能导致死锁

减少一个进程的Max(进程不再需要那么多资源):这个可以在没有任何问题的情况下安全地改变

增加进程的数量:如果允许分配资源给新进程,那么该系统并没有进入一个不安全的状态。

减少进程的数量:这个可以在没有任何问题的情况下安全地改变

7.6

假设系统中有四个相同类型的资源被三个进程共享。每个进程最多需要两个资源。证明这个系统不会死锁。

假设该系统陷入死锁。这意味着,每一个进程持有一个资源,并且正等待另一个资源。因为有三个进程和四个资源,一个进程就必须获取两个资源。这一进程并不需要更多的资源,因此当其完成时会返回其资源。

7.7假设一个系统有m个资源被n个进程共享,进程每次只请求和释放一个资源。证明只要系统符合下面两个条件,就不会发生死锁:

a.每个进程需要资源的最大值在1到m之间

b.所有进程需要资源的最大值的和小于m+n

答:使用Section7.6.2的术语,可以有:

a. _n

i =1 Max i < m + n

b. Max i ≥1 for all i

Proof: Need i = Max i ?Alloca tion i

If there exists a deadlock state then:

c. _n

i =1 Alloca tion i = m

Use a. to get:_ Need i + _ Alloca tion i = _ Max i < m + n

Use c. to get:_ Need i + m < m + n

Rewrite to get:_n

i =1 Need i < n //符号打不出来,大家自己看答案

这意味着存在一个Pi的进程,其Needi=0.如果Maxi>=1,那么Pi进程至少有一个资源可以释放。从而系统就不会进入死锁状态。

7.8假设哲学家进餐问题中,筷子被摆放在桌子的中央,它们中的任何一双都可以被哲学家使用。假如每次只能请求一根筷子,试描述一种在没有引起死锁的情况下,一个特殊的请求请求能否被满足的简单的规则,将筷子分配给哲学家。

答:以下规则避免了死锁:当一个哲学家发出一个需要第一根筷子的请求时,如果没有别的哲学家有两根筷子或者只留有一根筷子时,这个请求就不被允许。

7.9与上一题目中所给的环境相同。假如现在每个哲学家请求三根筷子来吃饭,而且这种资源请求仍旧是分开发生的。试描述一种类似的在没有引起死锁的情况下,一个特殊的请求请求能否被满足的简单的规则,将筷子分配给哲学家。

答:当一个哲学家发出一个需要第一根筷子的请求时,满足其情况,如果1)那个哲学家已经有2根筷子,并且还有2根筷子剩余,2) 那个哲学家已经有1根筷子,并且还有2根筷子剩余,3)最少有1根筷子剩余,并且最少有一个哲学家拥有3根筷子,4)那个哲学家没有筷子,但有2根筷子剩余,并且最少存在另外一个拥有2根筷子的哲学家放下他的筷子。

7.10我们可以通过把数组的维度减少到1,而从一般的银行家算法中得到一个单一资源类型的银行家算法。试通过一个例子说明对于每个资源类型,多资源类型的银行家方案不能通过单一资源类型方案的单独运用来实现。

01234,

还需要下列资源的数量

如果可利用的资源是(2 3 0),我们可以看到,进程P0请求(0,2,0)是不能被满足的,因为它比Availiable少(2 1 0),从而导致没有一个进程可以被完成。

然而,如果我们把三种资源看做是三个独立资源类型的银行家算法,可以得到以下各表:

操作系统 习题答案(中文版)

操作系统概第七版中文版习题答案(全) 1.1在多道程序和分时环境中,多个用户同时共享一个系统,这种情况导致多种安全问题。a. 列出此类的问题 b.在一个分时机器中,能否确保像在专用机器上一样的安全度?并解释之。 答:a.窃取或者复制某用户的程序或数据;没有合理的预算来使用资源(CPU,内存,磁盘空间,外围设备)b.应该不行,因为人类设计的任何保护机制都会不可避免的被另外的人所破译,而且很自信的认为程序本身的实现是正确的是一件困难的事。 1.2资源的利用问题在各种各样的操作系统中出现。试例举在下列的环境中哪种资源必须被严格的管理。(a)大型电脑或迷你电脑系统(b)与服务器相联的工作站(c)手持电脑 答:(a)大型电脑或迷你电脑系统:内存和CPU资源,外存,网络带宽(b)与服务器相联的工作站:内存和CPU资源(c)手持电脑:功率消耗,内存资源 1.3在什么情况下一个用户使用一个分时系统比使用一台个人计算机或单用户工作站更好? 答:当另外使用分时系统的用户较少时,任务十分巨大,硬件速度很快,分时系统有意义。充分利用该系统可以对用户的问题产生影响。比起个人电脑,问题可以被更快的解决。还有一种可能发生的情况是在同一时间有许多另外的用户在同一时间使用资源。当作业足够小,且能在个人计算机上合理的运行时,以及当个人计算机的性能能够充分的运行程序来达到用户的满意时,个人计算机是最好的,。 1.4在下面举出的三个功能中,哪个功能在下列两种环境下,(a)手持装置(b)实时系统需要操作系统的支持?(a)批处理程序(b)虚拟存储器(c)分时 答:对于实时系统来说,操作系统需要以一种公平的方式支持虚拟存储器和分时系统。对于手持系统,操作系统需要提供虚拟存储器,但是不需要提供分时系统。批处理程序在两种环境中都是非必需的。 1.5描述对称多处理(SMP)和非对称多处理之间的区别。多处理系统的三个优点和一个缺点? 答:SMP意味着所以处理器都对等,而且I/O可以在任何处理器上运行。非对称多处理有一个主处理器控制系统,与剩下的处理器是随从关系。主处理器为从处理器安排工作,而且I/O也只在主处理器上运行。多处理器系统能比单处理器系统节省资金,这是因为他们能共享外设,大容量存储和电源供给。它们可以更快速的运行程序和增加可靠性。多处理器系统能比单处理器系统在软、硬件上也更复杂(增加计算量、规模经济、增加可靠性) 1.6集群系统与多道程序系统的区别是什么?两台机器属于一个集群来协作提供一个高可靠性的服务器的要求是什么? 答:集群系统是由多个计算机耦合成单一系统并分布于整个集群来完成计算任务。另一方面,多道程序系统可以被看做是一个有多个CPU组成的单一的物理实体。集群系统的耦合度比多道程序系统的要低。集群系统通过消息进行通信,而多道程序系统是通过共享的存储空间。为了两台处理器提供较高的可靠性服务,两台机器上的状态必须被复制,并且要持续的更新。当一台处理器出现故障时,另一台处理器能够接管故障处理的功能。 1.7试区分分布式系统(distribute system)的客户机-服务器(client-server)模型与对等系统(peer-to-peer)模型 答:客户机-服务器(client-server)模型可以由客户机和服务器的角色被区分。在这种模型下,客户机向服务器发出请求,然后服务器满足这种请求。对等系统(peer-to-peer)模

现代操作系统(第三版)答案

MODERN OPERATING SYSTEMS SECOND EDITION PROBLEM SOLUTIONS ANDREW S.TANENBAUM Vrije Universiteit Amsterdam,The Netherlands PRENTICE HALL UPPER SADDLE RIVER,NJ 07458课后答案网 w w w .k h d a w .c o m

SOLUTIONS TO CHAPTER 1PROBLEMS 1.An operating system must provide the users with an extended (i.e.,virtual)machine,and it must manage the I/O devices and other system resources. 2.Multiprogramming is the rapid switching of the CPU between multiple processes in memory.It is commonly used to keep the CPU busy while one or more processes are doing I/O. 3.Input spooling is the technique of reading in jobs,for example,from cards,onto the disk,so that when the currently executing processes are ?nished,there will be work waiting for the CPU.Output spooling consists of ?rst copying printable ?les to disk before printing them,rather than printing directly as the output is generated.Input spooling on a personal computer is not very likely,but output spooling is. 4.The prime reason for multiprogramming is to give the CPU something to do while waiting for I/O to complete.If there is no DMA,the CPU is fully occu-pied doing I/O,so there is nothing to be gained (at least in terms of CPU utili-zation)by multiprogramming.No matter how much I/O a program does,the CPU will be 100percent busy.This of course assumes the major delay is the wait while data are copied.A CPU could do other work if the I/O were slow for other reasons (arriving on a serial line,for instance). 5.Second generation computers did not have the necessary hardware to protect the operating system from malicious user programs. 6.It is still alive.For example,Intel makes Pentium I,II,and III,and 4CPUs with a variety of different properties including speed and power consumption.All of these machines are architecturally compatible.They differ only in price and performance,which is the essence of the family idea. 7.A 25×80character monochrome text screen requires a 2000-byte buffer.The 1024×768pixel 24-bit color bitmap requires 2,359,296bytes.In 1980these two options would have cost $10and $11,520,respectively.For current prices,check on how much RAM currently costs,probably less than $1/MB. 8.Choices (a),(c),and (d)should be restricted to kernel mode. 9.Personal computer systems are always interactive,often with only a single user.Mainframe systems nearly always emphasize batch or timesharing with many users.Protection is much more of an issue on mainframe systems,as is ef?cient use of all resources. 10.Every nanosecond one instruction emerges from the pipeline.This means the machine is executing 1billion instructions per second.It does not matter at all how many stages the pipeline has.A 10-stage pipeline with 1nsec per 课后答案网 w w w .k h d a w .c o m

操作系统习题及答案一

习题一操作系统概论 选择题 1. 计算机的操作系统是一种() ■ A. 应用软件 B.系统软件 C.工其软件D 字表处理软件 2. 批处理系统的主要缺点是( ). A. CPU 的利用率不高 B.失去了交互性 C.不具备并行性 D.以上都不是 3. 计算机操作系统的功能是( ). A. 把源程序代码转换为标准代码 B. 实现计算机用户之间的相互交流 C. 完成计算机硬件与软件之间的转换 D. 控制、管理计算机系统的资源和程序的执行 4. 在分时系统中,时间片一定时, (),响应时间越长. A. 内存越多 B.用户数越多 C.内存越少 D 用户数 越少 5. 操作系统的( )管理部分负责对进程进行调度 . A?主存储器 B.控制器 C.运算器 D 处理机 6. 从用户的观点看,操作系统是( ). A. 用户与计算机之间的接口 B. 控制和管理计算机资源的软件 C. 合理地组织计算机工作流程的软件 D. 由若干层次的程序按一定的结构组成的有机体 7. 操作系统的功能是进行处理机管理、 ()管理、设备管理及信息管理 9. 操作系统是现代计算机系统不可缺少的组成部分,是 为了提咼计算机的( 户使用计算机而配备的一种系统软件 . 10. 所谓()是指将一个以上的作业放入主存,并且同时处于运行状态,这些作业共享处 和外围设备等其他资源. A.多重处理 B.多道程序设计 C.实时处理 D?并行执行 11. ()操作系统允许在一台主机上同时连接多台终端,多个用户可以通过各自的终端同 A. CPU 的利用率不高 C.不具备并行性 B.资源利用率 D.以上都不是 A.进程 B.存储器 C.硬件 D.软件 8.操作系统中采用多道程序设计技术提高 CPU 和外部设备的() A.利用率 B.效率 C.稳定性 D.兼容性 )和方便用 理机的时间

操作系统习题与答案

一、操作系统概论 (A)1、操作系统负责为用户程序完成()的工作。 A、应用无关和硬件相关 B、应用无关和硬件无关 C、应用相关和硬件相关 D、应用相关和硬件无关 (C )2、操作系统是对()进行管理的软件。 A、硬件 B、软件 C、计算机资源 D、应用程序 (C )3、用户通过()来调用操作系统。 A、跳转指令 B、子程序调用指令 C、系统调用指令 D、以上3种方始都可 (A)4、所谓()是指将一个以上的作业放到主存,这些作业共享计算机资源,且同时处于运行开始与运行结束之间。 A、多道 B、批处理 C、分时 D、实时 (B )5、以下下()不是分时系统的特征。 A、交互性 B、同时性 C、及时性 D、同时性 (D )6、计算机操作系统的功能是()。 A、把源代码转换成目标代码 B、提供硬件与软件之间的转换 C、提供各种中断处理程序 D、管理计算机资源并提供用户接口 ( A)7操作系统的特征是()共享、虚拟以及异步 A、并发 B、多道 C、中断 D、实时 (B )8、处理器将操作系统程序执行的状态与用户程序执行状态称为? A 屏蔽中断状态和开放中断状态 B 用户态与核心态 C 关闭状态与开放状态 ( D )9、下列什么不是OS关心的主要问题 A、管理计算机裸机 B、设计用户程序与计算机硬件系统的界面 C、管理计算机系统资源 D、高级程序设计语言的编译器 ()10、允许多个用户交互方式使用计算机的OS称为(B );允许多个用户将作业计算机集中处理的计算机称为(A);计算机系统及时处理过程控制数据并作出响应的OS称为(D )。 A、批处理OS B、分时OS C、多处理器OS D、实时OS E、网络OS ()11、linux的设计模式属于(A),windows的设计模式属于(BCD)。 A 单核设计模式 B 微核设计模式 C 面向对象的设计模式 D、C/S模式 1、操作系统提供(命令接口)和(程序接 口)两种用户接口。 2、负责解释操作系统命令的程序叫(命令解释程序)。Linux的这个程序叫 (Shell )。 3、系统调用是通过(中断)来实现的。当发生系统调用,处理器的状态会从 (用户)态变为(系统)态。 4、输出重定向的符号是( > )。 5、后台执行命令是指(执行命令的进程在低优先级上运行)。 二.进程管理

操作系统习题答案

内存1通常情况下,在下列存储管理方式中,()支持多道程序设计、管理最简单,但存储碎片多;()使内存碎片尽可能少,而且使内存利用率最高。 Ⅰ.段式;Ⅱ.页式;Ⅲ.段页式;Ⅳ.固定分区;Ⅴ.可变分区 正确答案:Ⅳ;Ⅰ 2为使虚存系统有效地发挥其预期的作用,所运行的程序应具有的特性是()。 正确答案:该程序应具有较好的局部性(Locality) 3提高内存利用率主要是通过内存分配功能实现的,内存分配的基本任务是为每道程序()。使每道程序能在不受干扰的环境下运行,主要是通过()功能实现的。Ⅰ.分配内存;Ⅱ.内存保护;Ⅲ.地址映射;Ⅳ.对换;Ⅴ.内存扩充;Ⅵ.逻辑地址到物理地址的变换;Ⅶ.内存到外存间交换;Ⅷ.允许用户程序的地址空间大于内存空间。 正确答案:Ⅰ;Ⅱ 4适合多道程序运行的存储管理中,存储保护是 正确答案:为了防止各道作业相互干扰 5下面哪种内存管理方法有利于程序的动态链接()? 正确答案:分段存储管理

6在请求分页系统的页表增加了若干项,其中状态位供()参考。 正确答案:程序访问 7从下面关于请求分段存储管理的叙述中,选出一条正确的叙述()。 正确答案:分段的尺寸受内存空间的限制,但作业总的尺寸不受内存空间的限制8虚拟存储器的特征是基于()。 正确答案:局部性原理 9实现虚拟存储器最关键的技术是()。 正确答案:请求调页(段) 10“抖动”现象的发生是由()引起的。 正确答案:置换算法选择不当 11 在请求分页系统的页表增加了若干项,其中修改位供()参考。 正确答案:换出页面 12 虚拟存储器是正确答案:程序访问比内存更大的地址空间 13测得某个请求调页的计算机系统部分状态数据为:CPU利用率20%,用于对换空间的硬盘的利用率97.7%,其他设备的利用率5%。由此断定系统出现异常。此种情况下()能提高CPU的利用率。

《现代操作系统第四版》第三章答案

第三章内存管理习题 1.IBM360有一个设计,为了对2KB大小的块进行加锁,会对每个块分配一个4bit的密钥,这个密钥存在PSW(程序状态字)中,每次内存引用时,CPU都会进行密钥比较。但该设计有诸多缺陷,除了描述中所言,请另外提出至少两条缺点。 A:密钥只有四位,故内存只能同时容纳最多十六个进程;需要用特殊硬件进行比较,同时保证操作迅速。 2.在图3-3中基址和界限寄存器含有相同的值16384,这是巧合,还是它们总是相等?如果这只是巧合,为什么在这个例子里它们是相等的? A:巧合。基地址寄存器的值是进程在内存上加载的地址;界限寄存器指示存储区的长度。 3.交换系统通过紧缩来消除空闲区。假设有很多空闲区和数据段随机分布,并且读或写32位长的字需要10ns的时间,紧缩128MB大概需要多长时间?为了简单起见,假设空闲区中含有字0,内存中最高地址处含有有效数据。 A:32bit=4Byte===>每字节10/4=2.5ns 128MB=1282^20=2^27Byte 对每个字节既要读又要写,22.5*2^27=671ms 4.在一个交换系统中,按内存地址排列的空闲区大小是10MB,4MB,20MB,18MB,7MB,9MB,12MB,和15MB。对于连续的段请求: (a) 12MB (b) 10MB (c) 9MB

使用首次适配算法,将找出哪个空闲区?使用最佳适配、最差适配、下次适配算法呢? A:首次适配算法:20MB,10MB,18MB;最佳适配算法:12MB,10MB,9MB;最差适配算法:20MB;18MB;15MB;下次适配算法:20MB;18MB;9MB; 5.物理地址和虚拟地址有什么区别? A:实际内存使用物理地址。这些是存储器芯片在总线上反应的数字。虚拟地址是指一个进程的地址空间的逻辑地址。因此,具有32位字的机器可以生成高达4GB的虚拟地址,而不管机器的内存是否多于或少于4GB。 6.对下面的每个十进制虚拟地址,分別使用4KB页面和8KB页面计算虚拟页号和偏移量:20000,32768,60000。 A:转换为二进制分别为:0100111000100000 虚拟地址应该是16位1000000000000000 1110101001100000 4KB页面偏移量范围0~4027,需要12位来存储偏移量,剩下4位作为页号;同理8KB页面需要13位来存储偏移量,剩下3位作为页号;所以,4KB | 8KB 页号| 偏移量| 页号| 偏移量20000 | 0100 111000100000 | 010 0111000100000 32768 | 1000 000000000000 | 100 0000000000000 60000 | 1110 101001100000 | 111 0101001100000 7. 使用图3-9的页表,给出下面每个虚拟地址对应的物理地址:

操作系统例题讲解

操作系统例题讲解 一、调度算法 对如下表所示的5个进程: 采用可剥夺的静态最高优先数算法进行调度(不考虑系统开销)。 问 题: ⑴ 画出对上述5个进程调度结果的Gantt 图; ⑵ 计算5个进程的平均周转时间、平均带权周转时间。 解: ⑴ 调度结果的Gantt 图如下: 0 2 4 5 7 9 10 12 14 (2) 时间计算: 二、存储管理 某系统采用虚拟页式存储管理方式,页面大小为2KB ,每个进程分配的页框数固定为4页。采用局部置换策略,置换算法采用改进的时钟算法,当有页面新装入内存时,页表的时钟指针指向新装入页面的下一个在内存的表项。设当前进程P 的页表如下(“时钟”指针指向逻辑页面3的表项): 逻辑页号 0 1 2 3 4 5 问 题: ⑴ 当进程P 依次对逻辑地址执行下述操作: ① 引用 4C7H ; ② 修改 19B4H ; ③ 修改 0C9AH ; 写出进程P 的页表内容; ⑵ 在 ⑴ 的基础上,当P 对逻辑地址27A8H 进行访问, 该逻辑地址对应的物理地址是多少?

解:页面大小为2KB,2KB=2×210=211, 即逻辑地址和物理地址的地址编码的低11位为页内偏移; ⑴①逻辑地址4C7H=0100 1100 0111B,高于11位为0,所以该地址访问逻辑页面0; 引用4C7H,页表表项0:r=1; ②逻辑地址19B4H=0001 1001 1011 0100B,高于11位为3,所以该地址访问逻辑页面3; 修改19B4H,页表表项3:r=1, m=1; ③逻辑地址0C9AH=0000 1100 1001 1010B,高于11位为1,所以该地址访问逻辑页面1; 逻辑页1不在内存,发生缺页中断; ①、②两操作后,P的页表如下: 逻辑页号 1 2 3 4 5 按改进的时钟算法,且时钟指针指向表项3,应淘汰0页面, 即把P的逻辑页面1读到内存页框101H,页表时钟指针指向表项2。 并执行操作:修改0C9AH。 经上述3个操作后,P的页表如下: 逻辑页号 1 2 3 4 5 ⑵逻辑地址27A8H=0010 0111 1010 1000B,高于11位为4,所以该地址访问逻辑页面4; 页面4不在内存,发生缺页中断;按改进的时钟算法,淘汰页面2,页面4读到110H页框, 所以,逻辑地址27A8H对应的物理地址为: 0001 0001 0000 111 1010 1000B=887A8H。 三、设备与I/O管理 设系统磁盘只有一个移动磁头,磁道由外向内编号为:0、1、2、……、199;磁头移动一个磁道所需时间为1毫秒;每个磁道有32 个扇区;磁盘转速R=7500r/min. 系统对磁盘设备的I/O请求采用N-Step Look (即N-Step Scan,但不必移动到磁道尽头),N=5。设当前磁头在60号磁道,向内移动;每个I/O请求访问磁道上的1个扇区。现系统依次接收到对磁道的I/O请求序列如下: 50, 20, 60, 30, 75, 30, 10, 65, 20, 80,15, 70 问题: ⑴写出对上述I/O请求序列的调度序列,并计算磁头引臂的移动量; ⑵计算:总寻道时间(启动时间忽略)、总旋转延迟时间、总传输时间和总访问处理时间。 解:⑴考虑序列中有重复磁道的I/O请求,调度序列为: 60→75→50→30→20→15→10→65→70→80 磁头移动量=(75-60)+(75-50)+(50-30)+(30-20)+ (20-15)+(15-10)+(65-10)+(70-65)+(80-70) =15+25+20+10+5+5+55+5+10=155(磁道)

《现代操作系统第四版》 第六章 答案

第四章文件系统习题 Q1: 给出文件/etc/passwd的五种不同的路径名。(提示:考虑目录项”.”和”…”。) A: /etc/passwd /./etc/passwd /././etc/passwd /./././etc/passwd /etc/…/etc/passwd /etc/…/etc/…/etc/passwd /etc/…/etc/…/etc/…/etc/passwd /etc/…/etc/…/etc/…/etc/…/etc/passwd Q2:在Windows中,当用户双击资源管理器中列出的一个文件时,就会运行一个程序,并以这个文件作为参数。操作系统要知道运行的是哪个程序,请给出两种不同的方法。 A:Windows使用文件扩展名。每种文件扩展名对应一种文件类型和某些能处理这种类型的程序。另一种方式时记住哪个程序创建了该文件,并运行那个程序。Macintosh以这种方式工作。

Q3:在早期的UNIX系统中,可执行文件(a.out)以一个非常特別的魔数开始,这个数不是随机选择的。这些文件都有文件头,后面是正文段和数据段。为什么要为可执行文件挑选一个非常特别的魔数,而其他类型文件的第一个字反而有一个或多或少是随机选择的魔数? A:这些系统直接把程序载入内存,并且从word0(魔数)开始执行。为了避免将header作为代码执行,魔数是一条branch指令,其目标地址正好在header之上。按这种方法,就可能把二进制文件直接读取到新的进程地址空间,并且从0 开始运行。 Q4: 在UNIX中open系统调用绝对需要吗?如果没有会产生什么结果? A: open调用的目的是:把文件属性和磁盘地址表装入内存,便与后续调用的快速访问。 首先,如果没有open系统调用,每次读取文件都需要指定要打开的文件的名称。系统将必须获取其i节点,虽然可以缓存它,但面临一个问题是何时将i节点写回磁盘。可以在超时后写回磁盘,虽然这有点笨拙,但它可能起作用。 Q5:在支持顺序文件的系统中总有一个文件回绕操作,支持随机存取

操作系统例题汇总

1.2例题精选 例如何理解虚拟机的概念? 解:一台仅靠由硬件组成的计算机一般被称为裸机,不易使用。操作系统为用户使用计算机提供了许多服务,从而把一台难于使用的裸机改造成了功能更强大、使用更方便的计算机系统,这种计算机系统称为虚拟机。所谓虚拟,是指把一个物理上的实体变为若干个逻辑上的对应物。前者是实际存在的,而后者是虚的,只是用户的一种感觉。在单CPU的计算机系统中能同时运行多道程序,好像每个程序都独享一个CPU,这就是虚拟。在构造操作系统时,把操作系统分成若干层,每层完成特定的功能,从而形成一个虚拟机。下层的虚拟机为上层的虚拟机提供服务,这样逐次扩充以完成操作系统的功能。 讨论“虚拟”的概念体现在操作系统的方方面面。例如,虚拟存储器,使一台只有4MB内存的计算机可以运行总容量远远超过4 MB的程序;虚拟外设,能够使多个用户同时访问该外设等。 例什么是多道程序设计,它的主要优点是什么? 解: 所谓多道程序设计是指把一个以上的程序存放在内存中,并且同时处于运行状态,这些程序共享CPU和其他计算机资源。其主要优点是: (1)CPU的利用率高:在单道程序环境下,程序独占计算机资源,当程序等待I/O操作时CPU空闲,造成CPU资源的浪费。在多道程序环境下,多个程序共享计算机资源,当某个程序等待 I/O操作时,CPU可以执行其他程序,这大大地提高了CPU的利用率。 (2)设备利用率高:在多道程序环境下,内存和外设也由多个程序共享,无疑也会提高内存和外设的利用率。 (3)系统吞吐量大:在多道程序环境下,资源的利用率大幅度提高,减少了程序的等待时间,提高了系统的吞吐量。 讨论多道程序在计算机中并发地运行是现代计算机系统的重要特征。早期的单道批处理系统与人工操作相比自动化程度大大提高,但系统中仍有较多的空闲资源,系统的性能较差。多遭批处理系统虽有很多优点,但这种系统交互能力差,作业的平均周转时间长。多道程序处理系统要解决的主要问题是,如何使多个程序合理、有序地共事处理机、内存、外设等资源。 例1.3 A, B两个程序,程序 A按顺序使用CPU 10 S,使用设备甲 5 S,使用 CPU 5 S,使用设备乙 10 S,最后使用 CPU 10 S。程序 B按顺序使用设备甲 10 S,使用 CPU 10 S,使用设备乙5S,使用CPU 5S,使用设备乙 10S。(忽略调度程序执行时间)试问: (1)在顺序环境下执行程序A和程序B,CPU的利用率是多少? (2)在多道程序环境下, CPU的利用率是多少? 解(1)程序A和程序B顺序执行时,程序A执行完毕,程序B才开始执行。两个程序共耗时80S,其中占用CPU时间为40S,顺序执行时CPU的利用率为50%。 (2)在多道程序环境下,两个程序并发执行,其执行情况如图所示。可以看出,两个程序共耗时45S,其中占用CPU时间为40S,故此时CPU的利用率为40/45=%。 讨论 (1)在单道程序环境下,程序顺序执行,CPU被一道程序独占,即使CPU空闲,其他程序也不能使用,所以 CPU的利用率低。 (2)在多道程序环境下,若干个程序宏观上同时执行,微观上交替执行。当其中一个程序由于某种原因(例如进行1/O操作)而不能占用CPU时,其他程序就可以占用CPU,提高了CPU的利用率。

计算机操作系统习题及答案

第二章计算机操作系统 一、填空题 1. 在Windows XP中,进行系统软、硬件设置的文件夹称为______。 2. 在Windows XP系统中文标点方式下,键入符号“”对应的中文标点是______。 3. 在Windows XP默认环境中,要改变“屏幕保护程序”的设置,应首先双击“控制面板”窗口中的______图标。 4. 用Windows XP的“记事本”所创建文件的缺省扩展名是______。 5. 在Windows XP中,要添加Windows组件,必须打开______窗口。 6. 当选定文件或文件夹后,欲改变其属性设置,可以单击鼠标______键,然后在弹出的菜单中选择“属性”命令。 7. 在Windows XP中,当用鼠标左键在不同驱动器之间拖动对象时,系统默认情况下,该操作的作用是______。 8. 在Windows XP的“资源管理器”窗Vl中,将文件以列表方式显示,可按~、类型、大小、日期及自动排列五种规则排序。 9. 在WindoWS XP中,若要更改任务栏的属性,可以右键单击______空白处,再从弹出的菜单中选择“属性”命令来实现更改。 10. 在Windows XP环境中,选定多个不相邻文件的操作方法是:单击第一个文件,然后按住______键的同时,单击其它待选定的文件。 11. 在Windows xP中,利用“控制面板”窗口中的______向导工具,可以安装任何类型的新硬件。 12. 在Windows XP中,若要删除选定的文件,可直接按______键。 13. 按操作系统分类,UNIX操作系统是______。 14. 在Windows xP默认环境中,用于中英文输入方式切换的组合键是______。 15. 在Windows XP中,若系统长时间不响应用户的要求,为了结束该任务,使用______组合键。 二、单项选择题 1. Windows XP的“开始”菜单包括了Windows XP系统的()。 A. 主要功能 B. 全部功能 C. 部分功能 D. 初始化功能 2. 下列不可能出现在Windows XP中的“资源管理器”窗口左侧窗格中的选项是()。 A. 我的电脑 B. 桌面 C. use(登录的账户名)的文档 D. 资源管理器 3. 在Windows XP中,能更改文件名的操作是()。 A. 右键单击文件名,选择“重命名”命令,键入新文件名后按Enter键 B. 左键单击文件名,选择“重命名”命令,键入新文件名后按Enter键 C. 右键双击文件名,选择“重命名”命令,键入新文件名后按Enter键 D. 左键双击文件名,选择“重命名”命令,键人新文件名后按Enter键 4. 在Windows XP中,全角方式下输入的数字应占的字节数是()。 A. 1 B. 2 C. 3 D. 4 5. Windows XP中将信息传送到剪贴板不正确的方法是()。 A. 用“复制”命令把选定的对象送到剪贴板 B. 用“剪切”命令把选定的对象送到剪贴板 C. 用Ctrl+V组合键把选定的对象送到剪贴板 D. Alt+PrintScreen把当前窗口送到剪贴板 6. 在windows XP中,欲选定当前文件夹中的全部文件和文件夹对象,可使用的组合键是()。 A. Ctrl+V B. Ctrl+A C. Ctrl+X D. Ctrl+D 7. 下列文件名,()是非法的Windows XP文件名。 A. ThiS is my file B. 关于改进服务的报告

操作系统(第二版)习题答案

第1章 一、填空 1.计算机由硬件系统和软件系统两个部分组成,它们构成了一个完整的计算机系统。 2.按功能划分,软件可分为系统软件和应用软件两种。 3.操作系统是在裸机上加载的第一层软件,是对计算机硬件系统功能的首次扩充。 4.操作系统的基本功能是处理机(包含作业)管理、存储管理、设备管理和文件管理。 5.在分时和批处理系统结合的操作系统中引入“前台”和“后台”作业的概念,其目的是改善系统功能,提高处理能力。 6.分时系统的主要特征为多路性、交互性、独立性和及时性。 7.实时系统与分时以及批处理系统的主要区别是高及时性和高可靠性。 8.若一个操作系统具有很强的交互性,可同时供多个用户使用,则是分时操作系统。 9.如果一个操作系统在用户提交作业后,不提供交互能力,只追求计算机资源的利用率、大吞吐量和作业流程的自动化,则属于批处理操作系统。 10.采用多道程序设计技术,能充分发挥CPU 和外部设备并行工作的能力。 二、选择 1.操作系统是一种 B 。 A.通用软件B.系统软件C.应用软件D.软件包2.操作系统是对 C 进行管理的软件。 A系统软件B.系统硬件C.计算机资源D.应用程序3.操作系统中采用多道程序设计技术,以提高CPU和外部设备的A。 A.利用率B.可靠性C.稳定性D.兼容性4.计算机系统中配置操作系统的目的是提高计算机的 B 和方便用户使用。 A.速度B.利用率C.灵活性D.兼容性5. C 操作系统允许多个用户在其终端上同时交互地使用计算机。 A.批处理B.实时C.分时D.多道批处理6.如果分时系统的时间片一定,那么 D ,响应时间越长。 A.用户数越少B.内存越少C.内存越多D.用户数越多 三、问答 1.什么是“多道程序设计”技术?它对操作系统的形成起到什么作用? 答:所谓“多道程序设计”技术,即是通过软件的手段,允许在计算机内存中同时存放几道相互独立的作业程序,让它们对系统中的资源进行“共享”和“竞争”,以使系统中

操作系统教程习题答案

《操作系统教程》习题答案

习题1 1.单项选择题 (1)大中小型计算机是以为中心的计算机系统。 A、CPU B、存储器 C、系统总线 D、通道 (2)以下关于操作系统的说法正确的是。 A、批处理系统是实现人机交互的系统 B、批处理系统具有批处理功能,但不具有交互能力 C、分时系统是实现自动控制,无须人为干预的系统 D、分时系统即具有分时交互能力,又具有批处理能力 (3)操作系统的职能是管理软硬件资源、合理地组织计算机工作流程和。 A、为用户提供良好的工作环境和接口 B、对用户的命令作出快速响应 C、作为服务机构向其它站点提供优质服务 D、防止有人以非法手段进入系统 (4)设计实时操作系统时,首先应考虑系统的。 A、可靠性和灵活性 B、实时性和可靠性 C、优良性和分配性 D、灵活性和分配性 (5)多道程序设计是指。 A、在分布式系统中同一时刻运行多个程序 B、在一台处理器上并行运行多个程序 C、在实时系统中并发运行多个程序 D、在一台处理器上并发运行多个程序 (6)以下关于并发性和并行性的说法正确的是。 A、并发性是指两个及多个事件在同一时刻发生 B、并发性是指两个及多个事件在同一时间间隔内发生 C、并行性是指两个及多个事件在同一时间间隔内发生 D、并发性是指进程,并行性是指程序 (1)B (2)B (3)A (4)B (5)D (6)B 2.填空题 (1)微机是以总线为纽带构成的计算机系统。 (2)在批处理兼分时系统中,往往把由分时系统控制的作业称为前台作业,把由批处理系统控制的作业称为后台作业。 (3)在分时系统中,若时间片长度一定,则用户数越多,系统响应时间越慢。 (4)分布式操作系统能使系统中若干台计算机协同完成一个共同的任务,分解问题成为子计算并使之在系统中各台计算机上并行执行,以充分利用各计算机的优势。 (5)用户通过网络操作系统可以网络通信、资源共享,从而大大扩展了计算机的应用范围。 3.简答题 (1)什么是操作系统?现代操作系统的基本特征是什么?并发性 (2)什么是批处理系统,衡量批处理系统好坏的主要指标是什么?及时性 (3)试述分时系统的原理及其特性。时间片原则交互性同时性独立性及时性

计算机操作系统习题及答案()

第3章处理机调度1)选择题 (1)在分时操作系统中,进程调度经常采用_D_ 算法。 A. 先来先服务 B. 最高优先权 C. 随机 D. 时间片轮转 (2)_B__ 优先权是在创建进程时确定的,确定之后在整个进程运行期间不再改变。 A. 作业 B. 静态 C. 动态 D. 资源 (3)__A___ 是作业存在的惟一标志。 A. 作业控制块 B. 作业名 C. 进程控制块 D. 进程名 (4)设有四个作业同时到达,每个作业的执行时间均为2小时,它们在一台处理器上按单道方式运行,则平均周转时间为_ B_ 。 A. l小时 B. 5小时 C. 2.5小时 D. 8小时 (5)现有3个同时到达的作业J1、J2和J3,它们的执行时间分别是T1、T2和T3,且T1<T2<T3。系统按单道方式运行且采用短作业优先算法,则平均周转时间是_C_ 。 A. T1+T2+T3 B. (T1+T2+T3)/3 C. (3T1+2T2+T3)/3 D. (T1+2T2+3T3)/3 (6)__D__ 是指从作业提交给系统到作业完成的时间间隔。 A. 运行时间 B. 响应时间 C. 等待时间 D. 周转时间 (7)下述作业调度算法中,_ C_调度算法与作业的估计运行时间有关。 A. 先来先服务 B. 多级队列 C. 短作业优先 D. 时间片轮转 2)填空题 (1)进程的调度方式有两种,一种是抢占(剥夺)式,另一种是非抢占(非剥夺)式。 (2)在_FCFS_ 调度算法中,按照进程进入就绪队列的先后次序来分配处理机。 (3)采用时间片轮转法时,时间片过大,就会使轮转法转化为FCFS_ 调度算法。 (4)一个作业可以分成若干顺序处理的加工步骤,每个加工步骤称为一个_作业步_ 。 (5)作业生存期共经历四个状态,它们是提交、后备、运行和完成。 (6)既考虑作业等待时间,又考虑作业执行时间的调度算法是_高响应比优先____ 。 3)解答题 (1)单道批处理系统中有4个作业,其有关情况如表3-9所示。在采用响应比高者优先调度算法时分别计算其平均周转时间T和平均带权周转时间W。(运行时间为小时,按十进制计算) 表3-9 作业的提交时间和运行时间

计算机操作系统习题答案

计算机操作系统习题答 案 Company Document number:WUUT-WUUY-WBBGB-BWYTT-1982GT

第一章操作系统概论 1.单项选择题 ⑴ B; ⑵ B; ⑶ C; ⑷ B; ⑸ C; ⑹ B; ⑺ B;⑻ D;⑼ A;⑽ B; 2.填空题 ⑴操作系统是计算机系统中的一个最基本的系统软件,它管理和控制计算机系统中的各种系统资源; ⑵如果一个操作系统兼有批处理、分时和实时操作系统三者或其中两者的功能,这样的操作系统称为多功能(元)操作系统; ⑶没有配置任何软件的计算机称为裸机; ⑷在主机控制下进行的输入/输出操作称为联机操作; ⑸如果操作系统具有很强交互性,可同时供多个用户使用,系统响应比较及时,则属于分时操作系统类型;如果OS可靠,响应及时但仅有简单的交互能力,则属于实时操作系统类型;如果OS在用户递交作业后,不提供交互能力,它所追求的是计算机资源的高利用率,大吞吐量和作业流程的自动化,则属于批处理操作系统类型; ⑹操作系统的基本特征是:并发、共享、虚拟和不确定性; ⑺实时操作系统按应用的不同分为过程控制和信息处理两种; ⑻在单处理机系统中,多道程序运行的特点是多道、宏观上并行和微观上串行。 第二章进程与线程 1.单项选择题

⑴ B;⑵ B;⑶ A C B D; ⑷ C; ⑸ C; ⑹ D; ⑺ C; ⑻ A; ⑼ C; ⑽ B; ⑾ D; ⑿ A; ⒀ D; ⒁ C; ⒂ A; 2.填空题 ⑴进程的基本状态有执行、就绪和等待(睡眠、阻塞); ⑵进程的基本特征是动态性、并发性、独立性、异步性及结构性; ⑶进程由控制块(PCB)、程序、数据三部分组成,其中PCB是进程存在的唯一标志。而程序部分也可以为其他进程共享; ⑷进程是一个程序对某个数据集的一次执行; ⑸程序并发执行与顺序执行时相比产生了一些新特征,分别是间断性、失去封闭性和不可再现性; ⑹设系统中有n(n>2)个进程,且当前不在执行进程调度程序,试考虑下述4种情况: ①没有运行进程,有2个就绪进程,n个进程处于等待状态; ②有一个运行进程,没有就绪进程,n-1个进程处于等待状态; ③有1个运行进程,有1个等待进程,n-2个进程处于等待状态; ④有1个运行进程,n-1个就绪进程,没有进程处于等待状态; 上述情况中不可能发生的情况是①; ⑺在操作系统中引入线程的主要目的是进一步开发和利用程序内部的并行性; ⑻在一个单处理系统中,若有5个用户进程,且假设当前时刻为用户态,则处于就绪状态的用户进程最多有4个,最少0个;

操作系统教程第5版课后答案

操作系统教程第5版课后答案 费祥林、骆斌编著 第一章操作系统概论 习题一 一、思考题 1.简述现代计算机系统的组成及层次结构。 答:现代计算机系统由硬件和软件两个部分组成。是硬件和软件相互交织形成的集合体,构成一个解决计算问题的工具。硬件层提供基本可计算的资源,包括处理器、寄存器、内存、外存及I/O设备。软件层由包括系统软件、支撑软件和应用软件。其中系统软件是最靠近硬件的。 2、计算机系统的资源可分成哪几类?试举例说明。 答:包括两大类,硬件资源和信息资源。硬件资源分为处理器、I/O设备、存储器等;信息资源分为程序和数据等。 3.什么是操作系统?操作系统在计算机系统中的主要作用是什么? 答:操作系统是一组控制和管理计算机硬件和软件资源,合理地对各类作业进行调度,以及方便用户使用的程序的集合。 操作系统在计算机系统中主要起4个方面的作用。 (1)服务用户观点——操作系统提供用户接口和公共服务程序 (2)进程交互观点——操作系统是进程执行的控制者和协调者 (3)系统实现观点——操作系统作为扩展机或虚拟机 (4)资源管理观点——操作系统作为资源的管理者和控制者 4.操作系统如何实现计算与操作过程的自动化? 答:大致可以把操作系统分为以下几类:批处理操作系统、分时操作系统、实时操作系统、网络操作系统和分布式操作系统。其中批处理操作系统能按照用户预先规定好的步骤控制作业的执行,实现计算机操作的自动化。又可分为批处理单道系统和批处理多道系统。单道系统每次只有一个作业装入计算机系统的主存储器运行,多个作业可自动、顺序地被装入运行。批处理多道系统则允许多个作业同时装入主存储器,中央处理器轮流地执行各个作业,各个作业可以同时使用各自所需的外围设备,这样可以充分利用计算机系统的资源,缩短作业时间,提高系统的吞吐率 5.操作系统要为用户提供哪些基本的和共性的服务? 答:(1)创建程序和执行程序;(2)数据I/O和信息存取;(3)通信服务;(4)差错检测和处理。为了保证高效率、高质量的工作,使得多个应用程序能够有效的共享系统资源,提高系统效率,操作系统还具备一些其他的功能:资源分配,统计,保护等。 6.试述操作系统所提供的各种用户接口。 答:操作系统通过程序接口和操作接口将其服务和功能提供给用户。程序接口由一组系统调用组成,在应用程序中使用“系统调用”可获得操作系统的低层服务,访问或使用系统管理的各种软硬件资源,是操作系统对外提供服务和功能的手段;操作接口由一组命令和(或)作业控制语言组成,是操作系统为用户提

操作系统习题及答案一

习题一操作系统概论 一.选择题 1. 计算机的操作系统是一种(). A. 应用软件 B.系统软件 C.工其软件D字表处理软件 2. 批处理系统的主要缺点是(). A. CPU 的利用率不高 B .失去了交互性 C.不具备并行性 D.以上都不是 3.计算机操作系统的功能是(). A. 把源程序代码转换为标准代码 B .实现计算机用户之间的相互交流 C. 完成计算机硬件与软件之间的转换 D. 控制、管理计算机系统的资源和程序的执行 4. 在分时系统中,时间片一定时,(),响应时间越长. A.内存越多 B.用户数越多 C.内存越少D用户数越少 5.操作系统的()管理部分负责对进程进行调度. A?主存储器 B.控制器 C.运算器D处理机 6. 从用户的观点看,操作系统是(). A. 用户与计算机之间的接口 B. 控制和管理计算机资源的软件 C. 合理地组织计算机工作流程的软件 D. 由若干层次的程序按一定的结构组成的有机体 7. 操作系统的功能是进行处理机管理、()管理、设备管理及信息管理. A.进程 B.存储器 C.硬件 D.软件 8. 操作系统中采用多道程序设计技术提高CPU 和外部设备的(). A.利用率 B.效率 C.稳定性 D.兼容性 9. 操作系统是现代计算机系统不可缺少的组成部分,是为了提高计算机的()和方便用户使用计算机而配备的一种系统软件. A. CPU的利用率不高 B.资源利用率 C.不具备并行性 D.以上都不是 10. 所谓()是指将一个以上的作业放入主存,并且同时处于运行状态,这些作业共享处理机的时间和外围设备等其他资源. A.多重处理 B.多道程序设计 C.实时处理D?并行执行 11.()操作系统允许在一台主机上同时连接多台终端,多个用户可以通过各自的终端同 时交互地使用计算机. A. 网络 B. 分布式 C.分时 D.实时 12.分时操作系统通常采用()策略为用户服务. A. 可靠性和灵活性 B.时间片轮转 C .时间片加权分配 D. 短作业优先 13.系统调用是由操作系统提供的内部调用,它(). A.直接通过键盘交互方式使用 B.只能通过用户程序间接使用

相关文档