手撕408|操作系統(tǒng)的運(yùn)行環(huán)境(3)
通知:冷月目前提供免費(fèi)408 1對(duì)1輔導(dǎo),有需要的同學(xué)可以加我微信:lengyue408。

手撕408系列之操作系統(tǒng)的運(yùn)行環(huán)境,冷月出品必是精品,大家好,我是學(xué)長(zhǎng)冷月。
在梳理本節(jié)的知識(shí)點(diǎn)之前,我們首先來(lái)搞懂指令和代碼的區(qū)別。
所謂代碼,其實(shí)就是高級(jí)程序語(yǔ)言設(shè)計(jì)中的代碼,類(lèi)似:C語(yǔ)言代碼、Python代碼。而指令其實(shí)是機(jī)器語(yǔ)言層面的一條條指令,計(jì)算機(jī)通過(guò)一條條指令來(lái)進(jìn)行一步步操作。
操作系統(tǒng)的運(yùn)行機(jī)制
操作系統(tǒng)在運(yùn)行的時(shí)候,其實(shí)分為兩種狀態(tài):核心態(tài)(管態(tài)、內(nèi)核態(tài))和用戶態(tài)(目態(tài))。
其次在CPU中執(zhí)行的程序,可以大致分為:內(nèi)核程序和用戶程序(用戶自編程序)。
它們的區(qū)別在于內(nèi)核程序可以執(zhí)行特權(quán)指令(不允許用戶直接使用的指令),例如:關(guān)中斷、清內(nèi)存、置時(shí)鐘、分配系統(tǒng)資源、修改段、頁(yè)表以及修改訪問(wèn)權(quán)限。
而用戶程序只能執(zhí)行非特權(quán)指令,也就是說(shuō)只能執(zhí)行不會(huì)對(duì)計(jì)算機(jī)的運(yùn)行產(chǎn)生風(fēng)險(xiǎn)的操作。
另外核心態(tài)可以執(zhí)行特權(quán)、非特權(quán)指令,用戶態(tài)則只能執(zhí)行非特權(quán)指令。
OS內(nèi)核
1、時(shí)鐘管理:管理所有與時(shí)間相關(guān)的操作,包括給用戶提供正確的時(shí)間、以及CPU的時(shí)鐘管理
2、中斷機(jī)制:多道程序設(shè)計(jì)中最重要的功能。
3、原語(yǔ):原語(yǔ)是底層可被公開(kāi)調(diào)用的小程序,其特點(diǎn):最接近硬件的部分、具有原子性(一旦執(zhí)行便一氣呵成執(zhí)行完畢,不能被中斷)、運(yùn)行時(shí)間短,調(diào)用頻繁。
4、對(duì)系統(tǒng)資源管理的功能
中斷和異常
中斷和異常通過(guò)硬件實(shí)現(xiàn),一旦發(fā)生立即進(jìn)入核心態(tài),將CPU控制權(quán)立馬交還給操作系統(tǒng)。
中斷也叫外中斷,它的信號(hào)干預(yù)來(lái)自CPU外部,例如有IO請(qǐng)求、人工干預(yù)。
異常也叫內(nèi)中斷(不能被CPU屏蔽),它的信號(hào)來(lái)源于CPU內(nèi)部,主要有
陷阱、陷入(自愿中斷,如系統(tǒng)調(diào)用)、故障(硬件故障)、終止(錯(cuò)誤終止)。
系統(tǒng)調(diào)用
既然特權(quán)指令只能在核心態(tài)執(zhí)行,那么用戶如果想要有需要執(zhí)行特權(quán)指令的業(yè)務(wù)場(chǎng)景怎么辦呢?這是系統(tǒng)調(diào)用就發(fā)揮了作用。
系統(tǒng)調(diào)用是操作系統(tǒng)提供給用戶與資源有關(guān)的操作。
用戶進(jìn)程在目態(tài)可以通過(guò)訪管指令來(lái)執(zhí)行系統(tǒng)調(diào)用程序,也就是OS提供給用戶的接口,通過(guò)硬件中斷機(jī)制將目態(tài)切為管態(tài),執(zhí)行完后再把結(jié)果返回給目態(tài)。具體操作如下圖:

最后,每日一題打卡群,每日一題將會(huì)在6月中旬重啟,沒(méi)加的同學(xué)可以加一下,和冷月一起水群~
明天別忘了來(lái)做題!
關(guān)注下方“學(xué)長(zhǎng)冷月”可獲得更多408答題技巧及資料。
請(qǐng)幫冷月點(diǎn)一下旁邊的在看,再點(diǎn)一個(gè)贊,一鍵三連支持一下!您的每一次點(diǎn)擊都是對(duì)冷月莫大的鼓勵(lì),謝謝??!
點(diǎn)“在看”給我一朵小黃花![]()

