Operating System: Chapter 5

Preemptive scheduling和nonpreemptive(cooperative)的差別?Preemptive scheduling可能造成race condition。Race condition指的是一個問題的處理結果依賴於另外一個還沒決定/不清楚的event。
Nonpreemptive指的應該是在process還沒terminate或變成waiting state之前不能換到其他的process。
而切換到waiting state可能是因為有I/O request或呼叫wait()方法。


Scheduling criteria:Criteria指的是標準,用來衡量scheduling的好壞。分成數種(見講義!)

Round Robin就是把CPU時間切成小塊(time quantum),如果process在時間內沒有完成,則timer interrupt會中斷並交給下一個process。
相較於context switch time之下q一定要很大才行,否則會有很高的overhead。

Ready Queue可以分成很多個,每個有不同的演算法、優先順序、判斷何者process進入的方法、還有讓process來回移動的方法。
Process可在不同的queue之間來回互換,這可以用來實現aging。

PCS和SCS的差別?

homogeneous: 同質的

multiprocessor: 當有多個處理器時,這些處理器可分成以下兩種情況:
Asymmetric multiprocessing:其中一個處理器會存取system data structure(?)來減輕data sharing的需求。我猜這個意思是讓process之間比較能夠知道彼此的資訊?
Symmetric multiprocessing:每個processor都是self-scheduling。所有process都在同一個ready queue中,或每個processor有獨立的private queue。
(獨立的queue似乎很沒有效率?)

Processor affinity:process和processor之間會有affinity的不同,我想這個意思是是否限制process只能在同個processor上面執行。
不同processor存取別的processor的memory較慢,存取自己的較快,這就區分出了位於哪個memory的process較適合由哪個processor執行。也因此,memory-placement algorithm也會產生affinity(我想這個algorithm是決定哪個process要放到哪個memory的演算法)

SMP(Symmetric multiprocessing)

dispatch latency: 從CPU將process換到另一個process所花的時間,又可分成conflict phase和dispatch phase。




留言