第二章-进程管理研讨.ppt

本题中,顾客进程和理发师进程之间存在多种同步关系: 1.只有在理发椅空闲时,顾客才能做到理发椅上等待理发师理发,否则顾客必须等待,只有当理发椅上有顾客时,理发师才理发,否则他也必须等待。这种同步关系类似单缓冲的生存者-消费者问题,故可通过信号量empty和full来控制。 2.顾客理完发后必须向理发师付费,并等理发师收费后顾客才能离开,而理发师需要等待顾客付费,并在收费后通知顾客离开,这可以通过两个信号量payment和receipt来控制。 3.等待室中的N张沙发是顾客进程竞争的资源,故还需要为它设置一个资源信号量sofa 4.为了控制顾客人数,使顾客能在所有的沙发都被占用时离开,还必须设置一个整型变量count来对理发店中的顾客进行计数,该变量将被多个顾客进程互斥地访问并修改,这可通过一个互斥信号量mutex来实现。 Var count:integer:=0; mutex,sofa,empty,full:semaphore:=1,N,1,0 payment,receipt:semaphore:=0,0 改进的生产者问题 设有二个生产者进程A、B和一个销售进程C,他们共享一个无限大的仓库,生产者每次循环生产一个产品,然后入库供销售者销售;销售者每次循环从仓库中取出一个产品进行销售,如果不允许同时入库,也不允许边入库边出库,而且要求生产A产品和B产品的

文档评论(0)

1亿VIP精品文档

相关文档