信号量习题

读者与写者(写者优先方式)

读者优先的关键:

若读者先占有互斥信号量,只有最后一个读者离开,计数降为0时才释放信号量,导致写者弱势。

写者优先同上述方法:

写者先占有某信号后,直到最后一个写者走完才释放该信号,读者才能进入。增加一个互斥信号量S,读者和写者都争抢该信号;
对写者也进行计数,第1个写者申请S,其他写者不需要申请S;最后一个写者离开时才释放信号量S.
一旦写者先申请到了S,则所有的读者只能等待写者都走完才可进入共享读。而多个写者通过S后,
仍要争抢wmutex信号以完成互斥的写入。

 

黑白棋问题

问题描述
两个人下棋,一方执黑棋,一方执白棋。要求双方轮流下子。给出两种情况的解决办法:
1)执黑子一方先下
2)双方都可以先下,谁先抢到棋盘谁先下。然后开始轮流下子。

问题分析:
无法用单纯的信号量操作完成,因为初始值无法设置固定值。
争抢棋盘需要一个互斥信号m;加入if控制与标志判断。利用互斥信号量与特殊标志变量的结合使用实现有序控制。

 

嗜睡的理发师问题

问题描述
一个理发店有N个沙发,1个理发椅;
理发师:
持续睡觉,理发,收钱的动作
顾客:
若有沙发,进入等待;否则离开。
理发椅空,一顾客放弃沙发,去唤醒它理发;
理发后付费,付费完毕离开理发椅,离店。

 

 


生产与销售问题

 

同步关系分析
互斥:三人在对仓库的使用上必须互斥(mutex=1)
顺序关系:
1)生产者AB之间:因为假设仓库无限大,不需考虑空的限制。
控制其能否生产的关键是再生产一个能否满足Sa-Sb在限定的[-n,m]范围内。
A、B关心的都是各自的生产指标数量,即A关心x=A-B这个变量的值,同样B关心y=B-A。
初值:初始若无产品,A最多可生产m个,B最多可生产n个。自己生产一个必然使对方可以多生产一个。
2)生产与消费之间
关心卖出的A、B间的差值

 

posted @ 2018-11-26 10:30  Endless·Dream  阅读(1044)  评论(0编辑  收藏  举报