实用操作系统教程(第2版)课后习题参考答案1习题1操作系统概述一、选择题题号12345678910答案BDCDCDACDD题号11121314151617181920答案BCCCBDBBBA二、综合题1、答:并发性和并行性是既相似又有区别的两个概念。并行性是指两个或多个事件在同一时刻发生;而并发性是指两个或多个事件在同一时间间隔内发生。、在单处理器系统中只有一条指令流水线,一个多功能的操作部件,某时刻处理机只能执行一个进程,进程与进程之间不能并行执行,只能并发执行。但在各种I/O控制技术的帮助下,处理机、通道和设备之间都能进行并发。(1)处理机和设备之间的并行,能够发生。(2)处理机和通道之间的并行,能够发生。(3)通道和通道之间的并行,能够发生。(4)设备和设备之间的并行,能够发生。2、答:以多道程序技术为基础的现代操作系统具有4个基本特征:(1)并发性:多个程序并发执行,宏观并行,微观串行。(2)共享性:多个程序共享系统中的所有资源(3)虚拟性:操作系统为每个进程都虚拟出了一整套其所需的软硬件资源,让进程所属的用户感觉到自己独占整个系统。操作系统通过进程状态转换实现虚拟性。当进程被切换出去运行态时,它的运行环境被操作系统保存,当把再次被调度程序选中切换到运行态时恢复其运行环境继续上次运行状态继续运行。(4)异步性:并发执行的各个进程之间运行时间、运行顺序具有不确定性,即异步性,程序执行已经失去的封闭性和可再现性。操作系统通过同步机制保证多个进程能够正确的执行。3、答:多道程序设计技术是指同时把多个程序放入内存并允许交替执行和共享系统中的各类资源,当一个程序因某种原因(如I/O请求)而暂停执行时,CPU立即转去执行另一个程序。操作系统在引入多道程序设计技术后,使得系统内有了多个程序(进程),它们宏观上看同时执行,微观上看仍然是串行。多道程序设计技术的优点:多道程序交替穿插执行,提高了CPU、内存和I/O设备的利用率;在保持CPU、I/O设备不断工作的同时,导致系统吞吐量的上升。4、答:推动批处理系统形成和发展的主要动力是“不断提高系统资源利用率”和“提高系统吞吐量”。这主要表现在:脱机输入/输出技术的应用和作业的自动过渡大大地提高了I/O的速实用操作系统教程(第2版)课后习题参考答案2度及I/O设备与CPU并行工作的程度,减少了主机CPU的空闲时间;多道程序设计技术的应用更进一步提高了CPU、内存和I/O设备的利用率及系统的吞吐率。推动分时系统形成和发展的主要动力是“为了更好地满足用户的需要”。这主要表现在:CPU的分时使用缩短了作业的平均周转时间;人机交互能力的提高使用户能方便地直接控制自己的作业;主机的共享使多个用户(包括远程用户)能同时使用同一台计算机独立地、互补干扰地处理自己的作业。5、答:不确定性指在多道程序设计环境下,系统中每道程序的推进时间、顺序以及完成时间由于受其运行环境的影响是不确定的、不可预知的。程序的执行是以“走走停停”的方式运行。不确定性增加了操作系统的设计与实现难度,操作系统设计者必须采取一定的措施保证系统不出现结果随机性。6、答:按层次结构的原则从内到外排列为:裸机、CPU调度,进程同步操作,内存管理,作业管理,设备管理,文件管理、命令管理和用户。7、答:(1)批处理系统的特点:用户脱机使用计算机,作业成批处理,系统内多道程序并发执行,交互能力差。(2)分时系统的特点:多个用户同时使用计算机,人机交互性强,具有每个用户独立使用计算机的独占性,以及系统响应的及时性。(3)实时系统的特点:实时性、可靠性,但系统资源利用率较低。8、答:顺序执行时,CPU运行时间为(10+5+10)+(10+5)=40s,两个程序运行总时间为:40+40=80s,故利用率是40/80=50%多道程序环境下,如下图所示,CPU的运行时间为40s,两个程序运行总时间为45s,故利用率是40/45=88.9%9、答:进程运行情况如下图所示:程序A55010程序B15203530254045甲乙乙乙甲CPUCPUCPUCPUCPU实用操作系统教程(第2版)课后习题参考答案3(1)CPU在100-150ms时间段内空闲,利用率为250/300=83.3%(2)进程A无等待现象。(3)进程B有等待现象,0-50ms和180-200ms。10、答:便于设计安全可靠的操作系统。核心态和用户态是计算机硬件为保护操作系统免受用户程序的干扰和破坏而设置的两种状态。通常操作系统在核心态下运行,可以执行所有机器指令;而用户程序在用户态下运行,只能执行非特权指令。如果用户程序企图在核心态下运行,只能执行非特权指令。如果用户程序企图在核心态下执行特权指令,将会引起保护性中断,由操作系统终止该程序的执行,从而保护了操作系统。如果允许用户执行特权指令,就有可能干扰操作系统的正常运行,甚至有可能使整个系统崩溃。11、答:库函数是语言或应用程序的一部分,可以运行在用户空间中。而系统调用是操作系统的一部分,是内核提供给用户的程序接口,运行在内核空间中,而且许多库函数都会使用系统调用来实现其功能。没有使用系统调用的库函数,执行效率通常比系统调用高,因为使用系统调用时,需要上下文的切换以及状态的转换(从用户态转为核心态)。12、答:从操作系统结构设计观点看,早期的操作系统主要是单处理机操作系统,在结构设计方法上主要采用整体结构设计模式和层次式结构设计模式。传统的整体式、层次式结构设计法对计算机系统(如网络系统、分布式系统及多处理机系统)而言则有较大缺陷,不能满足需求。后来出现了虚拟机结构操作系统、微内核结构操作系统,对称多处理系统操作系统等。13、答:微内核结构操作系统的内核尽量简单,仅存放最基本、最主要的核心功能模块;其他服务和应用建立在内核之上,作为系统进程或用户进程运行。微内核结构操作系统有以下三个主要优点。①良好扩充性。只需添加支持新功能的服务进程即可增加新功能。②可靠性高。调用关系明确,执行转移不易混乱。③便于网络服务和分布式处理。程序A25050程序B150200100300CPUCPUCPU打印打印CPU输入实用操作系统教程(第2版)课后习题参考答案4习题2进程、线程管理一、选择题题号12345678910答案BBDCDCABDC题号1112答案AA二、综合题2、答:在多道程序环境下,允许多个程序并发执行,这就导致了在操作系统中引入了“进程”。进程是随着操作系统中分时思想的提出而引出的。进程是一个可并发执行的具有独立功能的程序在某个数据集合的一次执行过程,它是操作系统进行资源分配和保护的基本单位。①进程和程序的最大区别就是进程是程序的一次执行过程,它是一个动态概念。程序是以文件形式存放在磁盘上的代码序列,它是一个静态概念。②进程能够并发执行。在同一段时间内,并发执行的若干进程共享一个处理机,各个进程按照不同的推进速度运行。进程状态及其转换可以很好地描述并发执行进程的执行过程。③进程是计算机系统资源分配的基本单位,程序不能作为一个独立单位运行和申请系统资源。④进程由含有代码和数据的用户地址空间、进程控制块和执行栈区等部分组成,而程序只由静态代码组成。⑤进程和程序之间是多对多的关系。一个程序可被多个进程共用,一个进程在其活动中又可调用若干个程序。2、答:原语是由若干条机器指令组成的、用于完成一定功能的一个过程。原语不可分割,其执行期间不充许被中断,要么从头到尾执行一遍,要么全不执行。原语的特征保证其在执行过程中不受外界因素的影响。原语的一般实现方法是以系统调用的方式提供原语接口,原语在执行过程中采用屏蔽中断的方式来保证其不能被中断。原语常驻内存,只在核心态下运行。通常情况下,原语只提供给系统进程或系统服务器使用。3、答:传统操作系统通过进程的并发执行提高了系统资源利用率和作业吞吐量,但进程模型存在如下局限性。①每个进程都有一个进程控制块和一个私有的用户地址空间,如果按进程进行并发控制,那么在同一个地址空间中只允许单个执行序列运行。显然,在不进行地址变换的情况下,只允许一个执行序列运行,处理机资源仍然不能得到充分利用。②一个进程内部只有一个执行序列,不能满足用户让一个进程内部并发执行多个任务的要求。③进程在处理机上的频繁切换给系统造成大量时空开销,这限制了系统中并发执行进程的数目,降低了系统并发执行程序。实用操作系统教程(第2版)课后习题参考答案5④进程通信代价大。进程间传递信息时,要把消息从一个进程的工作区传送到另一个进程的工作区,这需要操作系统提供进程通信机制并且给编程者带来负担。⑤不适合并行计算和分布并行计算的要求。对于多处理机和分布式的计算环境来说,进程之间大量频繁的通信和切换,会大大降低并行度。线程是进程内部一个相对独立的、具有可调度特性的执行单元。一个进程可包含多个线程。4、答:内核支持线程(KernelSupportedThreads,KST)是由内核负责管理线程的创建、撤消和切换等,在内核空间为每一个内核支持线程设置一个线程控制块。内核支持线程实现方式主要有以下优点:①多处理器系统中,可以调度使一进程中的多个线程同时执行。②提高了线程的并发执行程度,如果进程中的一个线程被阻塞了,内核可调度该进程中的其它线程或其它进程中的线程运行。③内核支持线程具有很小的数据结构和堆栈,线程切换开销小,切换速度快。④内核本身也可采用多线程技术,提高系统并发执行程度。内核支持线程实现方式的主要缺点是系统需频繁进行用户态和核心态的转换,模式切换开销较大。这是因为用户线程在用户态下运行,但线程的调度和管理由系统内核实现,系统内核负担较大。用户级线程(UserLevelThreads,ULT)仅存在于用户空间中,与内核无关。这种线程的创建、撤消、线程间切换、同步和通信等功能,都无需利用系统调用来实现,不需要内核支持。就内核而言,它只是管理常规进程,而感知不到用户级线程的存在。用户级线程实现的主要优点:①不需要得到内核的支持,因此线程开销小,速度快。②用户线程和系统线程的调度算法可分开设计,线程库对用户线程的调度算法与操作系统的调度算法无关,线程库可提供多种调度算法供应用程序选择使用。③平台无关性好,用户级线程的实现与系统平台无关。用户级线程实现的主要缺点:①在基于进程机制的操作系统中,内核以进程为单位进行调度,这样如果进程中某一个线程阻塞可能导致整个进程阻塞。②在单纯的用户级线程实现方式中,内核每次分派给一个进程仅有一个CPU,因此无法让同一进程的多个线程在多个处理机上同时运行。5、答:(1)调度传统操作系统中,拥有资源的基本单位和独立调度的基本单位都是进程。引入线程的操作系统中,线程作为CPU调度的基本单位,真正在处理机上运行的是线程,进程仍作为拥有资源的基本单位。同一进程中的线程切换不会引起进程切换;但一个进程中的线程切换到另外一个进程中的线程时,仍将会引起进程切换。(2)并发性引入线程的操作系统中,一个进程可有多个线程,并且线程只能在该进程的地址空间内活动。进程之间的并发执行转变为更多个线程的并发执行,操作系统具有更好的并发性。实用操作系统教程(第2版)课后习题参考答案6(3)拥有资源不论是传统的操作系统,还是设有线程的操作系统,进程都是拥有资源的一个独立单位。一般地说,线程自己不拥有系统资源(只有一些必不可少的资源),它们共享其所在进程的所有资源。(4)系统开销在创建或撤消进程时,系统都要为之分配或回收资源,如内存空间、I/O设备等。因此,操作系统为此付出的开销将显著地大于创建或撤消线程时的开销。依次类似,在进行进程切换时,涉及到当前进程整个进程运行环境的保存以及新被调度进程的运行环境的恢复。而线程切换时只需保存和设置少量寄存器的内容,并不涉及存储器管理等方面的操作。可见,进程切换开销远大于线程切换开销。此外,由于同一进程中的多个线程具有相同的地址空间,它们之间的同步和通信也比较容易实现。(5)通信由于同一进程的线程共享该进程的所有资源,所以不须任何特殊措施就能实现数据共享。而进程通信则相当复杂,必须借助诸如通信机制、消息缓冲、管道机制等措