操作系统原理与实践教程习题答案x_第1页
操作系统原理与实践教程习题答案x_第2页
操作系统原理与实践教程习题答案x_第3页
操作系统原理与实践教程习题答案x_第4页
操作系统原理与实践教程习题答案x_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

28、:静态优先级是在系统创建时确定的,一经确定Z后在整个进程运行期间不再改变。动态优先级是在进程运行前先确定一个优先级,进程运行过程屮根据进程等待时间的长短、 执行时间的多少、输入输出信息量的大小等,通过计算得到新的优先级。61)在一个单道批处理系统屮,一组作业的到达时间和运行时间如下表所示。试计算使用 先来先服务、短作业优先、高响应比优先算法时的平均周转时间和平均带权周转时间。作业到达时间运行时间1234解:用T表示周转时间,用 W表示带权周转时间 FCFS的作业调度情况如捍夺11寸问时|耳济力台肘KU结由时问用转肘问帶权周转时问1 r JUL11oLa-4FCFS 的 T 二(+) /4 二

29、W 二 (+) /4 二& JF的作业调严叙如下:冷RkH甘14T*厶時间处由 11汁同国性ikH百1堆如田址1汁诂1'1 F JL1L11叩呉口 口卩町SJF 的 T二(+) /4 二 W 二 (+) /4 二高响应比优先H始叶1、和国姑咐闻I P JLL刁口J平严PJ IWJ11 |j q入丿口j才w只j iwj1c乙34高响应比算法的T二(+) /4二W二 (+) /4二第4章进程同步与死锁(1)什么是进程同步?什么是进程互斥?解:同步是进程间的直接制约关系, 这种制约主要源于进程间的合作。 进程同步的主要任务 就是使并发执行的各进程之间能有效地共享资源和相互合作, 从而

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

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

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

33、n个缓冲区放满产品后消费者进程才开始 从中取产品,这时 empiy二0,那么每当消费者进程取走一个产品时empty并没有被改变,直到缓冲池中的产品都取走了,empty的值也一直是0,即使目前缓冲池有n个空缓冲区,生产者进程要想再往缓冲池中投放产品会因申请不到空缓冲区而被阻塞。(6) 在生产者-消费者问题中,若将P (fiilD和P (em piy)交换位置,或将V 或V (em pty) 交换位置,对进程执行有什么影响?解:对伍1和empty信号量的P、V操作应分别出现在合作进程中,这样做的目的是能正确表征 各进程对临界资源的使用情况,保证正确的进程通信联络。(7) 利用信号量写出不会出现死锁

34、的哲学家进餐问题的算法。解:对哲学家按顺序从0到4编号,哲学家i左边的筷子的编号为i,哲学家右边的筷子的编号为(汁1 ) % 5o sem aphoxe chopstick5= 1;.,n-l of item ;in out: integer := 0, 0 ;beginpaibeghproducer: beginrepeatproduce an item in nexlp ;Swaitfem ply, m utex); buffer(h) F nextp;h F (h+l)m od n;S snal(m utex, fill);untilfelse;endconsum er: beginze

35、pea tSwait®U m utex);nexte F buferfout);out F fou1±l) m od n ;S sjgnal(m utex, em piy);consum e the item h next:untilfelse;endpaiendend利用管程机制解决生产者-消费者问题,首先需要建立一个管程ProducexC onsum er ,其屮包含两个过程 hsert(item ) 和consum er(item )。生产者-消费者同步问题可以用伪代码描 述如下:m onitorPioduceiC onsum ercondition fiiUem p

36、ty;tit count;void hsert(htitem )if fcount=N) wait (full);hsert(item );countFcouni+1;if fcoun1=l) signalfem pty);int比m overOif fcouniF=0) wait(em ply);rem ove二ove_item ;countFcount-1;if fcount=N-1) snalCfLilJ;countFO; end m onitor void piuducerOwhile (true)item =piuduce_item ;(item );void consum erOw

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

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

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

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

41、的状态进行安全分析:由于Avaihbfe 向量为(3, 4, 4, 1),所以W oik向量初始化为(3, 4, 4, 1) 此时的W oik小于任意的Needti向量,所以系统处于不安全状态由于 R equesi2 (1,1,1,1)<A vailabfe( 3,4,4,1 )且 Request ( 1,1,1,1 ) <N eed2 ( 1,1,1,2 )所以先试着把P2所申请的资源分配给它,Avaihbfe 变为(2,3,3,0 )得到系统状态如 下表所示:A IbcatbnN eedAvailableABCDABCDABCDP0002200432330Pl11002630P

42、232142104P320004020P402220554然后进行安全性检测:此时Avaihbfe 向量为(2,3,3,0 ),所以W oik向量初始化为(2,3,3,0 ),此时的W oik 小于任意的NeedKl向量,所以系统处于不安全状态,所以不可以为P2分配资源(13) 三个进程Pl、P2、P3都需要5个同类资源才能正常执行直到终止,且这些进程只有在需要设备时才申请,则该系统中不会发生死锁的最小资源数量是多少?请说明理由。解:系统中不会发生死锁的最小资源数量是13,这样可以保证当每一个进程都占有4个资源的时候,有一个进程可以获得最后一个资源后被运行,运行完毕后释放资源,于是其余进程也能

43、顺利运行完,所以不会死锁。(14) 在解决死锁问题的几个方法中,哪种方法最易于实现,哪种方法使资源的利用率最高?解:预防死锁这个方法实现简单,效果突岀;避免死锁这种方法系统吞吐量和资源利用率较(15) 考由 n个程共享的具有 m个同源的系,如果于±=1,2,3,- ,n,有NeedEfl>0并且所有程的最大需求量之和小于m+n,明系不会生死。解:本中只有一种源,不妨MaxEfl第i个程的源共需要量,NeedK第i个程需要的源数量,AlbcatbnEfl 表示第i个程已分配到的源数量,Available系剩余的源数,其中#1,2,3,n。假此系可以生死。系剩余的源数量Availa

44、ble ( Available二0),由假,因系 于死状,所以Available 个源无法分配出去,所以每个程的N eedCfl都大于Available ,即 N eed i>=A vailabb+1,所以已分配出去的源数mE A location 3=mAvailable;Available所以2 N eedi>=n*(A vailabe+l)=n:A vailable+n,因剩下的源数是即Available由式和式可以得到:m - Available 二 (nl ),所以(nT )耕vaiJabb二0+ E Albca1±)ni>=0+m +n=m +nE N

45、eed IU + S A Bocatbn 印>二n松 vaUable+n+ 松 vaihbb+m+n 又因 n>=l,所以(nT )>二0,又因 Available二0 由式和式可以得到工NeedK根据意知:E M axi<m +n又因:M axi=Need Kl+A Ibcation 印,所以 E M axEQS N eed 1+A Location 忸由式和式得:SN eed i+SAbcatbni<m +n由假推出的式和由意推出的式相矛盾,所以假是 的,即系不会生死O(16) 某站售票,在任何刻最多可以容20名票者入,当售票中少于20名票者,外的票者可立即入

46、,否需要在外面等待。若把一个票者看作一个程,回答 以下: 用信号量管理些并程,怎定信号量,写出信号量的初以及信号量的各取的含。 根据所定的信号量,写出相的程序来保程能正确地并行。 如果票者最多口个人,写出信号量取的可能化范(最大和最小 )o解: 定信号量S,初20,当s> 0 ,它表示可以 入票的人数,当s二0表示内已有20人正在 票,当s < 0 | s |表示正等待入的人数。 sem aphoxe S 二20 ;beghpaxbeghpiocedure :beghlepea twait fc);Enterand buy ticket;sjgnal(s);untilfelse;e

47、ndpaiendend最大 20,最小20-n(17) 在量控制系中的数据采集任,把所采集的数据送往一冲区;算任从 冲区中取出数据 行算。写出利用信号量机制 两个任共享 冲区的同步算法。解:sem aphoie m utex 二 1;sem aphoie fill二 0 ;sem aphoie em piy 二 1;beghpaxbegincollect:beghrepeatcollectdata h nextp;w aitfem pty);w a it (in utex);buflferFnextp;signal(m utex);untilfelse;endcom pute :beghrep

48、eatw a II);wait(m utex);nexte Fbuflfer;signal(m utex);signalfem piy);com pute data in nexte:untilfelse;endparcndend(18) 桌上有一空,允存放一只水果。爸爸可以向中放苹果,也可以向中放桔子,儿子专等着吃盘屮的桔子,女儿专等着吃盘屮的苹果。 规定当盘空时一次只能放一只水果供吃者用,请用信号量实现爸爸、儿子和女儿3个并发进程的同步。解:本题中应设置三个信号量s、S。、Sa,信号量S表示盘中是否为空,其初值为1; S。表示盘中是否有桔子,其初值为 0; Sa表示盘中是否有苹果,其初值为

49、0o同步描述如下:爸爸:PG);儿子:P (So);女儿:P6a);从盘子中取出苹果V(S);吃苹果;解:sem aphoie em piyl二9 ;将水果放入盘中从盘子中取出桔子if (放入的是桔子)V(S o); V ( S);else v(Sa);吃桔子(19)设某系统中有 3个进程Get、Process和Put,共用两个缓冲区 bu£ferl 和bu£fei2。 假设buflferl中最多可以放11个信息,现在已经放入了两个信息;buffei2 最多可以放5个信息。G et进程负责不断地将输入信息送入buflferl中,Piocess进程负责从bufiferl中取出

50、信息进行处理,并将处理结果送到buffed 屮,Put进程负责从buffed 中读取结果并 输出。试用信号量机制实现它们的同步与互斥。存储空间的分配和回收。2. 地址转换,实现逻辑地址到物理地址的映射。3. 主存空间的共享。4. 主存空间的保护。5. 主存储空间的扩充。6. 对换,对换的主要任务是实现在内存和外存之间的全部或部分进程的对换,即将内存中处于阻塞状态的进程调换到外存上,而将外存上处于就绪状态的进程换入内存。对换的目的主要是为了提高内存利用率,提高系统的吞吐量。6)为什么要配置层次式存储器?解:为了解决CPU和存储器之间速度上的不匹配,在现代计算机系统屮, 存储系统通常釆用层次结构,

51、存储层次可粗略分为三级:最高层为CPU寄存器,屮间为主存,最底层是辅存。根据具体功能还可以细分为寄存器、高速缓存、主存储器、磁盘缓存、辅存储设备(固定磁、可移存介)5。一个文件的数据可能出在存系的不同次中,例如,一个文件数据通常被存在存中(如硬),当其需要运行或被,就必 入主存,也可以 存放在主存的磁高速存中。大容量的存常常使用磁,磁数据常份在可移磁或者光上,以 防止硬故障失数据。(3)什么是 地址?什么是物理地址?什么要行二者的 工作?解:地址是用程序中使用的存地址,有也称相地址,由 地址构成的地址空称 空。每个用 程序的 地址空都是从零号地址开始的。物理地址是内存器的 存 元地址,有也称

52、地址,由物理地址构成的地址空称物理空。物 理地址空也是从零号地址开始的。在多道程序境下,程序 地址空和内存物理地址空是不一致的。用程序的 地址可以是一性 或多性,而内存中的每一个存元都有相的内存地址相,属于一性地址。在将用程序部分或全部地装入内存空,要 地址到物理地址的映射。 地址重定位,静地址重定位和 地址重定位有什么区?解:地址重定位指从 地址到物理地址的映射程,也称地址映射。静地址重定位是指在用程序行之前完成地址映射工作,即把程序的 地址都的内存物理地址。静地址重定位的地址 只是在装入一次完成,而在程序运行期不再化。地址重定位是指在程序行程中,CPU在内存之前,将要的程序或数据地址内存地

53、址。(5) 什么是内部碎片和外部碎片?。解:在一个分区内部出的碎片(即被浪的空)称作内部碎片,如固定分区法就会生内部碎片;在所有分区之外新增的碎片称作外部碎片,如在 分区法施程中出的越来越多的小空 就 是外部碎片,由于它太小,无法装入一个程,因而被浪掉。(6) 什么是分和分段存技,两者有何区?解:在分系中,系会把用程序的地址空划分成若干个大小相等的区域,每个区域称作一个面或。每个都有一个号,叫做号。号一般从 0开始,如0,1, 2,,亀 似地,也把内存空划分成若干和大小相同的物理,些物理叫“ ” (fem e)或内存。同,每个物理也有一个号,号也是从 0开始依次序排列。系 程分配内存,以 位将

54、程中的若干分装入多个可以不相接的中。在分段存管理方式中,程序按内容或程(函数)关系划分若干个段,每个段定一信息,都有自己的名字。一个用作所包含的段于一个二性虚空,也就是一个二虚存器。段式管理程序以段 位行内存分配,然后通地址映射机构把段式虚地址 的内存物理地址。分段和分有多相似之,比如,二者在内存中都采用离散分配方式,而不是整体分配方式,而且都要通地址映射机构来地址。但二者在概念上却完全不同,具体表在下述三个方面:1. 是信息的物理位,而段是信息的位。分是了离散分配,减少内存碎片,提高内存利用率。或者,分是由于系管理的需要,而不是用的需要。段则是信息的逻辑单位,它含有一组意义相对完整的信息。 段的长度不是固定 的,取决于用户所编写的程序。分段的目的是为了能更好地满足用户的需要,更方便用 户编程,更好地实现信息共享和保护。2. 页的大小由系统确定,由系统把逻辑地址划分为页号和页内地址两部分,整个系统只能 有一种大小的页面;而段的长度却不固定,它取决于用户的程序。通常由编译程序在对 源码进行编译时,根据程序的性质来划分。3. 分页的进程地址空间是一维的,即单一的线性空间;而分段的进程地址空间是二维的, 由段号和段

温馨提示

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

评论

0/150

提交评论