读者与写者问题 (写者优先方式)
读者优先的关键:
若读者先占有互斥信号量,只有最后一个读者离开,计数降为0时才释放信号量,导致写者弱势。
写者优先同上述方法:
写者先占有某信号后,直到最后一个写者走完才释放该信号,读者才能进入。
增加一个互斥信号量S,读者和写者都争抢该信号;
对写者也进行计数,第1个写者申请S,其他写者不需要申请S;最后一个写者离开时才释放信号量S.
一旦写者先申请到了S,则所有的读者只能等待写者都走完才可进入共享读。而多个写者通过S后,仍要争抢wmutex信号以完成互斥的写入。

用到的变量
读者间起作用:
Readcount变量,rmutex信号量
写者间起作用:
writecount变量,mutex信号量
读者与写者间起作用:
wmutex
S
黑白棋子问题
问题描述
两个人下棋,一方执黑棋,一方执白棋。要求双方轮流下子。给出两种情况的解决办法:
1)执黑子一方先下2)双方都可以先下,谁先抢到棋盘谁先下。然后开始轮流下子。



本文详细探讨了操作系统中的同步问题,包括读者与写者问题(写者优先的方式),通过互斥信号量S、Readcount、writecount、mutex和wmutex来实现;接着分析了黑白棋子问题,提出在不同情况下的解决方案;最后讲解了嗜睡的理发师问题,描述了理发师与顾客的行为模型和解决策略。
最低0.47元/天 解锁文章
2072

被折叠的 条评论
为什么被折叠?



