1. 程式人生 > 其它 >王道_作業系統 第一章 導論

王道_作業系統 第一章 導論

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 中斷的概念和作用

  1. 中斷髮生時,CPU立即進入核心態
  2. 中斷髮生後當前執行的程序暫停執行,並由作業系統核心對中斷進行處理
  3. 對於不同的中斷訊號,作業系統會進行不同的處理

發生了中斷,就意味著需要作業系統介入,開展管理工作。由於作業系統的管理工作(比如程序切換、分配I/O裝置等)需要使用特權指令,因此CPU要從使用者態轉為核心態。中斷可以使CPU從使用者態切換為核心態,使作業系統獲得計算機的控制權。有了中斷,才能實現多道程式併發執行。


6.3 中斷的分類


另一種分類方式


6.4 外中斷的處理過程


6.5 知識回顧與重要考點


7 系統呼叫

7.0 知識總覽


7.1 系統呼叫的概念、作用


​ 應用程式通過系統呼叫來請求作業系統的服務。

系統中的各種共享資源都由作業系統統一掌管,因此在使用者程式中,凡是與資源有關的操作(如儲存分配、I/O操作、檔案管理等),都必須通過系統呼叫的方式向作業系統提出服務請求,由作業系統代為完成。這樣可以保證系統的穩定性和安全性,防止使用者進行非法操作。


7.2 系統呼叫與庫函式的區別


7.3 系統呼叫背後過程


7.4 知識回顧與重要考點