作業系統的知識點總結
作業系統的知識點總結
作業系統是配置在計算機硬體上的第一層軟體,是控制計算機所有操作的軟體。下面是小編為你帶來的作業系統的知識點總結 ,歡迎閱讀。
作業系統的概念
作業系統:是管理計算機軟硬體資源的程式,同時它又是使用者與計算機硬體的介面。
作業系統的構成
程序管理、記憶體管理、檔案管理、輸入/輸出系統管理、二級儲存管理、聯網、保護系統、命令解釋程式
作業系統的類別
經過多年的發展,作業系統多種多樣。為提高大型計算機系統的資源利用率,作業系統從批處理,多道程式發展為分時作業系統。為了滿足計算機處理實時事件的需要,就有實時作業系統。為適應個人計算機系統的需要又出現了桌面作業系統。為適應並行系統的需要,就有了多處理器作業系統。為滿足網路和分佈計算的需要,就有了網路作業系統和分散式作業系統。此外,還有為支援嵌入式計算機的嵌入式作業系統。
計算環境
從計算機誕生至今,作業系統總是與具體的計算環境相聯絡,它總是在某種計算環境中設定和使用,就目前來看計算環境可分為以下幾類:
1. 傳統計算環境
指普通意義下的獨立或聯網工作的通用計算機所形成的計算環境。
2.基於Web的計算環境
網際網路的普及使得計算被延伸到Web環境。
3.嵌入式計算環境
嵌入式計算機就是安裝在某些裝置上的計算部件,其計算相對比較簡單。
程序的概念
什麼是程序?它與程式有什麼區別?
程式:使用者為完成某一個特定問題而編寫的操作步驟。
程序:可以簡單地被看作是正在執行的程式。但是程序需要一定的資源來完成它的任務(例如CPU時間、記憶體、檔案和I/O裝置) 。
程序與程式的區別在於程序是動態的、有生命力的,而程式是靜態的。一個程式載入到記憶體,系統就建立一個程序,程式執行結束後,該程序也就消亡了。
在計算機中,由於多個程式共享系統資源,就必然引發對CPU的爭奪。如何有效地利用CPU資源,如何在多個請求CPU的程序中選擇取捨,這就是程序管理要解決的問題。
程序控制塊PCB(略)
為了控制程序,作業系統就必須知道程序儲存在哪裡,以及程序的一些屬性。
程序控制塊是程序實體的一部分,是作業系統中記錄程序的專用資料結構。一個新的程序建立時,作業系統就會為該程序建立一個程序控制塊。作業系統根據程序控制塊對併發程序進行控制。
程序排程及佇列圖
計算機採用多道程式的目的是使得計算機系統無論何時都有程序執行,單處理器的計算機在某一時刻CPU只能執行一個程序,如果存在多個程序,其它程序就需要等待CPU空閒時才能被排程執行。
當一個程序處於等待或CPU時間片用完時,作業系統就會從該程序中拿走CPU控制權,然後再交給其它程序使用,這就是程序的排程。
CPU排程及其準則
在設計CPU排程程式時主要應該考慮的準則包括:
(1) CPU使用率。讓CPU儘可能地忙。
(2) 吞吐量。讓CPU在一定時間內完成的程序數儘可能多。
(3) 週轉時間。讓程序從提交到執行完成的時間儘可能短。
(4) 等待時間。讓程序在就緒佇列中等待所花時間之和儘可能短。
(5) 響應時間。讓程序從提交請求到產生第一響應之間的時間儘可能短。
主要的CPU排程演算法
1、 先到先服務
2、 最短作業優先
3、 優先權
4、 輪轉
5、 多級佇列
6、 多級反饋佇列
程序的同步與互斥
程序的'同步就是指相互協作的程序不斷調整它們之間的相對速度,以實現共同有序地推進。
換句話說,在作業系統中,允許多個程序併發執行。然而,有些程序之間本身存在某種聯絡,它們在系統中需要一種協作,以保證程序能正確有序地執行並維護資料的一致性。
在作業系統中,可能存在著多個程序。而系統中一些資源一次只允許一個程序使用,這類資源被稱為臨界資源。在程序中訪問臨界資源的那段程式稱為臨界區。當一個程序進入臨界區執行時,其它程序就不允許進入臨界區執行,否則就會導致錯誤結果。由此得出:
多個程序併發執行時,只允許一個程序進入臨界區執行,這就是程序的互斥。
例如:多個程序在競爭使用印表機時表現為互斥。
一個檔案可供多個程序共享,其中有一個程序在寫操作時,其它程序則不允許同時寫或讀,表現為互斥。
程序的死鎖及處理方法
在多道程式設計中,多個程序可能競爭一定數量的資源。一個程序在申請資源時,如果所申請資源不足,該程序就必須處於等待狀態。如果所申請的資源被其它程序佔有,那麼程序的等待狀態就可能無法改變,從而形成程序之間相互一直等待的局面,這就是死鎖。
競爭資源引起死鎖
引起死鎖的四個必要條件:
互斥:任一時刻只能有一個程序獨佔某一資源,若另一程序申請該資源則需延遲到該資源釋放為止。
佔有並等待:即該程序佔有部分資源後還在等待其它資源,而該資源被其它程序佔有。
非搶佔:某程序已佔用資源且不主動放棄它所佔有的資源時,其它程序不能強佔該資源,只有等其完成任務並釋放資源。
迴圈等待:在出現死鎖的系統中,一定存在這樣一個程序鏈,其中每個程序至少佔有其它程序所必需的資源,從而形成一個等待鏈。
處理死鎖問題的三種方式:
可使用協議預防和避免死鎖,確保系統從不會進入死鎖狀態。
可允許系統進入死鎖狀態,然後檢測出死鎖狀態,並加以恢復。
可忽略程序死鎖問題,並假裝系統中死鎖從來不會發生。即沒有必要把精力花在小機率事件上。
處理死鎖優先考慮的順序:先預防和避免 再檢測和恢復
記憶體管理
記憶體是現代作業系統的核心。記憶體用於容納作業系統和各種使用者程序,是可以被CPU和I/O裝置所共同訪問的資料倉庫。計算機的所有程式執行時都要調入記憶體。
記憶體管理的主要工作是:為每個使用者程序合理地分配記憶體,以保證各個程序之間在儲存區不發生衝突;當記憶體不足時,如何把記憶體和外存結合起來,給使用者提供一個比實際記憶體大得多的虛擬記憶體,使得程式能順利執行。記憶體管理包括記憶體分配、地址對映、記憶體保護和擴充。
使用者程式執行與地址對映
使用者編寫程式在執行前,需要多個處理步驟,這些步驟可將源程式轉變為二進位制機器程式碼,然後在記憶體中等待執行。當然有時並非每個步驟都是必需的。
通常,將指令和資料的地址對映成記憶體地址可以發生在以下三個執行階段。(瞭解)
1.編譯階段:如果在編譯時就知道程序將在記憶體中的什麼位置駐留,那麼編譯器就可以直接以生成絕對地址程式碼。
2.載入階段: 不知道程序將駐留在什麼位置,那麼編譯器就必須生成程式的邏輯地址,在載入階段再轉變成記憶體的絕對地址。
3.執行階段:如果程序在執行時可以從一個記憶體段移動到另一個記憶體段,那麼程序的絕對地址對映工作只能延遲到執行時進行。
物理地址空間與邏輯地址空間
物理地址:是計算機記憶體單元的真實地址。
物理地址空間:由物理地址所構成的地址範圍。
邏輯地址:使用者程式地址,從0開始編址。
邏輯地址空間:由邏輯地址所構成的地址範圍。
地址對映:使用者程式在執行時要裝入記憶體,這就需要將邏輯地址變換成物理地址,這個過程稱為地址對映,也稱重定位。
使用者編寫的源程式是不考慮地址的,源程式經CPU編譯後產生邏輯地址。從CPU產生的邏輯地址轉換為記憶體中的物理地址的對映是由計算機中被稱為記憶體管理單元的硬體裝置來實現的,將邏輯地址與記憶體管理單元中存放的記憶體基址相加就得到了物理地址。
程序使用記憶體的交換技術
為了更加有效地使用記憶體,程序在不執行時,可以暫時從記憶體移至外存上,直到需要再執行時再重新調回到記憶體中。也就是說記憶體管理程式可將剛剛執行過的程序從記憶體中換出以釋放出佔用的記憶體空間,然後將另一個要執行的程序佔據前者釋放的記憶體空間。
計算機工作時,為了將多個程序放入到記憶體就必須考慮在記憶體中如何放置這些程序。
記憶體分配方案-連續
對於連續記憶體分配方案,開始時所有記憶體是一個大的孔,隨著記憶體分配的進行就會形成位置上不連續的大小不一的孔。在連續記憶體分配方案中,當新程序需要記憶體時,為其尋找合適的孔,實現記憶體分配 。該方案為每個程序所分配的記憶體物理地址空間在位置上是連續的。
記憶體分配方案-分頁式
分頁管理基本思想:
o 記憶體物理地址空間劃分為若干個大小相等的塊(頁框)
o 程序的邏輯地址空間也劃分為同樣大小的塊(頁面)
o 記憶體分配時每個頁面對應地分配一個頁框,而一個程序所分得頁框在位置上不必是連續的。
頁表:作業系統為每個使用者程式建立一張頁表,該表記錄用戶程式的每個邏輯頁面存放在哪一個記憶體物理頁框。
虛擬記憶體方案
虛擬記憶體是一個容量很大的儲存器的邏輯模型,它不是任何實際的物理儲存器,它一般是藉助硬碟來擴大主存的容量。
虛擬記憶體:對於一個程序來講,如果僅將當前要執行的幾個頁面裝入記憶體便可以開始執行,而其餘頁面可暫時留在磁碟上,待需要時再調入記憶體,並且調入時也不佔用新的記憶體空間,而是對原來執行過的頁面進行置換。這樣,就可以在計算機有限的記憶體中同時駐留多個程序並執行。而對使用者來講感覺到系統提供了足夠大的物理記憶體,而實際上並非真實的,這就是虛擬記憶體。
頁面請求與頁面置換演算法
頁面請求:在虛擬記憶體技術中,程序執行時並沒有將所有頁面裝入到記憶體,在執行過程中程序會不斷地請求頁面,如果訪問的頁面已在記憶體,就繼續執行下去;但如果要訪問的頁面尚未調入到記憶體,便請求作業系統將所缺頁面調入記憶體,以便程序能繼續執行下去。
頁面置換:如果請求頁面調入記憶體時,分配給該程序的頁框已用完,就無法立即裝入所請求頁面。此時,必須將程序中的某個頁面從記憶體的頁框調出到磁碟上,再從磁碟上將所請求的頁面調入到記憶體的該頁框中。這個過程叫做頁面置換。
檔案管理
檔案管理是作業系統最常見的組成部分。檔案管理主要提供目錄及其檔案的管理。
檔案的概念
檔案:儲存在外部儲存裝置上的相關資訊的集合。
檔案命名:檔案主名+副檔名
檔案存取屬性:
只讀:只允許授權使用者進行讀操作。
讀寫:只允許授權使用者進行讀和寫的操作。
文件:允許任何使用者進行讀寫操作。
隱藏:不允許使用者直接看到檔名。
檔案系統:是對檔案進行操作和管理的軟體,是使用者與外存之間的介面。這個系統將所有檔案組織成目錄結構儲存在外存,一個檔案對應其中的一個目錄條。目錄條記錄有檔名、檔案位置等資訊。
作業系統對檔案的基本操作包括:
建立檔案、檔案寫、檔案讀、檔案重定位、檔案刪除、檔案截短。
對檔案的其它操作包括:檔案複製、重新命名、更改屬性等。