linux操作系統原理知識

簡單來說,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並行工作了,速度提升了。

  四、頁面抖動和工作集

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