操作系統(tǒng)運行環(huán)境
- CPU狀態(tài)
- 中斷/異常機制
操作系統(tǒng)運行機制
- 系統(tǒng)調(diào)用
處理器狀態(tài)(模式)
中央處理器(CPU)
處理器由運算器擂煞、控制器、一系列的寄存器以及高速緩存構(gòu)成趴乡。
有兩類寄存器:
- 用戶可見寄存器:高級語言編譯器通過優(yōu)化算法分配并使用之对省,以減少程序訪問內(nèi)存次數(shù)。
-
控制和狀態(tài)寄存器:用于控制處理器的操作晾捏,通常由操作系統(tǒng)代碼使用蒿涎。
控制和狀態(tài)寄存器
處理器的狀態(tài)(模式MODE)
現(xiàn)代處理器通常將CPU狀態(tài)設(shè)計劃分為兩種、三種或四種惦辛。
在程序狀態(tài)字寄存器PSW中專門設(shè)置一位劳秋,根據(jù)運行程序?qū)Y源和指令的使用權(quán)限而設(shè)置不同的CPU狀態(tài)。
特權(quán)指令和非特權(quán)指令
操作系統(tǒng)需要兩種CPU狀態(tài):
- 內(nèi)核態(tài)Kernel Mode:運行操作系統(tǒng)程序
- 用戶態(tài)User Mode:運行用戶程序
特權(quán)privilege指令:只能由操作系統(tǒng)使用胖齐、用戶程序不能使用的指令
非特權(quán)指令:用戶程序可以使用的指令
化對號的都是特權(quán)指令
CPU狀態(tài)之間的轉(zhuǎn)換
- 用戶態(tài) ---> 內(nèi)核態(tài)
中斷/異常/陷入機制 - 內(nèi)核態(tài) ---> 用戶態(tài)
設(shè)置程序狀態(tài)字PSW
陷入指令
又稱訪管指令玻淑,提供給用戶程序的接口,用戶調(diào)用操作系統(tǒng)的功能(服務(wù))呀伙。
中斷/異常機制
中斷/異常機制其實是CPU對系統(tǒng)發(fā)生的某個事件作出的一種反應(yīng)补履。
CPU暫停正在執(zhí)行的程序,保留現(xiàn)場后自動轉(zhuǎn)去執(zhí)行相應(yīng)事件的處理程序剿另,處理完成后返回斷點繼續(xù)執(zhí)行被打斷的程序箫锤。
對于操作系統(tǒng)的作用相當(dāng)于汽車的發(fā)動機,飛機的引擎雨女。
作用:
- 及時處理設(shè)備發(fā)出的中斷請求
- 可使OS捕獲用戶程序提出的服務(wù)請求
- 防止用戶程序執(zhí)行過程中的破壞性活動
為什么引入中斷與異常
- 中斷的引入:為了支持CPU和設(shè)備之間的并行操作
當(dāng)CPU啟動設(shè)備進行輸入/輸出后麻汰,設(shè)備便可以獨立工作,CPU轉(zhuǎn)去處理與此次輸入/輸出不相關(guān)的事情戚篙;當(dāng)設(shè)備完成輸入/輸出后五鲫,通過向CPU發(fā)中斷報告此次輸入/輸出的結(jié)果,讓CPU決定如何處理以后的事情岔擂。 - 異常的引入:表示CPU執(zhí)行指令時本身出現(xiàn)的問題
如算術(shù)溢出位喂、除零、取數(shù)時的奇偶錯乱灵,訪存地址時越界或執(zhí)行了“陷入指令”等塑崖,這時硬件改變了CPU當(dāng)前的執(zhí)行流程,轉(zhuǎn)到相應(yīng)的錯誤處理程序或異常處理程序或執(zhí)行系統(tǒng)調(diào)用痛倚。
事件
事件
中斷:外部事件规婆,正在運行的程序所不期望的。
異常:由正在執(zhí)行的指令引發(fā)
中斷與異常的小結(jié)
系統(tǒng)調(diào)用system call
系統(tǒng)調(diào)用是用戶在編程時可以調(diào)用的操作系統(tǒng)功能。
- 系統(tǒng)調(diào)用的作用
- 系統(tǒng)調(diào)用是操作系統(tǒng)提供給編程人員的唯一接口
- 使CPU狀態(tài)從用戶態(tài)陷入內(nèi)核態(tài)
- 系統(tǒng)調(diào)用的舉例
每個操作系統(tǒng)都提供幾百種系統(tǒng)調(diào)用(進程控制抒蚜、進程通信掘鄙、文件使用、目錄操作嗡髓、設(shè)備管理操漠、信息維護等)
關(guān)系
怎樣實現(xiàn)用戶程序的參數(shù)傳遞給內(nèi)核?
常用的3種實現(xiàn)方法:
- 由陷入指令自帶參數(shù)
陷入指令的長度有限饿这,且還要攜帶系統(tǒng)調(diào)用功能號浊伙,只能自帶有限的參數(shù)。 - 通過通用寄存器傳遞參數(shù)
這些寄存器是操作系統(tǒng)和用戶程序都能訪問的长捧,但寄存器的個數(shù)會限制傳遞參數(shù)的數(shù)量 - 在內(nèi)存中開辟專用堆棧區(qū)來傳遞參數(shù)