LINUX 核心程式管理

gaopengtttt發表於2010-09-13

最近學習了LINUX核心程式管理,這裡隨意的回憶一下:

        LINUX是一個多工多程式的作業系統,在LINUX中程式和執行緒其實是沒有太多區別的。只是多個執行緒可以同時訪問同一塊記憶體區域叫做共享記憶體。LINUX是一個支援搶佔式的作業系統,什麼是搶佔,其實就是高優先順序的程式搶佔低優先順序程式的資源,比如CPU時間片。

        那如何判定一個程式的優先順序級別哪?其實LINUX有自己的一套演算法。核心程式碼寫的很清楚,意思就是根據程式的平均休眠時間來確定LINUX程式的優先順序別,LINUX認為I/O型操作需要的睡眠時間長,需要相應及時,比如我透過鍵盤打字需要很快的讓字顯示到螢幕上,這就是一次I/O,而且需要及時,這樣的程式往往優先順序比較高。而CPU密集型的操作,優先順序低,因為這種操作往往經歷的時間叫長,所以我們可能時效性要求不高,所以它的資源經常被搶佔。

         那什麼是時間片哪?時間片就是透過優先順序而分配程式的一個CPU處理時間,通常高優先順序的時間片長,低優先順序的時間片短。當時間片用完過後,LINUX會重新計算然後分配新的時間片,這個過程在LINUX核心程式碼中也有。

      如果檢視程式的優先順序?使用TOP就可以看到 NICE 一列就是 -20-19 越低優先順序越高。

      為何LINUX要涉及為搶佔式的?其實就是為了防止每個程式平等的獲得資源,加快重要程式的相應時間。

     這裡只是回憶一下。。其實還有很多概念比如程式佇列。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7728585/viewspace-673706/,如需轉載,請註明出處,否則將追究法律責任。

相關文章