临界区

临界区(critical sections)
 进程中访问共享变量的代码段
 不同进程关于同一变量的临界段代码可能是完全不同的
 临界资源—共享变量(一次只允许一个使用)
临界区插图
使用临界区的互斥
T1 A程序使用共享变量
T2 B程序等待共享变量-进入阻塞
T3 A释放共享变量 B进入运行状态
T4使用共享变量

临界区的互斥要求

进程对共享变量的读写操作必须互斥的进行;
对进程互斥地使用临界区有以下原则:
 在共享同一个临界资源的所有进程中,每次只允许有一个进程处于它的临界区;
 若有多个进程同时要求进入它们的临界区时,应在有限的时间内让其中之一进入临  界区,而不应相互阻塞;
 进程只应在临界区内逗留有限时间;
 不应使要进入临界区的进程无限期地等待在临界区之外;
 在临界区之外运行的进程不可以阻止其他的进程进入临界区;
 不要预期和假定进程进展的相对速度以及可用的处理器数目,因为这是不可预期的。