作業系統(一)—— 計算機系統概述
一、計算機系統概述
1. 作業系統的基本概念
1)結構
2)定義
① 負責管協調硬體、軟體等計算機資源的工作
② 為上層的使用者和應用程式提供簡單易用的服務
③ 一種系統軟體
3)功能和目標
① 資源的管理者:處理器管理、儲存機管理、檔案管理、裝置管理
② 向用戶提供服務:
a. 命令介面:聯機命令介面、離線命令介面
b. 程式介面:由一組系統呼叫組成
c. GUI使用者影象介面(最終還是通過呼叫程式介面實現)
③ 對硬體機器的擴充套件
4) 作業系統的四個特徵
① 併發
a. 概念:兩個或多個事件在同一時間間隔內發生。巨集觀上是同時的,微觀上是交替發生的
b. 作業系統的併發指的是 計算機系統中同時存在多個執行著的程式
② 共享
a. 概念:資源共享,系統中的資源可供記憶體中多個併發執行的程序共同使用。
b. 分類:互斥共享方式、同時共享方式。【注】“同時”往往是巨集觀的、而在微觀上是交替的(分時共享)
c. 併發與共享的關係:併發和共享是相互依賴的,二則相輔相成
③ 虛擬
a. 概念:把一個物理上的實體,變為若干個邏輯上的對應物
b. 如“空分複用”、“時分複用”
【注】虛擬有意義的前提是併發
④ 非同步
概念:多道程式下,允許多個程式併發執行,但是由於資源有限,程序的執行不是一貫到底,每個程序是走走停停,以不可預知的速度推進。
【注】非同步有意義的前提也是併發
⑥ 考點
a. 併發與並行的區別
b. 併發和共享互為條件,沒有併發和共享,虛擬和非同步就沒有意義,故併發和共享是作業系統的兩個最基本特徵。
2. 作業系統的發展與分類
1)手工操作階段
這時候還沒有作業系統。
缺點:使用者獨佔主機,資源利用率低、CPU切換依賴人工,利用率低
2)批處理階段
① 單道批處理系統
a. 目的:解決人機矛盾及CPU和IO裝置速率不匹配的矛盾
b. 特徵:自動性、順序性、單道性
② 多道批處理系統
a. 目的:為了進一步提高資源利用率和系統的吞吐量
b. 特徵:多道、巨集觀上並行、微觀上序列
【注】多道批處理系統不採用某些機制來提高某一技術方面的瓶頸問題,而是讓各個組成部分儘量去“忙”,即:當一道程式因IO請求而阻塞時,CPU就立即去執行另一道程式。
c. 多道批處理系統需解決的問題:
i. 如何合理分配處理器
ii. 多道程式的記憶體分配問題
iii. IO裝置怎麼分配
iv. 如何保證多道程式的安全性和一致性
d. 批處理系統優缺點
i. 優點:CPU和資源利用率高;系統吞吐量大
ii. 缺點:使用者響應時間長較長;無互動能力,使用者不知道程式執行狀態,也不能控制計算機
3)分時作業系統
① 原理:為了提高響應速率,將處理器的執行時間分為很短的時間片,按時間片輪流把處理器分給各個聯機任務
② 特徵:同時性、互動性、獨立性、及時性
4)實時作業系統
① 原理:某個時間限制內,完成某些緊急任務而不需要時間片排隊
② 分類:硬實時系統(飛機的飛行控制系統)、軟實時系統(訂票系統)
③ 特徵:及時性、可靠性
5)網路作業系統
① 原理:通過網路將多臺計算機有機結合
② 特點:網路中的資源共享、每臺計算機通過網路通訊
6)分散式作業系統
① 原理:多臺計算機相互協同完成同一任務。
② 特徵:系統中的任意兩臺計算機通過網路通訊;系統中的每臺計算機的地位一樣,沒有主從之分;每臺計算機資源共享;每臺計算機都是一個子系統;任何工作都可以分佈在幾臺計算機中並行工作,系統完成。
7)個人計算機作業系統
3. 作業系統執行環境
1)執行機制
① 概念:
a. 指令
i. 概念:處理器能識別和執行的最基本的命令
ii. 分類:非特權指令、特權指令(不允許使用者程式使用)
b. CPU狀態(由暫存器標記)
i. 使用者態(目態):此時只能執行非特權指令
ii. 核心態(管態):此時兩種指令都能執行
c. 程式分類
i. 應用程式
ii. 核心程式
② 作業系統的核心結構
③ 作業系統的體系結構
分為大核心和小核心體系
2)中斷和異常
① 中斷機制的誕生
a. 目的:為了實現多道程式併發執行,引入了中斷機制
b. 原理:發生中斷就意味著需要作業系統介入,開展管理工作
② 中斷的概念和作用
a. 中斷髮生時,CPU立即進入核心態
b. 中斷髮生後,當前執行的程序暫停執行,由作業系統核心對中斷進行處理
c. 對於不同的中斷訊號,作業系統會有不同的處理
【作用】只要發生了中斷,就意味著作業系統介入開展管理工作。由於作業系統的管理工作(如程序切換、分配IO裝置等)需要使用特權指令,CPU要從使用者態轉變為核心態。中斷可以是CPU從使用者態切換到核心態(且是唯一途徑),使作業系統獲得計算機的控制權。有了中斷機制,才能實現多道程式併發執行。
③ 中斷的分類(根據訊號的來源:CPU內部還是外部,與當前執行的指令是否有關)
a. 內中斷(異常、陷入、例外):自願中斷(指令中斷)、強迫中斷(硬體故障或軟體中斷)
b. 外中斷:外設請求、人工干預
④ 外中斷的處理
a. 每條指令執行結束後,CPU檢查是否有外部中斷訊號
b. 若有外部中斷訊號,則需要保護被中斷程序的CPU環境
c. 根據中斷訊號型別轉入相應的中斷處理程式
d.處理好後,恢復原程序的CPU環境並退出中斷,返回原程序下繼續執行
3)系統呼叫
① 概念和作用
應用程式通過系統呼叫請求作業系統的服務。系統中的各種共享資源都由作業系統統一掌管,因此在使用者程式中,凡是與資源有關的操作(如儲存分配、/O操作、檔案管理等),都必須通過系統呼叫的方式向作業系統提出服務請求,由作業系統代為完成。
這樣可以保證系統的穩定性和安全性,防止使用者進行非法操作。
【注】系統呼叫 相關處理涉及到系統資源,故需要在特權指令,因此係統呼叫的相關處理實在核心態下完成的
② 系統呼叫和庫函式的區別
③ 系統呼叫背後的程序
a. 傳遞系統呼叫引數
b. 執行陷入指令(int -> interrupt),CPU從使用者態切換到核心態
c. 執行系統呼叫相應的服務程式
d. 執行結束後,切換到使用者態,再返回使用者程式
【注】系統呼叫發生在使用者態,系統呼叫的處理髮生在核心態