1

例如,當我閱讀有關不同調度算法(如First-Come-First-ServeShortest Job First,Priority Scheduling,Round Robin)的調度時,所有這些調度都是平均等待時間。CPU調度算法爲什麼是等待時間的重要標準?

考慮運行時間爲21,3,6,2(msecs)的進程。 First-Come-First-Serve的平均等待時間爲(0 + 21 + 24 + 30)/ 4 = 18.75毫秒,並且Shortest Job First爲(0 + 2 + 5 + 11)/ 4 = 4.5毫秒。

這是否意味着Shortest Job First更好?我知道第一個等待時間較長,但這不是忙於等待,CPU忙於執行任務。首先像21毫秒的任務,首先完成,然後是旁邊的另一個等等。就像不應該需要相同的時間完成任務,無論順序?有任何想法嗎?

回答

2

不,那意味着最短的工作第一更好,SJF減少公平的average waiting time。所有這些只是測量。

單處理器系統,是的,它會花費相同的時間。

這一切都歸結爲系統的目的是什麼,將要運行的工作類型是什麼。

EDIT
2.6作爲一個例子來實際系統中,真正的任務的調度算法爲SCHED_OTHER這給了優先於具有較高的平均sleepig時間進程。 (即大部分時間都在等待一些I/O的工作)。我們希望儘量減少響應時間。
並且系統通過給每個進程分片時間來共享CPU,不像RR給出相同的片時間。