操作系统——进程同步

3.4.1 概念

1.临界资源:一次只允许一个进程使用
2.互斥:当一个进程在使用这个资源时,另一个进程不能使用
3.同步机制应遵循的原则
空闲让进:其他进程均不处于临界区
忙则等待:已有进程处于临界区
有限等待:等待进入临界区的进程不能死等
让权等待:不能进入临界区的进程,应释放CPU(如切换到阻塞状态)
-------------- 可以通过有无空循环判断
4.进程同步:直接制约,相互协作,保证先后顺序,前驱后继关系

3.4.2 解决互斥问题

1.使用软件算法
(3)面包店算法
取得小号优先,如果不同进程取号一样,保证编号小的进程先进入临界区
2.锁机制
3.信号量机制
(1)整型信号量机制
初始化操作:非负整数
P操作:wait() -1
V操作:signal() +1
(2)记录型信号量机制

使用信号量机制解决同步互斥时,对互斥信号量初值通常为“1”,对同步信号量初值通常为“0”(前驱进程尚未完成)。
为临界资源设置一个互斥信号量semaphore mutex=1:
wait(mutex);临界区; signal(mutex);

应先执行对资源信号量的wait操作,再执行对互斥信号量的wait操作。否则可能引起进程死锁

例题
操作系统——进程同步
操作系统——进程同步

3.4.3 经典进程同步问题

1.生产者-消费者问题
2.哲学家进餐问题
3.读者-写者问题
4.理发师问题