期中考试参考答案2.docxVIP

  • 34
  • 0
  • 约1.12千字
  • 约 4页
  • 2016-11-26 发布于重庆
  • 举报
期中考试参考答案2

一、CDAB ADAB二、进程同步1.假设有3个并发进程P,Q,R,其中P负责从输入设备上读入信息,并传送给Q,Q将信息加工后传送给R,R负责打印输出。进程P,Q共享一个有m个缓冲区组成的缓冲池;进程Q,R共享一个有n个缓冲区组成的缓冲池(假设缓冲池足够大,进程间每次传输信息的单位均小于等于缓冲区长度),请写出满足上述条件的并发程序。(12分)var mutex1,mutex2,Sip,Siq,Soq,Sor:semaphore:=1,1,m,0,n,0;begin parbegin Process P begin repeat 读入信息 wait(Sip); wait(mutex1); 数据放入缓冲区 signal(mutex1); signal(Siq); until false end; Process Q begin repeat wait(Siq); wait(mutex1); 从缓冲区中取出数据 signal(mutex1); signal(Sip); 数据处理〉 wait(Soq); wait(mutex2); 处理后的数据放入缓冲区 signal(mutex2); signal(Sor); until false end; Process R repeat wait(Sor); wait(mutex2); 把数据送入打印机完成打印; signal(mutex2); signal(Soq); until false end parendend2.设置一个信号量s=2,表示盘子有两个空位置。供爸爸和妈妈进程共享。设置s1=0表示苹果的数量,s2=0表示桃子的数量。设置mutex=1用来实现所有进程对盘子互斥访问。 Father:Begin Repeat Wait(s); Wait(mutex); 放苹果 Signal(mutex); Signal(s1) Until false EndMother:Begin Repeat Wait(s); Wait(mutex); 放桃子 Signal(mutex); Signal(s2) Until false EndSon:Begin Repeat Wait(s1); Wait(mutex); 取苹果 Signal(mutex); Signal(s) Until false endDaughter:Begin Repeat Wait(s2); Wait(mutex); 取桃子 Signal(mutex); Signal(s) Until false end四、应用题1、 2、(1)安全。(2)不能(3)能(4)不能 过程略

文档评论(0)

1亿VIP精品文档

相关文档