同步互斥
一、背景
eg:
新进程分配标识符中可能错误:
原子操作(Atomic Operation)
二、同步问题
家庭买面包问题,
出现的问题:
互斥:一个进程占用资源,其它进程不能使用。
死锁:多个进程各占用部分资源,形成循环等待。
饥饿:其它进程可能轮流占用资源,一个进程一直得不到资源。
三、临界区(Critical Section)
1.临界区的访问规则:
空闲则入:没有进程在临界区是,任何进程可进入
忙则等待:有进程在临界区时,其它进程均不能进入临界区
有限等待:等待进入临界区的进程不能无限等待
让权等待(可选):不能进入临界区的进程,应释放CPU(如转换到阻塞状态也叫等待状态)
2.临界区的实现方法
禁用硬件中断:
软件同步方法:
更高级的抽象方法:
锁:
总结: