1、操作系統的概念及定義
1.1 操作系統的層次結構
從上至下,用戶——應用程序——操作系統——裸機(純硬件)。
操作系統OS(Operating System)是指控制和管理整個計算機系統的硬件和軟件資源,並合理地組織調度計算機的工作和資源的分配(從當前層次結構中間往兩邊看),提供用戶和其他軟件方便的接口和環境(當前層次結構從下往上看),同時它是計算機系統中最基本的系統軟件(層次結構從上往下看)。
1.2 操作系統的功能和目標
- 操作系統作為系統資源的管理者(包括軟件、硬件、文件等),需要提供什么功能
- 操作系統作為用戶和計算機硬件之間的接口,要為其上層的用戶、應用程序提供簡單易用的服務
- 操作系統作為最接近硬件的層次,需要在純硬件的基礎上實現什么功能
1.2.1、系統資源的管理者
1.2.2、作為用戶與計算機硬件之間的接口
常考命令接口和程序接口,GUI了解即可
命令接口:
-
聯機命令接口(交互式命令接口):
類比cmd窗口,輸入一句指令,計算機處理一句指令
-
脫機命令接口(批處理命令接口):
類比C盤內*.bat文件
程序接口(系統調用):
易混概念:系統調用 = 系統調用命令 = 廣義指令
1.2.3、作為最接近硬件的層次
1.3 操作系統的四個特征
四大特征:並發、共享、虛擬、異步
1.3.1 並發
並發和並行的區分
- 並發
- 之兩個或多個事件在同一時間間隔內發生。這些事件在宏觀上是同時發生的,但微觀上是交替發生的
- 並行
- 指兩個或者多個事件在同一時刻同時發生
理解:
操作系統的並發性指的是計算機系統中同時存在着多個運行的程序
事實上,操作系統就是”伴隨多道程序技術“而出現的,因此,操作系統和程序並發是一起誕生的
雖然當今計算機一般是多核CPU,但並發性依然必不可少
1.3.2 共享
共享即資源共享,是指系統中資源可供內存眾多個並發執行的進程共同使用。
分為互斥共享和同步共享
所謂“同時”,往往是宏觀上的,而在微觀上,這些進程可能是交替地對該資源進行訪問(即分時共享)
例子:
並發和共享地關系
兩者互為存在條件
- 如果失去了並發性,共享性就失去了意義
- 如果失去共享性,並發性也無法實現
1.3.3 虛擬
虛擬是指把一個物理上的實體變為若干個邏輯上的對應物。物理實體實際存在,而邏輯對應物使用戶感受到的。
-
公分復用技術
-
時分復用技術(時間片)
並發性是虛擬性地前提
1.3.4 異步
異步是指多到程序環境下,允許多個程序並發執行,但資源有限,進程的執行不是一貫到底,而是走走停停,以不可預知的速度向前推進,這就是進程的異步性
1.4 操作系統的發展和分類
-
手工操作階段
- 用戶獨占全機,人機速度矛盾導致資源利用率極低
-
批處理階段:脫機輸入/輸出技術 (用磁帶完成) 監督程序負責控制作業的輸入、輸出
-
單道批處理系統:
-
多道批處理系統:
-
-
分時操作階段
-
實時操作系統
- 硬實時系統:必須在絕對嚴格地規定時間內完成處理
- 軟實時系統:能接受偶爾違反是時間規定
1.5 操作系統的運行機制和體系結構
1.5.1 運行機制
-
兩種指令:
-
指令的概念:指令就是CPU能識別的最基本的命令
一條高級語言(如C)翻譯過來可能會對應多條指令
-
特權指令
-
非特權指令
-
-
兩種處理器狀態
CPU判斷當前是否可以執行特權指令
-
用戶態(目態)
-
核心態(管態)
-
-
兩種程序
-
內核程序
-
應用程序
-
1.5.2 操作系統內核
內核是計算機上配置的底層軟件,是操作系統最基本最核心的部分。實現操作系統內核功能的那些程序就是內核程序。
1.5.3 操作系統體系結構
-
大內核
-
微內核
1.6 中斷和異常
1.6.1 中斷機制的誕生
早期計算機個程序只能串行執行,系統資源利用率低,為了解決該問題,人們發明了操作系統,引入了中斷機制,實現了多道程序並發執行。
發生中斷就意味着需要操作系統介入,開展管理工作
中斷是CPU從用戶態進入核心態的唯一途徑
1.6.2 中斷的分類
1.6.3 外中斷的處理過程
1.7 系統調用
1.7.1 什么是系統調用、作用?
系統調用會使處理器從用戶態進入核心態
操作系統,面向用戶是命令接口,面向應用程序是程序接口(由一組系統調用組成)
概念:“系統調用”是操作系統提供給應用程序(程序員)使用的接口,可以理解為可供應用程序調用的一種特殊函數,應用程序可以發出系統調用請求來獲得操作系統的服務。
系統調用的目的:
系統調用按功能分類
注意:系統調用相關處理涉及到對系統資源的管理、對進程的控制,這些功能需要執行一些特權指令才能完成,因此系統調用的相關處理需要在核心態下進行。
1.7.2 系統調用和庫函數的區別
1.7.3 系統調用背后的過程
過程;
傳遞系統調用參數 -> 執行陷入指令(用戶態)-> 執行系統調用相應服務程序(核心態)-> 返回用戶程序
注意點:
- 陷入指令是在用戶態執行的,執行陷入指令之后立即引發一個內中斷,從而CPU進入核心態
- 發出系統調用請求是在用戶態,而對系統調用的相應處理是在核心態下進行
- 陷入指令是唯一一個只能在用戶態執行,而不能在核心態執行的指令