作業系統知識點
作業系統是管理計算機硬體資源,控制其他程式執行併為使用者提供互動操作介面的系統軟體的集合。下面是小編為大家整理的作業系統的相關知識點的總結歸納,希望對你們有幫助。
作業系統整理歸納
4.1.1 作業系統的概念
作業系統:是管理計算機軟硬體資源的程式,同時它又是使用者與計算機硬體的介面。
4.1.2 作業系統的構成
程序管理、記憶體管理、檔案管理、輸入/輸出系統管理、二級儲存管理、聯網、保護系統、命令解釋程式
4.2.1 作業系統的類別
經過多年的發展,作業系統多種多樣。為提高大型計算機系統的資源利用率,作業系統從批處理,多道程式發展為分時作業系統。為了滿足計算機處理實時事件的需要,就有實時作業系統。為適應個人計算機系統的需要又出現了桌面作業系統。為適應並行系統的需要,就有了多處理器作業系統。為滿足網路和分佈計算的需要,就有了網路作業系統和分散式作業系統。此外,還有為支援嵌入式計算機的嵌入式作業系統。
4.2.2 計算環境
從計算機誕生至今,作業系統總是與具體的計算環境相聯絡,它總是在某種計算環境中設定和使用,就目前來看計算環境可分為以下幾類:
1. 傳統計算環境
指普通意義下的獨立或聯網工作的通用計算機所形成的計算環境。
2.基於Web的計算環境
網際網路的普及使得計算被延伸到Web環境。
3.嵌入式計算環境
嵌入式計算機就是安裝在某些裝置上的計算部件,其計算相對比較簡單。
4.3.1 程序的概念
什麼是程序?它與程式有什麼區別?
程式:使用者為完成某一個特定問題而編寫的操作步驟。
程序:可以簡單地被看作是正在執行的程式。但是程序需要一定的資源來完成它的任務***例如CPU時間、記憶體、檔案和I/O裝置*** 。
程序與程式的區別在於程序是動態的、有生命力的,而程式是靜態的。一個程式載入到記憶體,系統就建立一個程序,程式執行結束後,該程序也就消亡了。
在計算機中,由於多個程式共享系統資源,就必然引發對CPU的爭奪。如何有效地利用CPU資源,如何在多個請求CPU的程序中選擇取捨,這就是程序管理要解決的問題。
4.3.3 程序控制塊PCB***略***
為了控制程序,作業系統就必須知道程序儲存在哪裡,以及程序的一些屬性。
程序控制塊是程序實體的一部分,是作業系統中記錄程序的專用資料結構。一個新的程序建立時,作業系統就會為該程序建立一個程序控制塊。作業系統根據程序控制塊對併發程序進行控制。
4.3.4 程序排程及佇列圖
計算機採用多道程式的目的是使得計算機系統無論何時都有程序執行,單處理器的計算機在某一時刻CPU只能執行一個程序,如果存在多個程序,其它程序就需要等待CPU空閒時才能被排程執行。
當一個程序處於等待或CPU時間片用完時,作業系統就會從該程序中拿走CPU控制權,然後再交給其它程序使用,這就是程序的排程。
4.3.5 CPU排程及其準則
在設計CPU排程程式時主要應該考慮的準則包括:
***1*** CPU使用率。讓CPU儘可能地忙。
***2*** 吞吐量。讓CPU在一定時間內完成的程序數儘可能多。
***3*** 週轉時間。讓程序從提交到執行完成的時間儘可能短。
***4*** 等待時間。讓程序在就緒佇列中等待所花時間之和儘可能短。
***5*** 響應時間。讓程序從提交請求到產生第一響應之間的時間儘可能短。
主要的CPU排程演算法
1、 先到先服務
2、 最短作業優先
3、 優先權
4、 輪轉
5、 多級佇列
6、 多級反饋佇列
4.3.7 程序的同步與互斥
程序的同步就是指相互協作的程序不斷調整它們之間的相對速度,以實現共同有序地推進。
換句話說,在作業系統中,允許多個程序併發執行。然而,有些程序之間本身存在某種聯絡,它們在系統中需要一種協作,以保證程序能正確有序地執行並維護資料的一致性。
在作業系統中,可能存在著多個程序。而系統中一些資源一次只允許一個程序使用,這類資源被稱為臨界資源。在程序中訪問臨界資源的那段程式稱為臨界區。當一個程序進入臨界區執行時,其它程序就不允許進入臨界區執行,否則就會導致錯誤結果。由此得出:
多個程序併發執行時,只允許一個程序進入臨界區執行,這就是程序的互斥。
例如:多個程序在競爭使用印表機時表現為互斥。
一個檔案可供多個程序共享,其中有一個程序在寫操作時,其它程序則不允許同時寫或讀,表現為互斥。
4.3.8 程序的死鎖及處理方法
在多道程式設計中,多個程序可能競爭一定數量的資源。一個程序在申請資源時,如果所申請資源不足,該程序就必須處於等待狀態。如果所申請的資源被其它程序佔有,那麼程序的等待狀態就可能無法改變,從而形成程序之間相互一直等待的局面,這就是死鎖。
競爭資源引起死鎖
引起死鎖的四個必要條件:
• 互斥:任一時刻只能有一個程序獨佔某一資源,若另一程序申請該資源則需延遲到該資源釋放為止。
• 佔有並等待:即該程序佔有部分資源後還在等待其它資源,而該資源被其它程序佔有。
• 非搶佔:某程序已佔用資源且不主動放棄它所佔有的資源時,其它程序不能強佔該資源,只有等其完成任務並釋放資源。
• 迴圈等待:在出現死鎖的系統中,一定存在這樣一個程序鏈,其中每個程序至少佔有其它程序所必需的資源,從而形成一個等待鏈。
處理死鎖問題的三種方式:
• 可使用協議預防和避免死鎖,確保系統從不會進入死鎖狀態。
• 可允許系統進入死鎖狀態,然後檢測出死鎖狀態,並加以恢復。
• 可忽略程序死鎖問題,並假裝系統中死鎖從來不會發生。即沒有必要把精力花在小概率事件上。
處理死鎖優先考慮的順序:先預防和避免 再檢測和恢復