操作系统原理与实践教程第二版习题答案

上传人:痛*** 文档编号:67220324 上传时间:2022-03-30 格式:DOC 页数:47 大小:498.50KB
收藏 版权申诉 举报 下载
操作系统原理与实践教程第二版习题答案_第1页
第1页 / 共47页
操作系统原理与实践教程第二版习题答案_第2页
第2页 / 共47页
操作系统原理与实践教程第二版习题答案_第3页
第3页 / 共47页
资源描述:

《操作系统原理与实践教程第二版习题答案》由会员分享,可在线阅读,更多相关《操作系统原理与实践教程第二版习题答案(47页珍藏版)》请在装配图网上搜索。

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

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

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

4、中往往采用多级 容错措施来保证系统的安全及数据的安全。(5) 试比较分布式操作系统和网络操作系统的异同。解:它们的区别在于: 分布式操作系统的设计思想和网络操作系统是不同的, 这决定了它们 在结构、 工作方式和功能上也不同。 网络操作系统要求网络用户在使用网络资源时首先必须 了解网络资源, 网络用户必须知道网络中各个计算机的功能与配置、 软件资源、 网络文件结 构等情况, 在网络中如果用户要读一个共享文件时, 用户必须知道这个文件放在哪一台计算 机的哪一个目录下; 分布式操作系统是以全局方式管理系统资源的, 它可以为用户任意调度 网络资源,并且调度过程是“透明”的。(6) 什么是操作系统虚拟机

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

6、务器结构的操作系统为什么获得广泛应用。解:客户机 /服务器结构的操作系统具有不同于传统集中式OS 的一系列独特优点,使得其在网络时代大为流行。主要原因有以下几点:1. 该系统的数据可以进行分布式处理和存储。 客户机本身均具有一定的处理能力,部分数据处理和存储工作可由本地客户机完成,减少了服务器机的任务量。2. 对于重要数据, 可以将其放在受到严密保护的服务器所在的局域网内集中管理,以便保证数据安全。3. C/S结构有较好的灵活性和可扩充性,客户机/服务器机类型可选范围很大。4. 易于修改用户程序。对客户机的修改和增删很方便,甚至可以由用户自行进行。(8) 处理机管理有哪些主要功能?请简要描述。

7、解: 处理机的管理功能主要体现在创建、撤销进程,并按照一定的算法为其分配所需资源, 同时还要管理和控制各用户的多个进程协调运行, 确保各个进程可以正确的通信。 在多道程 序 OS 中,这些管理功能最终通过对进程的控制和管理来实现,而在具有线程机制的 OS 中,这些功能的实现还依赖于对线程的管理和控制。(9) 存储器管理有哪些主要功能?请简要描述。解:操作系统所管理的存储器包括内存、 外存等, 因此存储器管理的主要任务就是将各种存 储器件统一管理, 保证多道程序的良好运行环境, 同时还要兼顾内存利用率、 逻辑上扩充内 存的需求以及用户的感受,提供优良的控制、存取功能,为用户提供操控存储器的手段。

8、为实现上述要求,存储器管理应具有内存分配、内存回收、内存保护、 地址映射和虚拟内存 等功能。(10) 文件管理有哪些主要功能?请简要描述。解:其主要功能就是管理外存上的静态文件, 提供存取、 共享和保护文件的手段, 以方便用 户使用, 同时禁止无权限用户对他人资源的误访问或有权限用户对资源的误操作。 文件管理 机制还要能有效管理外存空闲区域, 根据文件的大小为其分配和回收空闲区。 为了满足用户 对响应时间的要求, 文件管理机制还应实现目录管理, 以便快速地定位文件。 文件管理机制 能有效保护文件安全,提高资源利用率,为用户提供快速检索和使用文件的手段,是 OS 不 可或缺的组成部分。(11)

9、设备管理有哪些主要功能?请简要描述。解:设备管理的主要作用是使用统一的方式控制、 管理和访问种类繁多的外围设备。 设备管 理功能主要体现在:接收、分析和处理用户提出的 I/O 请求,为用户分配所需 I/O 设备,同 时还要做到尽量提高 CPU 和 I/O 设备利用率、 I/O 处理效率,为用户提供操控 I/O 设备的便 捷界面和手段。 根据设备管理模块的功能要求,可以将其功能分为设备分配、缓冲管理、设 备处理、虚拟设备等。第 2 章 操作系统的界面(1) 请说明系统生成和系统引导的过程。解:系统的生成过程: 当裸机启动后, 会运行一个特殊的程序来自动进行系统的生成 (安装), 生成系统之前需要

10、先对硬件平台状况进行检查,或者从指定文件处读取硬件系统的配置信 息,以便根据硬件选择合适的操作系统模块组,比较重要的信息通常有: CPU 类型、内存 大小、当前关联设备的类型和数量以及操作系统的重要功能选项和参数。 按照这些信息的指 示,系统生成程序就可以正确地生成所需的操作系统。系统引导的过程: 系统引导指的是将操作系统内核装入内存并启动系统的过程。 主要包 括初始引导、 内核初始化、 全系统初始化。 初始引导工作由 BIOS 完成, 主要完成上电自检, 初始化基本输入输出设备, 载入操作系统内核代码等工作。 内核被载入内存后, 引导程序将 CPU 控制权交给内核,内核将首先完成初始化功能,

11、包括对硬件、电路逻辑等的初始化, 以及对内核数据结构的初始化,如页表 (段表 )等。全系统初始化阶段要做的就是启动用户接 口程序,对系统进行必要的初始化,使系统处于等待命令输入状态。(2) 操作系统具有哪些接口?这些接口的作用是什么?解: 操作系统为用户提供的接口有图形接口、命令接口和程序接口几种形式。操作系统包括三种类型的用户接口: 命令接口 (具体又可分为联机命令接口与脱机命令 接口)、程序接口及图形化用户接口。其中,命令接口和图形化用户接口支持用户直接通过 终端来使用计算机系统,而程序接口则提供给用户在编制程序时使用。(3) 请说明操作系统具有的共性服务有哪些不同类别,这些类别分别用于完

12、成什么功能?解:所有的操作系统都通过一些基本服务来帮助用户简单便捷地使用计算机各类资源, 它们包括以下几个类别:1. 控制程序运行: 系统通过服务将用户程序装入内存并运行该程序, 并且要控制程序 在规定时间内结束。2. 进行 I/O 操作: 用户是不能直接控制设备的, 只能通过操作系统与外部设备进行交 互,由系统调用将结果显示在屏幕上或交给用户。3. 操作文件系统:为了保证实现“按名存取” ,文件系统应该为用户提供根据文件名 来创建、 访问、修改、 删除文件的方法, 以确保文件数据的安全可靠以及正确存取。4. 实现通信: 操作系统需要提供多个程序之间进行通讯的机制, 来控制程序的执行顺 序。5

13、. 错误处理:操作系统通过错误处理机制, 以便及时发现错误并采取正确的处理步骤, 避免损害系统的正确性和统一性。(4) 系统调用的用途是什么?解:通常,在操作系统内核设置有一组用于实现各种系统功能的子程序(过程 ),并将它们提供给用户程序调用。 每当用户在程序中需要操作系统提供某种服务时, 便可利用一条系统调 用命令,去调用所需的系统过程。这即所谓的系统调用。系统调用的主要类型包括:1. 进程控制类, 主要用于进程的创建和终止、 对子进程结束的等待、 进程映像的替换、 进程数据段大小的改变以及关于进程标识符或指定进程属性的获得等;2. 文件操纵类,主要用于文件的创建、打开、关闭、读/写及文件读

14、写指针的移动和文件属性的修改, 目录的创建及关于目录、 特别文件或普通文件的索引结点的建立3. 进程通信类, 用于实现各种类型的通信机制如消息传递、 共享存储区及信息量集机 制等;4. 信息维护类,用于实现关于日期和时间及其它系统相关信息的设置和获得。(5) 命令解释程序有什么作用?解: 命令解释程序的主要作用是:在屏幕上产生提示符,请用户输入命令,然后读入命令、 识别命令, 并转至相应的命令处理程序入口地址, 把控制权交给该处理程序去执行, 最后将 有关处理结果 (包括出错信息 )送屏幕显示。第 3 章 处理器管理(1) 为什么程序并发执行会产生间断性特征,并失去封闭性和可再现性?解:之所以

15、产生间断性特征是因为多个程序在并发执行时, 需要为了完成同一项任务而相互 合作,并发执行的程序间的这种相互制约导致了“暂停执行暂停”的间断性运行规律。失去封闭性是因为程序在并发执行时, 多个程序需要共享系统中的多种资源。 所以, 这 些资源的状态是由多个程序改变的,从而使程序的运行失去了封闭性。失去可再现性是因为程序在并发执行时, 由于失去了封闭性, 从而导致其失去可再现性。(2) 什么是进程?为什么要在操作系统中引入进程?解:进程是可并发执行且具有独立功能的程序在一个数据集合上的运行过程, 它是操作系统 进行资源分配和调度的基本单位。 “进程”概念是人们为了使程序能够并发执行,并且能对 并发

16、的程序加以描述和控制而引入的。(3) 试从并发性、独立性、动态性上比较程序和进程的不同。解:并发性是进程的重要特征, 同时也是 OS 的重要特征。 引入进程的目的正是为了 使其程序能和其它进程的程序并发执行,而程序是不能并发执行的。独立性是指进程实体是一个能独立运行的基本单位, 同时也是系统中独立获得资 源和独立调度的基本单位。而对于未建立任何进程的程序,都不能作为一个独立 的单位参加运行。动态性是进程最基本的特性,可表现为由创建而产生,由调度而执行,因得不到 资源而暂停执行,以及由撤销而消亡,因而进程有一定的生命期;而程序只是一 组有序指令的集合,是静态实体。(4) 什么是PCB ?它具有什

17、么作用?为什么说 PCB是进程存在的唯一标识?解:进程控制块 (Process Control Block , PCB) 是操作系统为了管理进程而设置的一个专门的 数据结构,用它来记录进程的外部特征,描述进程的运动变化过程。它的作用是使一个在多道程序环境下不能独立运行的程序(含数据 ),成为一个能独立运行的基本单位,一个能和其它进程并发执行的进程 .因为系统利用 PCB 来控制和管理进程,所以 PCB 是系统感知进程存在的唯一标志。 进 程与 PCB 是一一对应的。(5) 进程有哪些基本状态?这些状态具有什么特征?解:进程的三种基本状态分别是:就绪状态、运行状态、阻塞状态。就绪状态:进程已获取

18、到除 CPU 之外的所有必要资源,只要再得到CPU ,就可以马上投入运行。运行状态:处于就绪状态的进程被调度程序选中后将得到 CPU 控制权,此时该 进程就可以使用处理器进行数据运算和处理。阻塞状态: 当一个进程正在等待某个事件的发生 (如等待 I/O 的完成 )而暂停执行, 这时,即使分配有 CPU 时间,它也无法执行。(6) 为什么要引入挂起状态?该状态有什么特性?解:引入挂起状态时为了满足四种需要: 调节系统负荷的需要、 用户的需要、 父进程的需要、 系统的需要。挂起状态的特点: 交换到磁盘上的进程, 不让其参与进程调度, 以达到平衡系统负荷的 目的。(7) 说明进程基本状态的转换关系及

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

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

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

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

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

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

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

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

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

28、个就绪队列, 并且为它们分别赋予不同的优先级。每队列分配不同的时间片,规定优先级越低则时间片越长。2. 新进程就绪后,先插入队列 1的末尾,按FCFS算法调度。若一个时间片未能执行 完,则降低插入到队列 2的末尾;依此类推,降低到最后的队列,则按“时间片轮 转”算法调度直到完成。3. 进程由于等待事件而放弃 CPU后,进入等待队列,一旦等待的事件发生,则回到原 来的就绪队列。4. 只有当较高优先级的队列为空时,才调度较低优先级队列中的进程执行。如果进程执行时有新进程进入较高优先级的队列,则需要重新调度,抢先执行新进程,并把被抢先的进程插入原队列的末尾。(20) 什么是静态和动态优先级?如何确定

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

30、8.01.08.09.01.01.028.50.59.09.51.02.039.00.29.59.70.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的作业调度情况如下:作业提交时间运行时间开始时间结束时间1周转时间带权周转时间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

31、.675 W = (1.0+2.6+1.0+2.0 ) / 4 = 1.65高响应比优先的作业调度情况如下:作业提交时间运行时间开始时间结束时间周转时间带权周转时间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) 什么是进程同步?什么是进程互斥?解:同步是进程间的直接制约关系,这种制约主要源于进程间的合作。 进程同步的主

32、要任务 就是使并发执行的各进程之间能有效地共享资源和相互合作,从而在执行时间、次序上相互制约,按照一定的协议协调执行,使程序的执行具有可再现性。进程互斥是进程间的间接制约关系,当多个进程需要使用相同的资源,而此类资源在任一时刻却只能供一个进程使用,获得资源的进程可以继续执行,没有获得资源的进程必须等 待,进程的运行具有时间次序的特征,谁先从系统获得共享资源,谁就先运行,这种对共享资源的排它性使用所造成的进程间的间接制约关系称为进程互斥。互斥是一种特殊的同步方 式。(2) 进程执行时为什么要设置进入区和退出区?解:为了实现多个进程对临界资源的互斥访问,必须在临界区前面增加一段用于检查欲访问 的临

33、界资源是否正被访问的代码,如果未被访问,该进程便可进入临界区对资源进行访问, 并设置正被访问标志, 如果正被访问, 则本进程不能进入临界区, 实现这一功能的代码成为 “进入区”代码;在退出临界区后,必须执行“退出区”代码,用于恢复未被访问标志。(3) 同步机构需要遵循的基本准则是什么?请简要说明。解:同步机制都应遵循下面的 4 条准则:1. 空闲让进。 当无进程处于临界区时, 允许进程进入临界区, 并且只能在临界区运行 有限的时间。2. 忙则等待。 当有一个进程在临界区时, 其它欲进入临界区的进程必须等待, 以保证 进程互斥地访问临界资源。3. 有限等待。对要求访问临界资源的进程,应保证进程能

34、在有限时间内进入临界区, 以免陷入“饥饿”状态。4. 让权等待。当进程不能进入临界区时,应立即放弃占用 CPU ,以使其它进程有机 会得到 CPU 的使用权, 以免陷入“饥饿”状态。(4) 整型信号量是否能完全遵循同步机构的四条基本准则?为什么?解: 不能。在整型信号量机制中,未遵循“让权等待”的准则。(5) 在生产者 -消费者问题中,若缺少了 V(full) 或 V(empty) ,对进程的执行有什么影响?解:如果缺少了 V(full) ,那么表明从第一个生产者进程开始就没有对信号量 full 值改变, 即 使缓冲池存放的产品已满了,但 full 的值还是 0,这样消费者进程在执行P(ful

35、l) 时会认为缓冲池是空的而取不到产品,那么消费者进程则会一直处于等待状态。如果缺少了 V(empty) ,例如在生产者进程向 n 个缓冲区放满产品后消费者进程才开始 从中取产品,这时 empty=0 , full=n ,那么每当消费者进程取走一个产品时empty 并没有被改变,直到缓冲池中的产品都取走了, empty 的值也一直是 0,即使目前缓冲池有 n 个空缓 冲区,生产者进程要想再往缓冲池中投放产品会因申请不到空缓冲区而被阻塞。(6) 在生产者 -消费者问题中, 若将 P(full) 和 P(empty) 交换位置, 或将 V(full) 或 V(empty) 交换 位置,对进程执行有

36、什么影响?解:对 full 和 empty 信号量的 P、 V 操作应分别出现在合作进程中,这样做的目的是能正确 表征各进程对临界资源的使用情况,保证正确的进程通信联络。(7) 利用信号量写出不会出现死锁的哲学家进餐问题的算法。解:对哲学家按顺序从 0到4编号,哲学家i左边的筷子的编号为i,哲学家右边的筷子的 编号为( i+1) %5。semaphore chopstick5=1;/定义信号量数组 chopstick5 ,由于侉子是临街资源 (互斥),故设置初值均为 1。Pi()/i 号哲学家的进程doif(i(i+1)%5) wait(chopsticki); wait(chopstick(

37、i+1)%5);else wait(chopstick(i+1)%5); wait(chopsticki);eat signal(chopsticki); signal(chopstick(i+1)%5); thinkwhile(1);(8) 利用 AND 型信号量和管程解决生产者 -消费者问题。解:利用 AND 信号量解决生产者消费者问题的算法描述如下:var mutex,empty,full: semaphore:=1,n,0;buffer: array0,.,n-1 of item;in out: integer := 0, 0;begin parbegin producer: begi

38、n repeatproduce an item in nextp;Swait(empty, mutex); buffer(in) := nextp; in := (in+1) mod n;Ssignal(mutex, full);until false;end consumer: begin repeat Swait(full, mutex); nextc := buffer(out); out := (out+1) mod n; Ssignal(mutex, empty); consume the item in nextc; until false;endparendend利用管程机制解决

39、生产者-消费者问题,首先需要建立一个管程ProducerConsumer,其中包含两个过程insert(item)和consumer(item)。生产者-消费者同步问题可以用伪代码描述如 下:monitor ProducerConsumercondition full,empty;int count;void insert(int item)if (count=N) wait(full); insert(item);count=count+1;if (count=1) signal(empty);int remover()if (count=0) wait(empty); remove=rem

40、ove_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()while (true) item=ProducerConsumer.remove;consume(item)(9) 进程的高级通信机制有哪些?请简要说明。解: 进程的高级通信机制分为三大类:共享存储系统、消息传递系统和管道通信系统。1. 共享存储器系统: 在共享存储器系统中,

41、 相互通信的进程通过共享某些数据结构或 共享存储区实现进程之间的通信。 该系统又可进一步细分为两种方式: 基于共享数 据结构的通信方式和基于共享存储区的通信方式。2. 消息传递系统:消息传递机制可以实现不同主机间多个 CPU 上进程的通信。这种 方式需要使用两条原语 send 和 receive 来发送和接收格式化的消息 (message)。3. 管道通信系统: 管道通信是一种以文件系统为基础实现的适用于在进程之间实现大 量数据传送的通信方式。(10) 什么是死锁?产生死锁的原因和必要条件是什么?解: 所谓死锁是指在一个进程集合中的所有进程都在等待只能由该集合中的其它一个进程 才能引发的事件而

42、无限期地僵持下去的局面。产生死锁的原因可以归结为两点: 1)竞争资源, 2)各进程之间的推进顺序不当。产生死锁的必要条件有四个: 1)互斥条件, 2)不剥夺条件, 3)请求和保持条件, 4) 环路条件。(11) 死锁的预防策略有哪些?请简要说明。解:死锁的预防策略有三,说明如下:1. 摒弃请求和保持条件:为摒弃请求和保持条件,系统中需要使用静态资源分配法, 该方法规定每一个进程在开始运行前都必须一次性地申请其在整个运行过程中所 需的全部资源。 此时, 若系统有足够的资源, 就把进程需要的全部资源一次性地分 配给它; 若不能全部满足进程的资源请求, 则一个资源也不分给它, 即使有部分资 源处于空

43、闲状态也不分配给该进程。 这样, 当一个进程申请某个资源时, 它不能占 有其它任何资源, 在进程运行过程中也不会再提出资源请求。 这种方法破坏了请求 和保持条件,从而避免死锁的发生。2. 摒弃不剥夺条件:要摒弃“不剥夺条件” ,可以使用如下策略:进程在需要资源时 才提出请求, 并且进程是逐个地申请所需资源, 如果一个进程已经拥有了部分资源, 然后又申请另一个资源而不可得时, 其现有资源必须全部释放。 在这种方法中, 进 程只能在获得其原有资源和所申请的新资源时才能继续执行。3. 摒弃环路等待条件:为确保环路等待条件不成立,可以在系统中实行资源有序分配策略,即系统中的所有资源按类型被赋予一个唯一

44、的编号,每个进程只能按编号的升序申请资源。(12)某系统中有A、B、C、D四类资源,且其总数量都是 8个。某时刻系统中有 5个进程, 判断下列资源状态是否安全?若进程P2申请资源(1,1,1, 1),能否为其分配?进程NeedAllocati onABCDABCDP000430022P126301100P232152103P340202000P405540222解:现在对该时刻的状态进行安全分析:由于Available向量为(3,4,4, 1),所以 Work向量初始化为(3, 4,4,1)此时的Work小于任意的Needi向量,所以系统处于不安全状态由于 Request2(1,1,1,1)A

45、vailable ( 3,4,4,1)且 Request2( 1,1,1,1) 0 m+n ,试证明系统不会产生死锁。解: 进程还需要的资源数量, Allocationi 表示第 i 个进程已经分配到的资源数量, Available 为系 统剩余的资源数,其中i=1,2,3,n。本题中只有一种资源,不妨设Maxi 为第 i 个进程的资源总共需要量,Needi 为第 i 个假设此系统可以发生死锁。系统剩余的资源数量为 Available(Available=0 ),由假设, 因为系统处于死锁状态, 所 以 Available 个资源无法分配出去,所以每个进程的 Needi 都大于 Availab

46、le ,即Needi=Available+1所以刀 Needi=n*(Available+1)=n*Available+n,因为剩下的资源数是Available,所以已经分配出去的资源数为m -Available;即刀 Allocatio ni=m-Available由式和式可以得到:刀 Needi + 刀Allocationi=n*Available+n+ m-Available= (n-1) *Available+m+n又因为 n=1 ,所以( n-1 ) =0,又因为 Available=0 ,所以( n-1 ) *Available=0 由式和式可以得到刀 Needi +刀Alloca

47、ti on i=0+m+n=m+n根据题意知:刀Maxim+n又因为:Maxi=Needi+Allocationi, 所以刀 Maxi= 刀 Needi + 刀 Allocationi由式和式得:刀 Needi + 刀Allocatio ni 0时,它表示可以继续进入购票厅的人数,当s = 0时表示厅内已有 20人正在购票,当 s 0时| s |表示正等待进入的人数。 semaphore S=20;begin parbegin procedure:begin repeat wait(s); Enter and buy ticket; signal(s); until false;endpare

48、ndend 最大值为 20,最小值为 20-n(17) 在测量控制系统中的数据采集任务时,把所采集的数据送往一单缓冲区;计算任务从 该单缓冲区中取出数据进行计算。 试写出利用信号量机制实现两个任务共享单缓冲区的同步 算法。解:semaphore mutex = 1;semaphore full = 0;semaphore empty = 1;beginparbegincollect:beginrepeat collect data in nextp; wait(empty); wait(mutex); buffer:=nextp; signal(mutex); signal(full); un

49、til false;endcompute:begin repeatwait(full);wait(mutex);n extc:=buffer;sig nal(mutex);sig nal(empty);compute data in n extc;un til false;endpare ndend解:本题中应设置三个信号量 示盘中是否有桔子,其初值为(18) 桌上有一空盘,允许存放一只水果。爸爸可以向盘中放苹果,也可以向盘中放桔子, 儿子专等着吃盘中的桔子,女儿专等着吃盘中的苹果。规定当盘空时一次只能放一只水果供 吃者用,请用信号量实现爸爸、儿子和女儿3个并发进程的同步。S、So、Sa,信号

50、量S表示盘中是否为空,其初值为1; So表0 ; Sa表示盘中是否有苹果,其初值为 0。同步描述如下:爸爸:P(S);儿子:P(S。);女儿:P(Sa);将水果放入盘中从盘子中取出桔子从盘子中取出苹果if (放入的是桔子)v(So) ;V( S);V( S);else v(Sa);吃桔子吃苹果;(19) 设某系统中有 3个进程Get、Process和Put,共用两个缓冲区 buffer1和buffer2。假设 buffer1中最多可以放11个信息,现在已经放入了两个信息;buffer2最多可以放5个信息。Get进程负责不断地将输入信息送入buffer1中,Process进程负责从buffer1

51、中取出信息进行处理,并将处理结果送到buffer2中,Put进程负责从buffer2中读取结果并输出。试用信号量机制实现它们的同步与互斥。解:semap hore empt y仁 9; /buffer1空的数量sem aphore full 仁2; buffer1满的数量semaphore empty2=5; /buffer2 空的数量 semap hore full2=0; buffer2满的数量in 1,in2,out1,out2:integer := 2,0,1,0;Get()while(1)wait(empty1)in 1=(i n1+1)mod11sig nal(full1)Proc

52、ess () while(1)wait(fulll)out 1=(out1+1)mod11sig nal(emptyl)sig nal(empty2)in 2=(i n2+1)mod5sig nal(full2)Put()while(1)wait(full2)out2=(out2+1)mod5sig nal(empty2)(20) 某寺庙有大、小和尚若干,另有一水缸。由小和尚挑水入缸供大和尚饮用。水缸可以容10桶水,水取自同一井。水井很窄,每次只能容一个水桶取水。水桶总数为3。每次入、取缸水仅为1桶,且不可同时进行。试给出取水、入水的同步算法。解:semaphore well=1; /保证互斥

53、地访问水井的信号量semaphore vat=1; /保证互斥地访问水缸的信- 号量semaphore empty=10; /表示水缸中剩余的空间能容纳的水的桶数semaphore full=0; /表示水缸中水的桶数semaphore pail=3; /保证互斥地访问临界资源水桶的信号量/大和尚进程big_ mon k()while(1)wait(full);wait(pail);wait(vat);use pail to get water from vatsig nal(vat);sig nal(empty);drink water in the pailsig nal(pail);/小

54、和尚进程little_mo nk()while(1)wait(pail);wait(well);use pail to get water from well sig nal(well);wait(vat);pour water to the vatsig nal(vat);sig nal(full);sig nal(pail);(21) 在银行家算法中,若出现下述资源分配情况:Process AllocationNeedAvailableP00 0 3 20 0 1 21 6 2 2P11 0 0 01 7 5 0P21 3 5 42 3 5 6P30 0 3 20 6 5 2P40 0 1

55、 40 6 5 6试问: 该状态是否安全? 若进程P2提出请求 Request( 1,2, 2, 2 )后,系统能否将资源分配给它?解:现在对该时刻的状态进行安全分析:由于Available向量为(1,6,2,2),所以 Work向量初始化为(1,6,2,2)该时刻的安全性检查表如下:WorkNeedAllocati onWork+Allocati onFi nishABCDABCDABCDABCDP01622001200321654TrueP31654065200321686TrueP416860656001416910TrueP21691023561354291414TrueP129141

56、417501000391414True如表所示,存在安全序列 ,所以该时刻处于安全状态。由于 Request2(1,2,2,2)Available (1,6,2,2)且 Request2 (1,2,2,2) Need2 (2,3,5,6),所以先试着把P2所申请的资源分配给它,Available变为(0,4,0,0)得到系统状态如下表所示:Allocati onNeedAvailableABCDABCDABCDP0003200120400P110001750P225761134P300320652P400140656然后进行安全性检测,此时Available为(0,4,0,0),所以 Work初始化为(0,4,0,0)。此时的Work小于任意的(0,2,0 )给 P2。(22)设系统中仅有一类数量为 进程对该类资源的最大需求量为 会发生死锁,为什么?Needi向量,所以系统处于不安全状态,即认为不能分配资源(1) M=2,N=2,W=1 ;(2) M=3,N=2,W=2 ;(3) M=3,N=2,W=3 ;(4) M=5,N=3,W=2 ;M的独占型资源,系统中有 N个进程竞争该类资源, 其中各W。当

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!