天天看點

linux中的排程

我其實一直都很喜歡排程程式,曾經上大學的時候我就是這樣,其實我并沒有上過什麼上學,就在鄭州上過兩年的大專,而且還幾乎上了不到一半的課程,其餘都是和老婆在一起,不過她好像并沒有被我所耽誤,照樣考上了吉林大學的研究所學生,很無聊但是很有意義,我在鄭州的時候她在新鄉,我每周去找她,在火車上就思考火車排程的過程,那個時候我還對linux一無所知,後來看了linux的核心代碼才知道排程真的很有趣。

總的來說linux中有三處用到大的排程程式的地方,一個就是程序排程,一個就是網絡資料包的排程,還有就是磁盤IO的排程,每一個都是很有趣的,程序排程強調使用cpu的公平,資料包的排程強調使用網卡發送資料的公平,磁盤排程強調磁盤磁頭尋道的公平,但是公平和效率永遠是一對沖突,這是一個值得研究的話題。對于設計,我們知道,在當今的機器上都是以cpu為中心的,磁盤排程或者網卡排程都隻是cpu的一個任務而已,是以cpu排程的程序顯然顯得更加重要些,但是這僅僅是對于作業系統本身來說的,如果是對于特殊的應用就要反過來了,比如網絡應用巴不得在它運作的時候程序排程失效呢,哈哈。

 本文轉自 dog250 51CTO部落格,原文連結:http://blog.51cto.com/dog250/1274020

繼續閱讀