《(完整版)操作系统复习题.pdf》由会员分享,可在线阅读,更多相关《(完整版)操作系统复习题.pdf(33页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、操作系统原理第一章习题1简述计算机系统的组成。参考答案 :计算机系统就是按人的要求接收和存储信息,自动进行数据处理和计算,并输出结果信息的系统。一个完整的计算机系统是由硬件和软件两大部分组成的。通常硬件是指计算机物理装置本身,是完成系统各项工作的物质基础,主要包括中央处理器(CPU) 、存储器和各种输入输出设备(简称I/O 设备) ;而软件是各种程序和文件,用于指挥和管理整个计算机系统按指定的要求进行工作。2什么是操作系统?它在计算机中的地位如何?其功能有哪些?参考答案 :操作系统是一组控制和管理计算机硬件和软件资源,合理地对各类作业进行调度,以及方便用户使用的程序的集合。操作系统 是计算机系
2、统中最靠近硬件的一层软件,它支持和管理硬件,与具体的应用领域无关, 在计算机系统的所有软件中,操作系统是基础,其它软件只有在操作系统的支持下,才能发挥作用。 它是计算机硬件和其它软件以及计算机用户之间的联系纽带,如果没有操作系统,用户几乎无法使用计算机系统。从资源管理的观点看,操作系统具有五个方面的功能:处理器管理、存储器管理、设备管理、 文件管理和提供用户接口。这五大部分相互配合,协调工作,实现计算机系统的资源管理、控制程序的执行、并为用户提供方便的使用接口。3操作系统有哪几种类型?各有什么特点?参考答案 : 操作系统是随着计算机硬件技术的不断发展和用户的使用要求的提高而从无到有不断完善起来
3、的,其主要类型及其特点如下:(1)批处理操作系统:具有很高的资源利用率和系统吞吐量,但作业的平均周转时间较长,也没有交互性。(2)分时操作系统:具有多路性、独立性、及时性和交互性特征,而交互性是其最重要的特征之一。(3)实时操作系统:实时操作系统通常是专用的,具有高及时性和高可靠性,但交互性较弱。(4)微机操作系统:是配置在微型计算机上的操作系统,可以是单任务或多任务,也可以是单用户或多用户系统。(5)网络操作系统:是配置在网络中的操作系统,用于管理网络通信和共享资源,协调各计算机上任务的运行,并向用户提供统一的、有效方便的网络接口。(6)分布式操作系统:是配置在分布式处理系统上的操作系统,其
4、最基本的特征是能实现处理上的分布,而处理分布的实质是资源、功能、任务和控制都是分布的。(7)嵌入式操作系统:通常具有以下特点:(1)操作系统规模一般较小。因为通常相应硬件配置较低,而且对操作系统提供的功能要求也不高。(2)应用领域差别大。对于不同的应用领域其硬件环境和设备配置情况有明显得差别。4分时操作系统和实时操作系统各有什么特点?两者有什么区别?参考答案 :分时操作系统具有多路性、独立性、 及时性和交互性特征,而实时操作系统精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 1 页,共 33 页 - -
5、- - - - - - - - 通常是专用的,具有高及时性和高可靠性,但交互性较弱。两者的主要区别是:从交互性上, 分时系统具有很高的交互性,能向终端用户提供数据处理服务、 资源共享等服务,而实时系统虽然也具有交互性,但这里人与系统的交互,仅限于访问系统中某些特定的转用服务程序;从及时性上, 实时信息系统与分时系统相似, 都是以人所能接受的等待时间来确定的,而实时控制系统的及时性则是以控制对象所要求的截止时间来确定的,一般为秒级、百毫秒级直至毫秒级,甚至要低于100微秒; 从可靠性上, 分时系统虽然也要求系统可靠,但相比之下,实时系统则要求系统高度可靠, 因此在实时系统中,往往都采取了多级容错
6、措施来保证系统的安全性及数据的安全性。5对于用户来说,分时操作系统与批处理操作系统相比有哪些主要优点?参考答案 :对于用户来说, 分时系统让每个用户都拥有一个独立的终端,方便用户随时上机;同时,为用户提供了很好的人机交换能力,使用户能对自己的作业进行直接控制,这对于程序员调试程序尤为重要。6什么是多道程序设计技术?它有什么优点?试画出三道作业的运行情况。参考答案 : 多道程序设计技术的基本思想是按照一定的算法选择若干个作业同时装入内存,在管理程序的控制下交替执行,共享CPU 和系统中的其它各种资源,每当正在运行的程序因某种原因(如等待I/O 操作的完成) 不能继续运行时,CPU 立即转去执行另
7、一道程序。 其主要优点是既提高了CPU 的利用率, 也提高了内存和I/O 设备的利用率,同时也大幅增加了系统吞吐量三道作业的运行情况:t1t2t3t4t5t6CPU程序 A进行I/O操作程序 B运行程序 A运行设备1设备2程序 B进行I/O 操作T程序 A运行三道程序运行情况程序C运行7 现有以下计算机的应用场合,请为其选择适当的操作系统:航空航天,核变研究;国家统计局数据处理中心;机房学生上机学习编程; 锅炉炉温控制;民航机票订购系统;两个不同地区之间发送电子邮件;产品组装流水线。参考答案 : 航空航天,核变研究:配置实时操作系统;国家统计局数据处理中心:配置批处理操作系统;机房学生上机学习
8、编程:配置分时操作系统; 锅炉炉温控制:配置实时操作系统;民航机票订购系统:配置实时操作系统;两个不同地区之间发送电子邮件:配置网络操作系统; 产品组装流水线:配置实时操作系统。8操作系统有哪些特征?其最基本的特征是什么?它们之间有什么联系?参考答案 :不同操作系统的特征各不相同,但都具有以下几个基本特征:并发性、共享性、虚拟性和异步性。其中最基本的特征是并发和共享,它们互为存在条件。首先,共享是以并发执行为条件,若系统不支持程序并发执行,则系统中将不存在资源共享;同时,共享也必然会影响程序的并发执行,若资源共享不当,并发性会减弱,甚至无法实现。精品资料 - - - 欢迎下载 - - - -
9、- - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 2 页,共 33 页 - - - - - - - - - - 9操作系统一般为用户提供了哪三种使用接口?参考答案 :现代操作系统通常向用户提供以下三种类型的用户接口:(1)命令接口:操作系统向用户提供一组键盘操作命令。用户从键盘上输入命令,命令解释程序接收并解释这些命令,然后调用操作系统内部的相应程序,完成相应的功能。(2)程序接口:是操作系统内核与应用程序之间的接口,是为应用程序在执行中访问系统资源而设置的,通常由一组系统调用组成,每一个系统调用都是一个能完成特定功能的子程序。系统调用只能在程序中调用,
10、不能直接作为命令从键盘上输入执行。(3)图形接口:这是为了方便用户使用操作系统而提供的图形化操作界面。用户利用鼠标、窗口、菜单、图标等图形用户界面工具,可以直观、方便、有效地使用系统服务和各种应用程序及实用工具,而不必象使用命令接口那样去记住命令名及格式。第二章习题:1进程管理主要包括哪些管理功能?参考答案: 进程管理实际上就是对处理器的管理,因为传统的多道程序系统中,处理器的分配和运行都是以进程为基本单位的。主要有以下几方面的功能:进程控制、 进程互斥与同步、进程通信、进程调度。2什么是进程?进程有哪些特征?其中最基本的特征是什么?参考答案: 进程是具有一定独立功能的程序关于某个数据集合的一
11、次运行活动,是系统进行资源分配和调度的一个独立单位。进程具有动态性、并发性、独立性、异步性、结构性特征,其中最基本的特征是动态性。3简述进程与程序的区别和联系。参考答案: 进程与程序是两个不同的概念,它们之间既有区别又有联系。首先程序是构成进程的组成部分之一,一个进程的运行目标是执行它所对应的程序,如果没有程序,进程就失去了其存在的意义;反之,如果没有进程, 多道程序也不可能并发运行。但进程与程序又有着本质的区别:(1)程序是静态概念,本身可以作为软件资源长期保存;而进程是程序的一次执行过程,是动态的,有一定的生命期。(2)进程是一个能独立运行的单位,是系统进行资源分配和调度的基本单位,能与其
12、它进程并发执行,而程序则不然。(3)程序和进程无一一对应关系。一个程序可由多个进程共享,而一个进程在其运行过程中又可顺序地执行多个程序。例如, 在分时系统中多个终端用户同时进行C 程序编译,这样,一个C 编译程序对应多个用户进程;而对每个用户进程来说,在进行编译的过程中会用到预处理、词法及语法分析、代码生成和优化等几个程序模块。(4)各进程在并发执行过程中存在异步性特征,而程序本身是静态的,没有这个特征。4进程有哪三种基本状态?试说明引起进程状态转换的典型原因。参考答案: 进程有就绪状态、执行状态、阻塞状态三种状态。引起进程发生状态转换的精品资料 - - - 欢迎下载 - - - - - -
13、- - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 3 页,共 33 页 - - - - - - - - - - 典型原因:(1)就绪执行:处于就绪状态的进程,当进程调度程序为之分配了处理器后,该进程便由就绪状态转换到执行状态。(2)执行就绪:在分时系统中,正在执行的进程如果时间片用完则将暂停执行;在抢占调度方式中,如有更高优先级的进程需要运行,将迫使正在运行的进程让出CPU 。(3)执行阻塞:正在执行的进程因发生某事件而无法执行,如等待I/O 操作的完成或未能申请到所需的系统资源等,则进程转为阻塞状态。(4)阻塞就绪:处于阻塞状态的进程,所等待的事情已经发生,如
14、I/O 操作已完成或获得了所需的资源,则进程将转变为就绪状态。5进程控制块的作用是什么?在进程控制块中主要包括哪些信息?参考答案: 进程控制块,简称PCB(Process Control Block ) ,是进程实体的重要组成部分,其中记录了用于描述进程情况及控制进程运行所需要的全部信息。通过PCB,使得原来不能并发执行的程序,成为能并发执行的进程。在进程的控制和管理中,随进程的创建而建立 PCB;因进程的状态变化而修改PCB 的相关内容; 当进程被撤销时,系统收回其PCB。可见,系统是根据PCB 来感知进程的存在的,PCB 是进程存在的唯一标志。不同的操作系统其PCB 所包含的信息会有些不同
15、,但 PCB 通常都应包含如下基本信息:(1)进程标识符:系统中的每个进程都有唯一的标识符,以标识一个进程,可以用字符串或编号表示。(2)说明信息:是与进程调度有关的一些信息,包括进程所处的状态、进程优先权、进程等待时间或已执行时间、进程阻塞原因等。(3)现场信息:主要是由处理器的各个寄存器中的内容组成,包括通用寄存器内容、指令计数器的值、程序状态字内容以及用户栈指针。当执行中的进程因某种原因而暂停时,必须将这些寄存器中的信息保存在PCB 中,以便当进程再次获得处理器时,能从 PCB 中恢复上次断点处的现场信息而正确地继续执行。(4)管理信息:是进程管理和控制所需要的相关信息,包括程序和数据在
16、内存或外存的地址、进程同步和通信机制、资源清单(记录进程所需的除CPU 外的全部资源和已经分配到的资源) 、进程队列的链接指针等。6进程创建、进程撤销、进程阻塞、进程唤醒几个原语主要应完成哪些工作?参考答案:(1)进程创建原语的功能是为新进程申请一个空白PCB,分配必要的资源,并把新进程的相关信息填入PCB 中,如进程名、父进程标识符、处理器初始状态、进程状态、 进程优先级、 进程对应程序入口地址、资源申请和分配情况等。然后将其 PCB插入就绪队列等待进程调度。(2)进程撤消原语的主要功能是收回被撤消进程所占用的系统资源,包括PCB。原语首先检查被撤消进程在系统中是否存在,如果存在,则回收该进
17、程占用的所有系统资源,将其 PCB 从所在队列中移出。如果该进程还有子进程,则一并予以撤消。最后撤消其PCB。(3) 进程阻塞原语首先停止该进程的执行,将 CPU 中各寄存器内容填入该进程的PCB中,并将其状态由“执行”改为“阻塞”,然后插入相应的阻塞队列,最后转进程调度程序重新进行调度。(4)进程唤醒原语首先将被阻塞进程的PCB 从所在阻塞队列中移出,并将其PCB 中的状态由“阻塞”改为“就绪”,然后插入就绪队列中等待调度。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 4 页,共 33 页 - - -
18、 - - - - - - - 7同步机制应遵循的四个准则是什么?参考答案: 同步机制应遵循的四个准则是:(1)空闲让进: 当无进程处于临界区时,相应的临界资源处于空闲状态,因而应允许一个请求进入临界区的进程立即进入自己的临界区,以有效地利用资源。(2)忙则等待: 当已有进程进入临界区时,表示相应的临界资源正被访问,因而所有其它试图进入相关临界区的进程必须等待,以保证诸进程互斥访问临界资源。(3)有限等待: 对要求访问临界资源的进程,应保证该进程能在有限的时间内进入自己的临界区,以免陷入“永远等待”状态。(4)让权等待:当进程不能进入临界区时,应立即释放处理器,以免陷入“忙等”状态。8简述进程互
19、斥与同步的概念。参考答案: 多个进程之间彼此无关,它们并不知道其它进程的存在,但由于同处于一个系统中, 必然存在着资源共享关系。系统中某些资源一次只允许一个进程使用,这类资源称为临界资源,许多物理设备 (如打印机、 磁带机等) 和许多软件资源 (如共享变量、数据、表格、队列等)都属于临界资源。多个进程在共享临界资源时,必须以互斥方式共享。所谓进程同步是指相互合作的进程需按一定的先后顺序执行,以顺利完成某共同任务。 具体说, 这些进程之间需要交换一定的信息,当某进程未获得其合作进程发来的信息之前, 该进程等待, 直到接收到相关信息时才继续执行,从而保证诸进程的协调运行。9信号量的PV 操作是如何
20、定义的?试说明信号量的PV 操作的物理意义。参考答案: P(S) :将信号量S 减 1,若结果大于或等于0,则该进程继续执行;若结果小于 0, 则该进程被阻塞, 并将其插入到该信号量的等待队列中,然后转去调度另一进程。V(S) :将信号量S 加 1,若结果大于0,则该进程继续执行;若结果小于或等于0,则从该信号量的等待队列中移出一个进程,使其从阻塞状态变为就绪状态,并插入到就绪队列中,然后返回当前进程继续执行。PV 操作的物理含义:信号量S值的大小表示某类资源的数量。当S0 时,其值表示当前可供分配的资源数目;当S0 时,其绝对值表示S 信号量的等待队列中的进程数目。每执行一次 P 操作, S
21、值减 1,表示请求分配一个资源,若S 0,表示可以为进程分配资源,即允许进程进入其临界区;若S0,表示等待队列为空;若S0,则表示等待队列中有因申请不到相应资源而被阻塞的进程,于是唤醒其中一个进程,并将其插入就绪队列。无论以上哪种情况,执行V操作的进程都可继续运行。10什么是临界资源?什么是临界区?参考答案: 系统中某些资源一次只允许一个进程使用,这类资源称为临界资源,许多物理设备(如打印机、磁带机等)和许多软件资源(如共享变量、数据、表格、队列等)都属于临界资源。每个进程中访问临界资源的那段代码称为临界区。11在生产者消费者问题中,如果缺少了V(full )或 V(empty) ,或者将 P
22、 (full )与 P( mutex)互换位置,或者将V(full )与 V(mutex)互换位置,结果分别是什么?参考答案: 在生产者消费者问题中,如果缺少了V(full )或 V( empty) ,系统最终精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 5 页,共 33 页 - - - - - - - - - - 可能进入死锁状态。将P(full )与 P(mutex)互换位置,系统也可能进入死锁状态。将 V(full )与 V(mutex)互换位置,系统不会出现什么问题,最多只是临界资源的释放推迟。
23、12假设有三个并发进程P,Q, R,其中 P 负责从输入设备上读入信息并传送给Q,Q 将信息加工后传送给R,R 则负责将信息打印输出。写出下列条件的并发程序:(1)进程 P、Q 共享一个缓冲区,进程Q、R 共享另一个缓冲区。(2)进程 P、Q 共享一个由m 个缓冲区组成的缓冲池,进程Q、R 共享另一个由n 个缓冲区组成的缓冲池。参考答案:(1)第一步:确定进程3 个进程 P、Q、R P进程:从输入设备上读入信息将信息放入缓冲区1 Q 进程:从缓冲区 1 取出信息将信息放入缓冲区2 中R 进程:从缓冲区 2 取出信息将信息打印输出第二步:确定进程的同步、互斥关系同步: P 当缓存区 1 无数据
24、时,才可以向缓冲区1写入信息同步: Q 当缓存区 1 有数据 时,才可以从缓冲区1 读取信息同步: Q 当缓存区 2 无数据 时,才可以向缓冲区2 写入信息同步: R 当缓存区 2 有数据 时,才可以从缓冲区2 读取信息第三步:设置信号量缓存区 1 无数据, empty1,初值 1 缓存区 1 有数据, full1 ,初值 0 缓存区 2 无数据, empty2,初值 1 缓存区 2 有数据, full2 ,初值 0 第四步:用伪代码描述begin empty1,empty2,full1,full2:semaphore; empty1 :=1; empty2 :=1; full1 :=0; f
25、ull2 :=0; cobegin P ( ); Q ( ); R ( ); coend; end; 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 6 页,共 33 页 - - - - - - - - - - process P ( ) begin L1: 从输入设备上读入信息; P(empty1 ) ; 将信息放入缓冲区1;V(full1); goto L1 end;process Q ( ) begin L2:P (full1); 从缓冲区1 取出信息 ; V(empty1 ) ; P(empty2
26、 ) ; 将信息放入缓冲区2;V(full2); goto L2 end;process R ( ) begin L3:P (full2); 从缓冲区2 取出信息 ; V(empty2 ) ; 将信息打印输出; goto L3 ; end;(2)第一步:确定进程3 个进程 P、Q、R P进程:从输入设备上读入信息将信息放入缓冲池1 中的一个空缓冲区中Q 进程:从缓冲池 1 中的一个非空缓冲区中取出信息将信息放入缓冲池2 中的一个空缓冲区中R 进程:从缓冲池 2 中的一个非空缓冲区中取出信息将信息打印输出第二步:确定进程的同步、互斥关系同步: P 当缓冲池1 中有空的缓冲区时,才可以向缓冲池1
27、写入信息精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 7 页,共 33 页 - - - - - - - - - - 同步: Q 当缓冲池1 中有非空的缓冲区时,才可以从缓冲池1 读取信息同步: Q 当缓冲池2 中有空的缓冲区时,才可以向缓冲池2 写入信息同步: R 当缓冲池2 中有非空的缓冲区时,才可以从缓冲池2 读取信息第三步:设置信号量缓冲池 1 中的空缓冲区的数量,empty1,初值 m 缓冲池 1 中的非空缓冲区的数量,full1 ,初值 0 缓冲池 2 中的空缓冲区的数量,empty2,初值
28、n 缓冲池 2 中的非空缓冲区的数量,full2 ,初值 0 第四步:用伪代码描述begin empty1,empty2,full1,full2:semaphore; empty1 :=m; empty2 :=n; full1 :=0; full2 :=0; cobegin P ( ); Q ( ); R ( ); coend; end; process P ( ) begin L1: 从输入设备上读入信息; P(empty1 ) ; 将信息放入缓冲池1 中的一个空缓冲区中;V(full1); goto L1 end;process Q ( ) begin L2:P (full1); 从缓冲池
29、1 中的一个非空缓冲区中取出信息; V(empty1 ) ; P(empty2 ) ; 将信息放入缓冲池2 中的一个空缓冲区中;V(full2); goto L2 end;process R ( ) begin 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 8 页,共 33 页 - - - - - - - - - - L3:P (full2); 从缓冲池2 中的一个非空缓冲区中取出信息; V(empty2 ) ; 将信息打印输出; goto L3 ; end;13有四个并发进程:R1,R2,W1 和 W
30、2,它们共享可以存放一个数的缓冲区。进程 R1 每次从磁盘读入一个数存放到缓冲区中,供进程W1 打印输出;进程R2 每次从键盘读一个数存放到缓冲区中,供进程 W2 打印输出。 当缓冲区满时, 不允许再向缓冲区中存放数据;当缓冲区空时,不允许再从缓冲区中取出数据打印输出。试用PV 操作实现四个进程的协调运行。参考答案:第一步:确定进程4 个进程 R1、R2、W1、W2 R1 进程:从磁盘上读入一个数将数存放到缓冲区中W1 进程:将 R1 进程放进缓冲区中的数取出打印输出R2 进程:从键盘读入一个数将数存放到缓冲区中W2 进程:将 R2 进程放进缓冲区中的数取出打印输出第二步:确定进程的同步、互斥
31、关系同步: R1 当缓存区无数据时,才可以向缓冲区写入数据同步: R2 当缓存区无数据时,才可以向缓冲区写入数据同步: W1 当缓存区中是R1 写的数据时,才可以将数据从缓冲区中读出同步: W2 当缓存区中是R2 写的数据时,才可以将数据从缓冲区中读出第三步:设置信号量缓存区无数据,empty,初值 1 缓存区中是R1 写的数据, full1 ,初值 0 缓存区中是R2 写的数据, full2 ,初值 0 第四步:用伪代码描述begin empty, full1,full2: semaphore; empty :=1; full1 :=0; full2 :=0; 精品资料 - - - 欢迎下载
32、 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 9 页,共 33 页 - - - - - - - - - - cobegin R1 ( ); R2 ( ); W1 ( ); W2 ( ); coend; end; process R1 ( ) begin L1: 从磁盘上读入一个数;P(empty ); 将数存放到缓冲区中;V(full1); goto L1 end;process R2 ( ) begin L2: 从键盘上读入一个数;P(empty ); 将数存放到缓冲区中;V(full2); goto L2 end;process
33、 W1 ( ) begin L3:P (full1); 将缓冲区中的数取出;V(empty ); 打印输出 ; goto L3 end;process W2 ( ) begin L4:P (full2); 将缓冲区中的数取出;V(empty ); 打印输出 ; goto L4 end;精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 10 页,共 33 页 - - - - - - - - - - 14设公共汽车上,司机的活动顺序是:启动车辆、正常行车、到站停车;售票员的活动顺序是:关车门、售票、开车门。现假
34、设初始状态为:司机和售票员都已经在车上,汽车处于停止状态,车门处于开的状态。在汽车不断地到站、停车、行驶过程中,请用信号量的 PV 操作实现司机与售票员之间的同步关系。参考答案:第一步:确定进程2 个进程Driver (司机)、Busman(售票员)Driver 进程:启动车辆正常行车到站停车Busman 进程:关车门售票开车门第二步:确定进程的同步、互斥关系同步:当售票员将车门关上 后,司机才可以启动车辆同步:当司机 到站停车 后,售票员打开车门第三步:设置信号量车门关上 ,close,初值 0 到站停车 ,stop,初值 0 第四步:用伪代码描述begin close, stop:sema
35、phore; close := 0; stop := 0; cobegin Driver ( ); Busman ( ); coend; end; process Driver ( ) begin L1: P(close) ;启动车辆;正常行始;到站停车;V(stop) ;goto L1 end;精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 11 页,共 33 页 - - - - - - - - - - process Busman ( ) begin L2: 关车门;V(close); 售票;P(st
36、op); 开车门;goto L2 end;15哲学家进餐问题:五位哲学家吃面条,只有五根筷子, 每个人必须用一双筷子才能吃面条。请用信号量的PV 操作描述哲学家之间的关系。参考答案: 错误解法! ! ! ! ! !第一步:确定进程5 个进程Pi(i= 04)Pi 进程:思考拿起左边筷子拿起右边筷子吃面条放下右边筷子放下左边筷子第二步:确定进程的同步、互斥关系互斥:筷子是互斥资源,每个人都只能使用他左右的两根筷子第三步:设置信号量chopstick5 :表示 5 根筷子,初值1 第四步:用伪代码描述begin chopstick04 : semaphore; chopstick04 := 1;
37、cobegin process Pi(i=0,2, ,4) begin 思考;P(chopsticki ); P(chopsticki+1%5 ) ; 吃面条;V(chopsticki+1%5 ) ; V(chopsticki ); end coend; end; 错误原因: 假如所有的哲学家都同时拿起左侧筷子,看到右侧筷子不可用,都在等待右侧筷精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 12 页,共 33 页 - - - - - - - - - - 子,无限期地运行,但是都无法取得任何进展,即出现饥
38、饿,所有哲学家都吃不上饭。解决方案:1、 至多只允许四个哲学家同时进餐,以保证至少有一个哲学家能够进餐,最终总会释放出他所使用过的两支筷子,从而可使更多的哲学家进餐。2、 规定奇数号的哲学家先拿起他左边的筷子,然后再去拿他右边的筷子;而偶数号的哲学家则相反 .按此规定 ,将是 1,2 号哲学家竞争1 号筷子 ,3,4号哲学家竞争3 号筷子 .即五个哲学家都竞争奇数号筷子,获得后 ,再去竞争偶数号筷子,最后总会有一个哲学家能获得两支筷子而进餐。 而申请不到的哲学家进入阻塞等待队列,则先申请的哲学家会较先可以吃饭,因此不会出现饿死的哲学家。3、 将拿筷子的操作做成原子操作,即当一个哲学家正在拿筷子
39、的时候,其它的哲学家不能动筷子,当他那好筷子开始吃饭的时候,其它哲学家才可以拿筷子。这里给出正确解决方案中的第1种方案:解: 第一步:确定进程5 个进程Pi(i= 04)Pi 进程:思考拿起左边筷子拿起右边筷子吃面条放下右边筷子放下左边筷子第二步:确定进程的同步、互斥关系互斥:筷子是互斥资源,每个人都只能使用他左右的两根筷子同步:只能有四个人同时吃饭第三步:设置信号量chopstick5 :表示 5 根筷子,初值1 num:表示允许吃面的人的个数,初值4 第四步:用伪代码描述begin chopstick04 : semaphore; num : semaphore; chopstick04
40、:= 1; num := 4; cobegin process Pi(i=0,2, ,4) begin 思考;P (num); P(chopsticki); P(chopsticki+1%5 ) ; 吃面条;V(chopsticki+1%5 ) ; 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 13 页,共 33 页 - - - - - - - - - - V(chopsticki ); V (num); end coend; end; 16系统中只有一台打印机,有三个进程在运行中都需要使用打印机进行打
41、印输出,问:这三个进程间有什么样的制约关系?试用信号量的PV 操作描述这种关系。参考答案: 由于打印机是临界资源,三个进程共享临界资源,是互斥关系。为临界资源设置互斥信号量s,初始值为1:begin s : semaphore; s := 1; cobegin process Pi(i=0,1,2) begin 其他工作;P (s); 打印;V (s); end coend; end; 17根据例2.5,把题目修改为以下几种情况,请用PV 操作实现他们之间的同步关系:(1)桌上一个盘子,只能放一只水果。爸爸放苹果,妈妈放桔子,儿子只吃桔子,女儿只吃苹果。(2)桌上一个盘子,只能放一只水果。爸爸
42、放苹果,妈妈放桔子,儿子吃桔子、苹果。参考答案:第一步:确定进程4 个进程 Father(爸爸)、Mother (妈妈)、Son(儿子)、Daughter(女儿)Father 进程:将苹果放入盘中Mother 进程:将桔子放入盘中Son 进程:从盘中取出桔子吃桔子Daughter 进程:从盘中取出苹果吃苹果第二步:确定进程的同步、互斥关系精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 14 页,共 33 页 - - - - - - - - - - 同步: Father 当盘中无水果时,才可以将苹果放入盘中
43、同步: Mother 当盘中无水果时,才可以将桔子放入盘中同步: Son 当盘中有桔子时,才可以从盘中取出桔子同步: Daughter 当盘中有苹果时,才可以从盘中取出苹果第三步:设置信号量盘中无水果, Sp,初值 1 盘中有桔子, So,初值 0 盘中有苹果, Sa,初值 0 第四步:用伪代码描述begin Sp,So,Sa:semaphore; Sp :=1; So :=0; Sa :=0; cobegin Father ( ); Mother ( ); Son ( ); Daughter ( ); coend; end; process Father ( ) begin L1: P( S
44、p); 将苹果放入盘中; V(Sa); goto L1; end; process Mother ( ) begin L2: P( Sp); 将桔子放入盘中; V(So); goto L2; end; process Son ( ) begin L3: P( So); 从盘中取出桔子; V(Sp)吃桔子;精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 15 页,共 33 页 - - - - - - - - - - goto L3; end; process Daughter ( ) begin L4: P
45、( Sa); 从盘中取出苹果; V(Sp)吃苹果; goto L4; end; (2)第一步:确定进程3 个进程 Father(爸爸)、Mother (妈妈)、Son(儿子)Father 进程:将苹果放入盘中Mother 进程:将桔子放入盘中Son 进程:从盘中取出水果(桔子或苹果)吃水果(桔子或苹果)第二步:确定进程的同步、互斥关系同步: Father 当盘中无水果时,才可以将苹果放入盘中同步: Mother 当盘中无水果时,才可以将桔子放入盘中同步: Son 当盘中有水果(桔子或苹果)时,才可以从盘中取出水果第三步:设置信号量盘中无水果, empty,初值 1 盘中有水果(桔子或苹果),f
46、ull ,初值 0 第四步:用伪代码描述begin empty, full: semaphore; empty:=1; full :=0; cobegin Father ( ); Mother ( ); Son ( ); coend; end; process Father ( ) begin 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 16 页,共 33 页 - - - - - - - - - - L1: P( empty ); 将苹果放入盘中; V(full); goto L1; end; pro
47、cess Mother ( ) begin L2: P( empty ); 将桔子放入盘中; V(full); goto L2; end; process Son ( ) begin L3: P( full); 从盘中取出水果; V(empty ); 吃水果 ; goto L3; end; 18有一个阅览室,共有100 个座位。读者进入阅览室时必须在入口处进行登记;离开阅览室时必须进行注销。试用PV 操作描述读者进入/离开阅览室的同步与互斥关系。参考答案:第一步:确定进程可以进入阅览室的读者可以有很多,这里设为n,即n 个 Reader(读者)进程Reader进程:登记进入阅览室读书离开阅览室
48、注销第二步:确定进程的同步、互斥关系同步:当 教室内有空座位时,读者才可以登记,并进入阅览室互斥:同时 只能有一个读者在入口处进行登记互斥:同时 只能有一个读者在出口处进行注销第三步:设置信号量教室内空座位数量,seat,初值 100 为入口处进行登记设置互斥信号量Sin,初值1,表示当前可用为出口处进行注销设置互斥信号量Sout,初值1,表示当前可用第四步:用伪代码描述精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 17 页,共 33 页 - - - - - - - - - - begin Sin, S
49、out, seat:semaphore; seat :=100; Sin := 1; Sout := 1; cobegin process Reader-i ( i = 1,2,n ); begin P(seat); P(Sin); 登记 ; V(Sin); 进入阅览室 ; 读书 ; 离开阅览室 ; P(Sout); 注销 ; V(Sout); V(seat); end coend; end; 19某工厂有一个可以存放设备的仓库,总共可以存放10 台设备。生产的每一台设备都必须入库, 销售部门可从仓库提出设备供应客户。设备的入库和出库都必须借助运输工具。 现只有一台运输工具,每次只能运输一台设
50、备。请设计一个能协调工作的自动调度管理系统。参考答案:第一步:确定进程可以为入库( Pin)和出库( Pout)各设置一个进程Pin 进程:生产了一台设备使用运输工具入库Pout 进程:使用运输工具出库提出设备供应客户第二步:确定进程的同步、互斥关系同步:当 仓库中有空余位置存放设备时,设备才可以入库同步:当 仓库中有存放的设备时,设备才可以出库互斥: 运输工具 是临界资源,要互斥访问第三步:设置信号量仓库中有空余位置数量,empty,初值 10 仓库中有存放的设备数量,full ,初值0 为运输工具设置互斥信号量S,初值1,表示当前可用精品资料 - - - 欢迎下载 - - - - - -