操作系统课后练习精选答案解析

合集下载

操作系统课后习题答案详细分析与解答

操作系统课后习题答案详细分析与解答

第1章习题解答一、填空1.计算机由硬件系统和软件系统两个局部组成,它们构成了一个完整的计算机系统。

2.按功能划分,软件可分为系统软件和应用软件两种。

3.操作系统是在裸机上加载的第一层软件,是对计算机硬件系统功能的首次扩大。

4.操作系统的根本功能是处理机〔包含作业〕管理、存储管理、设备管理和文件管理。

5.在分时和批处理系统结合的操作系统中引入“前台〞和“后台〞作业的概念,其目的是改善系统功能,提高处理能力。

6.分时系统的主要特征为多路性、交互性、独立性和及时性。

7.实时系统与分时以及批处理系统的主要区别是高及时性和高可靠性。

8.假设一个操作系统具有很强的交互性,可同时供多个用户使用,那么是分时操作系统。

9.如果一个操作系统在用户提交作业后,不提供交互能力,只追求计算机资源的利用率、大吞吐量和作业流程的自动化,那么属于批处理操作系统。

10.采用多道程序设计技术,能充分发挥 CPU 和外部设备并行工作的能力。

二、选择1.操作系统是一种 B 。

A.通用软件B.系统软件C.应用软件D.软件包2.操作系统是对 C 进展管理的软件。

A系统软件B.系统硬件C.计算机资源 D.应用程序3.操作系统中采用多道程序设计技术,以提高CPU和外部设备的 A 。

A.利用率B.可靠性C.稳定性D.兼容性4.计算机系统中配置操作系统的目的是提高计算机的 B 和方便用户使用。

A.速度B.利用率C.灵活性D.兼容性5. C 操作系统允许多个用户在其终端上同时交互地使用计算机。

A.批处理B.实时C.分时D.多道批处理6.如果分时系统的时间片一定,那么 D ,响应时间越长。

A.用户数越少B.内存越少C.内存越多D.用户数越多三、问答1.什么是“多道程序设计〞技术?它对操作系统的形成起到什么作用?答:所谓“多道程序设计〞技术,即是通过软件的手段,允许在计算机内存中同时存放几道相互独立的作业程序,让它们对系统中的资源进展“共享〞和“竞争〞,以使系统中的各种资源尽可能地满负荷工作,从而提高整个计算机系统的使用效率。

课后练习题及答案

课后练习题及答案

一、填空练习1.程序的执行是现代操作系统的基本特征之一,为了更好地描述这一特征而引入了这一概念。

2.进程存在的标志是。

3.进程的静态实体由、和三部分组成。

4.用于进程控制的原语主要有、、和。

5.进程被创建后,最初处于状态,然后经选中后进入状态。

6.进程创建工作主要完成的是创建进程控制块(PCB),并把它挂到队列中。

7.如果系统中有n个进程,则在就绪队列中进程的个数最多。

8.进程的同步和互斥反映了进程间和的关系。

9.死锁产生的四个必要条件是、、和四种。

10.操作系统中信号量的值与的使用情况有关,它的值仅能由来改变。

11.进程至少有三种基本状态:、和。

12.每执行一次P操作,信号量的数值S减1。

若S>0,则该进程;若S<0,则该进程。

13.每执行一次V操作,信号量的数值S加1。

若,则该进程继续执行;否则从对应的队列中移出一个进程并将状态赋予该进程。

14.利用信号量实现进程的,应为临界区设置一个信号量mutex,其初值为1,表示该资源尚未使用,临界区应置于和原语之间。

15. Windows NT是采用结构的操作系统,它的进程的功能发生了变化,它只是资源分配的单位,不是的单位,后者的功能由完成。

16. 通常,线程的定义是____________________________________。

在现代操作系统中,资源的分配单位是__________________,而处理机的调度单位是________________,一个进程可以有___________线程。

17. 计算机系统一般都设计有两种运行状态,和。

18. 目前,在操作系统设计中采用的结构模型主要有四种:、、和。

参考答案:1、并发,进程2、进程控制块PCB3、程序,数据集合,进程控制块PCB4、建立原语、撤消原语,挂起原语,激活原语5、就绪,进程调度程序,执行6、就绪7、n-18、直接制约,间接制约9、互斥使用,保持和等待,非剥夺性,循环等待10、相应资源,P、V操作11、执行态,就绪态,等待态12、继续执行,等待13、S>0,等待,就绪14、互斥,P(mutex),V(mutex)15、微内核,调度运行,线程16、是进程中执行运算的最小单位,进程,线程,多个17、用户态,核心态18、层次模块模型,整体内核模型,进程模型,对象模型二、选择练习1. 操作系统中,可以并行工作的基本单位是[1],[1]也是系统核心调度及资源分配的基本单位,它是由[2]组成的,它与程序的主要区别是[3]。

操作系统课后习题答案

操作系统课后习题答案

1.什么是操作系统?其主要功能是什么?操作系统是控制和管理计算机系统内各种硬件和软件资源,有效组织多道程序运行的系统软件(或程序集合),是用户和计算机直接的程序接口.2.在某个计算机系统中,有一台输入机和一台打印机,现有两道程序投入运行,程序A、B 同时运行,A略早于B。

A的运行轨迹为:计算50ms、打印100ms、再计算50ms、打印100ms,结束。

B的运行轨迹为:计算50ms、输入80ms、再计算100ms,结束。

试说明:(1)两道程序运行时,CPU是否空闲等待?若是,在那段时间段等待?(2)程序A、B是否有等待CPU的情况?若有,指出发生等待的时刻。

0 50 100 150 200 250 30050 100 50 10050 100 20 100(1) cpu有空闲等待,在100ms~150ms的时候.(2) 程序A没有等待cpu,程序B发生等待的时间是180ms~200ms.1.设公共汽车上,司机和售票员的活动如下:司机的活动:启动车辆;正常行车;到站停车。

售票员的活动:关车门;售票;开车门。

在汽车不断的到站、停车、行驶过程中,用信号量和P、V操作实现这两个活动的同步关系。

semaphore s1,s2;s1=0;s2=0;cobegin司机();售票员();coendprocess 司机(){while(true){P(s1) ;启动车辆;正常行车;到站停车;V(s2);}}process 售票员(){while(true){关车门;V(s1);售票;P(s2);开车门;上下乘客;}}2.设有三个进程P、Q、R共享一个缓冲区,该缓冲区一次只能存放一个数据,P进程负责循环地从磁带机读入数据并放入缓冲区,Q进程负责循环地从缓冲区取出P进程放入的数据进行加工处理,并把结果放入缓冲区,R进程负责循环地从缓冲区读出Q进程放入的数据并在打印机上打印。

请用信号量和P、V操作,写出能够正确执行的程序。

操作系统课后习题参考答案

操作系统课后习题参考答案

第1章概述一、单项选择题D、A、B、A、C、D、C、A、C、B二、填空题Windows、linux用户态、内核态PSW中断同步中断系统调用I/O设备管理、文件系统实时性、可靠性第2章进程管理一、单项选择题D、D、C、D、B、A、B、D、C、CB、B、B、D、B、A、B、A二、填空题PCB运行、就像、阻塞4、5时间片用完进程管理、存储管理PCB进程CPU寄存器的值、栈竞争状态运行、就绪I/O繁忙SJFFCFS短进程、I/O繁忙进程三、简答题1、运行状态、阻塞状态、就绪状态运行->阻塞:如进行I/O操作、进程间同步关系;运行->就绪:时间片用完、被高优先级进程所打断;阻塞->就绪:等待的I/O操作、信号量等事件发生;就绪->运行:调度程序选中该进程运行;2、(1)进程是资源分配单位,拥有一个完整的资源平台,而线程只独享必不可少的资源,如寄存器和栈;(2)线程能减少并发执行的时间和空间开销,包括创建时间、终止时间、切换时间;(3)线程之间可以共享同一个地址空间,可以进行不通过内核的通信,而进程不行;(4)线程=轻量级进程;(5)线程是CPU调度单位;3、(1)当一个新的进程被创建时;(2)当一个进程运行完毕时;(3)当一个进程由于I/O、信号量或其他的某个原因被阻塞时;(4)当一个I/O中断发生时,表明某个I/O操作已经完成,而等待该I/O操作的进程转入就绪状态;(5)在分时系统中,当一个进程的时间片用完时;4、RR算法的基本思路:(1)将所有的就绪进程按照FCFS原则,排成一个队列;(2)每次调度时将处理器分派给队首进程,让其执行一小段CPU时间;(3)在一个时间片结束时,如果进程还没有执行完的话,将发生时钟中断,在时钟中断中,进程调度程序将暂停当前进程的执行,并将其送到就绪队列的末尾,然后执行当前的队首进程;(4)如果进程在它的时间片用完之前就已结束或被阻塞,那么立即让出CPU。

操作系统课后答案详细讲解

操作系统课后答案详细讲解

操作系统课后答案详细讲解第一章操作系统引论思量与练习题1.什么是操作系统?它的主要功能是什么?2.什么是多道程序设计技术?多道程序设计技术的主要特点是什么?3.批处理系统是怎样的一种操作系统?它的特点是什么?4.什么是分时系统?什么是实时系统?试从交互性,准时性,自立性,多路性,牢靠性等几个方面比较分时系统和实施系统。

5.实时系统分为哪俩种类型?6.操作系统主要特征是什么?7.操作系统也用户的接口有几种?它们各自用在什么场合?8.“操作系统是控制硬件的软件”这一说法确切吗?为什么?9.设存中有三道程序,A,B,C,它们按A~B~C的先后挨次执行,它们举行“计算”和“I/o操作”的时光如表1-2所示,假设三道程序使用相同的I/O设备。

(1)试画出单道运行时三道程序的时光关系图,并计算完成三道程序要花多少时光。

(2)试画出多道运行时三道程序的时光关系图,并计算完成三道程序要花多少时光。

10.将下列左右两列词衔接起来形成意义最恰当的5对。

DOS 网络操作系统OS/2 自由软件UNIX 多任务Linux 单任务Windows NT 为开发操作系统而设计C语言11.挑选一个现代操作系统,查找和阅读相关的技术资料,写一篇关于操作系统如何举行存管理、存储管理、设备管理和文件管理的文章。

答案1.答:操作系统是控制和管理计算机的软、硬件资源,合理地组织计算机的工作流程,以便利用户使用的程序集合。

2.答:把多个自立的程序同时放入存,使她们分享系统中的资源。

1)多道,即计算机存中同时放多道互相自立的程序。

2)宏观上并行,是指共识进入系统的多道程序都处于运行过程。

3)微观上串行,是指在单道处理机环境下,存中的多道程序轮番地占有CPU,交替执行。

3.答:批处理操作系统是一种基本的操作系统类型。

在该系统中用户的作业被成批地输入到计算机中,然后在操作系统的控制下,用户的作业自动的执行。

特点是:资源利用率高。

系统吞吐量大。

平均周转时光长。

(完整版)操作系统课后答案(1)

(完整版)操作系统课后答案(1)

CH1 应用题参考答案1有一台计算机,具有1MB内存,操作系统占用200KB,每个用户进程各占200KB。

如果用户进程等待I/O的时间为80%,若增加1MB内存,则CPU的利用率提高多少?答:设每个进程等待I/O的百分比为P,则n个进程同时等待I/O的概率是P n ,当n个进程同时等待I/O期间CPU是空闲的,故CPU的利用率为1-P n 。

由题意可知,除去操作系统,内存还能容纳4个用户进程,由于每个用户进程等待I/O的时间为80%,故:CPU利用率=1-(80%)4 =0.59若再增加1MB内存,系统中可同时运行9个用户进程,此时:CPU利用率=1-(80%)9 =0.87故增加1MB内存使CPU的利用率提高了47%:87%÷59%=147%147%-100%=47%2一个计算机系统,有一台输入机和一台打印机,现有两道程序投入运行,且程序A 先开始做,程序B后开始运行。

程序A的运行轨迹为:计算50ms、打印100ms、再计算50ms、打印100ms,结束。

程序B的运行轨迹为:计算50ms、输入80ms、再计算100ms,结束。

试说明(1)两道程序运行时,CPU有无空闲等待?若有,在哪段时间内等待?为什么会等待?(2)程序A、B有无等待CPU的情况?若有,指出发生等待的时刻。

答:画出两道程序并发执行图如下:(1)(见图中有色部分)。

(2)程序A无等待现象,但程序B有等待。

程序B有等待时间段为180ms至200ms间(见图中有色部分)。

3设有三道程序,按A、B、C优先次序运行,其内部计算和I/O操作时间由图给出。

A B CC11=30ms C21=60ms C31=20ms∣∣∣I12=40ms I22=30ms I32=40ms∣∣∣C13=10ms C23=10ms C33=20ms 试画出按多道运行的时间关系图(忽略调度执行时间)。

完成三道程序共花多少时间?比单道运行节省了多少时间?若处理器调度程序每次进行程序转换化时1ms,试画出各程序状态转换的时间关系图。

计算机操作系统课后习题答案解析张尧学

计算机操作系统课后习题答案解析张尧学

第一章绪论1.什么是操作系统的基本功能?答:操作系统的职能是管理和控制汁算机系统中的所有硬、软件资源,合理地组织计算机工作流程,并为用户提供一个良好的工作环境和友好的接口。

操作系统的基本功能包括:处理机管理、存储管理、设备管理、信息管理(文件系统管理)和用户接口等。

2.什么是批处理、分时和实时系统?各有什么特征?答:批处理系统(batchprocessingsystem):操作员把用户提交的作业分类,把一批作业编成一个作业执行序列,由专门编制的监督程序(monitor)自动依次处理。

其主要特征是:用户脱机使用计算机、成批处理、多道程序运行。

分时系统(timesharingoperationsystem):把处理机的运行时间分成很短的时间片,按时间片轮转的方式,把处理机分配给各进程使用。

其主要特征是:交互性、多用户同时性、独立性。

实时系统(realtimesystem):在被控对象允许时间范围内作出响应。

其主要特征是:对实时信息分析处理速度要比进入系统快、要求安全可靠、资源利用率低。

3.多道程序(multiprogramming)和多重处理(multiprocessing)有何区别?答;多道程序(multiprogramming)是作业之间自动调度执行、共享系统资源,并不是真正地同时值行多个作业;而多重处理(multiprocessing)系统配置多个CPU,能真正同时执行多道程序。

要有效使用多重处理,必须采用多道程序设计技术,而多道程序设计原则上不一定要求多重处理系统的支持。

6.设计计算机操作系统时与那些硬件器件有关运算器、控制器、存储器、输入设备、输出设备第二章作业管理和用户接口2.作业由哪几部分组成?各有什么功能?答:作业由三部分组成:程序、数据和作业说明书。

程序和数据完成用户所要求的业务处理工作,作业说明书则体现用户的控制意图。

3.作业的输入方式有哪几种?各有何特点答:作业的输入方式有5种:联机输入方式、脱机输入方式、直接耦合方式、SPOOLING(Simultaneous Peripheral OperationsOnline)系统和网络输入方式,各有如下特点:(1)联机输入方式:用户和系统通过交互式会话来输入作业。

(完整版)操作系统课后答案(1)

(完整版)操作系统课后答案(1)

CH1 应用题参考答案1有一台计算机,具有1MB内存,操作系统占用200KB,每个用户进程各占200KB。

如果用户进程等待I/O的时间为80%,若增加1MB内存,则CPU的利用率提高多少?答:设每个进程等待I/O的百分比为P,则n个进程同时等待I/O的概率是P n ,当n个进程同时等待I/O期间CPU是空闲的,故CPU的利用率为1-P n 。

由题意可知,除去操作系统,内存还能容纳4个用户进程,由于每个用户进程等待I/O的时间为80%,故:CPU利用率=1-(80%)4 =0.59若再增加1MB内存,系统中可同时运行9个用户进程,此时:CPU利用率=1-(80%)9 =0.87故增加1MB内存使CPU的利用率提高了47%:87%÷59%=147%147%-100%=47%2一个计算机系统,有一台输入机和一台打印机,现有两道程序投入运行,且程序A 先开始做,程序B后开始运行。

程序A的运行轨迹为:计算50ms、打印100ms、再计算50ms、打印100ms,结束。

程序B的运行轨迹为:计算50ms、输入80ms、再计算100ms,结束。

试说明(1)两道程序运行时,CPU有无空闲等待?若有,在哪段时间内等待?为什么会等待?(2)程序A、B有无等待CPU的情况?若有,指出发生等待的时刻。

答:画出两道程序并发执行图如下:(1)(见图中有色部分)。

(2)程序A无等待现象,但程序B有等待。

程序B有等待时间段为180ms至200ms间(见图中有色部分)。

3设有三道程序,按A、B、C优先次序运行,其内部计算和I/O操作时间由图给出。

A B CC11=30ms C21=60ms C31=20ms∣∣∣I12=40ms I22=30ms I32=40ms∣∣∣C13=10ms C23=10ms C33=20ms 试画出按多道运行的时间关系图(忽略调度执行时间)。

完成三道程序共花多少时间?比单道运行节省了多少时间?若处理器调度程序每次进行程序转换化时1ms,试画出各程序状态转换的时间关系图。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1. 什么是操作系统?它的主要功能是什么?答:操作系统是用来管理计算机系统的软、硬件资源,合理地组织计算机的工作流程,以方便用户使用的程序集合;其主要功能有进程管理、存储器管理、设备管理和文件管理功能。

2. 什么是分时系统?什么是实时系统?试从交互性、及时性、独立性、多路性和可靠性几个方面比较分时系统和实时系统。

答:分时系统:一个计算机和许多终端设备连接,每个用户可以通过终端向计算机发出指令,请求完成某项工作,在这样的系统中,用户感觉不到其他用户的存在,好像独占计算机一样。

实时系统:对外部输入的信息,实时系统能够在规定的时间内处理完毕并作出反应。

比较:(1)交互性:实时系统具有交互性,但人与系统的交互,仅限于访问系统中某些特定的专用服务程序。

它不像分时系统那样向终端用户提供数据处理、资源共享等服务。

实时系统的交互性要求系统具有连续人机对话的能力,也就是说,在交互的过程中要对用户得输入有一定的记忆和进一步的推断的能力。

(2)及时性:实时系统对及时性的要求与分时系统类似,都以人们能够接受的等待时间来确定。

而分时系统则对及时性要求更高。

(3)独立性:实时系统与分时系统一样具有独立性。

每个终端用户提出请求时,是彼此独立的工作、互不干扰。

(4)多路性:实时系统与分时一样具有多路性。

操作系统按分时原则为多个终端用户提供服务,而对于实时系统,其多路性主要表现在经常对多路的现场信息进行采集以及对多个对象或多个执行机构进行控制。

(5)可靠性:分时系统虽然也要求可靠性,但相比之下,实时系统则要求系统高度可靠。

9.设内存中有三道程序,A ,B ,C ,他们按A →B →C 的先后次序执行,它们进行“计算”和“I/O 操作”的时间如表1-2所示,假设三道程序使用相同的I/O 设备。

表1-2 三道程序的操作时间(1) 试画出单道运行时三道程序的时间关系图,并计算完成三道程序要花多少时间。

I/O 操作计算90605014020160170190200AABBBCCC总时间=20+30+10+30+50+20+10+20+10=200(2) 试画出多道运行时三道程序的时间关系图,并计算完成三道程序要花多长时间。

I/O 操作程序A 605014020AA100BB BCC CA I/O 操作I/O 操作1208090程序B 程序C70130总时间=130 第二章5. 假设系统就绪队列中有10个进程,这10个进程轮换执行,每隔300ms 轮换一次,CPU 在进程切换时所花费的时间是10ms ,试问系统化在进程切换上的开销占系统整个时间的比例是多少?答:因为每隔300ms 换一次进程,且每个进程切换时所花费的时间是10ms ,则系统化在进程切换上的开销占系统整个时间的比例是10/(300+10)=% 6. 试述线程的特点及其与进程之间的关系。

答:(1)特点:线程之间的通信要比进程之间的通信方便的多;同一进程内的线程切换也因为线程的轻装而方便的多。

同时线程也是被独立调度的分配的;(2)线程与进程的关系:线程和进程是两个密切相关的概念,一个进程至少拥有一个线程,进程根据需要可以创建若干个线程。

线程自己基本上不拥有资源,只拥有少量必不可少的资源(线程控制块和堆栈) 7. 根据图2-18,回答以下问题。

(1) 进程发生状态变迁1、3、4、6、7的原因。

答:1表示操作系统把处于创建状态的进程移入就绪队列;3表示进程请求I/O 或等待某事件;4表示进程用行的时间片用完;6表示I/O 完成或事件完成;7表示进程完成。

(2) 系统中常常由于某一进程的状态变迁引起另一进程也产生状态变迁,这种变迁称为因果变迁。

下述变迁是否为因果变迁:3~2,4~5,7~2,3~6,是说明原因。

答:3→2是因果变迁,当一个进程从运行态变为阻塞态时,此时CPU 空闲,系统首先到高优先级队列中选择一个进程。

4→5是因果变迁,当一个进程运行完毕时,此时CPU 空闲,系统首先到高优先级队列中选择进程,但如果高优先级队列为空,则从低优先队列中选择一个进程。

7→2 是因果变迁,当一个进程运行完毕时,CPU 空闲,系统首先到高优先级队列中选择一个进程。

3→6不是因果变迁。

一个进程阻塞时由于自身的原因而发生的,和另一个进程等待的时间到达没有因果关系。

(3) 根据此进程状态转换图,说明该系统CPU 调度的策略和效果。

答:当进程调度时,首先从高优先级就绪队列选择一个进程,赋予它的时间片为100ms。

如果高优先级就绪队列为空,则从低优先级就绪队列选择进程,并且赋予该进程的时间片为500ms。

这种策略一方面照顾了短进程,一个进程如果在100ms运行完毕它将退出系统,更主要的是照顾了I/O量大的进程,进程因I/O进入阻塞队列,当I/O完成后它就进入了高优先级就绪队列,在高优先级就绪队列等待的进程总是优于低优先级就绪队列的进程。

而对于计算量较大的进程,它的计算如果在100ms的时间内不能完成,它将进入低优先级就绪队列,在这个队列的进程被选中的机会要少,只有当高优先级就绪队列为空,才从低优先级就绪队列选择进程,但对于计算量大的进程,系统给予的适当照顾时间片增大为500ms。

8.回答以下问题。

(1)若系统中没有运行进程,是否一定没有就绪进程?为什么?答:是,因为当CPU空闲时,系统就会在就绪队列里调度进程,只有当就绪队列为空时,系统中才没有运行程序。

(2)若系统中既没有运行进程,也没有就绪进程,系统中是否就没有阻塞进程?解释。

答:不一定,当运行的程序都因为请求I/O或等待事件时而进入阻塞,系统中就没有就绪进程。

(3)如果系统采用优先级调度策略,运行的进程是否一定是系统中优先级最高的进程?为什么?答:不一定,若优先级高的进程进入阻塞状态时,而且优先级高的就绪队列里没有等待的进程,这时就会调度优先级低的就绪队列的进程。

9.假如有以下程序段,回答下面的问题。

S1: a=3-x;S2: b=2*a;S3: c=5+a;(1)并发程序执行的Bernstein 条件是什么?答:若P1与P2R并发执行,当且仅当R(P1)∩W(P2)∪R(P2)∩W(P1)∪W(P1)∩W(P2)={}时才满足。

(2)试画图表示它们执行时的先后次序。

(3)利用Bernstein 条件证明,S1、S2和S3哪两个可以并发执行,哪两个不能。

答:R(s1)={x},W(s1)={a};R(s2)={a},W(s2)={b};R(s3)={a},W(s3)={c};(1).R(s1)∩W(s2)∪R(s2)∩W(s1)∪W(s1)∩W(s2)={a},则s1与s2不能并发执行;(2). R(s1)∩W(s3)∪R(s3)∩W(s1)∪W(s1)∩W(s3)={a},则s1与s3不能并发执行;(3). R(s2)∩W(s3)∪R(s3)∩W(s2)∪W(s2)∩W(s3)={},则s2与s3可以并发执行。

第三章1.设有一个售票大厅,可容纳200人购票。

如果厅内不足200人则允许进入,超过则在厅外等候;售票员某时只能给一个购票者服务,购票者买完票后就离开。

试问:(1)购票者之间是同步关系还是互斥关系?答:互斥关系。

(2)用P、V操作描述购票者的工作过程。

semaphore empty=200;semaphore mutex=1;semaphore waiting=0;void buy(){ p(waiting);p(mutex);买票;v(mutex);v(empty);}void waiting(){p(empty);等待;waiting++;}2.有4个进程P1、P2、P3、P4共享一个缓冲区,进程P1向缓冲区存入消息,进程P2、P3、P4从缓冲区中取消息,要求发送者必须等三个进程都取过本消息后才能发送下调消息。

缓冲区内每次只能容纳一个消息,用P、V操作描述四个进程存取消息的情况。

答:semaphore p1=0;semaphore p2,p3,p4=1;semaphore cout=0;semaphore mutex=1;void main(){P(p2);P(p3);P(4);V(cout);}write p1(){P(p1);P(metux);P(cout);存入消息;V(p1);V(metux);}Read p2(){ P(mutex);P(p1);读消息;V(p1);V(p2);V(metux);}Read p3(){ P(mutex);P(p1);读消息;V(p1);V(p3);V(metux);}Read p4(){ P(mutex);P(p1);读消息;V(p1);V(p4); V(metux);}3.分析生产者——消费者问题中多个P操作颠倒引起的后果。

答:semaphore mutex=1;semaphore empty=n;semaphore full=0;int i,j;ITEM buffer[n];ITEM data_p,data_c;void producer()/*生产者进程*/ void consumer() /*消费者进程*/{while(true) {while(true){ { P(mutex) ;P(mutex); P(full);P(empty); data_c=buffer[j];buffer[i]=data_p; j=(j+1)%n;i=(i+1)%n; V(mutex);V(mutex); V(empty);V(full);} }} }若把生产者进程的P操作颠倒,消费者进程的P操作颠倒(如图),则生产者进程执行到V(mutex)时,消费者就可以执行P(mutex)但由于full=0,消费者进程不可执行P(full);当生产者进程执行完V(full)后,full=1,但由于mutex=0,消费者进程无法执行,造成死锁。

第四章1.系统中有5个资源被4个进程所共享,如果每个进程最多需要2个这种资源,试问系统是否会产生锁死?答:不会产生死锁;因为因为资源数可以满足进程的需要,当其中的一个进程争取到剩下的一个资源可以执行,当执行完成以后会释放资源,供其他进程使用,所以不会产生死锁。

2.计算机系统有8台磁带机,由N个进程竞争使用,每个进程最多需要3台。

问:N 为多少时,系统没有死锁的危险?答:当n为1、2、3时,没有死锁的危险;因为当n小于3时,每个进程分配2台磁带机,还有磁带机剩余,那么当其中的一个进程得到剩余的磁带机则可运行,运行结束后会释放磁带机,供其他进程使用,系统不会有死锁的危险;当n为4时,每台分配2台时没有剩余,则会产生死锁,当大于5时同样会死锁。

3.系统有5个进程,它们的到达时间和服务时间如表4-8所示。

新进程(没有运行过)与老进程(运行过的进程)的条件相同时,假定系统选新进程运行。

相关文档
最新文档