王道_作業系統 第一章 導論
0 知識總覽
1 作業系統的概念
作業系統(Operating System,OS)控制和管理整個計算機系統的硬體和軟體資源,併合理地組織排程計算機的工作和資源的分配,以提供給使用者和其他軟體方便的介面和環境。它是計算機系統中最基本的系統軟體。
直觀的例子:開啟Windows作業系統的“工作管理員”(快捷鍵:Ctrl+Alt+Del)
計算機系統的層次結構
2 作業系統的功能和目標
從以下幾個問題來分析作業系統的功能和目標:
2.1 作為系統資源的管理者
程序是一個程式的執行過程。執行前需要將該程式放到記憶體中,才能被CPU處理。
一個程序對應一個程式,但是一個程式可以同時對應多個程序。
2.2 作為使用者和計算機硬體之間的介面
命令介面、程式介面和GUI等可統稱為使用者介面。
考研幾乎不考GUI,所以王道里略過了。
聯機命令介面:使用者說一句,系統執行一句。如cmd視窗執行dos命令。
離線命令介面:使用者說一堆,作業系統執行一堆。如bat批處理檔案。
程式介面
易混淆概念:系統呼叫=系統呼叫命令=廣義指令
2.3 作為最接近硬體的層次
封裝思想
2.4 知識回顧與重要考點
3 作業系統的特徵
3.0 知識總覽
1 併發
併發:指兩個或多個事件在同一時間間隔內交替發生。這些事件巨集觀上是同時發生的,但微觀上是交替發生的。
常考易混淆概念——並行
:指兩個或多個事件在同一時刻同時發生。
作業系統的併發性指計算機系統中同時存在著多個執行著的程式。
2 共享
共享即資源共享,是指系統中的資源可供記憶體中多個併發執行的程序共同使用。
併發和共享的關係
3 虛擬
虛擬是指把一個物理上的實體變為若干個邏輯上的對應物。物理實體(前者)是實際存在的,而邏輯上的對應物(後者)是使用者感受到的。
空分複用技術
時分複用技術
4 非同步
非同步是指,在多道程式環境下,允許多個程式併發執行,但由於資源有限,程序的執行不是一貫到底的,而是走走停停,以不可預知的速度向前推進,這就是程序的非同步性。
3.5 知識回顧與重要考點
4 作業系統的發展與分類
考研重點為綠框部分
學習提示:重點理解各階段的優點和缺點。各階段的主要優點都是解決了上一階段的主要缺點。
1 手工操作階段
紙帶打孔,紙帶機輸入/輸出資料。
主要缺點:使用者獨佔全機、人機速度矛盾導致資源利用率極低
2 批處理階段——單道批處理系統
引入離線輸入/輸出技術(用磁帶完成),並由監督程式(作業系統雛形)負責控制作業的輸入、輸出。
主要優點:緩解了一定程度的人機速度矛盾,資源利用率有所提升。
主要缺點:記憶體中僅能有一道程式執行,只有該程式執行結束之後才能調入下一道程式。CPU有大量的時間是在空閒等待I/O完成。資源利用率依然很低。
3 批處理階段——多道批處理系統
磁帶每次往記憶體中輸入多道程式。作業系統正式誕生,並引入了中斷技術,由作業系統負責管理這些程式的執行。各個程式併發執行。
主要優點:多道程式併發執行,共享計算機資源。資源利用率大幅度提升,CPU和其他資源保持“忙碌”狀態,系統吞吐量增大。
主要缺點:使用者響應時間長,沒有人機互動功能(使用者提交自己的作業之後只能等待計算機處理完成,中間不能控制自己的作業執行)
序列工作
並行工作
4 分時作業系統
計算機以時間片為單位輪流為各個使用者/作業服務,各個使用者可通過終端與計算機進行互動。
主要優點:使用者請求可以被及時響應,解決了人機互動問題。允許多個使用者同時使用一臺計算機,並且使用者對計算機的操作相互獨立,感受不到別人的存在。
主要缺點:不能優先處理一些緊急任務。作業系統對各個使用者/作業都是完全公平的,迴圈地為每個使用者/作業服務一個時間片,無法區分任務的緊急性。
5 實時作業系統
主要優點:能夠優先響應一些緊急任務,某些緊急任務不需要時間片排隊。
在實時作業系統的控制下,計算機系統接收到外部訊號後及時進行處理,並且要在嚴格的時限內處理完事件。實時作業系統的主要特點是及時性和可靠性。
6 其他幾種作業系統
4.7 知識回顧與重要考點
5 作業系統的執行機制、體系結構
5.0 知識總覽
什麼是指令?“指令”和我們平時所說的“程式碼”有什麼區別?
“指令”就是CPU能識別、執行的最基本命令(機器語言)
5.1 執行機制
兩種指令、兩種處理器狀態、兩種程式
問題:作業系統中的哪些功能應該由核心程式實現呢? 由該問題,我們引入作業系統核心的概念。
5.2 作業系統的核心
核心是計算機上配置的底層軟體,是作業系統最基本、最核心的部分。
實現作業系統核心功能的那些程式就是核心程式。
不同的作業系統對核心功能的劃分可能不一樣。
由此引出了作業系統的體系結構的問題,其中較為經典的分法是大核心和微核心
5.3 作業系統的體系結構
5.4 知識回顧與重要考點
6 中斷和異常
6.0 知識總覽
6.1 中斷機制的誕生
為了解決上述問題,人們發明了作業系統(作為計算機的管理者),引入中斷機制,實現了多道程式併發執行。
本質:發生中斷就意味著需要作業系統介入,開展管理工作
中斷過程:
把多道程式同時放入記憶體中,各個程式併發執行。
程序1開始在使用者態執行,執行一段時間後,
在完成一系列的管理工作後,作業系統把CPU的使用權交還給程序。接下來程序2在使用者態下開始執行,當程序2執行一段時間後,
為了保證系統的安全性,輸入輸出等操作屬於特權指令,不允許使用者程序直接使用。因此,普通的應用程式只能通過系統呼叫的方式,主動要求作業系統介入工作,讓作業系統代它完成“請求輸出”操作
完成這一系列的管理工作後,作業系統再次把CPU的使用權還給使用者程序,程序3開始工作,並且輸出裝置在作業系統的要求下會並行工作。
輸出裝置工作結束之後,會向CPU發出一個“I/O完成”的中斷訊號
接下來作業系統又會把CPU的使用權還給使用者程序,程序2又重新投入執行,開始後續的工作。
6.2 中斷的概念和作用
- 當中斷髮生時,CPU立即進入核心態
- 當中斷髮生後,當前執行的程序暫停執行,並由作業系統核心對中斷進行處理
- 對於不同的中斷訊號,作業系統會進行不同的處理
發生了中斷,就意味著需要作業系統介入,開展管理工作。由於作業系統的管理工作(比如程序切換、分配I/O裝置等)需要使用特權指令,因此CPU要從使用者態轉為核心態。中斷可以使CPU從使用者態切換為核心態,使作業系統獲得計算機的控制權。有了中斷,才能實現多道程式併發執行。
6.3 中斷的分類
另一種分類方式:
6.4 外中斷的處理過程
6.5 知識回顧與重要考點
7 系統呼叫
7.0 知識總覽
7.1 系統呼叫的概念、作用
應用程式通過系統呼叫來請求作業系統的服務。
系統中的各種共享資源都由作業系統統一掌管,因此在使用者程式中,凡是與資源有關的操作(如儲存分配、I/O操作、檔案管理等),都必須通過系統呼叫的方式向作業系統提出服務請求,由作業系統代為完成。這樣可以保證系統的穩定性和安全性,防止使用者進行非法操作。