操作系统P105

13、假设有三个并发进程P,Q,R,其中P负责从输入设备上读入信息并传送给Q,Q将信息加工后传送给R,R则负责将信息打印输出。写出下列条件的并发程序: (1)进程P、Q共享一个缓冲区,进程Q、R共

13、假设有三个并发进程P,Q,R,其中P负责从输入设备上读入信息并传送给Q,Q将信 息加工后传送给R,R则负责将信息打印输出。写出下列条件的并发程序: (1)进程P、Q共享一个缓冲区,进程Q、R共享另一个缓冲区。 答:(1) empty1=1;empty2=1;full1=0;full2=0; parbegin P:While(1) {P(empty1); puttobuffer1; V(full1); } Q:While(1) {P(full1); getfrombuffer1; V(empty1); P(empty2); puttobuffer2; V(full2); } R:While(1) {P(full2); getfrombuffer2; V(empty2); } parend; 14、8个协作的任务:(A、B、C、D、E、F、G、H)分别完成各自的工作。它们满足下列条件: 任务A必须领先于任务B、C和E,任务E和D必须领先于任务F,任务B和C必须领先于任 务D,而任务F必须领先G和H。试写出并发程序,使得在任何可能的情况下它们均能真确工 作。 答:P1:Sa; V(ac); V(ae); Sb; P(cd); Sd; P(fe); Sf; V(fh); Sg; P2:P(ac); Sc; V(cd); P3:P(ae);

腾讯文库操作系统P105