Download presentation
Presentation is loading. Please wait.
1
临界区问题的硬件指令解决方案 (Synchronization Hardware)
2
硬件同步机制 CPU制造者为临界区问题提供硬件支持 单处理器架构 – 利用“关中”途径 关中后,当前执行的代码段(临界区)不会被强占
“关中”法在多处理器架构中太低效,不解决问题
3
硬件同步机制(续) 提供硬件指令,体现原子操作(atomic)特征 Atomic = 不可中断 一种是“测试并赋值”
(test memory word and set value) 一种是“交换内存内容” (swap contents of two memory words)
4
TestAndSet指令 定义: boolean TestAndSet (boolean *target) {
boolean rv = *target; *target = TRUE; return rv: }
5
利用TestAndSet指令,设计解决方案
共享一个布尔变量lock,初始化为FALSE 算法: while (true) { while ( TestAndSet (&lock )) ; /* do nothing // critical section lock = FALSE; // remainder section }
6
Swap指令 定义: void Swap (boolean *a, boolean *b) { boolean temp = *a;
*b = temp: }
7
利用Swap指令,设计解决方案 共享一个布尔变量lock,初始化为FALSE 每个进程独有一个布尔变量key while (true) {
key = TRUE; while ( key == TRUE) Swap (&lock, &key ); // critical section lock = FALSE; // remainder section }
8
利用硬件指令的N进程临界区方案 无论运用TestAndSet指令,还是 Swap指令,似乎都不能满足Bounded Waiting条件
9
END
Similar presentations