日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > windows >内容正文

windows

操作系统中抢占式和非抢占式内核的区别

發(fā)布時間:2023/12/20 windows 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 操作系统中抢占式和非抢占式内核的区别 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

編排 |?strongerHuang

微信公眾號 |?嵌入式專欄

操作系統(tǒng)分為搶占式內(nèi)核和非搶占式內(nèi)核,通常RTOS都是搶占式內(nèi)核。

下面就來講講搶占式內(nèi)核和非搶占式內(nèi)核的內(nèi)容。

非搶占式內(nèi)核

非搶占式內(nèi)核要求每個任務(wù)(線程)都做一些事情來明確放棄對 CPU 的控制,為了保持多任務(wù)并發(fā)的錯覺,必須要有這一步操作。

非搶占式調(diào)度也稱為協(xié)作多任務(wù),任務(wù)相互協(xié)作以共享 CPU,異步事件仍然由 ISR 處理。ISR 可以使更高優(yōu)先級的任務(wù)準(zhǔn)備好運行,但 ISR 總是返回到被中斷的任務(wù)。

只有當(dāng)當(dāng)前任務(wù)放棄 CPU 時,新的更高優(yōu)先級任務(wù)才會獲得對 CPU 的控制。

非搶占式內(nèi)核的優(yōu)點之一是中斷延遲更低,在任務(wù)級別,非搶占內(nèi)核也可以使用不可重入函數(shù)。每個任務(wù)都可以使用不可重入函數(shù),而不必?fù)?dān)心被另一個任務(wù)破壞。這是因為每個任務(wù)都可以在放棄 CPU 之前運行到完成。但是,不應(yīng)允許不可重入函數(shù)放棄對 CPU 的控制。

使用非搶占式內(nèi)核的任務(wù)級響應(yīng)可能比前臺/后臺系統(tǒng)低得多,因為任務(wù)級響應(yīng)現(xiàn)在由最長任務(wù)的時間給出。

非搶占式內(nèi)核的另一個優(yōu)點是較少需要通過使用信號量來保護(hù)共享數(shù)據(jù)。每個任務(wù)都擁有 CPU,你不必?fù)?dān)心任務(wù)會被搶占。當(dāng)然,這不是絕對的,在某些情況下,仍應(yīng)使用信號量。共享 I/O 設(shè)備可能仍需要使用互斥信號量;例如,任務(wù)可能仍需要對打印機(jī)的獨占訪問。

(1) 任務(wù)正在執(zhí)行但被中斷。

(2) 如果中斷被使能,CPU 向量(跳轉(zhuǎn))到 ISR。

(3) ISR 處理事件并使更高優(yōu)先級的任務(wù)準(zhǔn)備好運行。

(4) ISR完成后,執(zhí)行返回指令,CPU返回被中斷的任務(wù)。

(5) 任務(wù)代碼在中斷指令之后的指令處恢復(fù)。

(6) 當(dāng)任務(wù)代碼完成時,它調(diào)用內(nèi)核提供的服務(wù),將 CPU 交給另一個任務(wù)。

(7) 內(nèi)核看到更高優(yōu)先級的任務(wù)已經(jīng)準(zhǔn)備好運行,因此,內(nèi)核執(zhí)行上下文切換,以便它可以運行(即執(zhí)行)更高優(yōu)先級的任務(wù)來處理由 ISR 發(fā)出信號的事件。

非搶占式內(nèi)核最重要的缺點是響應(yīng)性:已準(zhǔn)備好運行的較高優(yōu)先級任務(wù)可能需要等待很長時間才能運行,因為當(dāng)前任務(wù)應(yīng)該及時放棄CPU使用權(quán)。

與前臺/后臺系統(tǒng)中的后臺執(zhí)行一樣,非搶占式內(nèi)核中的任務(wù)級響應(yīng)時間是不確定的;你永遠(yuǎn)不知道最高優(yōu)先級的任務(wù)何時才能獲得 CPU 的控制權(quán)。這個操作由你的應(yīng)用程序來決定怎么時候放棄對 CPU 的控制。

總而言之,非搶占式內(nèi)核允許每個任務(wù)運行,直到它自愿放棄對 CPU 的控制。中斷搶占任務(wù),ISR 完成后,ISR 返回到被中斷的任務(wù)。任務(wù)級響應(yīng)比前臺/后臺系統(tǒng)要好得多,但仍然是不確定的,因此,很少有商業(yè)內(nèi)核是非搶占式的。

搶占式內(nèi)核

μC/OS-II、RTT等大多數(shù)實時內(nèi)核都是搶占式的,準(zhǔn)備運行的最高優(yōu)先級任務(wù)始終被賦予 CPU 控制權(quán)。

當(dāng)一個任務(wù)使更高優(yōu)先級的任務(wù)準(zhǔn)備好運行時,當(dāng)前任務(wù)被搶占(掛起)并且更高優(yōu)先級的任務(wù)立即獲得 CPU 的控制權(quán)。

如果 ISR 使更高優(yōu)先級的任務(wù)準(zhǔn)備就緒,當(dāng) ISR 完成時,被中斷的任務(wù)被掛起并恢復(fù)新的更高優(yōu)先級任務(wù)。

(1) 任務(wù)正在執(zhí)行但被中斷。

(2) 如果中斷被使能,CPU 向量(跳轉(zhuǎn))到 ISR。

(3) ISR 處理事件并使更高優(yōu)先級的任務(wù)準(zhǔn)備好運行。ISR 完成后,調(diào)用內(nèi)核提供的服務(wù)(即調(diào)用內(nèi)核提供的函數(shù))。

(4) & (5) 該函數(shù)知道一個更重要的任務(wù)已經(jīng)準(zhǔn)備好運行,因此內(nèi)核將執(zhí)行上下文切換并執(zhí)行更重要的代碼而不是返回到被中斷的任務(wù)任務(wù)。當(dāng)更重要的任務(wù)完成時,內(nèi)核提供的另一個函數(shù)被調(diào)用,讓任務(wù)進(jìn)入休眠狀態(tài),等待事件(即 ISR)發(fā)生。

(6) & (7) 然后內(nèi)核“看到”需要執(zhí)行一個較低優(yōu)先級的任務(wù),并完成另一個上下文切換以恢復(fù)被中斷任務(wù)的執(zhí)行。

使用搶占式內(nèi)核,最高優(yōu)先級任務(wù)的執(zhí)行是確定性的;你可以確定它何時可以控制 CPU。因此,通過使用搶占式內(nèi)核可以最大限度地減少任務(wù)級響應(yīng)時間。

使用搶占式內(nèi)核的應(yīng)用程序代碼不應(yīng)使用不可重入函數(shù),除非通過使用互斥信號量確保對這些函數(shù)的獨占訪問,因為低優(yōu)先級和高優(yōu)先級任務(wù)都可以使用公共函數(shù)。如果較高優(yōu)先級的任務(wù)搶占正在使用該功能的較低優(yōu)先級的任務(wù),則可能會發(fā)生數(shù)據(jù)損壞。

總而言之,搶占式內(nèi)核始終執(zhí)行準(zhǔn)備運行的最高優(yōu)先級任務(wù)。中斷搶占任務(wù),完成 ISR 后,內(nèi)核將繼續(xù)執(zhí)行準(zhǔn)備運行的最高優(yōu)先級任務(wù)(而不是被中斷的任務(wù))。任務(wù)級別的響應(yīng)是最佳的和確定性的,當(dāng)系統(tǒng)響應(yīng)性很重要時,建議使用搶占式內(nèi)核。

免責(zé)聲明:本文素材來源網(wǎng)絡(luò),版權(quán)歸原作者所有。如涉及作品版權(quán)問題,請與我聯(lián)系刪除。

------------?END?------------


推薦閱讀:

專輯|Linux文章匯總

專輯|程序人生

專輯|C語言

我的知識小密圈

關(guān)注公眾號,后臺回復(fù)「1024」獲取學(xué)習(xí)資料網(wǎng)盤鏈接。

歡迎點贊,關(guān)注,轉(zhuǎn)發(fā),在看,您的每一次鼓勵,我都將銘記于心~

嵌入式Linux

微信掃描二維碼,關(guān)注我的公眾號

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎

總結(jié)

以上是生活随笔為你收集整理的操作系统中抢占式和非抢占式内核的区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。