同步互斥

一、背景

eg:

同步互斥

新进程分配标识符中可能错误:

同步互斥

原子操作(Atomic Operation)

同步互斥

 

二、同步问题

家庭买面包问题,

同步互斥

同步互斥

出现的问题:

互斥:一个进程占用资源,其它进程不能使用。

死锁:多个进程各占用部分资源,形成循环等待。

饥饿:其它进程可能轮流占用资源,一个进程一直得不到资源。

 

三、临界区(Critical Section)

同步互斥

1.临界区的访问规则:

空闲则入:没有进程在临界区是,任何进程可进入

忙则等待:有进程在临界区时,其它进程均不能进入临界区

有限等待:等待进入临界区的进程不能无限等待

让权等待(可选):不能进入临界区的进程,应释放CPU(如转换到阻塞状态也叫等待状态)

 

2.临界区的实现方法

禁用硬件中断:

同步互斥

同步互斥

软件同步方法:

同步互斥

同步互斥

同步互斥

更高级的抽象方法:

同步互斥

锁:

同步互斥

总结:

同步互斥