作業系統›Ch6 行程同步(Process Synchronization)
第 2 題/共 32 題
◀ OS 2/32
2. Synchronization、Mutual Exclusion、Bounded Waiting
#OS-06-002中SynchronizationMutual ExclusionBounded Waiting

關於同步(synchronization),PiP_i 與 PjP_j 是兩個共享 critical section 的 processes,假設:

  • "load" 與 "store" 機器語言指令是 atomic 的。
  • 這兩個 processes 共享一個變數 "turn" 來表示輪到誰。

給定下列兩種做法:

Approach 1(Process PiP_i):

while (true) {
    turn = i;
    while (turn == j)
        ;
    /* critical section */
    turn = j;
    /* remainder section */
}

(註:PjP_j 交換 i 與 j)

Approach 2(Process PiP_i):

while (true) {
    while (turn == j)
        ;
    /* critical section */
    turn = j;
    /* remainder section */
}

(註:PjP_j 交換 i 與 j)

請選出正確的敘述。

📄 台大115
跳轉到第題
▤完整推導請見《WH 資工筆記 · 作業系統》Ch6 行程同步(Process Synchronization)
本章題號 · 1–20 / 32