- 生产者-消费者问题:生产资源-消费资源
- 理发师问题:服务-被服务
- 读者-写者问题:同类进程不互斥、异类进程互斥
- 哲学家进餐问题:只有一类进程,每个进程需要同时拥有多种资源才能运行
- 单纯的同步问题:前驱后继图
生产者-消费者问题
- 有几类进程? 
    - 每类进程对应一个函数
 
- 在每个函数内部,用中文描述进程动作 
    - 只做一次:不加whlie
- 不断重复:加while(1)
 
- 分析每一动作之前是否需要p什么? 
    - ⚠️隐含的互斥(eg 缓冲区的访问,需要加:P(mutex))
 
- 只要有P必定有V,每写一个P,就要安排V
- 所有PV写完之后,再去定义信号量(semaphore)
- 定义完之后思考每个信号量的初值是多少
- 检查多个P连续出现的地方是否可能产生死锁 
    - ⚠️可以尝试调整P顺序
- 若某个信号量PV操作总连续出现,中间没有夹其他P,则不可能因信号量产生死锁
 
- 读题检查,是否满足题目要求
哲学家进餐问题
 无脑让进程一口气取得所有的资源,再开始运行
 无脑让进程一口气取得所有的资源,再开始运行


读者-写者问题

 题目没有要求避免饥饿的话,用最简单的方法(读优先)可以得满分

 





![[Linux 杂货铺] —— 权限(文件权限和目录配置)](https://img-blog.csdnimg.cn/direct/74068a2d25f14ba6b9cf75c8bbcba5aa.gif)













