收藏 分销(赏)

操作系统原理与实践教程(第二版)题库章节练习题及答案.doc

上传人:精**** 文档编号:3158217 上传时间:2024-06-21 格式:DOC 页数:40 大小:282.61KB
下载 相关 举报
操作系统原理与实践教程(第二版)题库章节练习题及答案.doc_第1页
第1页 / 共40页
操作系统原理与实践教程(第二版)题库章节练习题及答案.doc_第2页
第2页 / 共40页
操作系统原理与实践教程(第二版)题库章节练习题及答案.doc_第3页
第3页 / 共40页
操作系统原理与实践教程(第二版)题库章节练习题及答案.doc_第4页
第4页 / 共40页
操作系统原理与实践教程(第二版)题库章节练习题及答案.doc_第5页
第5页 / 共40页
点击查看更多>>
资源描述

1、第1章 操作系统概论(1) 试说明什么是操作系统,它具有什么特征?其最基本特征是什么?解:操作系统就是一组管理与控制计算机软硬件资源并对各项任务进行合理化调度,且附加了各种便于用户操作的工具的软件层次。现代操作系统都具有并发、共享、虚拟和异步特性,其中并发性是操作系统的最基本特征,也是最重要的特征,其它三个特性均基于并发性而存在。(2) 设计现代操作系统的主要目标是什么?解:现代操作系统的设计目标是有效性、方便性、开放性、可扩展性等特性。其中有效性指的是OS应能有效地提高系统资源利用率和系统吞吐量。方便性指的是配置了OS后的计算机应该更容易使用。这两个性质是操作系统最重要的设计目标。开放性指的

2、是OS应遵循世界标准规范,如开放系统互连OSI国际标准。可扩展性指的是OS应提供良好的系统结构,使得新设备、新功能和新模块能方便地加载到当前系统中,同时也要提供修改老模块的可能,这种对系统软硬件组成以及功能的扩充保证称为可扩展性。(3) 操作系统的作用体现在哪些方面?解:现代操作系统的主要任务就是维护一个优良的运行环境,以便多道程序能够有序地、高效地获得执行,而在运行的同时,还要尽可能地提高资源利用率和系统响应速度,并保证用户操作的方便性。因此操作系统的基本功能应包括处理器管理、存储器管理、设备管理和文件管理。此外,为了给用户提供一个统一、方便、有效的使用系统能力的手段,现代操作系统还需要提供

3、一个友好的人机接口。在互联网不断发展的今天,操作系统中通常还具备基本的网络服务功能和信息安全防护等方面的支持。(4) 试说明实时操作系统和分时操作系统在交互性、及时性和可靠性方面的异同。解:l 交互性:分时系统能够使用户和系统进行人-机对话。实时系统也具有交互性,但人与系统的交互仅限于访问系统中某些特定的专用服务程序。l 及时性:分时系统的响应时间是以人能够接受的等待时间为标准,而实时控制系统对响应时间要求比较严格,它是以控制过程或信息处理中所能接受的延迟为标准。l 可靠性:实时系统要求系统可靠性要比分时系统高。在实时系统中往往采用多级容错措施来保证系统的安全及数据的安全。(5) 试比较分布式

4、操作系统和网络操作系统的异同。解:它们的区别在于:分布式操作系统的设计思想和网络操作系统是不同的,这决定了它们在结构、工作方式和功能上也不同。网络操作系统要求网络用户在使用网络资源时首先必须了解网络资源,网络用户必须知道网络中各个计算机的功能与配置、软件资源、网络文件结构等情况,在网络中如果用户要读一个共享文件时,用户必须知道这个文件放在哪一台计算机的哪一个目录下;分布式操作系统是以全局方式管理系统资源的,它可以为用户任意调度网络资源,并且调度过程是“透明”的。(6) 什么是操作系统虚拟机结构?它有什么好处?解:虚拟机结构OS最初是为了满足用户对分时系统的需求而出现的。VM/370的核心程序为

5、虚拟机监控器(virtual machine monitor),它运行于裸机之上并提供多道程序功能。该系统向上层提供多个对裸机硬件精确复制的虚拟机,这些复制品均包含核心态、用户态、I/O处理、中断以及其它真实机器所应该具有的全部功能。这样做的好处是凡是能在一台物理裸机上运行的操作系统均可以出现在一个特定虚拟机上,分配给各用户的不同虚拟机上可以随用户的个人爱好和操作习惯不同而采用不同的操作系统。在用户看来就是直接在自己独享的一台裸机上工作。(7) 试说明客户机/服务器结构的操作系统为什么获得广泛应用。解:客户机/服务器结构的操作系统具有不同于传统集中式OS的一系列独特优点,使得其在网络时代大为流

6、行。主要原因有以下几点:1. 该系统的数据可以进行分布式处理和存储。客户机本身均具有一定的处理能力,部分数据处理和存储工作可由本地客户机完成,减少了服务器机的任务量。2. 对于重要数据,可以将其放在受到严密保护的服务器所在的局域网内集中管理,以便保证数据安全。3. C/S结构有较好的灵活性和可扩充性,客户机/服务器机类型可选范围很大。4. 易于修改用户程序。对客户机的修改和增删很方便,甚至可以由用户自行进行。(8) 处理机管理有哪些主要功能?请简要描述。解:处理机的管理功能主要体现在创建、撤销进程,并按照一定的算法为其分配所需资源,同时还要管理和控制各用户的多个进程协调运行,确保各个进程可以正

7、确的通信。在多道程序OS中,这些管理功能最终通过对进程的控制和管理来实现,而在具有线程机制的OS中,这些功能的实现还依赖于对线程的管理和控制。(9) 存储器管理有哪些主要功能?请简要描述。解:操作系统所管理的存储器包括内存、外存等,因此存储器管理的主要任务就是将各种存储器件统一管理,保证多道程序的良好运行环境,同时还要兼顾内存利用率、逻辑上扩充内存的需求以及用户的感受,提供优良的控制、存取功能,为用户提供操控存储器的手段。为实现上述要求,存储器管理应具有内存分配、内存回收、内存保护、地址映射和虚拟内存等功能。(10) 文件管理有哪些主要功能?请简要描述。解:其主要功能就是管理外存上的静态文件,

8、提供存取、共享和保护文件的手段,以方便用户使用,同时禁止无权限用户对他人资源的误访问或有权限用户对资源的误操作。文件管理机制还要能有效管理外存空闲区域,根据文件的大小为其分配和回收空闲区。为了满足用户对响应时间的要求,文件管理机制还应实现目录管理,以便快速地定位文件。文件管理机制能有效保护文件安全,提高资源利用率,为用户提供快速检索和使用文件的手段,是OS不可或缺的组成部分。(11) 设备管理有哪些主要功能?请简要描述。解:设备管理的主要作用是使用统一的方式控制、管理和访问种类繁多的外围设备。设备管理功能主要体现在:接收、分析和处理用户提出的I/O请求,为用户分配所需I/O设备,同时还要做到尽

9、量提高CPU和I/O设备利用率、I/O处理效率,为用户提供操控I/O设备的便捷界面和手段。根据设备管理模块的功能要求,可以将其功能分为设备分配、缓冲管理、设备处理、虚拟设备等。第2章 操作系统的界面(1) 请说明系统生成和系统引导的过程。解:系统的生成过程:当裸机启动后,会运行一个特殊的程序来自动进行系统的生成(安装),生成系统之前需要先对硬件平台状况进行检查,或者从指定文件处读取硬件系统的配置信息,以便根据硬件选择合适的操作系统模块组,比较重要的信息通常有:CPU类型、内存大小、当前关联设备的类型和数量以及操作系统的重要功能选项和参数。按照这些信息的指示,系统生成程序就可以正确地生成所需的操

10、作系统。系统引导的过程:系统引导指的是将操作系统内核装入内存并启动系统的过程。主要包括初始引导、内核初始化、全系统初始化。初始引导工作由BIOS完成,主要完成上电自检,初始化基本输入输出设备,载入操作系统内核代码等工作。内核被载入内存后,引导程序将CPU控制权交给内核,内核将首先完成初始化功能,包括对硬件、电路逻辑等的初始化,以及对内核数据结构的初始化,如页表(段表)等。全系统初始化阶段要做的就是启动用户接口程序,对系统进行必要的初始化,使系统处于等待命令输入状态。(2) 操作系统具有哪些接口?这些接口的作用是什么?解:操作系统为用户提供的接口有图形接口、命令接口和程序接口几种形式。操作系统包

11、括三种类型的用户接口:命令接口(具体又可分为联机命令接口与脱机命令接口)、程序接口及图形化用户接口。其中,命令接口和图形化用户接口支持用户直接通过终端来使用计算机系统,而程序接口则提供给用户在编制程序时使用。(3) 请说明操作系统具有的共性服务有哪些不同类别,这些类别分别用于完成什么功能?解:所有的操作系统都通过一些基本服务来帮助用户简单便捷地使用计算机各类资源,它们包括以下几个类别:1. 控制程序运行:系统通过服务将用户程序装入内存并运行该程序,并且要控制程序在规定时间内结束。2. 进行I/O操作:用户是不能直接控制设备的,只能通过操作系统与外部设备进行交互,由系统调用将结果显示在屏幕上或交

12、给用户。3. 操作文件系统:为了保证实现“按名存取”,文件系统应该为用户提供根据文件名来创建、访问、修改、删除文件的方法,以确保文件数据的安全可靠以及正确存取。4. 实现通信:操作系统需要提供多个程序之间进行通讯的机制,来控制程序的执行顺序。5. 错误处理:操作系统通过错误处理机制,以便及时发现错误并采取正确的处理步骤,避免损害系统的正确性和统一性。(4) 系统调用的用途是什么?解:通常,在操作系统内核设置有一组用于实现各种系统功能的子程序(过程),并将它们提供给用户程序调用。每当用户在程序中需要操作系统提供某种服务时,便可利用一条系统调用命令,去调用所需的系统过程。这即所谓的系统调用。系统调

13、用的主要类型包括:1. 进程控制类,主要用于进程的创建和终止、对子进程结束的等待、进程映像的替换、进程数据段大小的改变以及关于进程标识符或指定进程属性的获得等;2. 文件操纵类,主要用于文件的创建、打开、关闭、读/写及文件读写指针的移动和文件属性的修改,目录的创建及关于目录、特别文件或普通文件的索引结点的建立等;3. 进程通信类,用于实现各种类型的通信机制如消息传递、共享存储区及信息量集机制等;4. 信息维护类,用于实现关于日期和时间及其它系统相关信息的设置和获得。(5) 命令解释程序有什么作用?解:命令解释程序的主要作用是:在屏幕上产生提示符,请用户输入命令,然后读入命令、识别命令,并转至相

14、应的命令处理程序入口地址,把控制权交给该处理程序去执行,最后将有关处理结果(包括出错信息)送屏幕显示。第3章 处理器管理(1) 为什么程序并发执行会产生间断性特征,并失去封闭性和可再现性?解:之所以产生间断性特征是因为多个程序在并发执行时,需要为了完成同一项任务而相互合作,并发执行的程序间的这种相互制约导致了“暂停执行暂停”的间断性运行规律。失去封闭性是因为程序在并发执行时,多个程序需要共享系统中的多种资源。所以,这些资源的状态是由多个程序改变的,从而使程序的运行失去了封闭性。失去可再现性是因为程序在并发执行时,由于失去了封闭性,从而导致其失去可再现性。(2) 什么是进程?为什么要在操作系统中

15、引入进程?解:进程是可并发执行且具有独立功能的程序在一个数据集合上的运行过程,它是操作系统进行资源分配和调度的基本单位。“进程”概念是人们为了使程序能够并发执行,并且能对并发的程序加以描述和控制而引入的。(3) 试从并发性、独立性、动态性上比较程序和进程的不同。解:l 并发性是进程的重要特征,同时也是OS 的重要特征。引入进程的目的正是为了使其程序能和其它进程的程序并发执行,而程序是不能并发执行的。l 独立性是指进程实体是一个能独立运行的基本单位,同时也是系统中独立获得资源和独立调度的基本单位。而对于未建立任何进程的程序,都不能作为一个独立的单位参加运行。l 动态性是进程最基本的特性,可表现为

16、由创建而产生,由调度而执行,因得不到资源而暂停执行,以及由撤销而消亡,因而进程有一定的生命期;而程序只是一组有序指令的集合,是静态实体。 (4) 什么是PCB?它具有什么作用?为什么说PCB是进程存在的唯一标识?解:进程控制块(Process Control Block,PCB)是操作系统为了管理进程而设置的一个专门的数据结构,用它来记录进程的外部特征,描述进程的运动变化过程。它的作用是使一个在多道程序环境下不能独立运行的程序(含数据),成为一个能独立运行的基本单位,一个能和其它进程并发执行的进程.因为系统利用PCB来控制和管理进程,所以PCB是系统感知进程存在的唯一标志。进程与PCB是一一对

17、应的。(5) 进程有哪些基本状态?这些状态具有什么特征?解:进程的三种基本状态分别是:就绪状态、运行状态、阻塞状态。l 就绪状态:进程已获取到除CPU之外的所有必要资源,只要再得到CPU,就可以马上投入运行。l 运行状态:处于就绪状态的进程被调度程序选中后将得到CPU控制权,此时该进程就可以使用处理器进行数据运算和处理。l 阻塞状态:当一个进程正在等待某个事件的发生(如等待I/O的完成)而暂停执行,这时,即使分配有CPU时间,它也无法执行。(6) 为什么要引入挂起状态?该状态有什么特性?解:引入挂起状态时为了满足四种需要:调节系统负荷的需要、用户的需要、父进程的需要、系统的需要。挂起状态的特点

18、:交换到磁盘上的进程,不让其参与进程调度,以达到平衡系统负荷的目的。(7) 说明进程基本状态的转换关系及引起这些状态间转换的典型原因。解:处于就绪状态的进程,在调度程序为之分配了处理器之后,就可以投入运行。同时,进程的状态也由就绪状态转变为运行状态;在采用时间片机制的操作系统中,分配给当前进程的时间片用完之后,它会暂停执行,其状态也由运行状态转换到就绪状态;如果由于某事件发生(比如进程需要访问某I/O设备,而该设备正在被别的进程访问)而使进程运行受阻,不能再继续向下执行时,它的状态会由运行状态转变为阻塞状态;当进程期望的某事件发生时(比如需要访问的I/O设备已可用),进程将从阻塞状态转变为就绪

19、状态(8) 说明在加入了挂起状态的操作系统中,进程状态间的转换关系及引发转换的典型原因。解:在引入挂起状态的操作系统中,又增加了静止就绪和静止阻塞两个新的进程状态。调用挂起原语把处于活动就绪状态的进程挂起后,该进程就会由活动就绪状态转变为静止就绪状态。调用挂起原语把处于活动阻塞的进程挂起后,它的状态就转换为静止阻塞。调用激活原语激活后又可以转换到活动阻塞状态。(9) 试说明引起进程创建的典型事件。解:引起进程创建的典型事件有:用户登录、作业调度、提供服务、应用请求。(10) 试说明引起进程撤销的典型事件。解:引起进程撤销的典型事件有:正常结束、异常结束、外界干预。(11) 试说明引起进程阻塞和

20、唤醒的典型事件。解:引起进程阻塞和唤醒的典型事件有:请求系统服务、启动某种操作、新数据尚未到达、无新工作可做。.(12) 试说明进程创建的过程。解:创建进程的操作必须调用创建原语来实现。创建原语首先为新进程申请获得惟一的数字标示符,并从PCB集合中获取一个空白PCB;为新进程的程序和数据以及用户栈分配必要的内存空间;然后对PCB进程初始化;最后将新进程插入就绪队列中,等待被调度执行。(13) 试说明进程撤销的过程。解:系统调用进程终止原语来终止进程。首先根据被终止进程的标示符,从PCB集合中查找到该进程的PCB,从中读出该进程的状态,终止该进程的执行,如果该进程还有子孙进程,应该将它的所有子孙

21、进程终止,防止它们成为不可控进程;然后回收进程所拥有的资源;最后将被终止进程(它的PCB)从所在队列(或链表)中移出,等待其它程序来搜集信息。(14) 什么是线程?请比较它与进程的异同。解:线程是进程中的一个实体,是被系统独立分配和调度的基本单位。线程基本上不拥有资源,只需要一些必不可少的资源(如程序计数器、一组寄存器和栈)。进程和线程的差异:1. 在传统的OS中,进程是拥有资源和独立调度分派的基本单位,在加入线程的OS中,线程是代替进程成为独立调度和分派的基本单位,进程则仍是拥有资源的基本单位。2. 并发粒度不同。除了不同进程的线程之外,同一个进程里的不同线程之间也可以并发执行,所以线程拥有

22、更好的并发性。3. 拥有资源数量不同。进程是拥有资源的基本单位,线程除了一些在运行过程中必不可少的资源外,基本上不拥有系统资源,它可以访问自己所在的进程的资源。4. 管理开销不同。创建、撤销进程时系统都要为之分配和回收资源,所以进程切换用的时间开销相对要多于线程。进程间通信很麻烦,而同一进程的线程则通过共享进程的资源很方便地通信和同步,同步开销小得多。进程和线程有着很多相似的地方:都可以并发执行;都有就绪、执行、阻塞这些基本状态,也都可以在这些基本状态之间转换状态;从创建到撤销都有一定的生命周期;都需要同步工具。(15) 处理器调度的层次有哪些?各层次的主要工作是什么?解:处理器调度的层次分为

23、三级调度:高级调度、中级调度和低级调度。l 高级调度:它需要做出两个决定,一个是要从驻留在外存后备队列中调入多少个作业,二是要调入哪几个作业;然后为被选中的作业创建进程,并分配必要的系统资源,如内存、外设等,然后把新创建的进程放入就绪队列中,等待被调度执行。l 中级调度:中级调度主要涉及进程在内存和外存之间的交换。当系统中的内存使用情况紧张时,中级调度把内存中暂时不能运行的进程调到外存中等待,等内存有足够的空闲空间时,再由中级调度决定将外存上的某些具备了运行条件的就绪进程调入内存,把其状态修改为就绪状态并挂在就绪队列中,等待进程调度。l 低级调度:按照一定的算法从就绪队列中选择一个进程,然后将

24、处理器分配给它。执行低级调度功能的程序称作进程调度程序,由它实现处理器在进程间的切换。(16) 抢占式调度的原则是什么?请简要说明。解:系统使用抢占方式进行进程调度时需要遵循一定的原则,主要有以下几个方面:1. 时间片原则。各进程按系统分配给的一个时间片运行,当该时间片用完或由于该进程等待某事件发生而被阻塞时,系统就停止该进程的执行而重新进行调度。2. 优先级原则。每个进程均被赋于一个调度优先级,通常一些重要和紧急的进程被赋于较高的优先级。当一个新的紧迫进程到达时,或者一个优先级高的进程从阻塞状态变成就绪状态时,如果该进程的优先级比当前进程的优先级高,OS就停止当前进程的执行,将处理器分配给该

25、优先级高的进程,使之执行。3. 短进程优先原则。当新到达的作业对应的进程比正在执行的作业对应进程的运行时间明显短时,系统剥夺当前进程的执行,而将处理器分配给新的短进程,使之优先执行。(17) 在批处理系统、分时系统、实时系统中,应分别采用哪种作业(进程)调度算法? 解:批处理系统采用先来先服务调度算法;分时系统采用时间片轮转法;实时系统采用高响应比优先调度算法。(18) 说明时间片轮转调度算法的基本思路。解:在采用时间片轮转调度算法的系统中,将系统中所有的就绪进程按照FCFS原则,排成一个队列。每次调度时将CPU分派给队首进程,让其执行一个时间片。时间片的长度从几个ms到几百ms。在一个时间片

26、结束时,发生时钟中断。调度程序暂停当前进程的执行,将其送到就绪队列的末尾,并通过CPU现场切换执行当前的队首进程,当然,进程可以未使用完一个时间片,就让出CPU(如阻塞)。这样可以保证就绪队列中的所有进程都有机会获得处理器而运行的机会,可以提高进程并发性和响应时间特性,从而提高资源利用率。(19) 试说明多级反馈队列调度算法思想。解:多级反馈队列调度算法则不必事先知道各进程的执行时间,又可以满足各种类型进程的调度需要,它是一种目前公认较好的进程调度算法。它的算法思想如下(设采用抢占式调度):1. 需要设置多个就绪队列,并且为它们分别赋予不同的优先级。每队列分配不同的时间片,规定优先级越低则时间

27、片越长。2. 新进程就绪后,先插入队列1的末尾,按FCFS算法调度。若一个时间片未能执行完,则降低插入到队列2的末尾;依此类推,降低到最后的队列,则按“时间片轮转”算法调度直到完成。3. 进程由于等待事件而放弃CPU后, 进入等待队列, 一旦等待的事件发生, 则回到原来的就绪队列。4. 只有当较高优先级的队列为空时,才调度较低优先级队列中的进程执行。如果进程执行时有新进程进入较高优先级的队列,则需要重新调度,抢先执行新进程,并把被抢先的进程插入原队列的末尾。(20) 什么是静态和动态优先级?如何确定静态优先级?解:静态优先级是在系统创建时确定的,一经确定之后在整个进程运行期间不再改变。动态优先

28、级是在进程运行前先确定一个优先级,进程运行过程中根据进程等待时间的长短、执行时间的多少、输入输出信息量的大小等,通过计算得到新的优先级。(21) 在一个单道批处理系统中,一组作业的到达时间和运行时间如下表所示。试计算使用先来先服务、短作业优先、高响应比优先算法时的平均周转时间和平均带权周转时间。作业到达时间运行时间18.01.028.50.539.00.249.10.1解:用T表示周转时间,用W表示带权周转时间FCFS的作业调度情况如下:作业提交时间运行时间开始时间结束时间周转时间带权周转时间18.01.08.09.01.01.028.50.59.09.51.02.039.00.29.59.7

29、0.73.549.10.19.79.80.77.0FCFS的T =(1.0+1.0+0.7+0.7)/ 4 = 0.85 W =(1.0+2.0+3.5+7.0)/ 4 =3.375SJF的作业调度情况如下:作业提交时间运行时间开始时间结束时间周转时间带权周转时间18.01.08.09.01.01.028.50.59.39.81.32.639.00.29.09.20.21.049.10.19.29.30.22.0SJF的T=(1.0+1.3+0.2+0.2)/ 4 = 0.675 W =(1.0+2.6+1.0+2.0)/ 4 = 1.65高响应比优先的作业调度情况如下:作业提交时间运行时间开

30、始时间结束时间周转时间带权周转时间18.01.08.09.01.01.028.50.59.09.51.02.039.00.29.69.80.84.049.10.19.59.60.55.0高响应比算法的T=(1.0+1.0+0.8+0.5)/ 4 = 0.825 W =(1.0+2.0+4.0+5.0)/ 4 = 3.0第4章 进程同步与死锁(1) 什么是进程同步?什么是进程互斥?解:同步是进程间的直接制约关系,这种制约主要源于进程间的合作。进程同步的主要任务就是使并发执行的各进程之间能有效地共享资源和相互合作,从而在执行时间、次序上相互制约,按照一定的协议协调执行,使程序的执行具有可再现性。进

31、程互斥是进程间的间接制约关系,当多个进程需要使用相同的资源,而此类资源在任一时刻却只能供一个进程使用,获得资源的进程可以继续执行,没有获得资源的进程必须等待,进程的运行具有时间次序的特征,谁先从系统获得共享资源,谁就先运行,这种对共享资源的排它性使用所造成的进程间的间接制约关系称为进程互斥。互斥是一种特殊的同步方式。(2) 进程执行时为什么要设置进入区和退出区?解:为了实现多个进程对临界资源的互斥访问,必须在临界区前面增加一段用于检查欲访问的临界资源是否正被访问的代码,如果未被访问,该进程便可进入临界区对资源进行访问,并设置正被访问标志,如果正被访问,则本进程不能进入临界区,实现这一功能的代码

32、成为“进入区”代码;在退出临界区后,必须执行“退出区”代码,用于恢复未被访问标志。(3) 同步机构需要遵循的基本准则是什么?请简要说明。解:同步机制都应遵循下面的4条准则:1. 空闲让进。当无进程处于临界区时,允许进程进入临界区,并且只能在临界区运行有限的时间。2. 忙则等待。当有一个进程在临界区时,其它欲进入临界区的进程必须等待,以保证进程互斥地访问临界资源。3. 有限等待。对要求访问临界资源的进程,应保证进程能在有限时间内进入临界区,以免陷入“饥饿”状态。4. 让权等待。当进程不能进入临界区时,应立即放弃占用CPU,以使其它进程有机会得到CPU的使用权,以免陷入“饥饿”状态。(4) 整型信

33、号量是否能完全遵循同步机构的四条基本准则?为什么?解:不能。在整型信号量机制中,未遵循“让权等待”的准则。(5) 在生产者-消费者问题中,若缺少了V(full)或V(empty),对进程的执行有什么影响? 解:如果缺少了V(full),那么表明从第一个生产者进程开始就没有对信号量full值改变,即使缓冲池存放的产品已满了,但full的值还是0,这样消费者进程在执行P(full)时会认为缓冲池是空的而取不到产品,那么消费者进程则会一直处于等待状态。如果缺少了V(empty),例如在生产者进程向n个缓冲区放满产品后消费者进程才开始从中取产品,这时empty=0,full=n,那么每当消费者进程取走

34、一个产品时empty并没有被改变,直到缓冲池中的产品都取走了,empty的值也一直是0,即使目前缓冲池有n个空缓冲区,生产者进程要想再往缓冲池中投放产品会因申请不到空缓冲区而被阻塞。(6) 在生产者-消费者问题中,若将P(full)和P(empty)交换位置,或将V(full)或V(empty)交换位置,对进程执行有什么影响? 解:对full和empty信号量的P、V操作应分别出现在合作进程中,这样做的目的是能正确表征各进程对临界资源的使用情况,保证正确的进程通信联络。 (7) 利用信号量写出不会出现死锁的哲学家进餐问题的算法。解:对哲学家按顺序从0到4编号,哲学家i左边的筷子的编号为i,哲学

35、家右边的筷子的编号为(i+1)%5。semaphore chopstick5=1; /定义信号量数组chopstick5,由于侉子是临街资源(互斥),故设置初值均为1。Pi()/i号哲学家的进程 do if(i(i+1)%5) wait(chopsticki); wait(chopstick(i+1)%5); else wait(chopstick(i+1)%5); wait(chopsticki); eat signal(chopsticki); signal(chopstick(i+1)%5); think while(1);(8) 利用AND型信号量和管程解决生产者-消费者问题。解:利用

36、AND信号量解决生产者消费者问题的算法描述如下:var mutex,empty,full: semaphore:=1,n,0;buffer: array0,.,n-1 of item;in out: integer := 0, 0;beginparbeginproducer: beginrepeat.produce an item in nextp;.Swait(empty, mutex); buffer(in) := nextp;in := (in+1) mod n;Ssignal(mutex, full);until false;endconsumer: beginrepeatSwait(

37、full, mutex);nextc := buffer(out);out := (out+1) mod n;Ssignal(mutex, empty);consume the item in nextc;until false;endparendend 利用管程机制解决生产者-消费者问题,首先需要建立一个管程ProducerConsumer,其中包含两个过程insert(item)和consumer(item)。生产者-消费者同步问题可以用伪代码描述如下:monitor ProducerConsumercondition full,empty;int count;void insert(in

38、t item)if (count=N) wait(full);insert(item);count=count+1;if (count=1) signal(empty);int remover()if (count=0) wait(empty);remove=remove_item;count=count-1;if (count=N-1) signal(full);count=0;end monitorvoid producer() while (true) item=produce_item; ProducerConsumer.insert(item); void consumer() wh

39、ile (true) item=ProducerConsumer.remove; consume(item) (9) 进程的高级通信机制有哪些?请简要说明。解:进程的高级通信机制分为三大类:共享存储系统、消息传递系统和管道通信系统。1. 共享存储器系统:在共享存储器系统中,相互通信的进程通过共享某些数据结构或共享存储区实现进程之间的通信。该系统又可进一步细分为两种方式:基于共享数据结构的通信方式和基于共享存储区的通信方式。2. 消息传递系统:消息传递机制可以实现不同主机间多个CPU上进程的通信。这种方式需要使用两条原语send和receive来发送和接收格式化的消息(message)。 3.

40、管道通信系统:管道通信是一种以文件系统为基础实现的适用于在进程之间实现大量数据传送的通信方式。(10) 什么是死锁?产生死锁的原因和必要条件是什么?解:所谓死锁是指在一个进程集合中的所有进程都在等待只能由该集合中的其它一个进程才能引发的事件而无限期地僵持下去的局面。 产生死锁的原因可以归结为两点:1)竞争资源, 2)各进程之间的推进顺序不当。 产生死锁的必要条件有四个:1)互斥条件, 2)不剥夺条件, 3)请求和保持条件, 4)环路条件。(11) 死锁的预防策略有哪些?请简要说明。解:死锁的预防策略有三,说明如下:1. 摒弃请求和保持条件:为摒弃请求和保持条件,系统中需要使用静态资源分配法,该

41、方法规定每一个进程在开始运行前都必须一次性地申请其在整个运行过程中所需的全部资源。此时,若系统有足够的资源,就把进程需要的全部资源一次性地分配给它;若不能全部满足进程的资源请求,则一个资源也不分给它,即使有部分资源处于空闲状态也不分配给该进程。这样,当一个进程申请某个资源时,它不能占有其它任何资源,在进程运行过程中也不会再提出资源请求。这种方法破坏了请求和保持条件,从而避免死锁的发生。2. 摒弃不剥夺条件:要摒弃“不剥夺条件”,可以使用如下策略:进程在需要资源时才提出请求,并且进程是逐个地申请所需资源,如果一个进程已经拥有了部分资源,然后又申请另一个资源而不可得时,其现有资源必须全部释放。在这

42、种方法中,进程只能在获得其原有资源和所申请的新资源时才能继续执行。3. 摒弃环路等待条件:为确保环路等待条件不成立,可以在系统中实行资源有序分配策略,即系统中的所有资源按类型被赋予一个唯一的编号,每个进程只能按编号的升序申请资源。(12) 某系统中有A、B、C、D四类资源,且其总数量都是8个。某时刻系统中有5个进程,判断下列资源状态是否安全?若进程P2申请资源(1,1,1,1),能否为其分配?进程NeedA B C DAllocationA B C DP00 0 4 30 0 2 2P12 6 3 01 1 0 0P23 2 1 52 1 0 3P34 0 2 02 0 0 0P40 5 5

43、40 2 2 2解:现在对该时刻的状态进行安全分析: 由于Available向量为(3,4,4,1),所以Work向量初始化为(3,4,4,1)此时的Work小于任意的Needi向量,所以系统处于不安全状态 由于Request2(1,1,1,1)Available(3,4,4,1)且Request2(1,1,1,1)0并且所有进程的最大需求量之和小于m+n,试证明系统不会产生死锁。解:本题中只有一种资源,不妨设Maxi为第i个进程的资源总共需要量,Needi为第i个进程还需要的资源数量,Allocationi表示第i个进程已经分配到的资源数量,Available为系统剩余的资源数,其中i=1,2,3,n。假设此系统可以发生死锁。系统剩余的资源数量为Available(Available=0),由假设,因为系统处于死锁状态,所以Available个资源无法分配出去,所以每个进程的Needi都大于Available,即

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服