目录
- 一. 生产者-消费者问题
- 二. 多生产者-多消费者问题
- 三. 吸烟者问题
- 四. 读者-写者问题
- 五. 哲学家进餐问题
\quad
一. 生产者-消费者问题
\quad
问题分析
\quad
如何实现
\quad
\quad
V操作不会导致进程阻塞,因此两个v操作顺序可以交换。
\quad
二. 多生产者-多消费者问题
\quad
盘子中只能放一个水果
女儿只吃苹果, 儿子只吃橘子
\quad
\quad
\quad
\quad
\quad
\quad
原因在于: 本题中的缓冲区大小为1,在任何时刻,apple、 orange、 plate三个同步信号量中最多只有一个是1。因此在任何时刻,最多只有一个进程的P操作不会被阻塞,并
顺利地进入临界区…
\quad
\quad
三. 吸烟者问题
\quad
\quad
\quad
四. 读者-写者问题
\quad
\quad
\quad
潜在的问题: 这种算法中,读进程是优先的, 只要有读进程还在读,写进程就要一直阻塞等待,可能“饿死”
\quad
五. 哲学家进餐问题
\quad
\quad
\quad
\quad
\quad
\quad
\quad
\quad
\quad
\quad
不会发生死锁