互斥-临界区前后分别PV操作;同步-前V后P
一、生产者费者问题
1.过程:
生产者生产产品——>缓冲区(供两者共享使用)——>消费者取出产品使用;但缓冲区有容量要求,会导致等待与唤醒。缓冲区是临界资源,各进程必须互斥访问,避免数据覆盖问题。
2.注意
实现互斥的P操作-P(mutex)一定要在实现同步的P操作-P(empty)之后,否则会发生死锁。
二、多生产者-多消费者问题
1.问题描述
2.实现
3.注意
实现互斥的P操作-P(mutex)一定要在实现同步的P操作-P(empty)之后,否则会发生死锁。
三、吸烟者问题
1.问题描述
一个供应者与多个消费者的问题
2.实现
四、读者写者问题
1.问题描述
两组并发进程共享一个文件,可允许多个读者对文件进行读-不互斥,但有仅只允许一个写者对文件进行写-互斥。
2.实现
通过设置一个互斥信号量实现进程互斥访问
五、哲学家进餐问题
1.问题描述
每个哲学家进程需同时持有多个临界资源问题。
2.实现方法
3.具体实现