(當一個system有很多process)
每個process都有critical section (關鍵區,臨界區) segment of code
修改 common variables, 更新表格, writing file
當一個process在critical section , 不會有其他的process 在它的 critical section
(目的: 確保"執行"的順序、結果正確)
design 協議去解決
每個process要進去critical section之前,
都要在entry section 詢問是否允許,
執行結果會到exit section
剩下的code會在 remainder section 執行
solve critical section problem
目的: 確保"執行"的順序、結果正確
Mutual Exclusion
只要有一個process的executing進入他的critical section, 其他的不能進入
目的: 資源的有效應用(不執行則不分配)
Progress
如果沒有process正在執行他的critical section, 而且有些processes希望進入他們的critical section
只有沒有在執行他們的remainder sections 的 processes可以被允許決定是否可以接著進入critical section
選擇,不可以被無限期延遲
目的:資源的公平分配(限制提出需求的等待次數)
Bounded Waiting
一個限界或是限制載次數,讓其他的process可以被允許進入critical section
(假設: 每個process的計算速度不為0,沒有顧慮n個process的relative speed)
