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