當前位置:才華齋>計算機>作業系統>

linux作業系統原理知識

作業系統 閱讀(2.49W)

簡單來說,Linux是一套免費使用和自由傳播的類Unix作業系統。Linux作業系統最初的核心由芬蘭人Linus Torvalds開發,並採用由全世界的核心開發人員在此基礎上更新的方式形成。linux作業系統原理知識你瞭解多少呢?下面是相關的知識,歡迎閱讀。

linux作業系統原理知識

  一、磁碟的排程演算法

磁碟是可被多個程序共享的裝置。常用的磁碟排程演算法有:先來先服務、最短尋道時間優先、掃描演算法和迴圈掃描演算法等。

1.先來先服務FCFS演算法:這是一種最簡單的磁碟排程演算法。它根據程序請求訪問磁碟的先後次序進行排程,平均尋道時間可能較長。

2.最短尋道時間優先SSTF演算法:該演算法總是為那些與當前磁頭所在的磁軌距離最近的請求服務,這種排程演算法有較好的平均尋道時間,被廣泛採用。但它可能導致某些程序長時間的得不到服務(稱之為飢餓現象)

3.掃描(SCAN)演算法:SCAN演算法不僅考慮到欲訪問的磁軌與當前磁軌的距離,更優先考慮的是磁頭的當前移動方向,避免了飢餓現象的出現。又稱為電梯排程演算法。

4.迴圈掃描 CSCAN(Circular SCAN)演算法:這是SCAN演算法的一種變種演算法,CSCAN演算法規定磁頭只能單向運動,當磁頭運動到最外面的.被訪問磁軌時,磁頭立即返回到最裡面的欲訪的磁軌。

5.N-Step-SCAN演算法

在SSTF、SCAN及CSCAN這幾種演算法中,都可能出現磁臂停留在某處不動的情況。例如,有一個或幾個程序對某一磁軌有著較高的訪問頻率,反覆請求對某一磁軌進行I/O,從而壟斷了整個磁碟裝置,把這一現象稱為“磁臂粘著”。N步SCAN演算法是將磁碟請求佇列分成若干個長度為N的子佇列,磁碟排程將按FCFS演算法依次處理這些子佇列,又按SCAN演算法處理佇列中的每一個請求,這樣就可避免出現粘著現象。當 N值取得很大時,會使其效能接近於SCAN演算法;當 N=1時,該演算法退化為 FCFS演算法。

  二、外碎片和內碎片

外碎片,作業系統自己浪費的空間一般是外碎片,比如動態記憶體分配時使用者需求多少空間,作業系統就分配多少空間,此時會產生外碎片;再比如分段記憶體管理中每個段的大小不一,又要連續分配,此時容易產生外碎片。使用者自己浪費的空間一般是內碎片,比如分頁機制中,作業系統給使用者分配的是整頁的空間,使用者可能使用不完,此時剩餘的空間就是內碎片。總之,如果使用者要多少就給多少的記憶體管理機制一般是外碎片,給使用者分配整頁或整塊空間的記憶體管理機制一般是內碎片。

  三、作業系統的時空互換

為了提升系統的效能,作業系統往往會在時間、空間上進行折衷。比如快表的引入雖然增加了儲存空間的管理,但卻換取了訪存時間的降低;再比如虛擬儲存器技術,由於記憶體空間有限,為了提升記憶體空間,只能利用置換等方法降低程式執行的速度,從而提升儲存空間的大小,屬於時間換空間;再比如,硬碟的對換區,為了提升訪問硬碟資料的速度,對換區的管理採用連續空間分配的機制,雖然浪費了空間,但速度卻提升了,屬於空間換時間。因此如果速度提升了,一般就是空間換時間,如果速度變慢了,一般就是時間換空間。那麼緩衝區是什麼呢?應該是空間換時間,因為裝置和cpu並行工作了,速度提升了。

  四、頁面抖動和工作集

在頁面置換過程中的一種最糟糕的情形是,剛剛換出的頁面馬上又要換入主存,剛剛換入的頁面馬上就要換出主存,這種頻繁的頁面排程行為稱為抖動,抖動會大大降低系統效率。工作集(或駐留集)是指在某段時間間隔內,程序要訪問的頁面集合。經常被使用的頁面需要在工作集中,而長期不被使用的頁面要從工作集中被丟棄。為了防止系統出現抖動現象,需要選擇合適的工作集大小。工作集模型的原理是:讓作業系統跟蹤每個程序的工作集,併為程序分配大於其工作集的物理塊。