进程同步
生产者与消费者
读者写者问题
问题分析
读者写者问题最核心的问题是如何处理多个读者可以同时对文件的读操作。PV 过程其实就是对共享文件加锁解锁的过程,所以可以让第一个访问文件的的读进程加锁,最后一个访问文件的进程解锁。
读/写进程优先的问题
哲学家进餐问题
吸烟者问题
同步关系的处理
- 分析进程行为,在可能阻塞的地方 P 一下,再分析可以在哪里将其唤醒(V 一下),最后再确定信号量的初值和含义。即,先确定 PV 操作的位置,再确定应该对应什么信号量。
- PV 操作的顺序:
先判断空满,再判断是否有互斥访问。
- 信号量初值
- 同步信号量初值 = 资源数;
- 互斥信号量初值 = 1;