1.1 操作系統(tǒng)
1.1.1 操作系統(tǒng)的概念和功能
概念
操作系統(tǒng)(Operating System
, OS
)是指控制和管理
整個計算機(jī)系統(tǒng)的硬件和軟件
資源,并合理地組織調(diào)度計算機(jī)的工作和資源的分配;以提供給用戶和其他軟件方便的接口和環(huán)境
;它是計算機(jī)系統(tǒng)中最基本的系統(tǒng)軟件
。
功能和目標(biāo)
①操作系統(tǒng)是系統(tǒng)資源的管理者
②向上層提供方便易用的服務(wù)
封裝
思想:操作系統(tǒng)把一些丑陋的硬件功能封裝成簡單易用的服務(wù),使用戶能更方便地使用計算機(jī),用戶無需關(guān)心底層硬件的原理,只需要對操作系統(tǒng)發(fā)出命令即可。
- GUI :圖形化用戶接口(
Graphical User Interface
)。用戶可以使用形象的圖形界面進(jìn)行操作,而不再需要記憶復(fù)雜的命令、參數(shù)
。例如,在Windows
操作系統(tǒng)中,刪除一個文件只需要把文件“拖拽”到回收站即可。 - 聯(lián)機(jī)命令接口 =交互式命令接口:用戶說一句,系統(tǒng)跟著做一句.例如,執(zhí)行
cmd
的相關(guān)命令 - 脫機(jī)命令接口 =批處理命令接口:用戶說一堆,系統(tǒng)跟著做一堆.例如,執(zhí)行以
bat
后綴的文件 - 程序接口 :可以在程序中進(jìn)行
系統(tǒng)調(diào)用
來使用程序接口。普通用戶不能直接使用程序接口,只能通過程序代碼間接
使用。例如,寫C語言Hello world
程序時,在printf
函數(shù)的底層就使用到了操作系統(tǒng)提供的顯式相關(guān)的“系統(tǒng)調(diào)用”
③是最接近硬件的一層軟件
需要實現(xiàn)對硬件機(jī)器的拓展
沒有任何軟件支持的計算機(jī)稱為裸機(jī)
。在裸機(jī)上安裝的操作系統(tǒng),可以提供資源管理功能和方便用戶的服務(wù)功能,將裸機(jī)改造成功能更強(qiáng)、使用更方便的機(jī)器
通常把覆蓋了軟件的機(jī)器成為擴(kuò)充機(jī)器
,又稱之為虛擬機(jī)
1.2 操作系統(tǒng)的特征
基本特征
并發(fā)、共享、虛擬、異步
并發(fā)
兩個或者多個事件在同一時間間隔
內(nèi)發(fā)生,這些事件宏觀上是同時發(fā)生
的,但微觀上是交替發(fā)生
的
使得系統(tǒng)具有處理和調(diào)度多個程序同時執(zhí)行的能力
操作系統(tǒng)的并發(fā)是通過分時實現(xiàn)的
注意 :并發(fā)是指在一個時間段
,并行是指在同一個時刻
,并行是指系統(tǒng)具有同時執(zhí)行或操作(硬件支持:多流水線或者多處理機(jī))
- 單核
CPU
同一時刻只能執(zhí)行一個程序,各個程序只能并發(fā)
地執(zhí)行 - 多核
CPU
同一時刻可以同時執(zhí)行多個程序,多個程序可以并行
地執(zhí)行
共享
互斥
共享方式: 例如打印機(jī)、磁帶, 同一時刻只能供一個進(jìn)程對資源進(jìn)行訪問 。這種資源稱作:臨界資源或者獨占資源同時
訪問方式: 一段時間內(nèi)允許多個進(jìn)程對資源進(jìn)行訪問 ,典型代表:磁盤設(shè)備重入碼編寫的文件
虛擬
虛擬是指把一個物理上的實體
變?yōu)槿舾蓚€邏輯上的對應(yīng)物
。物理實體(前者)是實際存在的,而邏輯上對應(yīng)物(后者)是用戶感受到的。
虛擬處理器:采用多道程序并發(fā)
的方式,讓每個終端用戶感覺到有多個處理器 時分復(fù)用技術(shù)
虛擬存儲器:將物理存儲變?yōu)樘摂M存儲器,邏輯上擴(kuò)充存儲器用 空分復(fù)用技術(shù)
也可以將一臺IO設(shè)備虛擬為多臺邏輯上的IO設(shè)備,并允許每個用戶占用一臺邏輯上的IO設(shè)備
異步
在多道程序環(huán)境下,允許多個程序并發(fā)執(zhí)行,但由于資源有限,進(jìn)程的執(zhí)行不是一貫到底
的,多道程序走走停停
,進(jìn)程以不可預(yù)知的速度向前進(jìn)
并發(fā)和共享的關(guān)系
- 并發(fā)性指計算機(jī)系統(tǒng)中同時存在著多個運行著的程序。
- 共享性是指系統(tǒng)中的資源可供內(nèi)存中多個并發(fā)執(zhí)行的進(jìn)程共同使用。
- 故并發(fā)性和共享性
互為存在條件
并發(fā)和虛擬的關(guān)系
如果失去了并發(fā)性,則一個時間段內(nèi)系統(tǒng)中只需運行一道程序,那么就失去了實現(xiàn)虛擬性的意義了。因此,沒有并發(fā)性,就談不上虛擬性
并發(fā)和異步的關(guān)系
只有系統(tǒng)擁有并發(fā)性,才有可能導(dǎo)致異步性。
1.3 操作系統(tǒng)的發(fā)展與分類
手工操作階段
- 主要缺點: 用戶獨占全機(jī)、人機(jī)速度矛盾導(dǎo)致資源利用率極低
單道批處理
引入脫機(jī)輸入/輸出技術(shù)
(用外圍機(jī)+磁帶完成),并由監(jiān)督程序負(fù)責(zé)控制作業(yè)的輸入、輸出
- 主要優(yōu)點:緩解了一定 程度的人機(jī)速度矛盾, 資源利用率有所提升。
- 主要缺點:內(nèi)存中僅能
有一道程序運行
,只有 該程序運行結(jié)束之后才 能調(diào)入下一道程序。CPU有大量的時間是在 空閑等待I/O完成
。資源 利用率依然很低。
多道批處理
- 主要優(yōu)點:多道程序
并發(fā)
執(zhí)行,共享
計算機(jī) 資源。資源利用率大幅提升
,CPU和其他資源更能保持“忙碌”狀態(tài),系統(tǒng)吞吐量增大。 - 主要缺點:用戶響應(yīng)時間長,
沒有人機(jī)交互功能
(用戶提交自己的作業(yè)之后就只能等待計算機(jī)處理完成,中間不能控制自己的作業(yè) 執(zhí)行。eg:無法調(diào)試程序/無法在程序運行過 程中輸入一些參數(shù))
分時操作
分時操作系統(tǒng):計算機(jī)以時間片
為單位輪流
為各個用戶/作業(yè)服務(wù),各個用戶可通過終端與計算機(jī)進(jìn)行交互。
- 主要優(yōu)點:用戶請求可以被即時響應(yīng),
解決了人機(jī)交互問題
。允許多個用戶同時使用一臺計算機(jī),并且用戶對計算機(jī)的操作相互獨立,感受不到別人的存在。 - 主要缺點:
不能優(yōu)先處理一些緊急任務(wù)
。操作系統(tǒng)對各個用戶/作業(yè)都是完全公平的,循環(huán)地為每個用戶/作業(yè)服務(wù)一個時間片,不區(qū)分任務(wù)的緊急性。
實時操作
在實時操作系統(tǒng)的控制下,計算機(jī)系統(tǒng)接收到外部信號后及時進(jìn)行處理,并且要在嚴(yán)格的時限內(nèi)處理完事件
。實時操作系統(tǒng)的主要特點是及時性和可靠性
- 主要優(yōu)點:能夠
優(yōu)先響應(yīng)一些緊急任務(wù)
,某些緊急任務(wù)不需時間片排隊。
其他幾種操作系統(tǒng)
- 網(wǎng)絡(luò)操作系統(tǒng) :是伴隨著計算機(jī)網(wǎng)絡(luò)的發(fā)展而誕生的,能把網(wǎng)絡(luò)中各個計算機(jī)有機(jī)地結(jié)合起來,實現(xiàn)數(shù)據(jù)傳送等功能, 實現(xiàn)網(wǎng)絡(luò)中各種資源的共享(如文件共享)和各臺計算機(jī)之間的通信 。(如:
Windows NT
就是一種典型的網(wǎng)絡(luò)操作系統(tǒng),網(wǎng)站服務(wù)器就可以使用) - 分布式操作系統(tǒng) :主要特點是
分布性和并行性
。系統(tǒng)中的各臺計算機(jī)地位相同, 任何工作都可以分布在這些計算機(jī)上,由它們并行、協(xié)同完成這個任務(wù) 。 - 個人計算機(jī)操作系統(tǒng) :如
Windows XP
、MacOS
,方便個人使用。
1.4 操作系統(tǒng)的運行機(jī)制
運行機(jī)制
兩種處理器狀態(tài):內(nèi)核態(tài) & 用戶態(tài)
CPU
中有一個寄存器叫 程序狀態(tài)字寄存器(PSW)
,其中有個二進(jìn)制位,1表示內(nèi)核態(tài)
,0表示用戶態(tài)
別名:**內(nèi)核態(tài)=核心態(tài)=管態(tài);用戶態(tài)=目態(tài)**
- CPU 有兩種狀態(tài),“內(nèi)核態(tài)”和“用戶態(tài)”
- 處于內(nèi)核態(tài)時,說明此時正在運行的是
內(nèi)核程序
,此時可以執(zhí)行特權(quán)指令
- 處于用戶態(tài)時,說明此時正在運行的是
應(yīng)用程序
,此時只能執(zhí)行非特權(quán)指令
- 處于內(nèi)核態(tài)時,說明此時正在運行的是
- 內(nèi)核態(tài)、用戶態(tài)的切換
- 內(nèi)核態(tài)--用戶態(tài):執(zhí)行一條
特權(quán)指令
——修改PSW的標(biāo)志位
為“用戶態(tài)”,這個動作意味著操作系統(tǒng)將主動讓出
CPU使用權(quán) - 用戶態(tài)--內(nèi)核態(tài):由“ 中斷 ”引發(fā),
硬件自動完成變態(tài)過程
,觸發(fā)中斷信號意味著操作系統(tǒng)將強(qiáng)行奪回
CPU的使用權(quán)
- 內(nèi)核態(tài)--用戶態(tài):執(zhí)行一條
內(nèi)核
內(nèi)核是計算機(jī)上配置的底層軟件
,是操作系統(tǒng)最基本、最核心的部分。實現(xiàn)操作系統(tǒng)內(nèi)核功能的那些程序就是內(nèi)核程序。
原語
原語是一種特殊的程序。是最接近硬件的部分,這種程序的運行具有原子性
。
大內(nèi)核和微內(nèi)核
操作系統(tǒng)的體系結(jié)構(gòu)問題與企業(yè)的管理問題
很相似。
- 大內(nèi)核 :企業(yè)初創(chuàng)時體量不大,管理層的人會負(fù)責(zé)大部分的事情。優(yōu)點是效率高;缺點是組織結(jié)構(gòu)混亂,難以維護(hù)。
- 微內(nèi)核 :隨著企業(yè)體量越來越大,管理層只負(fù)責(zé)最核心的一些工作。優(yōu)點是組織結(jié)構(gòu)清晰,方便維護(hù);缺點是效率低
1.5 中斷和異常
中斷的作用
CPU 上會運行兩種程序,一種是操作系統(tǒng)內(nèi)核程序,一種是應(yīng)用程序
中斷是讓操作系統(tǒng)內(nèi)核奪回CPU使用權(quán)
的唯一途徑
中斷的類型
- 內(nèi)中斷 : 與當(dāng)前執(zhí)行的指令
有關(guān)
,中斷信號來源于CPU內(nèi)部
- 外中斷 : 與當(dāng)前執(zhí)行的指令
無關(guān)
,中斷信號來源于CPU外部
中斷機(jī)制的基本原理
不同的中斷信號,需要用不同的中斷處理程序來處理 。當(dāng)CPU檢測到中斷信號后,會根據(jù)中斷信號的類型去查詢中斷向量表
,以此來找到相應(yīng)的中斷處理程序在內(nèi)存中的存放位置。
1.6 系統(tǒng)調(diào)用
- 系統(tǒng)調(diào)用與庫函數(shù)的區(qū)別
“系統(tǒng)調(diào)用”是操作系統(tǒng)提供給應(yīng)用程序
(程序員/編程人員)使用的接口,可以理解為一種可供應(yīng)用程序調(diào)用的特殊函數(shù),應(yīng)用程序可以通過系統(tǒng)調(diào)用來請求獲得操作系統(tǒng)內(nèi)核
的服務(wù)
應(yīng)用程序通過系統(tǒng)調(diào)用請求操作系統(tǒng)的服務(wù)。而系統(tǒng)中的各種共享資源都由操作系統(tǒng)內(nèi)核統(tǒng)一掌管,因此 凡是與共享資源有關(guān)的操作(如存儲分配、I/O操作、文件管理等),都必須通過系統(tǒng)調(diào)用的方式向操作系統(tǒng)內(nèi)核提出服務(wù)請求 ,由操作系統(tǒng)內(nèi)核代為完成。這樣可以保證系統(tǒng)的穩(wěn)定性和安全性
,防止用戶進(jìn)行非法操作。
1.7 操作系統(tǒng)的體系結(jié)構(gòu)
- 典型的大內(nèi)核/宏內(nèi)核/單內(nèi)核 操作系統(tǒng):
Linux、UNIX
- 典型的 微內(nèi)核 操作系統(tǒng):
Windows NT
-
操作系統(tǒng)
+關(guān)注
關(guān)注
37文章
6689瀏覽量
123143 -
軟件
+關(guān)注
關(guān)注
69文章
4710瀏覽量
87092 -
計算機(jī)系統(tǒng)
+關(guān)注
關(guān)注
0文章
277瀏覽量
24072
發(fā)布評論請先 登錄
相關(guān)推薦
評論