標籤:作業系統 高效能運算 異常處理 分布式 伺服器
作業系統概述
一、作業系統的概念、特徵、功能和提供的服務 1.作業系統的概念
作業系統是電腦系統中最重要、最基本的系統軟體,作業系統位於硬體和使用者程式之間。
對於使用者來講:它能向使用者提供使用電腦的介面;
從資源管理角度來看:它能管理電腦軟硬體資源,提高其利用率;
再者,利用虛擬機器技術(如WMWare,VirtualBox,Java虛擬機器等),擴充了電腦的功能和使用範圍。
因此,作業系統的定義為:作業系統是控制和管理電腦軟、硬體資源,以儘可能合理、高效的方法為不同使用者及其應用程式提供服務的一種系統程式。
2. 作業系統的特徵
作業系統具有並發(與並行的區別:並行是真正意義上的同時;而並發是宏觀上的同時,而微觀上是交替)、共用、虛擬和不確定性(由並發引起,應盡量減少系統的不確定性)四大特徵。
其中,最重要的是並發特徵,其他三個特徵都是以並發為前提的。
3. 作業系統的功能
作業系統主要有進程管理、儲存管理、檔案管理、裝置管理四大功能。
4. 作業系統所能提供的服務
作業系統為使用者程式和系統程式提供了一系列的服務,這些服務可使使用電腦的人更快捷、高效和簡單地完成自己的工作。
1.公用服務(命令控制介面:命令列shell,圖形介面GUI,NUI[自然使用者介面],指令碼)
提供人機對話平台。
2.系統調用服務
提供編程時的系統服務;建立,開啟,關閉,讀,寫,刪除等。
【附:API是多個系統調用和部分代碼的綜合,比系統調用功能更加強大一些】
二、 作業系統的發展與分類 1. 作業系統的發展
作業系統的發展目前呈現出多樣化的局面:
大型電腦、巨型電腦需要滿足其叢集計算,高效能運算的需求;
軍用電腦、工業控制電腦希望作業系統能即時響應;
嵌入式電腦要求精簡、功能專一;
攜帶型裝置要求省電,電池持續耐力強等等。
因此,作業系統將會隨著使用者對系統不斷的新要求,在硬體的支援下,得到更加快速、強大地發展。
2. 作業系統的分類
1).單使用者作業系統
2).批處理作業系統
批處理系統又分為以下兩類(其中又分為聯機作業系統和離線作業系統):
(1)單道批處理系統
(2)多道批處理系統
3).分時作業系統(現在通用的作業系統)
4).即時系統(硬即時,軟即時)
5).網路作業系統
特點: a.與普通作業系統相比,有更強大的資源共用的能力
b.有更加強化的通訊功能
6).分布式作業系統
7).並行作業系統
三、 作業系統的運行環境 1. 核心態與使用者態[開始時作業系統並沒有嚴格區分核心態與使用者態,而是隨著並發提出來的]
多數系統將處理器工作狀態劃分為核心態和使用者態。
核心態[運行特權指令]一般指作業系統管理程式啟動並執行狀態,具有較高的特權層級,又稱為特權態、系統態或管態[雖然層級較高,但是也不能訪問使用者態的內容,體現了西方尊重私人財產的哲學思想];
使用者態[運行訪管指令]一般指使用者程式運行時的狀態,具有較低的特權層級,又稱為普通態、目態。
[核心態與使用者態“井水不犯河水”,由硬體提供相關技術]。
2. 中斷、異常
所謂中斷(interrupt)是指處理機對系統中或系統外發生的非同步事件的響應。
異常(有時也稱為陷阱 trap)是指由系統發起的一次確定的服務過程。相當於非強制中斷,是以中斷的方式來調用的一段代碼。
中斷與異常的區別與聯絡:就比較通用的觀點來看,中斷是強迫性的,異常是自願性的;中斷一般外來的,異常是程式發出的,中斷服務於所有程式,異常一般為發出異常的程式服務。
3. 系統調用
系統調用的處理過程是這樣的,當系統調用發生時,處理器通過一種特殊的機制,通常是中斷或者異常處理,把控制流程程轉移到監控程式內的一些特定的位置。同時,處理器模式轉變成特權模式。其次,由監控程式執行被請求的功能代碼。這個功能代碼代表著對一段標準程式段的執行,用以完成所請求的功能。第三,處理結束之後,監控程式恢複系統調用之前的現場;把運行模式從特權模式恢複成為使用者方式;最後將控制權轉移回原來的使用者程式。
系統調用與一般程式調用(API)的不同:
(1)運行在不同的系統狀態。調用的程式是運行在使用者態,被調用的程式運行在系統態。
(2)進入的方式不同。程序呼叫語句直接跳轉到被調用過程;而系統調用則必須通過運行系統調用命令。
(3)返回方式不同。程序呼叫直接返回;系統調用則不直接返回,有重新調度過程。
(4)代碼層次不同。程序呼叫是使用者級程式,而系統調用是系統級程式。
(5)系統調用一般不能嵌套或遞迴。
四、 作業系統體繫結構 常見的作業系統體繫結構有整體式結構、層次式結構和微核心(客戶/伺服器)結構等。
1).整體式結構[無結構,如MS-DOS]
首先確定作業系統的總體功能,然後將總功能分解為若干個子功能,實現每個子功能的程式稱為模組。它的主要優點是:結構緊密,介面簡單直接,系統效率較高。
2).層次式結構
所謂層次式結構就是把作業系統的所有功能模組,按功能流圖的調用次序,分別將這些模組排列成若干層,各層之間的模組只能是單向依賴或單向調用關係。這樣不但作業系統的結構清晰,而且不構成迴圈。
3).微核心(客戶/伺服器)結構[典型代表:UNIX作業系統]
這種模式,核心提供所有作業系統最核心,最關鍵的部分,如線程調度、處理機調度、處理機分配等做成一個核心,這些部分通常採用階層並構成了基本作業系統 。而其他所有的部分則以外掛的方式載入進去。
【對應微核心,有強核心結構,如Windows】
4).模組式(物件導向)結構