操作系统原理答案(张丽芬)
操作系统原理练习题参考答案1

操作系统原理练习题参考答案1《操作系统原理》练习题参考答案三、单选题四、简答题1. 进程与程序的区别和联系:(1) 进程是动态的,⽽程序是静态的;(2) 进程具有并⾏特征,⽽程序没有;(3) 进程有资源,⽽程序没有;(4) 不同的进程可以包含同⼀程序。
2. 进程的三种基本状态:就绪、运⾏和等待。
进程状态间的4种转换如下:(1) 进程被调度,从就绪态转换为运⾏态。
(2) 时间⽚⽤完,从运⾏态转换为就绪态。
(3) 等待某事件,从运⾏态转换为等待态。
(4) 等待事件发⽣,从等待态转换为就绪态。
3. 提⾼了处理器的利⽤率,充分利⽤了外部设备资源,发挥了处理器与外部设备以及外部设备之间并⾏⼯作的能⼒。
4. 作业的4种状态如下:(1) 输⼊状态:预输⼊程序启动了输⼊机正在把该作业的信息传输到“输⼊井”;(2) 收容状态:作业的信息已经存放在“输⼊井”中,但尚未被选中执⾏;(3) 执⾏状态:作业已被选中并装⼊主存开始执⾏;(4) 完成状态:作业已执⾏结束,其执⾏结果在“输出井”中等待打印输出。
5. P操作位置互换,可能会产⽣死锁;V操作互换,不会影响运⾏结果。
6. 若系统中存在⼀组进程(两个或两个以上进程),其中每⼀个进程都占⽤了某种资源⽽⼜都在等待其中的另⼀个进程所占⽤的资源,这种等待永远不能结束,则说系统发⽣了死锁。
引起死锁的原因主要有两个,⼀是与资源的分配策略有关,⼆是与并发进程的执⾏速度有关。
7. 进程调度与作业调度的不同:(1) 作业调度是宏观调度,它决定了哪⼀个作业能进⼊主存。
进程调度是微观调度,它决定各作业中的哪⼀个进程占有中央处理机。
或作业调度是⾼级调度,它位于操作系统的作业管理层次。
进程调度是低级调度,它位于操作系统分层结构的最内层。
(2) 作业调度是选符合条件的收容态作业装⼊内存。
进程调度是从就绪态进程中选⼀个占⽤处理机。
8. ⽂件的保护是指防⽌系统故障或⽤户共享⽂件时造成⽂件被破坏,⽂件的保密是防⽌不经⽂件拥有者授权⽽窃取⽂件。
操作系统原理试题题库含答案1

操作系统原理(1)1、现有三个同时到达的作业J1,J2和J3,它们的执行时间分别是T1,T2和T3,且T1A、 T1+T2+T3B、 (3T1+2T2+T3)/3C、 (T1+2T2+3T3)/3D、 (T1+T2+T3)/3正确答案: B2、我们如果为每一个作业只建立一个进程,为照顾紧急作业的用户,应采用( )。
A、 FCFS调度算法B、基于优先权的剥夺调度算法C、时间片轮转法D、多级反馈队列调度算法正确答案: B3、用于控制生产流水线,进行工业处理控制的操作系统是( ).A、分时系统B、网络操作系统C、实时系统D、批处理系统正确答案: C4、进程A在运行中被高优先级进程B抢占,进程A的状态变化是( )。
A、就绪→运行B、阻塞→运行C、运行→就绪D、运行→阻塞正确答案: C5、用V操作唤醒一个等待进程时,被唤醒进程的状态变为( )。
A、等待B、就绪C、运行D、完成正确答案: B6、哪个属于抢占式调度___A、时间片轮转法;B、短作业优先调度;C、先来先服务;D、高响应比优先调度;正确答案: A7、进程的基本属性是( )。
A、进程是动态的、多个进程可以含有相同的程序和多个进程可以并发运行B、进程是动态的、多个进程对应的程序必须是不同的和多个进程可以并发运行C、进程是动态的、多个进程可以含有相同的程序和多个进程不能并发运行D、进程是静态的、多个进程可以含有相同的程序和多个进程可以并发运行正确答案: A8、某文件中共有3个记录。
每个记录占用一个磁盘块,在一次读文件的操作中,为了读出最后一个记录,不得不读出了其他的2个记录。
根据这个情况,可知这个文件所采用的存储结构是____。
A、隐式链接结构B、顺序文件结构C、显式链接结构D、索引结构正确答案: A9、进程从阻塞状态变为就绪状态的原因是___________。
A、进程运行条件满足B、修改了进程的优先级C、进程运行条件不够D、时间片到正确答案: A10、下面六个系统中,必须是实时操作系统的有____个。
操作系统原理课后习题答案

操作系统原理课后习题答案操作系统原理作业第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 什么是处理机的态?为什么要区分处理机的态?答:处理机的态,就是处理机当前处于何种状态,正在执行哪类程序。
操作系统原理A卷标准答案

(答案要注明各个要点的评分标准)一、单项选择题(20分)1-5 DCCBA 6-10ADCBC 11-15 DBBCA 16-20 BCDBB 评分标准:每题1分 二、填空题(10分)1、进程;2、并发,异步 ;3、4,04、PCB ,FCB ;5、256M ;6、I/O 或输入输出数或据传输;7、虚拟评分标准:每空1分 三、简答分析题 (20分)1、进程创建之后,分配必要资源,成为就绪状态,进入就绪队列;获得CPU 调度,转换为执行状态,因为时间片到重新转换为就绪状态;因为某个事件阻塞,进入阻塞队列;事件出现,重新进入就绪队列。
进程可能会多次进入就绪队列和阻塞队列,多次获得CPU ,最终执行完成,进程终止。
2、(1)互斥条件:资源本身属性,无法破坏;(2)请求和保持:进程必须一次性申请全部资源,降低资源利用率。
(3)不剥夺条件:可以剥夺进程占有的资源,会影响进程执行。
(4)环路等待条件:资源有序分配,和进程使用资源的顺序不一致,降低资源利用率。
3、SPOOLing 系统通过使用磁盘上高速和输出井空间,通过内存中的进程模拟脱机输入输出的外围机功能,打印进程打印数据时各自获得磁盘的输出井空间,由输出进程控制每个进程的输出数据送往磁盘上各自的输出井,然后输出井中的数据依次在打印机上输出,用户感觉是进程自己独占打印机,从而实现独占的打印机成为虚拟的共享打印机。
4、先查找根目录,找到文件名为dir1的文件,读取该文件内容,在dir1文件中查找文件名为sub 的文件,读取sub 文件内容,在sub 文件中查找文件名为myfile.c 的文件,实现对文件myfile.c 的存取。
四、应用题(50分)1(6分)2、(6分)在T0时刻,存在安全序列:P5、P4、P3、P2、P1。
T0时刻是安全的。
3、(10分=4+6)用户逻辑空间为16K ,每页2K ,共8个页面,逻辑地址:092A (H)=0000 1001 0010 1010(B) ,每页2K ,页内地址为低地址11位 ,对应页号为1 ,查找页表得物理块号为4,物理地址为0010 0001 0010 10109(B)=212A (H )(4分)逻辑地址:1B2F(H)=0001 1011 0010 1111(B),每页2K,页内地址为低地址11位,对应页号为3 ,查找页表缺页中断,根据置换策略和置换算法选择4页换出,将3页装入到8块,物理地址为0100 0011 0010 1111(B)=432F(H)(6分)4、(8分=4+4)答:(1)先来先服务算法;25 → 50 → 90 → 30 → 60 → 5 → 55 → 20 →100(25)(40)(60)(30)(55)(50)(30)(80)共移动370柱面 2毫秒×370=740毫秒(4分)(2)最短寻找时间优先算法:25 → 20 → 30 → 50 → 55 →60 →90 →100→5(5)(10)(20)(5)(5)(30)(10)(95)共移动180柱面2毫秒×180=360毫秒(4分)5、(8分=4+4)(1)FAT:该硬盘盘块数为20M/512=40K,盘块号最大为40K-1,故FAT至少需要16位,每项大小为16/8=2B,FAT大小为40K*2B=80KB(2)第4条逻辑记录对应的逻辑块号为4×250B/500=2,因为该文件为连续文件,物理块号为12+2=146、(12分)①定义信号量S1=1,S2=0,S3=0②P(S1);③V(S2);④V(S3);⑤P(S2);⑥V(S1)⑦P(S3);⑧V(S1)。
《操作系统原理》习题及参考答案

1
总的执行时间为 180ms.如果单道执行这三个程序共需 80+100+80=260ms.所以节约 260- 180ms.
(2) 若处理机调度程序每次进行程序状态转换的时间为 1ms,这三道程序的执行时间如下 图所示:
总共花费 180+6=186ms. 4.系统调用(陷入)处理过程。
解:系统调用(陷入)处理过程和中断处理过程是一样的,只是中断源是执行了访管指令 (MS DOS 的 INT 或 UNIX 的 trap)。
《操作系统原理》
习题及参考答案
1.操作系统的定义。操作系统的五大基本功能。网络操作系统相对单机操作系统还应具备 什么功能?
解:操作系统是计算机系统的一种系统软件,由它统一管理计算机系统中的软硬件资源, 合理地组织工作流程,以便有效地为用户提供一个功能强大、使用方便的工作环境,从而 在计算机与用户之间起到接口的作用。操作系统的五大基本功能是:处理机管理、存储器 管理、设备管理、文件系统管理和用户接口。网络操作系统还应具备的功能:网络通信、 资源共享、网络服务、网络用户接口。
3.设在内存中有三道程序:A、B、C,并按照 A、B、C 的优先次序运行,其内部计算和
I/O 操作时间由下图给出。
程序 A
程序 B
程序 C
计算 30ms
计算 60ms
计算 20ms
I/O 40ms
I/O 30ms
I/O 40ms
计算 10ms
计算 10ms
计算 20ms
要求: (1)试画出按多道程序运行的时间关系图(调度程序的执行时间忽略不计)。完成这三道 程序共花多少时间?比单道运行节省多少时间? (2)若处理机调度程序每次进行程序状态转换的时间为 1ms,试画出在处理机调度程序管 理下各程序状态转换的时间关系图。完成这三道程序共花多少时间? 解: (1)在调度程序执行时间忽略不计的情况下,这三道程序的执行时间如下图所示:
专升本《操作系统原理》试卷答案

专升本《操作系统原理》一、(共75题,共150分)1. 操作系统的资源管理功能,通常可划分为()。
(2分)A.二个部分B.三个部分C.四个部分D.五个部分.标准答案:C2. 操作系统的一个主要特征是()。
(2分)A.针对性B.高效率C.复杂性D.共享.标准答案:D3. 批处理优于分时处理的一个优点是()。
(2分)A.CPU的利用率较高B.内存的利用率较高C.一次能执行多个程序D.能进行并发处理.标准答案:A4. 程序状态字PSW的一部分内容,在小型机中是放在()中。
(2分)A.缓冲寄存器B.指令计数器PCC.控制器D.地址寄存器.标准答案:B5. 根据中断完成的功能,从内存取数据出错时引起的中断称为()。
(2分)A.系统中断B.机器故障中断C.外部中断D.程序性中断.标准答案:B6. ()是由系统功能调用来实现。
(2分)A.文件复制B.读文件的信息C.执行下一条指令D.读内存单元的数据.标准答案:B7. 操作系统的命令接口又可进一部分为()。
(2分)A.联机用户接口和程序接口B.联机用户接口和脱机用户接口C.程序接口和图形接口D.联机用户接口和图形接口.标准答案:B8. 下面()所列的内容属于临界资源。
(2分)A.读写磁盘的磁头B.扫描仪C.CPUD.程序的私用数据.标准答案:B9. 进程的基本状态有三种,其中一个是()。
(2分)A.开始态B.就绪态C.唤醒态D.结束态.标准答案:B10. 对进程进行控制的原语包括()原语。
(2分)A.执行B.唤醒C.就绪D.淘汰.标准答案:B11. 动态分配是指在()时进行资源的分配。
(2分)A.作业提出申请B.作业开始执行C.进程开始执行D.进程运行中提出申请.标准答案:D12. 在资源/进程有向图中,由资源指向进程的有向边表示()。
(2分)A.进程等待资源B.进程申请资源C.资源被该进程占有D.该资源空闲.标准答案:C13. 批处理系统中,作业的状态可分为多种,其中一种为()。
操作系统原理试卷(含答案)

《操作系统原理》课程试卷答案班级 _______________ 学号 _____________ 姓名 ______________一、选择题(本大题共40分,每小题2分)1、在现代操作系统中引入了( D ),从而使并发和共享成为可能。
A.单道程序B. 磁盘C. 对象D.多道程序2、( )操作系统允许在一台主机上同时连接多台终端,多个用户可以通过各自的终端同时交互地使用计算机。
A.网络B.分布式C.分时D.实时3、从用户的观点看,操作系统是( A )。
A. 用户与计算机硬件之间的接口B.控制和管理计算机资源的软件C. 合理组织计算机工作流程的软件D.计算机资源的的管理者4、当CPU处于管态时,它可以执行的指令是(A )。
A. 计算机系统中的全部指令B. 仅限于非特权指令C. 仅限于访管指令D. 仅限于特权指令5、用户在程序中试图读取某文件的第100个逻辑块时,使用操作系统提供的( A )接口。
A. 系统调用B.图形用户接口C.原语D.键盘命令6、下列几种关于进程的叙述,( A )最不符合操作系统对进程的理解?A.进程是在多程序并行环境中的完整的程序。
B.进程可以由程序、数据和进程控制块描述。
C.线程是一种特殊的进程。
D.进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。
7、当一个进程处于( B )状态时,称其为等待(或阻塞)状态。
A. 它正等待中央处理机B. 它正等待合作进程的一个消息C. 它正等待分给它一个时间片D. 它正等待进入内存8、一个进程释放一种资源将有可能导致一个或几个进程( D )。
A.由就绪变运行B.由运行变就绪C.由阻塞变运行D.由阻塞变就绪9、下面关于线程的叙述中,正确的是( C )。
A.不论是系统支持线程还是用户级线程,其切换都需要内核的支持。
B.线程是资源的分配单位,进程是调度和分配的单位。
C.不管系统中是否有线程,进程都是拥有资源的独立单位。
操作系统原理课后习题答案

操作系统原理课后习题答案操作系统原理课后习题答案操作系统原理作业第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 什么是处理机的态?为什么要区分处理机的态?答:处理机的态,就是处理机当前处于何种状态,正在执行哪类程序。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第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+(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=+(3)5<x<=6 T=+(4)6<x<=9 T=+(5)9<x T=+2-12.计算采用FCFS、SJN、RHN的平均周转时间和平均带权周转时间:各作业的周转时间Ti和平均周转时间T:T1= T2= T4=各个作业的平均带权周转时间W计算如下:W=(2/2+++=(1+++6)/4=2) SJN 作业运行顺序:1,3,4,2T1= T2==3T3= T4=各个作业的平均带权周转时间W计算如下:W=(2/2+3/+1/+/4=3) HRN 作业运行顺序:1,3,2,4先选择作业1 从。
当作业1完成时,究竟选谁运行,只有通过计算,选择响应比高者运行:作业2的响应比=( +/=作业3的响应比=(+ /=作业4还未到,只能选作业3运行。
作业3运行到结束,再计算剩余的作业2和4:作业2的响应比=(()+)/=作业4的响应比=( /=2 选作业2运行。
作业2到完成。
最后运行作业4。
运行到,全部结束。
各个作业的周转时间计算如下:t1=2 t2== t3= t4==各个作业的平均周转时间计算如下:T==(2++1+/4=各个作业的平均带权周转时间计算如下:W=(2/2++1/+/4=2-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+8×(4-2)/2=18分钟(16分)D完成后,剩下三个作业,轮转一周需6分钟,作业B的周转时间:Tb=18+6×(6-2-2)/2=24分钟(22分)B完成后,剩下两个作业,轮转一周需4分钟,作业E的周转时间:Te=24+4=28分钟(28分)E完成后,只剩下作业A,作业A的周转时间:Ta=28+2=30分钟(30分)平均周转时间:T=(10+18+24+28+30)/5=22分(分)(2)优先级调度法作业完成顺序为:B,E,A,C,DTb=6分,Te=6+8=14分,Ta=14+10=24分,Tc=24+2=26分,Td=26+4=30分。
平均周转时间:T=(6+14+24+26+30)/5=20分第3章习题答案3-7. 系统中有n+1个进程。
其中A1、A2、…、An分别通过缓冲区向进程B发送消息。
相互之间的制约关系为:发送进程A1、A2、…、An要互斥地向BUF中送消息,当接收进程B还未将消息接收完之前,任何一个发送不能再送。
同样,B不能重复接收同一个消息。
为此,应设置两个信号量s1和s2。
设系统只有容纳一个消息的缓冲区,用信号量s1表示,其初值为1,它用来制约发送进程。
信号量s2用来制约接收进程,其初值为0。
现可用PV操作描述如下:进程A1、…、An执行的过程为:进程B执行的过程为:begin begin准备消息P(S2)P(s1) 从缓冲区BUF取消息将消息送入BUF V(s1)V(s2)消耗消息end end若缓冲区容量为m个,这个问题就变为生产者和消费者问题。
3-8. 首先这里的IN和OUT分别表示读写指针,而不是信号量。
在系统初启时,环行缓冲区为空,此时IN和OUT都初始化为0。
当并发进程通过环行缓冲区通信时,写进程不断地写,读进程不断地读,使得读写指针不断变化。
写进程的速度太快,缓冲区会满;读进程的速度太快,缓冲区会空。
已知循环缓冲区的容量为100。
则当(IN+1)%100 = OUT时,说明缓冲区已满。
当IN = OUT时,说明缓冲区已空。
初始化时,IN=OUT=0。
一段时间以后:OUT IN3-9.为描述阅览室,用一个登记表来记录使用情况。
表中共有100项。
每当有读者进入阅览室时,为了正确地登记,各读者应互斥使用。
为此设两个信号量。
mutex:互斥信号量,用来制约各读者互斥地进行登记,其初值为1;empty同步信号量,用来制约各读者能同时进入阅览室的数量,初值为100。
下面用两个过程描述对表格应执行的动作:登记过程:擦除过程:begin beginp(empty) p(mutex)p(mutex) 找到自己的登记项擦除找到一个登记项登记v(mutex)v(mutex) v(empty)end end为了正确地描述读者的动作,我们可以将读者看成进程。
若干读者希望进入阅览室时,调用登记过程,退出阅览室时,调用擦除过程。
可见一个程序可对应多个读者。
可设的进程数由读者数决定。
其动作如下:begin调用登记过程进入阅览室阅读准备退出调用擦除过程end3-12.有4个同类资源,3个进程,每个进程的最大申请为2,系统不会发生死锁。
最不利原则:3个进程都各自获得了一个资源,都还需申请第二个资源。
此时,因系统还有一个剩余资源,所以能满足任一个进程的剩余需求。
3-13.有6个磁带机和n个进程。
每个进程的最大申请为2,问n取什么值时,系统不会死锁答:为了使系统不发生死锁,应该满足:n=6-1=53-14.证明:假定会死锁,则根据死锁定义,N个进程之间相互等待,至少需要N个单位资源,又系统M个资源已分完,故所有进程需求总和大于或等于M+N,这与题中的所有进程需求总和小于M+N矛盾,故假设不成立。
因此,在这种情况下不会死锁。
3-15.M1:……V(s12); V(s13); V(s14);M2:P(s12);……V(s26);……M3:P(s13);……V(s36);V(s38);M4:P(s14);……V(s47);……附加:m个同类资源,n个进程,每个进程的对资源的最大需求量:当m>n时,每个进程最多可以请求⎡⎤nm个该类资源当m=n时,每个进程最多可以请求1个该类资源当m<n时,每个进程最多可以请求1个该类资源(当m>n时,每个进程最多可以请求(m+n-1)/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:semaphore;S12:=0;S13:=0;S14:=0;S26:=0;S36:=0;S47:=0;S57:=0;S38:=0;S78:=0;COBEGINPROCESS M1: PROCESS M2:BEGIN BEGINV(S12); P(S12);V(S13); V(S26);V(S14); ENDENDPROCESS M3: PROCESS M4:BEGIN BEGINP(S13); P(S14);V(S36); V(S47);V(S38); ENDENDPROCESS M5: PROCESS M6:BEGIN BEGINV(S57); P(S26);END P(S36);ENDPROCESS M7: PROCESS M8BEGIN BEGINP(S47); P(S38);P(S57); P(S78);V(S78); ENDENDCOEND3-16. 叉子是临界资源,在一段时间内只允许一个哲学家使用。
一个信号量表示一把叉子,五个信号量构成信号量数组,这些信号量的初值为1。
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;reader:beginp(z); read data;p(rmutex);--readcount;if(readcount=0 then v(rwmutex);end if;v(rmutex);…endwriter:beginp(z);任何一个进程读(写)文件前,执行完读(写)操作后,调用cobeginprocess readerbegin ……call ;……read;……call ;……end;process writer begin……call ;……write;……call ;……end;coend.上述程序能保证在各种并发执行的情况下,读写进程都能正确工作,请读3-19.(2)和(4)会发生死锁。
(1)P1占有5个资源,剩余3个资源请求。
P2占有2个资源,剩余4个资源请求。
P3占有0个资源,剩余7个资源请求。
系统剩余3个资源。
(2)P1的请求最先满足。
进程完成序列:P1,P2,P3。
3-21.(1)最大需求矩阵:分配矩阵:剩余请求矩阵:Max =Allocation =剩余资源向量:Available=(1 5 0 2)(2)当前系统是安全的。
判断系统是否安全,只要检查系统剩余资源向量能否对各进程的剩余请求向量找到一个进程完成序列,当按照这个序列为各进程分配资源时,各进程都能成功完成。
若能找到,则系统是安全的,否则,为不安全。
先找到p0, 因为p0已满足最大资源请求,它可以完成,释放其占有的资源,使系统剩余资源向量为(1 5 1 4)之后,系统剩余资源向量(1 5 1 4),可满足进程p2, 使p2 可以完成,释放其占有的资源,使系统剩余资源向量为(2 8 6 8)。
之后无论选哪一个进程都可成功完成。
故找到的进程完成序列可为:p0,p2,p4,p3,p1; 或p0,p2,p3,p1,p4 等,故系统是安全的。
(3)因系统剩余可用向量为(1502),p2的剩余请求向量为(1002),即(1502)>(1002)。
故,当p2提出(1001)请求时,能满足。