操作系统复习题解答.doc

(46页)

'操作系统复习题解答.doc'

《操作系统复习题解答.doc》由会员分享,提供在线免费全文阅读可下载,此文档格式为doc,更多相关《操作系统复习题解答.doc》文档请在天天文库搜索。

1、《操作系统》习题解答习题11.术语解释裸机 虚拟机 操作系统 程序接口命令接口 非特权指令 特权指令 核心态用户态 系统调用 微核 批处理系统分时 实时 指令的执行周期 中断中断源 中断请求 中断屏蔽 中断禁止GPL POSIX 时间片答案:·未配置任何软件的计算机称为“裸机”。·在裸机上安装一层软件,使机器的功能得以扩展,这时展现在用户面前的“机器”,就是所谓的虚拟机。·操作系统是控制和管理计算机硬件和软件资源、合理地组织计算机工作流程以及方便用户使用计算机的一个大型系统软件。·在用户编写的程序中,可使用系统调用命令获得操作系统提供的各种功能服务,这是操作系统在程序一级给予用户的支持,称其为程序接口。·用户可使用操作系统提供的各种操作命令,通过键盘(或鼠标)控制和完成程序的运行,这是操作系统在作业控制一级给予用户的支持,称为命令接口。·操作系统和用户程序都能使用的硬指令,称为非特权指令。

2、。·只能由操作系统使用的硬指令,称为特权指令。·所谓核心态,是指CPU处于可执行包括特权指令在的一切机器指令的状态。·所谓用户态,是指CPU处于只能执行非特权指令的状态。·操作系统里预先编制了很多不同功能的子程序。用户在自己的程序里调用这些子程序,以求得操作系统提供的功能服务。就把这些功能服务子程序称为“系统功能调用”程序,简称“系统调用”。·微核即是把操作系统的核分为基本功能和非基本功能两部分,在核里只保留基本功能部分,在核心态下运行;非基本功能部分则从核剥离下来,让它们以各种服务的形式,在用户态下运行。这一的操作系统核,称为微核。·若在某系统中,用户作业被分批处理,在处理一批的过程中不允许用户与计算机发生交互作用,即使作业在运行中出现错误,也只能等到整批作业处理完毕后在机下修改。这样的系统,就是所谓的“批处理系统”。·所谓分时,即指多个用户通过各自的终端同时访问系统,由操作系统控制每个。

3、用户程序以很短的时间为单位交替执行。·所谓实时,是指能够及时响应随机发生的外部事件并对事件做出快速处理的一种能力。·一个单一的指令需要的处理过程,称为指令的一个“执行周期”。·所谓“中断”,是指在CPU执行程序过程中,由于部或某个外部事件的发生,让CPU暂时中止正在执行的程序而转向该突发事件的处理,处理完毕后返回被中止的程序继续执行的这样一个处理过程。·凡能引起中断的设备或事件均称为“中断源”。·中断源向CPU发出中断信号,称为中断请求。·中断屏蔽是指在提出中断请求后,CPU不予响应的情况。·中断禁止是指在可能引起中断的事件发生时,系统不接收该中断信号,使之不可能提出中断请求或导致中断。·GPL是“通用公共许可协议(General Public License,的缩写)”,其意是要求整个系统的源代码可以自由获取,并且在GPL许可的围自由修改、传播。·POSIX(Portable Opera。

4、ting System Interface for Computing Systems,的缩写),是由IEEE和ISO/IEC开发的一系列标准。该标准基于已有Unix的实践和经验,描述系统调用的服务接口,并保证编制的应用程序可在多种操作系统上以源代码一级的形式进行移植和运行。·指程序在被中断前可以执行的最大时间段。2.为了管理系统中的各种资源,需要共同解决的问题是哪些?答:计算机系统拥有四类资源:处理机(即CPU),存储器,外部设备,程序和数据。前三种属于硬资源,后一种属于软资源。在计算机的运行过程中,对每种资的管理,需要共同解决的问题是:(1)记住资源当前状态:是否被使用,谁在使用。(2)制定资源分配策略:如何分配,何时分配,分配多少,应该分配给谁。(3)实施资源分配:根据分配策略完成分配。(4)完成资源回收:使用结束收回资源,以便进行下次分配。3.应用程序与系统程序有什么区别?答:可把。

5、软件大致划分为应用软件和系统软件两类。应用软件是为解决某类需要或某个特定问题而编制的程序,它涉及计算机应用的各个领域。系统软件不是针对特定需要或特殊问题编制的程序,而是对计算机系统的资源实施管理、控制,为其他程序的运行提供支持和服务的通用软件,系统软件都是由计算机生产厂家提供的。4.CPU的核心态与用户态有何区别?答:当CPU处于核心态时,可以执行包括特权指令在的一切机器指令;当CPU处于用户态时,禁止使用特权指令,只能执行非特权指令。如果在用户态下发现取到了一条特权指令,中央处理机就会拒绝执行,产生“非法操作”中断。5.操作系统的单核模式和微核模式有什么区别?答:单核模式也称集中模式或整体模式,整个系统是一个大的模块。这时,操作系统提供的工作流程是应用主程序用给出的参数值去执行操作系统中的各种系统调用命令。由于完全实行部调用,因此运行效率极高。但因其源代码是一个整体,因此各模块间的界限不。

6、很清晰,调用极为随意。这样,在为核程序的修改和升级带来极大麻烦。微核模式则是把操作系统的核分为基本功能和非基本功能两部分,核里只保留基本功能部分,在核心态下运行;非基本功能部分则从核剥离下来,让它们以各种服务的形式,在用户态下运行。这时核的主要功能是在客户程序和运行在用户空间的各种服务(属系统程序)之间进行通信,客户程序和各种服务之间不会直接交互,而是必须通过核的消息交换才能完成相互通信。这种模式的优点是核小,便于系统的扩充和修改。6.根据例1-3的数据,分别对单道程序设计和多道程序设计最终完成对表1-2的填写。 表1-2 例1-3中不同情况下的资源利用统计单道程序设计多道程序设计处理器使用20%40%存储器使用33%67%磁盘使用33%67%打印机使用33%67%总共运行时间30分钟15分钟吞吐量6个作业/小时12个作业/小时 注:所谓一个系统的吞吐量,是指系统在单位时间(通常为小时)处。

7、理的作业数。7.在分时系统和实时系统中,其响应时间分别是由(E)和(F)来确定的。 A.时间片大小 B.用户数目 C.计算机运行速度 D.实时调度 E.用户所能忍受的等待时间 F.控制对象所能接受的延时8.试问,在分时系统中用户数是100个,为保证响应时间不超过2秒,所设定的时间片的最大值应为多少?答:应为20ms。9.在一个分时操作系统中,用户提交了一个作业,其执行流程是:申请存储区→计算,并将结果暂存于主存→请求打印机→将主存中容在打印机上输出→释放打印机→归还占用的存储区→结束。试从资源管理的观点分析该作业从提交到结束,操作系统为其提供服务涉及到的各个功能模块。答:第1,通过存储管理,为其分配所需存储区;第2,通过处理机管理将CPU分配给它,完成作业计算,并将计算结果存入主存;第3,通过设备管理,把打印机分配给该作业;第4,执行打印机驱动程序,驱动打印机进行打印;第5,打印机完成打印。

8、,发出中断信号,请求CPU处理;第6,CPU响应中断,执行打印机中断处理程序,并释放打印机;第7,通过存储管理,回收存储区;第8,撤销该作业。10.为进行单道批处理系统和多道批处理系统的特点,请完成表1-3的填写。 表1-3 单道批处理和多道批处理的特性比较单道批处理系统多道批处理系统主存中驻留程序的个数一道多道占用CPU的情况独占交替占用是否需要对用户作业进行调度不需要需要程序完成次序与其进入主存次序间的关系严格对应不严格对应 11.在批处理和分时系统相结合的操作系统中,为什么要引入“前台”和“后台”作业的概念? 答:通常,将终端用户作业作为前台作业,将批处理作业作为后台作业。这样的搭配,一方面可以保证系统及时响应前台用户作业的操作请求,并使其得到及时的处理。而作为批处理的后台作业,则只是利用系统不处理前台作业的空闲时间,在CPU上运行,从而达到提高CPU利用率的目的。 12.就CPU的。

9、利用率的高低,对手工操作、单道批处理、多道批处理和多用户分时系统进行排序。 答:手工操作阶段,没有操作系统进行管理,大量时间是机器等人,因此CPU的利用率最低。 单道批处理系统与手工操作相比,提高了系统自动化处理的程度。但由于主存只有一道作业程序,CPU与I/O只能串行工作,所以CPU的利用率仍然很低。 多用户分时系统属于多道程序系统,比起手工操作和单道批处理来,它的CPU利用率较高。但由于系统的交互性和及时性要求,CPU必须在多个用户程序之间进行切换,从而增加了系统的额外开销。 多道批处理系统完全自动处理各个用户的程序,只有在程序等待某事件发生时,才会产生程序间的切换,因此系统花费在程序间切换上的开销,要远小于多用户分时系统。因此,它是这四种系统中CPU利用率最高的系统。习题21.术语解释并发 并行 进程 用户进程系统进程 创建状态 就绪状态 运行状态阻塞状态 终止状态 就绪/挂起状态 。

10、阻塞/挂起状态进程控制块PCB 进程映像 原语 线程用户级线程 线程库 核级线程 位图答案:·所谓“并发”,是指从宏观上看在一段时间有多个程序在同时运行,而从微观上看这些程序是在交替运行。或所谓“并发”,是指逻辑上相互独立的几个应用程序,同时处于活动状态,并竞争使用系统中的各种资源(如CPU、存、硬设备等)。·所谓“并行”,是指多个程序在同一时刻运行。·所谓“进程”是指一个程序在给定数据集合上的一次执行过程,是系统进行资源分配和运行调度的独立单位。·操作系统中用于管理系统资源的那些可以并发执行的程序,构成了一个个系统进程,它们提供系统的服务,分配系统的资源·可以并发执行的用户程序段,形成了一个个用户进程,它们是操作系统的服务对象,是系统资源的实际的享用者。·创建状态:一个进程正在初创时期,操作系统还没有把它列入到可执行的进程行列中。·就绪状态:一个进程已经具备运行的条件,只要有机会获得CP。

11、U就可以投入运行。·运行状态:一个进程获得了CPU正在被执行中。假定系统中只有一个CPU,因此任何时候最多只有一个进程处于运行状态。·阻塞状态:进程正在等待某个事件(比如I/O的完成)的发生,在事件到来之前,即使把CPU分配给这个进程,它也无法运行。·终止状态:一个进程或正常结束,或因某种原因被强制结束。这时,系统正在为其进行善后处理。·就绪/挂起状态:进程在辅存,只要被激活,进程就可以调入存,如果获得CPU就可以投入运行。·阻塞/挂起状态:进程在辅存等待事件的发生。只要被激活,进程就可以调入到存里去等待事件的发生。·为了便于管理和控制进程的执行,为了随时刻画进程的动态特性,为了反映进程间的相互关系,操作系统就用一个与进程有关的数据结构来完成这样的任务。这个数据结构就称为“进程控制块(PCB)”。·进程将要执行的程序、数据以及进程控制块PCB,这三个部分组成的集合,称为“进程映像”。·在操。

12、作系统里,那种“在执行期间不能被打断、不能被分割”的程序段,称作“原语”。·所谓“线程”,是指进程中实施处理器调度和分配的基本单位。·如果有关线程的管理工作(比如线程的创建、撤销,线程间的消息和数据传递,线程的调度和现场保护及恢复等),都是由运行在用户空间的应用程序完成,那么这样的线程称为“用户级线程”。·完成用户级线程管理工作的应用程序,称为“线程库”。·如果有关线程管理的所有工作都是由核完成的,用户空间里没有任何进行线程管理的程序,系统给应用程序提供相应的系统调用和应用程序编程接口(API),以使用户程序可以创建、执行、撤销线程。那么这样的线程称为“核级线程”。·在存开辟一个由若干个字组成的区域,用其中的每一个二进制位表示一种含义。这个区域就称为是一个“位图”。2. 在多道程序设计下,进程具有什么样的特征?答:在多道程序设计下,进程有如下几个方面的特征。(1)进程是一个动态的概念,强调。

13、的是程序的一次“执行”过程。(2)不同进程可以执行同一个程序。(3)每一个进程都有自己的生命期。(4)进程之间具有并发性。(5)进程间会相互制约。3. 什么是一个进程的生命期?答:进程的本质是程序的一次执行过程,当系统要完成某一项工作时,就“创建”一个进程,以便执行事先编写好的、完成该工作的那段程序;程序执行完毕,完成预定的任务后,系统就“撤销”这个进程,收回它所占用的资源。一个进程创建后,系统就感知到它的存在;一个进程撤销后,系统就无法再感知到它。于是,从创建到撤销,这个时间段就是一个进程的“生命期”。4. 系统进程与用户进程有什么区别?答:系统进程与用户进程是两类不同性质的进程,主要区别如下。(1)系统进程之间的相互关系由操作系统负责协调,以便有利于增加系统的并行性,提高资源的整体利用率;用户进程之间的相互关系要由用户自己(在程序中)安排。不过,操作系统会向用户提供一定的协调手段(以系。

14、统调用命令的形式)。(2)系统进程直接管理有关的软、硬件资源的活动;用户进程不得插手资源管理,在需要使用某种资源时,必须向系统提出申请,由系统统一调度与分配。(3)系统进程与用户进程都需要使用系统中的各种资源,它们都是资源分配与运行调度的独立单位,但系统进程的使用级别,应该高于用户进程。也就是说,在双方出现对资源的竞争时,系统进程有优先获得资源、优先得以运行的权利。只有这样,才能保证计算机系统高效、有序的工作。(4)通常,系统进程运行在核心态,用户进程运行在用户态。不过,在微核模式下,只有那些执行基本功能程序的进程,运行在核心态,而那些执行非基本功能程序的进程,则是以各种服务的形式运行在用户态。5. 在多道程序设计环境的进程中引入“挂起”状态,对整个系统有什么好处?答:挂起一个进程就是把这个进程调出存,放到辅存的交换区去。这样做的好处是通过把在存中等待的进程交换到辅存,就可以腾出宝贵的存空。

15、间,就可以从辅存调入可运行进程,或可以接纳新进程,或可以为当前执行进程提供必要的存储空间,从而提高CPU的利用率。6. 根据图2-4,请回答对如下问题:(1)在哪几种状态变迁下,一个进程会从存交换到辅存?(2)在哪几种状态变迁下,一个进程会从辅存交换到存?答:(1)在下面的三种状态变迁下,一个进程会从存交换到辅存:·从阻塞状态变迁到阻塞/挂起状态; ·从就绪状态变迁到就绪/变迁状态;·从运行状态变迁到就绪/挂起状态。(2)在下面两种状态变迁下,一个进程会从辅存交换到存:·从就绪/挂起状态变迁到就绪状态; ·从阻塞/挂起状态变迁到阻塞状态。7. 一个进程在阻塞状态时等待事件的发生,该进程这时是位于存还是辅存?一个进程在阻塞/挂起状态时等待事件的发生,该进程这时是位于存还是辅存?答:在前一种情形时,进程位于存;在后一种情形时,进程位于辅存。8. 为什么说进程控制块是操作系统中最重要的一种数据结。

16、构?答:由于进程控制块PCB里包含了有关一个进程所需要的所有信息,它是操作系统感知到一个进程实际存在的唯一实体。所以说进程控制块是操作系统中最重要的一种数据结构。9. 操作系统中引入线程的优点是什么?答:线程具有如下优点:·由于在进程的线程共享程序和资源,因此创建线程无需进行资源分配,比创建一个进程要快得多;这也使撤消线程比撤消一个进程所花费的时间短;·同一进程里线程间的切换是在进程的地址空间里进行,因此比进程间不同地址空间中的切换开销要少得多;·进程里的线程可以随时访问该进程拥有的所有资源,无需做任何切换工作;·同一进程中的线程共享存区域和文件,因此它们之间可以直接进行通信,不必通过系统核。10. 进程与线程有什么区别? 答:进程和线程间有如下的几点不同。 (1)地址空间:不同进程的地址空间是相互独立的,而同一个进程中的各个线程共享着同一个用户地址空间。因此,进程中的线程,不会被另一个进。

17、程所看见。 (2)通信关系:不同进程间的通信,必须使用操作系统提供的进程通信机制;同一进程的各个线程间的通信,可以直接通过访问共享的进程地址空间来实现。 (3)调度切换:不同进程间的调度切换,系统要花费很大的开销(比如,要从这个地址空间转到那个地址空间,要保护现场等);同一进程的线程间的切换,无须转换地址空间,从而减少了很多的系统开销。11. 什么是Linux的进程链表?如何找到这个链表的头?答:Linux进程的PCB里有名为prev_task和next_task的两个task_struct型指针字段。这样,从init进程PCB里的这两个字段开始,把系统中所有的进程的PCB在一起,形成一个双向链表,就成为是Linux的进程链表。由于init进程PCB的位置在系统里是固定不变的,所以找到init进程PCB里的next_task,就可以找到Linux进程链表的表头。12. 什么是Linux的可。

18、运行状态队列?如何找到这个队列的头?答:Linux进程的PCB里有名为prev_run和next_run的两个task_struct型指针字段。从init进程PCB里的这两个字段开始,把系统中所有“可运行状态”进程的PCB在一起形成一个双向链表,就成为是Linux的“可运行状态”队列。由于init进程PCB的位置在系统里是固定不变的,所以只要找到init进程PCB里的next_run,就可以找到“可运行状态”队列的头。13. 下列活动中,属于直接制约关系的是 B 和 C ,属于间接制约关系的是 A 和 D 。A. 几位同学去图书馆借同一本书 B. 两队进行篮球比赛C. 流水生产线上的各道工序 D. 商品生产和社会消费14. 下面的说法中,正确的是 D 。A. 引入线程后,CPU只能在线程间切换 B. 引入线程后,CPU仍然在进程间切换C. 线程的切换,不会引起进程的切换D. 线程的切换,可。

19、能引起进程的切换15. 下面的说法中,正确的是 C 。A. 无论是核级线程还是用户级线程,其切换都要核的支持 B. 线程是资源分配的单位,进程是调度和分派的单位C. 不管系统中是否有线程,进程都是拥有资源的独立单位D. 在引入线程的系统中,进程仍是资源和调度分派的基本单位16.下面关于用户级线程的叙述,错误的是 D 。A. 用户级线程的切换无需进入核模式B. 线程库提供对用户线程的调度C. 操作系统无需对核进行修改以支持用户级线程D. 用户级线程是CPU调度的基本单位17.下面关于核级线程的叙述,错误的是 B 。A. 处理机调度可以为一个进程中的多个核线程分配多个CPUB. 如果一个进程中的一个线程被阻塞,整个进程都必须等待C. 进程的一个核线程阻塞时,可立即调度它的其他核线程运行D. 核线程由操作系统的核提供支持18. 如图2-24是一个进程状态变迁图,试问:(1)是什么事件引起每种状态。

20、的变迁?(2)在什么条件下,一个进程的变迁3能够立即引起另一个进程的变迁1?(3)在什么情况下将发生后面的因果变迁:2→1;3→2;4→1。图2-24 应用问答第15题图答:(1)引起状态变迁“1”的事件有:①正在运行的进程由于时间片用完而转入就绪时;②正在运行的进程由于要等待某一事件的发生而被阻塞时;③正在运行的进程由于出现故障或正常结束时;④在出现更高优先级进程就绪、且允许抢占CPU时。引起状态变迁“2”的事件有:①正在运行的进程时间片用完;②正在运行的进程的CPU被抢占,使当前进程状态发生变迁2。引起状态变迁“3”的事件有:正在运行的进程等待某事件发生(如等待I/O完成,等待别的进程发来信号、出现异常后等待处理)。引起状态变迁“4”的事件有:进程等待的事件发生(比如I/O完成,信号到达)。(2)就绪队列非空时。(3)2→1有因果关系。因为“2”发生时,如果就绪队列不空,就会选择一个进。

21、程运行,从而发生“1”;如果就绪队列空,发生了“2”就变为不空,所以仍能发生“1”。3→2没有因果关系。4→1①当系统中无进程在运行、且就绪队列为空,这时发生“4”就出现一个就绪进程,于是发生变迁“1”;②若系统实行可抢占调度策略,发生“4”、且就绪进程的优先级高于运行进程,则发生抢占,先“2”而后“1”。19. 进程能够自己将自己唤醒吗?为什么?举例说明一次只能唤醒一个进程和一次能够唤醒多个进程的情形。答:(1)唤醒是一种被动行为。被阻塞的进程不可能获得CPU而成为主动行为者,因此只能由其他运行进程来实施唤醒。所以进程不能自己唤醒自己。(2)在I/O中断处理程序中唤醒进程时,只唤醒等待该I/O结束的那个进程;当释放某种系统资源(比如一块存储区)时,就应该唤醒所有等待这种资源的阻塞进程,以便让它们进行竞争(比如,与其一个个去查等待者所需的存储区大小,还不如把它们都释放去竞争来得方便)。20。

22、. Linux的进程由哪几部分组成?Linux的线程由哪几部分组成?答:Linux的进程由四部分组成,它们是:(1)一段可执行的程序;(2)一个专用的系统栈空间,用来保存中断现场信息和进程进入核模式后执行子程序(函数)嵌套调用的返回现场信息;(3)进程控制块PCB(task_struct结构);(4)独立的存储空间。在Linux里,线程有它自己的可执行的程序;有它自己的专用系统栈;有它自己的进程控制块PCB(task_struct结构)。这些都与进程相同。唯一与进程不同的是,它没有自己独立的存储空间。21.为了了解某单行道的交通流量,在路口安放一个监视器,功能是有车通过该路段时,就向计算机发送一个信号。为此设计两个程序:程序A的功能是接收到监视器的信号时,就在计数单元COUNT上加1;程序B的功能是每隔半小时,将计数单元COUNT的值打印输出,然后清零。COUNT初始时为0。两个程序的描述。

23、如图2-25所示。图2-25 应用问答第20题图因为是多道程序设计环境,程序A和程序B都作为进程出现在存。存中的各个进程的执行过程交织在一起,没有什么规律可循。假定进程A和B的执行一直很顺利,现在计数器COUNT里的值是9,随之后面的执行顺序是:A1àA2àB1àB2àA1àA2àB3。执行完成后,按说由于做了两次A2,在最后做B3时,打印出COUNT的值应该是11,但打印的却是10。怎么会少打印了一辆车?试对此现象做出解释。答:现在的执行顺序是在进程B做了B1和B2后,没有直接执行B3,而是插入了进程A的两个操作A1和A2,于是出了问题。即执行这一顺序时,A1收到监视器发来的第10辆车通过的信息,于是由A2在COUNT上完成加1操作,使得计数器COUNT取值为10。紧接着做B1去延迟半小时,然后由B2将COUNT中的10打印输出来。这时又做A1,它收到的是第11辆车到达的信息,通过做A2。

24、,COUNT里的值成为11。这时接着做B3,它把COUNT清零。结果导致该系统把第11辆车漏掉了,少计算了一辆车。这正是在多道程序设计环境下,结果的再现性已不再存在的例子。习题31.术语解释后备作业 后备作业队列 高级调度 低级调度中级调度 非抢占式调度策略 抢占式调度策略 吞吐量处理机限制型作业 I/O限制型作业 作业的周转时间 作业的带权周转时间CPU的利用率 作业的响应比 FCFS作业调度 短作业优先调度最短剩余时间调度 最高响应比调度 轮转调度 优先级调度多级队。VE x, #0”退出临界区后,再调度到进程B执行时,进程B才能进入自己的临界区。17. 对于Peterson算法,如果在进程0已经把interested[0]设置成了TRUE、还没有来得及把turn设置为0之前,被时钟中断。然后调度到进程1运行。进程1能够进入临界区吗?它何时能够进入临界区?进程0何时进入临界区?答:在所。

25、给前提下,调度进程1执行,它在把interested[1]设置成了TRUE、把turn设置为1后,进入while循环。由于现在turn是1,而interested[other]是TRUE,所以进程1不能够进入临界区,只能在临界区外忙等待。等到进程0被调度到、且执行了语句“turn=0”后,进程0也成为忙等待(因为这时turn是0,interested[1]是true)。这样,当再次调度到进程1时,由于while循环测试到turn是0而不是1,进程1才能够进入临界区。进程0要等到进程1退出临界区后,才能进入临界区。18. 在读者优先的读者-写者的算法中,若写者已经在临界区里访问数据。这时紧接着来到三个读者希望访问数据。当然,他们都会被阻挡在外。试问,他们都被阻挡在哪里了?为什么?答:当已有一个写者进入临界区使用数据时,来到的第1个读者在做P(mutex)时不会受到阻拦,它在first上加1,。

26、使first的值为1。于是该读者就去做P(wrt)。由于已有写者在临界区里,故第1个读者在此受阻,即在与信号量wrt有关的等待队列wrt.queue上等待。这时后面又来了两个读者,它们都将在与信号量mutex有关的等待队列mutex.queue上排队等待,而不是在与信号量wrt有关的等待队列上排队。这是因为第1个读者在做P(wrt)受阻时,并没有退出mutex的临界区,即没有做V(mutex)。既然地一个读者占据着这个临界区,那么后续的读者当然就只能在与信号量mutex有关的等待队列上排队了。19. 在写者优先的读者-写者算法中,若已有三个读者在使用数据,这时来了一个写者和两个读者。试问,这些读者和写者都在哪里等待进入自己的临界区?何时才能够进入自己的临界区去使用数据?答:来的一个写者是在wsem.queue上等待进入写者临界区。随后来的第1个读者将在rsem.queue上等待进入自己的临。

27、界区;第2个来到的读者将在z.queue队列上等待进入自己的临界区。当在临界区里使用数据的三个读者中的最后一个访问完数据时,由于有rfirst==0,就在信号量wsem上做V操作,那么就会把在wsem.queue上等待的写者唤醒。这样,该写者就可以进入自己的临界区去访问数据了。只有在该写者试图退出临界区、且判定他是使用数据的最后一个写者(即有wfirst==0)时,由于他在信号量rsem上做V操作,而使随后的第1个读者被唤醒,进入rmutex的临界区,对读者计数(当然是rfirst为1)。然后退出rmutex临界区,退出rsem临界区。在退出z临界区时,由于第2个读者在此等待,所以会唤醒他,得到进入自己临界区的权利。20.在公共汽车上,司机和售票员的工作流程如图8-27所示。为确保行车安全,请用信号量及其P、V操作来协调司机和售票员的工作,画出他们的工作流程图。答:从生活知识知道,司机和售。

28、票员之间的工作有如下的制约关系存在:(1)司机必须在得到售票员的“关门完毕”的信号后,才能启动汽车,这是司机要与售票员取得同步的问题;(2)售票员必须在得到司机的“已经停车”的信号后,才能打开车门,这是售票员要与司机取得同步的问题。图8-27 司机和售票员的工作流程因此,为了确保行车安全,需要设置两个同步信号量:s1——初值为0,控制司机与售票员取得同步;s2——初值为0,控制售票员与司机取得同步。在加入了信号量上的P、V操作后,他们的工作流程如图所示。第20题答案第21题答案21.阅览室共100个座位。用一表来管理它,每个表目记录座号以及读者。读者进入时要先在表上登记,退出时要注销登记。试用信号量及其P、V操作来描述各个读者“进入”和“注销”工作之间的同步关系,画出其工作流程。答:由题意知,在管理读者“进入”和“注销” 阅览室的工作中,存在这样一些制约关系:(1)100个座位是读者共同使。

29、用的资源,因此要用一个资源分配信号量来管理它;(2)读者“进入”阅览室时,要申请座位。只有申请到座位才能进入,否则应该等待到座位的释放;(3)没有读者时,不能做“注销”工作,必须等到有了读者才能做;(4)表是登记和注销的共享变量,需互斥使用。因此,设置三个信号量:s1——初值为100,管理座位的分配;s2——初值为0,控制“注销”与“进入”间取得同步;mutex——初值为1,控制互斥使用登记表。读者进入时,调用“进入”进程,通过P(s1)申请座位。如果申请到,再申请使用登记表。申请到时就可以办理阅览手续。如果100个座位都申请完毕,那么第101个读者就只有在关于s1的队列上等待,等到有读者离开调用“注销”进程时,执行V(s1),唤醒等待的进程。“进入”与“注销”两个进程的流程如图所示。22. 有四个进程A、B、C、D。进程A通过一个只能容纳一条消息的缓冲区不断向进程B、C、D发送消息。A每。

30、向缓冲区送入一个消息后,必须等进程B、C、D对此消息各取一次后,才可以发送下一条消息。请用信号量上的P、V操作实现它们之间的正确工作。答:由于缓冲区的容量一次只能存放一条消息,因此设三个初值为0的同步信号量sb、sc、sd,来制约B、C、D三个消息接收者,即每当进程A送入一条消息到缓冲区时,就在三个同步信号量上做V操作。另一方面,只有当三个接收者都取走消息后,进程A才能发送下一条消息,因此设一个初值为1的互斥信号量s,来保证进程A和另外三个进程互斥使用这个缓冲区。再有,由于B、C、D都要取走消息后,A才能再次使用缓冲区,所以需要设B、C、D三个进程共用的计数器count,由初值为1的互斥信号量mutex来保证它们对这个计数器的互斥使用。算法的框架描述如下:进程A: 进程B: 进程C: 进程D:while(1) while(1) while(1) while(1){ { { {P(s); P。

31、(sb); P(sc); P(sd);发送消息; 接收消息; 接收消息; 接收消息;V(sb); P(mutex); P(mutex); P(mutex);V(sc); count++; count++; count++;V(sd); if(count==3) if(count==3) if(count==3)} V(s); V(s); V(s); } } }23. 试用信号量上的P、V操作,解决读者-写者之间的同步,要无写者时,允许多个读者同时读;来了一个写者后,随后来的读者和写者有公平使用数据的权利,即谁先来谁先使用。答:为此,设置信号量和变量如下:z:读者、写者竞争数据使用权的互斥信号量,初值为1;mutex:互斥访问变量first的信号量,初值为1;wrt:读者、写者在使用数据上互斥信号量,初值为1;first:读者计数器,是一个初值为0的变量。reader:{P(z); /* 读。

32、者与写者在z上竞争使用权 */P(mutex);first++;if(first==1)P(wrt); /* 与写者互斥使用数据 */V(mutex);V(z);读取所需数据; /* 读者临界区 */P(mutex);first--;if(first==0)V(wrt); /* 已经没有读者使用数据了 */V(mutex);}writer:{P(z); /* 读者与写者在z上竞争使用权 */P(wrt); /* 与读者互斥使用数据 */对数据进行修改; /* 这是写者临界区 */V(wrt); /* 这个写者访问完了数据 */V(z);}24. 下面给出一个进程互斥访问临界区的方法。试问它正确吗?为什么?#define TRUE 1#define FALSE 0int flag[2];flag[0]=flag[1]=FALSE;enter_CS(i) /* 临界区的进入区代码 */{ wh。

33、ile(flag[1-i]) flag[i]=TRUE;}exit_CS(i) /* 临界区退出区代码 */{ flag[i]=FALSE;}process(i) /* 进程i的程序代码 */{ … … enter_CS(i); /* 申请进入临界区 */ 进程i的临界区; exit_CS(i);}答:该设计不能保证临界区的互斥执行。比如进程0申请使用临界资源,在判断这时有flag[1]为FALSE、但还没有把flag[0]设置为TRUE前,进程1被调度到。这时它判断flag[0]肯定为FALSE,就把flag[1]设置为TRUE,并进入自己的临界区工作。在进程1还没有退出临界区之前,若调度到进程0继续执行,那么它就会在原先检测的基础上,把flag[0]设置为TRUE,并进入自己的临界区。于是,发生了两个进程同时在临界区的情形。25.下面的两个并发进程代码框架,试图共享一种临界资源,因此希。

34、望在各自的临界区上互斥执行。请找出它们的错误,并修改之。其号量s1和s2的初值现在都是0。进程A: 进程B:while(1) while(1){ {… … … …进程A的临界区; P(s1);V(s1); 进程B的临界区;P(s2); v(s2);… … … … } }答:要将信号量s1初值改为1,或将信号量s2的初值改为1。进程程序框架改为:进程A: 进程B:while(1) while(1){ {… … … …P(s1); P(s2);进程A的临界区; 进程B的临界区;V(s2); V(s1);… … … … } }习题91.术语解释可抢占资源 不可抢占资源 死锁 饥饿资源分配图 死锁预防 死锁避免 安全状态银行家算法 死锁检测 部安全 外部安全数据的性 数据的完整性 系统的可用性 系统的真实性被动攻击 主动攻击 安全实体 主体认证 外部认证 部认证 授权入侵者或黑客 骇客 伪装者 行。

35、为者神秘用户 恶意软件 后门 逻辑炸弹特洛伊木马 病毒 蠕虫 僵尸生物识别 进程的“保护域” 访问控制表 权能表答案:·所谓“可抢占资源”,是指可以从拥有它的进程手中抢夺过来而不会产生副作用的那些资源。比如,存储器就是一种可抢占资源。·所谓“不可抢占的资源”,是指不能从当前拥有它的进程手中抢夺,否则就会引起不必要麻烦的那些资源。比如,打印机就是一种不可抢占资源。·所谓“死锁”,即是指如果一个进程集合中的所有进程都在等待只能由该组进程中的其他进程才能引发的一个事件(比如,等待请求资源的释放),那么就说该组进程是死锁的。·在许多资源分配策略中,一些进程由于它们的优先级不如其他进程高,因此所提出的资源请求被无限期地忽略。这种现象称之为“饥饿”。·所谓“资源分配图”,即是用来勾勒系统中各个进程的资源分配情况,反映哪个进程已经分配了什么资源,哪个进程由于等候什么资源而处于阻塞的一种图示。·所谓“死锁。

36、预防”,就是试图让设计出来的系统里不包含四个产生死锁的必要条件中的某一个。既然排除了发生死锁的可能,系统也就不会出现死锁了。·所谓“死锁避免”,含义是允许系统里存在产生死锁的条件,但对于进程的每一次资源申请,都将根据当时资源的已分配情况,去探测分配的结果。只有在探测结果确定不会有死锁发生时,才正式接受资源请求,真正把资源分配给进程。·所谓系统处于“安全状态”,就是至少存在有一个进程的执行序列,能够在有限时间使所有进程最终都能够运行到结束(也就是说,不会导致死锁);否则,就说系统处于“不安全状态”。·所谓“银行家算法”,是指对进程所要求的每一个资源申请都进行测试,判断接受申请是否会致使系统进入不安全状态。如果是就拒绝分配;如果接受申请后系统仍然是安全的,那么就予以分配。·所谓“死锁检测”,即系统允许产生死锁,操作系统周期性地在进程和资源之间检测是否出现了循环等待的情形。每当检测到这种情形时,。

37、就认为可能会出现死锁,于是采取措施对系统进行恢复。·操作系统应该提供一个环境,以保证信息使用的私密和共享,这是部安全问题。·操作系统需要提供各种手段,防止来自各方的有意或无意的入侵和攻击,这是外部安全问题。·所谓“数据的性”,即要求计算机系统中的数据处于状态。更确切地说,如果数据的所有者决定这些数据只能用于特定的人,那么系统就应该保证数据不会发布给未经授权的人。·所谓“数据的完整性”,即要求未经授权的用户,在没有得到所有者的许可前不得擅自改动数据。·所谓“系统的可用性”,即要求不能因为人有意识地干扰系统而使之瘫痪。·所谓“系统的真实性”,即要求计算机系统能够鉴别用户的真实身份。·被动攻击是指攻击者试图了解或使用系统的信息,但并不去影响和破坏信息资源。被动攻击的行为是进行监视和窃听,从而达到获取正在通信线路上传输的数据信息的目的。·主动攻击是指攻击者试图通过更改数据流或产生错误的数据流,达到。

38、改变系统资源、或影响系统运行的目的。·所谓“安全实体”,是对被保护的信息或资源(如CPU、文件、数据、设备)的抽象,操作系统应该阻止所有对安全实体未经授权的访问。·所谓“主体”,是对信息或资源进行访问的对象(如进程、线程)的抽象,未经授权的主体不允许访问特定的安全实体。·所谓“认证”,是指用来确定需要访问安全实体的主体是否就是它所声称的身份的过程。·用户与计算机系统的最初交互体现为登录。在登录对话框中,操作系统试图通过提交的信息,去验证来者就是它们所声称的身份。这种保护就是“外部认证”,也称“用户认证”。·所谓“部认证”,即是指要确保执行的线程(进程)不被其他用户拥有。·所谓“授权”,指的是在一个主体被认证后,确定它是否有权访问安全实体。·就计算机安全来说,通常把喜欢闯入与自己毫不相干区域的人称为“入侵者”,也就是通常所说的“黑客”。·在计算机界,“黑客”其实是对资深程序员的一种荣誉称谓。。

39、考虑到黑客的真正含义,应该把那些企图非法闯入计算机系统的人归结称为“骇客”。·伪装者:是指未经授权的人,穿越了系统的访问控制,以一个合法用户账号的身份使用计算机。 ·行为者:是指一个合法用户,未经授权访问了不该访问的数据、程序或资源;或者虽经授权,却错误地使用了他的特权。·神秘用户:是指夺取了对系统的管理控制权,且使用这一权利躲避系统的访问控制和审计。·所谓“恶意软件”,是指利用计算机系统本身的漏洞,专门设计来制造破坏或用尽计算机资源的软件,它们常常隐藏在合法软件中,或伪装成合法软件。·所谓“后门”是指进入某个程序的隐蔽入口点,知道后门的人无需通过正常的安全访问渠道,就可以获得访问。·所谓“逻辑炸弹”,是一种最古老的恶意软件,它被嵌入到某些合法程序的代码中,并设置发作的条件,只要条件满足,就会发生“爆炸”。·所谓“特洛伊木马”,是一个有用的、但又含有隐秘代码的程序或命令过程,能通过系统的安。

40、全检查。执行它时,那段隐秘代码就会去完成那些未授权用户无法直接完成的事情。·所谓“病毒”,就是能够通过将其代码嵌到合法程序之上进行自我繁殖的一个程序段,它能像生物病毒似的自我繁殖。·所谓“蠕虫”,是一个独立完整的程序,被设计成能够在网络上寻找寄生和繁殖的场所。它一旦在一个系统部活跃起来,就会进行分裂性的自我复制,通过网络连接在系统之间进行传播。·所谓“僵尸”,是一个程序,它能够秘密地控制通过Internet连接的另一台计算机,并通过该计算机向目标Web站点发送大量的登录请求,达到使其拒绝服务的目的。·所谓“生物识别”,是指对用户的某些难以伪造的物理特征进行的认证。比如指纹识别、声音识别。·所谓一个进程的“保护域”,是指关于该进程的一系列(安全实体,访问权限)对,每个对规定了一个安全实体和一些可在其上实施的操作的子集。这就是说,保护域告诉用户进程,在某个安全实体上可以做什么和不可以做什么。·。

41、实现访问矩阵的一种方法是将矩阵按照安全实体(也就是访问矩阵的“列”)划分,形成一个个表,每个表里包含着对相应安全实体能够进行访问的所有主体的访问权限。这样的表被称为是安全实体的“访问控制表”。·实现访问矩阵的另一种方法是将矩阵按照主体(也就是访问矩阵的“行”)划分,形成一个个表,每个表里包含着该主体可以访问的所有安全实体的访问权限。这样的表被称为是主体的“权能表”。2.产生死锁的四个必要条件是:互斥、 B 、不可抢占和循环等待。 A.请求与阻塞 B.占有并等待 C.请求与释放 D.释放与阻塞3.为了预防死锁的发生,通常是破坏产生死锁的四个必要条件。但是,在计算机系统中,破坏 A 条件是不现实的,很难行得通。 A.互斥 B.占有并等待 C.不可抢占 D.循环等待4.将系统资源进行统一编号,实行按顺序分配的策略,可破坏产生死锁的 D 条件。 A.互斥 B.占有并等待 C.不可抢占 D.循环等待。

42、5.某个系统有3个进程,都需要同类资源4个。那么该类资源数至少为 C 个时,系统不会发生死锁。 A.8 B.9 C.10 D.116.死锁的预防是根据 C 而采取措施实现的。 A.配置足够的系统资源 B.使进程的推进顺序合理 C.破坏死锁的四个必要条件之一 D.防止系统进入不安全状态7.下面的论述中,只有 B 是不正确的。 A.如果P、V操作使用不当,系统仍可能发生死锁 B.使用P、V操作进行资源分配,可以完全避免死锁的发生 C.系统处于不安全状态,并不一定就发生死锁 D.银行家算法是在保证系统处于安全状态下,才答应把资源分配给申请者8. 从安全角度来说, A 不是计算机系统提出的主要设计目标。 A.CPU的利用率 B.数据的性 C.数据的完整性 D.系统的可用性9. 计算机系统或网络在安全性上受到的主动攻击是 B 、重放、更改消息和拒绝服务四种形式。 A.火灾 B. 伪装 C.地震 D.。

43、病毒10.为什么说为系统资源统一编号,采取顺序资源分配方法,可以避免死锁的发生?答:为了便于说明,不妨设系统中有n个进程P1、P2、…、Pn,有m类资源 R1、R2、…、Rm,下标即是资源的编号。根据顺序资源分配法可知,进程申请资源时必须按照资源编号的升序进行。即任何进程获得Ri类资源后,再申请的资源Rj的编号j一定大于i。因此在任何时刻,系统中至少存在一个进程Pk,它占有了较高编号的资源Rh,且它继续申请的资源必然是空闲可用的。因此,进程Pk可以一直向前推进直至完成,并在完成后释放所占有的所有资源。在Pk完成后,剩下的进程集合中同样会存在一个进程,它占用了较高编号的资源,且它继续申请的资源必然是空闲可用的。因此,它也可以运行到结束,并释放它所占用的所有资源。依此类推,所有进程都可以运行到结束。也就是说,系统不会发生死锁。11.十个单元的一种资源被进程A、B、C共享,每个进行的最大需求量分。

44、别是4、7、8。假设它们对资源的申请序列如下表所示。试问:(1)为使系统不发生死锁,在进行到序号6时,三个进程各处于什么状态?获得的资源数各是多少?(2)系统会发生死锁吗?为什么?序号进程申请资源数1A22B43C24B25C26A2………答:这是单种资源银行家算法的问题。(1)根据银行家算法,在进行到序号4、进程B又提出2个单元的资源申请时,如果满足它,那么系统所有资源都分配出去,但没有一个进程可以完成自己的任务。所有此时不能答应进程B的资源申请,只能让其阻塞等待。同理,在进行到序号5、进程C又提出2个单元的资源申请时,也只能让其阻塞等待。于是,在进行到序号6时,进程B和C分别占用4个和2个单元的资源,并处于阻塞等待的状态,进程A处于就绪/可运行状态。(2)当进程A在序号6处提出2个单元的资源申请时,系统可以满足它的申请。因为把此时最后2个单元的资源分配给它后,就满足了A对资源的最大需求。

45、量,它就可以运行到结束,交出它所占用的4个单元的资源。这样,进程B和进程C都可以先后完成。因此,在进行到序号6之后,系统处于安全状态。12.一个系统有四类资源:R1、R2、R3、R4,五个并发进程:P1、P2、P3、P4、P5,各个进程对各种资源的最大需求量以及已分配资源量,如下表所示。最大需求量(Claim)已分配量(Allocation)R1R2R3R4R1R2R3R4P100120012P227502000P366560034P443562354P506520332试问:(1)计算各进程还需要的资源向量。(2)系统当前处于安全状态吗?(3)当进程P3又提出资源申请为(0,1,0,0)时,系统能够接受这次资源申请吗?答:这是多种资源银行家算法的问题。(1)各进程还需要的资源量等于其最大需求量减去已分配量。因此,进程P1还需要的资源向量为(0,0,0,0);进程P2还需要的资源向量为(0。

46、,7,5,0);进程P3还需要的资源向量为(6,6,2,2);进程P4还需要的资源向量为(2,0,0,2);进程P5还需要的资源向量为(0,3,2,0)。(2)目前,系统处于安全状态,因为存在一个安全运行序列:P1→P4→P5→P2→P3。(3)当进程P3又提出资源申请为(0,1,0,0)时,系统不能立即满足它,因为否则会使系统处于不安全状态。13.试述病毒和蠕虫的异同点。答:病毒和蠕虫的目的都是扩散到别的程序中,并在系统中搞破坏,比如修改和毁坏文件、导致系统崩溃和程序出错。它们都是依靠繁殖来扩展自己的。但是,病毒是一个嵌到合法程序中的程序段,而蠕虫则是一个独立、完整的程序。14.下面给出的安全问题,应该使用哪种保护机制:是访问控制表还是权能表?(1)Ken想要他的文件除了自己办公室的人外都可读。(2)Mitch和Steve想要共享某些文件。(3)Linda想要公开自己的某些文件。答:(1)使用依附于Ken的文件的访问控制表;(2)使用依附于Mitch和Steve的权能表;(3)使用依附于Linda想要公开的那些文件的访问控制表。。

关 键 词:
解答 操作系统 复习
 天天文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:操作系统复习题解答.doc
链接地址: https://www.wenku365.com/s-58490350.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服点击这里,给天天文库发消息,QQ:1290478887 - 联系我们

本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有【成交的100%(原创)】。本站是网络服务平台方,若您的权利被侵害,侵权客服QQ:1290478887 欢迎举报。

1290478887@qq.com 2017-2027 https://www.wenku365.com 网站版权所有

粤ICP备19057495号 

收起
展开