操作系统原理教程(第2版)[张丽芬][习题解答]
实用操作系统教程【第2版】课后习题参考答案

习题 1 操作系统概述一、选择题题号 1 2 3 4 5 6 7 8 9 10 答案 B D C D C D A C D D题号11 12 13 14 15 16 17 18 19 20 答案 B C C C B D B B B A二、综合题1、答:并发性和并行性是既相似又有区别的两个概念。
并行性是指两个或多个事件在同一时刻发生;而并发性是指两个或多个事件在同一时间间隔内发生。
、在单处理器系统中只有一条指令流水线,一个多功能的操作部件,某时刻处理机只能执行一个进程,进程与进程之间不能并行执行,只能并发执行。
但在各种I/O控制技术的帮助下,处理机、通道和设备之间都能进行并发。
(1)处理机和设备之间的并行,能够发生。
(2)处理机和通道之间的并行,能够发生。
(3)通道和通道之间的并行,能够发生。
(4)设备和设备之间的并行,能够发生。
2、答:以多道程序技术为基础的现代操作系统具有4个基本特征:(1)并发性:多个程序并发执行,宏观并行,微观串行。
(2)共享性:多个程序共享系统中的所有资源(3)虚拟性:操作系统为每个进程都虚拟出了一整套其所需的软硬件资源,让进程所属的用户感觉到自己独占整个系统。
操作系统通过进程状态转换实现虚拟性。
当进程被切换出去运行态时,它的运行环境被操作系统保存,当把再次被调度程序选中切换到运行态时恢复其运行环境继续上次运行状态继续运行。
(4)异步性:并发执行的各个进程之间运行时间、运行顺序具有不确定性,即异步性,程序执行已经失去的封闭性和可再现性。
操作系统通过同步机制保证多个进程能够正确的执行。
3、答:多道程序设计技术是指同时把多个程序放入内存并允许交替执行和共享系统中的各类资源,当一个程序因某种原因(如I/O请求)而暂停执行时,CPU立即转去执行另一个程序。
操作系统在引入多道程序设计技术后,使得系统内有了多个程序(进程),它们宏观上看同时执行,微观上看仍然是串行。
多道程序设计技术的优点:多道程序交替穿插执行,提高了CPU、内存和I/O设备的利用率;在保持CPU、I/O设备不断工作的同时,导致系统吞吐量的上升。
《操作系统原理教程(第二版)》-第6章__作业管理与系统接口.ppt.Convertor

第6章作业管理与系统接口6.1 作业管理概述6.2 批处理作业管理6.3 交互式作业管理6.4 系统接口本章结束!6.1 作业管理概述6.1.1 基本概念1.作业作业是用户在一次解题或一个事务处理过程中要求计算机系统所做工作的集合。
它包括用户程序、所需要的数据以及控制命令等。
作业是由一系列有序的作业步组成的。
2.作业步把计算机系统在完成一个作业的过程中所做的一项相对独立的工作称为一个作业步。
例如,我们每次使用计算机时都需要开机、进入相应的软件操作、关机等几个步骤,其中每一个步骤都可以看成一个作业步。
第6章作业管理与系统接口6.1 作业管理概述6.1.2 作业状态一个作业进入系统到运行结束,一般需要经历收容、运行、完成三个阶段,与之对应的作业状态是后备、运行和完成三种状态。
其状态转换如图6-1所示。
1.后备状态当一个作业通过输入设备送入计算机,并存入磁盘后,系统就为作业建立一个作业控制块,把它插入到后备作业队列中等待被调度运行,这种状态称为后备状态。
从作业输入开始到放入后备作业队列的过程称为收容阶段,也称为作业注册。
第6章作业管理与系统接口6.1 作业管理概述6.1.2 作业状态2.运行状态当一个作业被调度程序选中,为其分配必要的资源,建立一组相应进程的状态称为运行状态。
处于运行状态的作业在系统中可以从事各种活动。
当被处理器调度程序选中后,就占用处理器运行,也可以等待某种事件的发生,还可能等待进程调度程序为其分配处理器。
运行状态的作业实际上就是进程,它有三种基本状态:就绪、执行、阻塞。
这就是第2章介绍的内容。
第6章作业管理与系统接口6.1 作业管理概述6.1.2 作业状态3.完成状态当作业正常运行结束或因发生错误而终止执行的状态称为完成状态。
此时,由系统将作业控制块从当前队列中删除,收回其占用的资源,将作业运行结果编入输出文件并调用有关设备进行输出。
在有SPOOLing系统的计算机系统中,作业将被插入到完成队列中,将运行结果送入输出井,再由SPOOLing系统完成输出。
操作系统原理与实践教程(第二版)习题答案

第1章操作系统概论(1) 试说明什么是操作系统,它具有什么特征?其最基本特征是什么?解:操作系统就是一组管理与控制计算机软硬件资源并对各项任务进行合理化调度,且附加了各种便于用户操作的工具的软件层次。
现代操作系统都具有并发、共享、虚拟和异步特性,其中并发性是操作系统的最基本特征,也是最重要的特征,其它三个特性均基于并发性而存在。
(2) 设计现代操作系统的主要目标是什么?解:现代操作系统的设计目标是有效性、方便性、开放性、可扩展性等特性。
其中有效性指的是OS应能有效地提高系统资源利用率和系统吞吐量。
方便性指的是配置了OS后的计算机应该更容易使用。
这两个性质是操作系统最重要的设计目标。
开放性指的是OS应遵循世界标准规范,如开放系统互连OSI国际标准。
可扩展性指的是OS应提供良好的系统结构,使得新设备、新功能和新模块能方便地加载到当前系统中,同时也要提供修改老模块的可能,这种对系统软硬件组成以及功能的扩充保证称为可扩展性。
(3) 操作系统的作用体现在哪些方面?解:现代操作系统的主要任务就是维护一个优良的运行环境,以便多道程序能够有序地、高效地获得执行,而在运行的同时,还要尽可能地提高资源利用率和系统响应速度,并保证用户操作的方便性。
因此操作系统的基本功能应包括处理器管理、存储器管理、设备管理和文件管理。
此外,为了给用户提供一个统一、方便、有效的使用系统能力的手段,现代操作系统还需要提供一个友好的人机接口。
在互联网不断发展的今天,操作系统中通常还具备基本的网络服务功能和信息安全防护等方面的支持。
(4) 试说明实时操作系统和分时操作系统在交互性、及时性和可靠性方面的异同。
解:交互性:分时系统能够使用户和系统进行人-机对话。
实时系统也具有交互性,但人与系统的交互仅限于访问系统中某些特定的专用服务程序。
及时性:分时系统的响应时间是以人能够接受的等待时间为标准,而实时控制系统对响应时间要求比较严格,它是以控制过程或信息处理中所能接受的延迟为标准。
《操作系统原理与实训教程》(第2版) CH2-2007

么转向L1;
否则W=1
返回
void lock(锁变量w) { test: if (w 为1) goto test else w=1; /*上锁*/
} /* lock(w) */
2.开锁原语:UNLOCK(W)
W=0;
返回
❖当进程使用完资 源后,它必须将锁 位置成“0”,称为
➢ 另外,在互斥问题中,每执行一次P(S)操作的含义,也可理
解为进程请求一个单位的S类资源;每执行一次 V(S)操作的含义,也可理解为进程释放一个单位的S类资源。
三、 用P、V操作原语实现进程的互斥
✓ 用P、V操作原语实现进程的互斥也一样简单,只需在相
关进程的临界区的前后分别施以P操作和V操作即可,即 在相关进程的程序里由P操作和V操作原语紧夹着临界区, 就能保证这些进程互斥地进入各自的临界区。
进程互斥是多道程序系统中进程间存在的一种源 于资源共享的制约关系,也称间接制约关系,主 要是由被共享资源的使用性质所决定的。
限定进程只能互斥地访问它的资源叫临界资源 (指一次仅允许一个进程使用的资源 )。
临界资源也是不可剥夺性资源。例:打印机、共 享变量或表格等。类似生活中的试衣室、电话间等。
进程的标识信息、处理机的状态信息、进程调度 信息、进程的控制信息等。。
PCB的组织方式:
一般线性表、链接表(多队列)、索引表。
PCB链接队列示意图:
执行进程指针
就绪进程队列头指针 阻塞进程队列头指针 空闲PCB队列头指针
….
PCB1
4
PCB2
3
PCB3
0
PCB4
8
PCB5
PCB6
7
PCB7
操作系统原理教程(第2版)[张丽芬][习题解答]
![操作系统原理教程(第2版)[张丽芬][习题解答]](https://img.taocdn.com/s3/m/ba4712f576c66137ef0619ab.png)
操作系统第2章2-9.(1)x<=3 运行顺序为 Px,P3,P5,P6,P9T=(x+(x+3)+(x+3+5)+(x+3+5+6)+(x+3+5+6+9))/5=x+9.6(2)3<x<=5 运行顺序为 P3,Px,P5,P6,P9T=(3+(3+x)+(3+x+5)+(3+x+5+6)+(3+x+5+6+9))/5=0.8x+10.2(3)5<x<=6 T=0.6x+11.2(4)6<x<=9 T=0.4x+12.4(5)9<x T=0.2x+14.22-12.计算采用FCFS、SJN、RHN的平均周转时间和平均带权周转时间:各作业的周转时间Ti和平均周转时间T:T1=10.0-8.00=2.0 T2=11.2-9.00=2.2T3=11.7-9.5=2.2 T4=12.0-10.2=1.8T=(T1+T2+T3+T4)/4=(2.0+2.2+2.2+1.8)/4=8.2/4=2.05各个作业的平均带权周转时间W计算如下:W=(2/2+2.2/1.2+2.2/0.5+1.8/0.3)=(1+1.83+4.4+6)/4=3.3072) SJN 作业运行顺序:1,3,4,2T1=10.0-8.00=2.0 T2=12-9.00=3T3=10.5-9.5=1.0 T4=10.8-10.2=0.6T=(T1+T2+T3+T4)/4=(2.0+3.0+1.0+0.6)/4=6.6/4=1.65各个作业的平均带权周转时间W计算如下:W=(2/2+3/1.2+1/0.5+0.6/0.3)/4=1.8753)HRN 作业运行顺序:1,3,2,4先选择作业1 从8.00-------10.00。
当作业1完成时,究竟选谁运行,只有通过计算,选择响应比高者运行:作业2的响应比=((10-9.0) +1.2)/1.2=1.83作业3的响应比=((10-9.5)+0.5) /0.5=2.0作业4还未到,只能选作业3运行。
操作系统教程第二版课后答案

操作系统教程第二版课后答案【篇一:《操作系统教程》(第四版)课后答案】目录第一章第二章第三章第四章第五章第六章第七章第八章操作系统概述处理器管理并发进程存储管理设备管理文件管理操作系统的安全与保护网络和分布式操作系统1 7 26 93 103 108113 115【篇二:操作系统教程(第四版)课后习题答案】1、有一台计算机,具有imb 内存,操作系统占用200kb ,每个用户进程各占200kb 。
如果用户进程等待i/o 的时间为80 % ,若增加1mb 内存,则cpu 的利用率提高多少?答:设每个进程等待i/o 的百分比为p ,则n 个进程同时等待刀o的概率是pn ,当n 个进程同时等待i/o 期间cpu 是空闲的,故cpu 的利用率为1-pn。
由题意可知,除去操作系统,内存还能容纳4 个用户进程,由于每个用户进程等待i/o的时间为80 % , 故:cpu利用率=l-(80%)4 = 0.59若再增加1mb 内存,系统中可同时运行9 个用户进程,此时:cpu 利用率=l-(1-80%)9 = 0.87故增加imb 内存使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)两道程序运行期间,cpu存在空闲等待,时间为100 至150ms 之间(见图中有色部分)(2)程序a 无等待现象,但程序b 有等待。
操作系统原理课后习题答案

操作系统原理课后习题答案操作系统原理课后习题答案操作系统原理作业第1章1-2 批处理系统和分时系统各有什么特点?为什么分时系统的响应比较快?答:在批处理系统中操作人员将作业成批装入计算机并计算机管理运行,在程序的运行期间用户不能干预,因此批处理系统的特点是:用户脱机使用计算机,作业成批处理,系统内多道程序并发执行以及交互能力差。
在分时系统中不同用户通过各自的终端以交互方式共同使用一台计算机,计算机以“分时”的方法轮流为每个用户服务。
分时系统的主要特点是:多个用户同时使用计算机的同时性,人机问答方式的交互性,每个用户独立使用计算机的独占性以及系统响应的及时性。
分时系统一般采用时间片轮转的方法使一台计算机同时为多个终端用户服务,因此分时系统的响应比较快。
1-4什么是多道程序设计技术?试述多道程序运行的特征。
答:多道程序设计技术是指同时把多个作业放入内存并允许它们交替执行和共享系统中的各类资源;当一道程序因某种原因而暂停执行时,CPU 立即转去执行另一道程序。
多道程序运行具有如下特征:多道计算机内存中同时存放几道相互独立的程序。
宏观上并行:同时进入系统的几道程序都处于运行过程中,它们先后开始了各自的运行但都未运行完毕。
微观上串行:从微观上看内存中的多道程序轮流或分时地占有处理机,交替执行。
1-6操作系统的主要特性是什么?为什么会有这样的特性?答:并发性,共享性,异步性,虚拟性,这些特性保证了计算机能准确的运行,得出想要的结果。
1-7 工作情况如图。
CPU有空闲等待,它发生在100 ms与程序B都在进行I/O操作。
程序A无等待现象,程序B在0 ms间段内有等待现象。
150 ms时间段内,此时间段内程序A50 ms时间段与180 ms200 ms时第2章2-1 什么是操作系统虚拟机?答:在裸机上配置了操作系统程序后就构成了操作系统虚拟机2-3 什么是处理机的态?为什么要区分处理机的态?答:处理机的态,就是处理机当前处于何种状态,正在执行哪类程序。
操作系统原理(第2版)课后习题部分答案(张丽芬)

现可用PV操作描述如下:进程A1、…、An执行的过程为:进程B执行的过程为:begin begin准备消息P(S2)P(s1) 从缓冲区BUF取消息将消息送入BUF V(s1)V(s2) 消耗消息end end3-9. 为描述阅览室,用一个登记表来记录使用情况。
表中共有100项。
每当有读者进入阅览室时,为了正确地登记,各读者应互斥使用。
为此设两个信号量。
mutex:互斥信号量,用来制约各读者互斥地进行登记,其初值为1;empty同步信号量,用来制约各读者能同时进入阅览室的数量,初值为100。
下面用两个过程描述对表格应执行的动作:登记过程:擦除过程:begin beginp(empty) p(mutex)p(mutex) 找到自己的登记项擦除找到一个登记项登记v(mutex)v(mutex) v(empty)end end为了正确地描述读者的动作,我们可以将读者看成进程。
若干读者希望进入阅览室时,调用登记过程,退出阅览室时,调用擦除过程。
可见一个程序可对应多个读者。
可设的进程数由读者数决定。
其动作如下:begin调用登记过程进入阅览室阅读准备退出调用擦除过程两个计数器rc和wc分别对读进程和写进程计数,用R和W分别表示允许读和允许写的条件变量,于是管理该文件的管程可如下设计:type read-writer = MONITORvar rc, wc : integer;R, W : condition;define start-read, end-read, start-writer, end-writer;use wait, signal, check, release; procedure start-read;begincheck(IM);if wc>0 then wait(R,IM);rc := rc + 1;signal(R, IM);release(IM);end;procedure end-read;begincheck(IM);rc := rc - 1;if rc=0 then signal(W,IM); release(IM);end;procedure start-write;begincheck(IM);wc := wc + 1;if rc>0 or wc>1 then wait(W,IM); release(IM);end;procedure end-write;begincheck(IM);wc := wc - 1;if wc>0 then signal(W,IM);else signal(R, IM);release(IM);end;beginrc := 0; wc := 0; R := 0; W := 0; end.。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
操作系统第2章2-9.x<=3 运行顺序为Px,P3, P5, P6, P9 T=(x+(x+3)+(x+3+5)+(x+3+5+6)+(x+3+5+6+9))/5=x+9.6 3<x<=5 运行顺序为P3,Px, P5, P6, P9T=(3+(3+x)+(3+x+5)+(3+x+5+6)+(3+x+5+6+9))/5=0.8x+10.2 5<x<=6 T=0.6x+11.26<x<=9 T=0.4x+12.49<x T=0.2x+14.22-12 .计算采用FCFS SJN RHN勺平均周转时间和平均带权周转时间:1) FCFS123 4各作业的周转时间Ti和平均周转时间T:T1=10.0-8.00=2.0 T2=11.2-9.00=2.2T3=11.7-9.5=2.2 T4=12.0-10.2=1.8T=(T1+T2+T3+T4)/4=(2.0+2.2+2.2+1.8)/4=8.2/4=2.05 各个作业的平均带权周转时间W计算如下:W=(2/2+2.2/1.2+2.2/0.5+1.8/0.3)=(1 + 1.83+4.4+6)/4=3.3072)SJN 作业运行顺序:1,3, 4,2T1=10.0-8.00=2.0 T2=12-9.00=3T3=10.5-9.5=1.0 T4=10.8-10.2=0.6T=(T1+T2+T3+T4)/4=(2.0+3.0+1.0+0.6)/4=6.6/4=1.65各个作业的平均带权周转时间W计算如下:W=(2/2+3/1.2+1/0.5+0.6/0.3)/4=1.8753)HRN 作业运行顺序:1,3,2,4先选择作业1从8.00 ----------- 10.00 。
当作业1完成时,究竟选谁运行,只有通过计算 , 选择响应比高者运行: 作业 2 的响应比 =((10-9.0) +1.2)/1.2=1.83 作业 3 的响应比 =((10-9.5)+0.5) /0.5=2.0 作业 4 还未到,只能选作业 3 运行。
作业 3 运行到 10.5 结束,再计算剩余的作业 2 和 4: 作业 2 的响应比 =((10.5-9.0 )+1.2 ) /1.2=2.25作业 4 的响应比 =((10.5-10.2)+0.3) /0.3=2 选作业 2 运行。
作业 2 到 11.7 完成。
最后运行作业 4。
运行到 12.0, 全部结束。
各个作业的周转时间计算如下:t1=2 t2=11.7-9=2.7 t3=10.5-9.5=1 t4=12-10.2=1.8 各个作业的平均周转时间计算如下: T==(2+2.7+1+1.8)/4=1.875 各个作业的平均带权周转时间计算如下: W=(2/2+2.7/1.2+1/0.5+1.8/0.3)/4=2.81252- 13 . 已知作业 A,B,C,D,E 需要的运行时间分别为 10,6,2,4,8 分钟, 优先级分别 为 3,5,2,1,4 。
( 1)轮转法(假定时间片 =2 分钟) 作业完成的顺序为 C,D,B,E,A 开始作业轮转一周需 10 分钟,作业C 的周转时间:Tc=10分钟 (6分)C 完成后,剩下四个作业,轮转一周需8分钟,作业D 的周转时间:Td=10+8X (4-2)/2=18 分钟(16分)D 完成后,剩下三个作业,轮转一周需6分钟,作业B 的周转时间:Tb=18+6X (6-2-2)/2=24 分钟(22分)B 完成后,剩下两个作业,轮转一周需4分钟,作业E 的周转时间:E 完成后,只剩下作业 作业A 的周转时间: 平均周转时间:T=(10+18+24+28+30)/5=22( 2)优先级调度法 作业完成顺序为: B ,E ,A ,C ,DTb=6 分,Te=6+8=14 分,Ta=14+10=24 分, Td=26+4=30分。
平均周转时间:T=(6+14+24+26+30)/5=20第 3 章 习题答案Te=24+4=28 分钟(28 分)A,Ta=28+2=30 分钟(30 分)分( 20.4分)Tc=24+2=26 分,3-7. 系统中有n+1个进程。
其中A1、A2、…、An分别通过缓冲区向进程B发送消息。
相互之间的制约关系为:发送进程A1、A2、…、An要互斥地向BUF中送消息,当接收进程B还未将消息接收完之前,任何一个发送不能再送。
同样,B不能重复接收同一个消息。
为此,应设置两个信号量S1和S2。
设系统只有容纳一个消息的缓冲区,用信号量S1表示,其初值为1,它用来制约发送进程。
信号量S2 用来制约接收进程,其初值为0。
现可用PV操作描述如下:进程A1、…、An执行的过程为:begin准备消息P(S1)将消息送入BUFV(s2)end若缓冲区容量为m个,这个问题就变为生产者和消费者问题。
3-8. 首先这里的IN和OUT分别表示读写指针,而不是信号量。
在系统初启时,环行缓冲区为空,此时IN和OUT都初始化为0。
当并发进程通过环行缓冲区通信时,写进程不断地写,读进程不断地读,使得读写指针不断变化。
写进程的速度太快,缓冲区会满;读进程的速度太快,缓冲区会空。
已知循环缓冲区的容量为100。
则当(IN+1)%100 = OUT时,说明缓冲区已满。
当IN = OUT时,说明缓冲区已空。
初始化时,IN=OUT=0> —段时间以后:B1 B2 *3 1BUF*©进程B执行的过程为:beginP (S2)从缓冲区BUF取消息V(s1)消耗消息endAnOUT IN3-9. 为描述阅览室,用一个登记表来记录使用情况。
表中共有 100 项。
每当有读 者进入阅览室时, 为了正确地登记, 各读者应互斥使用。
为此设两个信号量。
mutex: 互斥信号量,用来制约各读者互斥地进行登记,其初值为1 ; empty 同步信号量,用来制约各读者能同时进入阅览室的数量,初值为 100。
下面用两个过程描述对表格应执行的动作:登记过程:beginp(empty) p(mutex)找到一个登记项登记v(mutex) endend为了正确地描述读者的动作,我们可以 将读者看成进程 。
若干读者希望进入阅 览室时,调用登记过程,退出阅览室时,调用擦除过程。
可见一个程序可对应多个 读者。
可设的进程数由读者数决定。
其动作如下:begin调用登记过程 进入阅览室阅读准备退出 调用擦除过程 end3- 12. 有 4个同类资源, 3 个进程,每个进程的最大申请为 2,系统不会发生死锁。
最不利原则: 3 个进程都各自获得了一个资源,都还需申请第二个资源。
此时,因 系统还有一个剩余资源,所以能满足任一个进程的剩余需求。
3-13 .有6个磁带机和n 个进程。
每个进程的最大申请为2,问n 取什么值时,系统不会死锁? 答:为了使系统不发生死锁,应该满足:N 个进程之间相互等待,至少需要单位资源,又系统 M 个资源已分完,故所有进程需求总和大于或等于 M+N 这与题 中的所有进程需求总和小于 M+N 矛盾,故假设不成立。
因此,在这种情况下不会死擦除过程:begin p(mutex) 找到自己的登记项擦除v(mutex)v(empty)n=6-1=53-14.证明:假定会死锁,则根据死锁定义,锁。
3-15 .M1:M2: M3: M4:P (s12);P(S13);P(S14);V(s12);V(s13);V(s26); V(s36);V(s47);V(s14);V(s38);附加:m 个同类资源 【,n 个进程,每个进程 呈的对资源的最大需求量 :当m>n 时,每个卜进程最多可以请求 m/n 个该类资源3-15解答:这是进程之间的同步问题。
M2 M3和M4必须在接收到 M1的消息后才能运行。
同理,M6必须在M2和M3之后运行,M7必须在M4, M5之后运行,M8必须在 M3 M7之后运行。
如何保证呢?需设置相应的信号量来保证: S12, S13,S14,用来制约M2 M3和M4的运行;S26, S36,用来制约M6的运行;S47,S57,用来制约M7 的运行;S38,S78用来制约M8的运行。
各进程的制约关系描述如下。
S12,S13,S14,S26,S36,S47,S57,S38,S78:sema phore;S12:=0;S13:=0;S14:=0;S26:=0;S36:=0;S47:=0;S57:=0;S38:=0;S78:=0; COBEGIN P ROCESS M1: BEGIN V(S12); V(S13); V(S14); ENDP ROCESS M3: BEGINP ROCESS M4: BEGIN当m=n 时, 当m<n 时, (当m>n 时,每个进程最多可以请求 每个进程最多可以请求 每个进程最多可以请求1个该类资源 1个该类资源 (m+n-1)/n 个该类资源)P ROCESS M2: BEGINP (S12); V(S26); ENDP(S14); V(S47);ENDPROCESS M5: BEGINV(S57); ENDPROCESS M7: BEGINP(S47); P(S57); V(S78); ENDCOEND PROCESS M6: BEGINP(S26); P(S36);END PROCESS M8 BEGINP(S38); P(S78); END3-16. 叉子是临界资源, 把叉子,五个信号量构成信号量数组,这些信号量的初值为int fork[0]=fork[1]= …=fork[4]=1;第 i 个哲学家所执行的程序: do{P(mutex); P(fork[i]);P(fork[(i+1)mod5]); V(mutex);吃饭V(fork[i]);V(fork[(i+1)mod5]); } while(1) ;3-17.(1)公平竞争(无写者时,读者仍遵循多个读者可以同时读)rmutex 互斥共享 readcount; rwmutex 读写互斥,写写互斥; 读写进程在 z 上排队。
int rmutex=1,rwmutex=1,readcount=0;P(S13); V(S36); V(S38); END 在一段时间内只允许一个哲学家使用。
一个信号量表示1。
reader: beginp(z) ; //读写进程在z 上排队。
p(rmutex);if(readco un t=0) the n p( rwmutex); end if ++readco unt; v(rmutex); v(z) ; //无写者时,多个读者可以同时读read data;p(rmutex); --readco unt;if(readco un t=0 the n v(rwmutex); end if; v(rmutex);end writer: beginp(z) ; //读写进程在z 上排队。