噩梦来啦~
一】讲解
同步:多进程按一定顺序执行
互斥:多进程操作同一个临界资源
信号量>0,说明它空闲。所测试的线程可以锁定而使用它。
信号量=0,说明它被占用,测试的线程要进入睡眠队列中,等待被唤醒。
问题描述:若干进程通过有限的共享缓冲区交换数据。
其中,“生产者”进程不断写入,而“消费者”进程不
断读出;共享缓冲区共有 N 个;任何时刻只能有一个进
程可对共享缓冲区进行操作。
信号量机制
S当前可用的资源数目
S的初值
S=1 实现互斥 S=1有资源 S=0 没资源
S>1
二】题目 and 参考答案
-
读者写者问题的写者优先算法 : 1)共享读; 2)互斥写、读写互斥; 3)写者优先于读者
(一旦有写者,则后续读者必须等待,唤醒时优先考虑写者)。
-
寿司店问题。假设一个寿司店有 5 个座位,如果你到达的时候有一个空座位,你可以立刻就坐。但是如果你到达的时候 5 个座位都是满的有人已经就坐,这就意味着这些人都 是一起来吃饭的,那么你需要等待所有的人一起离开才能就坐。编写同步原语,实现