更新时间: 试题数量: 购买人数: 提供作者:

有效期: 个月

章节介绍: 共有个章节

收藏
搜索
题库预览
【参考答案】将不等式拆成2个不等式:普通票-学生票≤400,学生票-普通票≤0。由这2个不等式表明:展馆内普通票可能比学生票多,但不能超过400张;学生票不能比普通票多,具体分析如下。 (1)如果只让持普通票的参观者进入展览馆,而不让持学生票的参观者进入展览馆的话,则持普通票的参观者最多只能进入400人,便被阻塞。所以,设信号量P,初值为400。 (2)持学生票的参观者不能比持普通票的参观者多,所以如果没有持普通票的参观者进入展览馆的话,持学生票的参观者不能进入。所以,设信号量S,初值为0。 (3)每进入1个持普通票的参观者,则持学生票的参观者进入的机会就会多1次。同理,每进入1个持学生票的参观者,则持普通票的参观者进入的机会也就多1次。 根据分析,可描述进程为。 semaphor semaphor semaphor semaphor cobegin putongpiao( ){ //持普通票进程 while(TUR P(total); //展览馆参观者进入人数减少1次 P(p); //持普通票的参观者进入1人 P(mutex); 进入展览馆; V(mutex); V(s); //持学生票的参观者进入的机会增加1次参观展览馆 参观展览馆; P(mutex); 退出展览馆; V(mutex); V(p); //展览馆参观者进入人数增加1次 P(s); //持学生票的参观者进入的机会减少1次 } } xueshengpiao( ){ //持学生票进程 while(TRU P(total); //展览馆参观者进入人数减少1次 P(s); //持学生票的参观者进入1人 P(mutex); 进入展览馆; V(mutex); V(p); //持学生票的参观者退出1人 V(total); //展览馆参观者进入人数增加1次 P(p); //持普通票的参观者进入的机会减少1次 } } coend