微軟系統的進程管理,無法就是打開任務管理器,查看進程、結束進程、或者創建進程。但是在Linux系統中進程管理是一件比較復雜的工作了。本文就來詳細介紹一下Linux系統進程管理。
普通調度算法
FCFS
First Come First Service。FIFO方式的調度策略,先來後到的服務方式。
這種方式的優勢是實現簡單,也是最容易想到的調度方案。但是有兩個重大問題:
1.對短進程的運行不利
短進程必須等到前面長進程執行完畢了之後才能運行,可能會等待較長時間。
2.對IO密集型運行不利
IO密集型比短進程還慘。還不容易排隊等到他運行了,結果沒運行一會兒就因為IO阻塞去了,等IO操作完畢了之後,還得重新排隊。
所以這個算法對IO密集型的進程運行效率是極其低下的。
RR
Round Robin。輪詢調度算法為每個進程分配固定的時間片,時間片用完了就必須重新到隊尾去排隊。
這樣的設計解決了FCFS的第一個問題,相對而言也部分解決了第2個問題。
但是對IO密集型進程依然解決得不太好,有一個優化的方案就是設計兩個隊列,將因為IO阻塞的進程單獨放一個隊列,在選擇下一個運行進行的時候對這個隊列的進程提權。
FCFS還有另外一個比較復雜的問題就是如何選擇時間片。時間片過長就退化成FCFS算法了,過短又會造成切換開銷太大。
Prediction
基於預測的算法。這類預測算法都是假設我們知道每個進程總共所需要的時間,以及IO占比信息。 上一頁12345下一頁共5頁