
- 作業系統教程
- OS - 首頁
- OS - 需求
- OS - 概述
- OS - 歷史
- OS - 元件
- OS - 結構
- OS - 架構
- OS - 服務
- OS - 屬性
- OS - 週轉時間 & 等待時間
- OS 程序
- OS - 程序
- OS - 程序排程
- OS - 排程演算法
- 先來先服務 (FCFS) 排程演算法
- 最短作業優先 (SJF) 排程演算法
- 輪詢 (Round Robin) 排程演算法
- 最高響應比優先 (HRRN) 排程演算法
- 優先順序排程演算法
- 多級佇列排程
- 上下文切換
- 程序操作
- 彩票程序排程
- 預測突發時間 SJF 排程
- 競爭條件漏洞
- 臨界區同步
- 互斥同步
- 程序控制塊
- 程序間通訊
- 搶佔式和非搶佔式排程
- OS 同步
- 程序同步
- OS 記憶體管理
- OS - 記憶體管理
- OS - 虛擬記憶體
- OS 儲存管理
- OS - 檔案系統
- OS 型別
- OS - 型別
- OS 其他
- OS - 多執行緒
- OS - I/O 硬體
- OS - I/O 軟體
- OS - 安全
- OS - Linux
- 考試題庫及答案
- 考試題庫及答案
作業系統 - 架構
作業系統允許使用者應用程式與系統硬體互動。由於作業系統是一個如此複雜的結構,其架構在其使用中起著重要的作用。作業系統架構的每個元件都應該有明確的輸入、輸出和功能定義。
重要術語
在作業系統架構中,我們有兩個主要術語來定義作業系統的主要元件。
核心 (Kernel) − 核心是大多數作業系統架構實現中的核心元件。核心負責所有主要操作以及與硬體的互動。核心管理記憶體、處理器、輸入/輸出裝置,併為應用程式提供與硬體元件互動的介面。
Shell (外殼) − Shell 是作業系統的介面。它可以是命令列介面或圖形使用者介面。使用者使用 Shell 與作業系統互動。應用程式也可以使用 Shell 介面與底層作業系統互動。
系統軟體 − 系統軟體是與核心互動並提供安全管理、記憶體管理和其他低階活動介面的程式。
應用程式 − 應用程式軟體/程式是使用者與作業系統互動所使用的程式。例如,文字處理器用於建立文件並將其儲存到檔案系統中,記事本用於建立筆記等。
流行的架構
以下是作業系統架構的各種流行實現。
簡單架構
單體架構
微核心架構
外核架構
分層架構
模組化架構
虛擬機器架構
簡單架構
許多作業系統具有相當簡單的結構。它們最初是小型系統,後來迅速擴充套件到遠超出其範圍的程度。MS-DOS就是一個常見的例子。它最初的設計只是為了滿足一小部分人的需求,並沒有預料到它會如此流行。

一些作業系統具有簡單而強大的架構,例如 MS-DOS。這將帶來對計算機系統及其各種應用程式的更大控制。簡單的架構允許程式設計師根據需要隱藏資訊,並根據需要實現內部例程,而無需更改外部規範。
優點
以下是簡單作業系統架構的優點。
易於開發 - 在簡單的作業系統中,由於介面很少,開發很容易,尤其是在只需要提供有限功能的情況下。
效能更好 - 這樣的系統由於層數少且直接與硬體互動,因此與其他型別的作業系統相比,效能更好。
缺點
以下是簡單作業系統架構的缺點。
系統故障頻繁 - 由於設計不完善,這樣的系統不夠健壯。如果一個程式失敗,整個作業系統都會崩潰。因此,簡單的作業系統中系統故障非常頻繁。
可維護性差 - 由於作業系統的各個層緊密耦合,一層中的更改可能會嚴重影響其他層,並使程式碼隨著時間的推移難以管理。
單體架構
在單體架構作業系統中,一個名為核心的中央程式碼段負責作業系統的全部主要操作。這些操作包括檔案管理、記憶體管理、裝置管理等等。核心是作業系統的核心元件,它嚮應用程式和系統程式提供作業系統的全部服務。
核心可以訪問所有資源,並且充當應用程式和底層硬體之間的介面。單體核心架構促進了分時、多程式設計模型,並被用於舊的銀行系統。

優點
以下是單體作業系統架構的優點。
易於開發 - 由於核心是唯一需要開發所有主要功能的層,因此設計和開發更容易。
效能 - 由於核心負責記憶體管理和其他操作,並且可以直接訪問硬體,因此效能更好。
缺點
以下是單體作業系統架構的缺點。
容易崩潰 - 由於核心負責所有功能,如果一個功能失敗,整個作業系統都會失敗。
難以增強 - 在單體作業系統中,新增新服務而不影響其他服務非常困難。
微核心架構
與單體架構只有一個核心不同,在微核心中,我們有多個核心,每個核心都專門負責一項特定服務。每個微核心都是獨立開發的,這使得系統更加穩定。如果一個核心失敗,作業系統將繼續使用其他核心的功能。
優點
以下是微核心作業系統架構的優點。
可靠且穩定 - 由於多個核心同時工作,作業系統失敗的可能性非常小。如果一個功能出現故障,作業系統仍然可以使用穩定的核心提供其他功能。
可維護性 - 由於核心體積小,程式碼大小易於維護。可以增強微核心程式碼庫而不會影響其他微核心程式碼庫。
缺點
以下是微核心作業系統架構的缺點。
設計複雜 - 這種基於微核心的架構很難設計。
效能下降 - 與單體架構相比,多核心、多模組通訊可能會影響效能。
外核架構
外核架構作業系統在麻省理工學院設計和開發。該設計的目標是保持核心大小最小,同時允許應用程式直接管理硬體資源。移除作業系統對硬體資源的抽象的目的,是為了使應用程式程式設計師能夠編寫高效能程式碼,而外核則處理其他操作。
優點
以下是外核作業系統架構的優點。
高效能 - 由於應用程式可以分配記憶體,因此設計良好的程式碼可以最佳化使用並提高效能。
應用程式控制 - 由於資源管理不是由作業系統來保證的,因此應用程式對系統資源有更多控制權,並且可以在系統資源上編寫自定義操作。
缺點
以下是外核作業系統架構的缺點。
不可靠且不安全 - 由於安全性在應用程式級別,因此編寫不當的程式碼可能會破壞系統。
設計複雜 - 外核設計複雜。
分層架構
在作業系統中實現模組化的一種方法是分層方法。在這種方法中,底層是硬體,最頂層是使用者介面。
演示分層方法的影像如下:

從影像中可以看出,每一上層都建立在下層之上。所有層都對其上層隱藏了一些結構、操作等。
分層架構的一個問題是需要仔細定義每一層。這是必要的,因為上層只能使用其下層的功能。
優點
以下是分層作業系統架構的優點。
高度可定製 - 由於分層,每一層的實現都可以輕鬆定製。可以新增新功能而不會影響其他模組。
可驗證性 - 由於模組化,每一層都可以輕鬆驗證和除錯。
缺點
以下是分層作業系統架構的缺點。
效能較低 - 與基本結構的作業系統相比,分層結構的作業系統效能較低。
設計複雜 - 每一層都需要仔細規劃,因為每一層只與下層通訊,因此需要良好的設計流程才能建立分層作業系統。
模組化架構
模組化架構作業系統的工作原理與單體架構類似,但設計更好。一箇中央核心負責作業系統的全部主要操作。這個核心具有一組核心功能,其他服務作為模組在啟動時或執行時動態載入到核心中。Sun Solaris OS 是模組化結構作業系統的示例之一。
優點
以下是模組化作業系統架構的優點。
高度可定製 - 由於模組化,每一模組的實現都可以輕鬆定製。可以新增新功能而不會影響其他模組。
可驗證性 - 由於模組化,每一層都可以輕鬆驗證和除錯。
缺點
以下是模組化作業系統架構的缺點。
效能較低 - 與基本結構的作業系統相比,模組化架構的作業系統效能較低。
複雜的設計 - 每個模組都需要仔細規劃,因為每個模組都與核心通訊。需要設計一個通訊 API 來促進通訊。
虛擬機器架構
在這種架構中,CPU、記憶體、硬碟等硬體被抽象成虛擬機器。使用者可以使用它們,並使用執行上下文實際配置它們。虛擬機器佔用大量的磁碟空間,需要進行配置。可以在一臺物理機上建立多個虛擬機器。
優點
以下是基於虛擬機器的作業系統架構的優點。
高度可定製 - 由於是虛擬的,功能很容易訪問,可以根據需要進行定製。
安全 - 由於是虛擬的,並且沒有直接訪問硬體,因此此類系統非常安全。
缺點
以下是基於虛擬機器的作業系統架構的缺點。
效能較低 - 與模組化結構的作業系統相比,虛擬結構的作業系統效能較低。
複雜的設計 - 機器中的每個虛擬元件都需要仔細規劃,因為每個元件都需要抽象底層硬體。