2015-04-06 60 views
0

我們看到不同操作系統支持的調度算法列表。調度算法在哪裏運行?

考慮有2個進程(P1和P2)運行並且調度算法是循環法。現在P1正在處理器中運行,P1已完成其時隙。現在調度算法必須執行上下文切換(從處理器中取出P1並將P2引入處理器)。

我猜想我所解釋的概念是正確的。

現在,我的問題是..

調度算法本身是一個過程!讓我們把調度算法命名爲Ps。

現在Ps的工作是從處理器中取出P1並將P2引入處理器。在這種情況下,Ps運行在哪裏? Ps是否也使用相同的處理器?還是有一個Ps可以運行的特殊處理器?

+1

這看起來像一個經典的大學任務問題。你讀過你的課本嗎? – 2015-04-06 11:43:14

+2

由於「_3。要求作業幫助的問題必須包括您所做的工作的摘要,因此我正在投票關閉[off-topic](http://stackoverflow.com/help/on-topic)這個問題。到目前爲止解決這個問題,並描述你正在解決它的難度。「 – xmojmr 2015-04-06 11:51:38

回答

0

調度算法不是一個過程,所以你的問題是基於一個錯誤的假設。調度算法可以在任何被中斷的過程中開始運行,通常在內核上下文中。然後決定在下一個運行哪個進程上下文並切換到該上下文。一直以來,它基本上忽略了它開始運行時發生的任何過程環境。

0

現代操作系統有兩種(或更多)操作模式,至少內核和用戶。每個進程都有自己的用戶模式地址空間。所有進程共享相同的地址空間。

內核模式地址空間只能在內核模式下訪問。

「操作系統」是每當進程在內核模式下執行時。因爲只有一個內核模式地址空間,所以在內核模式下執行操作系統的進程並不重要。

硬件計時器觸發操作系統在內核模式下響應的中斷。操作系統檢查當前進程(P1)是否耗盡時間。如果是這樣,它將上下文切換到p2。大部分開關通常是在一個指令中完成的。

在這種情況下,處理器在P1進入內核模式並返回到P2的用戶模式。