Linux程序的管理

2021-07-24 06:21:29 字數 1680 閱讀 6820

1.1 多工

多工作業系統就是能同時併發地互動執行郭哥程序的作業系統。在單處理機器上,這會產生多個程序在同時執行的錯覺。在多處理機上,著會使多個程序在不同機器上真正同時,並行地執行。無論在單處理機還是多處理器機器上,多工作業系統都能使多個程序處於堵塞或者睡眠的狀態,也就是說,實際上並沒有被真正的投入執行。程序利用核心堵塞自己,直到某些事件的產生。

多工系統可以分為兩類:非搶占式多工和搶占式多工,而linux則提供了搶占式的多工模式。

在linux2.4以前,linux的程序排程程式都設計的相當簡陋,設計近乎原始。在linux2.5的核心當中,進行了大手術,引入了許多的新特性。主要感謝靜態時間片演算法和針對每一處理器的執行佇列。在

2.6核心當中,增加了完全公平排程演算法。

1.3策略

策略決定決定排程程式在何時讓什麼程式執行。排程器的策略往往就決定了系統的整體映像,並且,還要優化處理器的使用時間。所以呀,他是至關重要的。

1.3.1 i/o消耗型和處理器消耗型的程序。

程序可以被分為i/o消耗型和處理器消耗型,要注意這兩種程序資源的分配。但是,對於某些程序來說,並不能單純的將其歸類為i/o消耗型或者處理器消耗型。

1.3.2程序優先順序

排程演算法當中最基本的一類就是機遇優先順序的排程,。linux採用了兩種不同的優先順序範圍。一種是nice值,它的範圍是-20到+19,預設值為0,越大的nice值意味著更低的優先順序。nice值低的可以獲得更多的時間。在linux當中,nice值代表分配給程序的時間片的比例。

第二種範圍是實時優先順序,其值是可配置的,預設情況下它的變化範圍是從0~99。實時優先順序和nice優先順序處於互不相交的兩個範疇。

1.4linux 排程演算法

1.4.1 linux的排程器類:

linux排程器是以模組的方式提供的,這樣做的目的是允許不同型別的程序可以有針對性的選擇排程演算法。

這種模組化結構被稱為排程器類,它允許多種不同的可動態新增的排程演算法的並存。每乙個排程器都有自己的優先順序。

1.4.2unix系統中的程序排程:

在unix當中,若採用nice值直接經行絕對時間的對映,那麼時間片的分配並不是很理想。為了使程序能夠更快的投入執行,而去對新要喚醒的程序提公升優先順序,即使他們的時間片已經用完,雖然這種方式能夠提公升不少的互動性能,但是一些例外的情況也有可能發生使得給定程序打破公平原則。

通過對傳統unix排程器進行改造以解決問題,但是實際的問題在於分配絕對的時間片引發的固定的切換頻率,給公平性造成很大的變數。cfs採用的方法是對時間片分配方式進行根本的性的重新設計:完全摒棄時間片而是而是分配給程序乙個處理器使用比重。通過這種方式。cfs確保了程序排程中能有恆定的公平性,而將切換頻率至於不斷變換當中。

1.4.3公平排程

程序排程的效果應如同系統具有乙個理想中的完美多處理器。程序的呼叫實現卻並不如理想中的那樣完美。排程時程序搶占會帶來一定的代價。cfs充分考慮額外的消耗,確保系統效能不受損失。

每個程序都按其權重在全部可執行程序中所佔比例的「時間片」執行,為了計算準確的時間片,cfs為完美多工中的無線小排程週期的近似值設立了乙個目標。這個目標被稱為「目標延遲」。越小的排程週期將帶來更好的互動性。但是要承受更高的切換代價。linux當中有乙個最小力度保證切換時候的延遲。預設請款下這個值為1ms。

在cfs中,兩個程序的nice值的相對差才會影響兩個程序的所佔時間片的權重。在多程序的環境下,降低了排程延遲帶來的不公平性。

在沒有你的世界裡,愛你,葉錚

Linux程序的管理

程序可以理解為程式執行的乙個例項,它包括可執行程式以及與其相關的系統資源,比如開啟的檔案 掛起的訊號 核心內部資料 處理器狀態 記憶體位址空間及包含全域性變數的資料段等。從核心的角度看,程序也可以稱為任務。換句話就是說 程序是系統未完成的工作並且是正在進行的工作 gnomes system moni...

Linux的程序管理

前台程序 前台程序就是具有終端,可以和使用者互動的程序 與前台程序相對,沒有占用終端的就是後台程序 後台程式基本上不和使用者互動,優先順序比前台程序低 將需要執行的命令以 符號結束 守護 daemon 程序是特殊的後台程序 很多守護程序在系統弓 導的時候啟動,一直執行直到系統關閉 linux有很多典...

Linux的程序管理

從圖中可以看出 標準輸入的fd是0,標準輸出的fd是1,標準錯誤輸出的fd是2 在個人計算機上,只有乙個實際的控制台,沒有終端,所以終端都是在控制台上用軟體模擬的。歷史上,console指主機本身的螢幕和鍵盤,而tty指用電纜連線的其它位置的控制台。這是計算機的概念 dev console是系統控制...