性无码一区二区三区在线观看,少妇被爽到高潮在线观看,午夜精品一区二区三区,无码中文字幕人妻在线一区二区三区,无码精品国产一区二区三区免费

程序小白
認(rèn)證:優(yōu)質(zhì)創(chuàng)作者
所在專題目錄 查看專題
閑話內(nèi)核——一切皆為程序片服務(wù)
可搶占式內(nèi)核帶來的挑戰(zhàn)——并發(fā)
裸奔、事件驅(qū)動(dòng)、傳統(tǒng)多任務(wù)到底孰優(yōu)孰劣?
RTOS中的斷言機(jī)制——assert
作者動(dòng)態(tài) 更多
基于stm32采用PWM驅(qū)動(dòng)伺服控制器學(xué)習(xí)筆記
5天前
基于STM32驅(qū)動(dòng)TM1638學(xué)習(xí)筆記——軟件篇
04-19 12:42
基于TM1638驅(qū)動(dòng)8位數(shù)碼管設(shè)計(jì)分享
02-24 11:26
RT-Thread驅(qū)動(dòng)之路: Studio創(chuàng)建FAL分區(qū)⑤
01-02 08:30
RT-Thread驅(qū)動(dòng)之路: Studio 掛載通用SPI flash④
2024-12-23 13:41

閑話內(nèi)核——一切皆為程序片服務(wù)

      操作系統(tǒng)有多難?說實(shí)話它挺難的。但是站在用戶角度來看,他費(fèi)了很多的功夫,內(nèi)部各種算法與調(diào)度,只為達(dá)到一個(gè)簡單的目的,一切皆為程序片服務(wù)。

      嵌入式操作系統(tǒng)有如雨后春筍,吃不完,就算能吃完你也嚼不完,就算你能嚼得完,也消化不完,這時(shí)候我們會(huì)遇到很多問題,我們精力有限到底該學(xué)哪一款?其實(shí)也沒必要因?yàn)榇硕鄲?,因?yàn)殡m然他們各有千秋,但是當(dāng)你真正的解開其外衣以后,你會(huì)發(fā)現(xiàn)其實(shí)每一款RTOS其核心都是差不多的,不同的是在實(shí)時(shí)性、精簡性、組件豐富性、、移植性上會(huì)各有千秋,偏向不同,等你掌握其內(nèi)核以后對(duì)于任意一款都可以輕松上手。

      但是要想掌握內(nèi)核卻并不是那么容易的,需要你在實(shí)戰(zhàn)中不斷地遇到坑,填坑,你填的越多,你對(duì)他的理解就越深,掌握的就越牢固,這里我想換一種形式來聊聊關(guān)于內(nèi)核那些事,在這方面我也是個(gè)新手(高手直接繞行,沒啥意思),與大家一起學(xué)習(xí)一起分享。

切入正題,開篇就講一切皆為程序片服務(wù),那什么是程序片,如圖:

        從圖中可以看到,一段可執(zhí)行代碼就是一個(gè)程序片,至于多長怎么拆分,完全看你,一般來講都是按功能拆分,專業(yè)一點(diǎn)來講都是按照資源管理來拆分。

2.在裸奔的情況下,所有的程序片都是按順序執(zhí)行,這種方式有著得天獨(dú)厚的優(yōu)勢,就是一切都是按順序發(fā)生,完全可控,所以這種情況全局變量(也叫共享變量)的威力就顯現(xiàn)出來了,便于控制,便于定義和使用,不要跟我講什么封裝藝術(shù),什么管道機(jī)制,在這種路子下,梭哈最為實(shí)在。他的劣勢也自然很明顯,他們之間都是排著隊(duì)執(zhí)行的,想要突然插隊(duì),那幾乎是不可能的,當(dāng)然也能做但是會(huì)隨著需求的爆發(fā)(越來越多插隊(duì)情況)變得越來越難控制,因?yàn)樗麖纳聛砭妥⒍耸莻€(gè)順序結(jié)構(gòu)。

這種結(jié)構(gòu)能解決很大一部分問題,尤其是在嵌入式領(lǐng)域,深耕多年任勞任怨,但是很遺憾,他很難解決所有問題,不然也不會(huì)有后來的操作系統(tǒng)出現(xiàn)了。

內(nèi)核的本質(zhì)就是調(diào)度這些程序片,讓他們可以再任意位置被其它程序片打斷,轉(zhuǎn)而去執(zhí)行其它的時(shí)間片。

要完成這個(gè)調(diào)度任務(wù),我們來分析一下,需要做哪些工作:1.得給每個(gè)程序片起個(gè)名字吧,方便確認(rèn)誰是誰,好調(diào)度,學(xué)名:線程名或任務(wù)名。

2.既然定義了很多的程序片,如何調(diào)度呢?起跑線一樣的情況下,先讓誰跑總得有個(gè)先后順序,學(xué)名:線程優(yōu)先級(jí)或任務(wù)優(yōu)先級(jí)。

3.程序片要被切換,那么程序片最起碼要有兩種狀態(tài),停止態(tài)和運(yùn)行態(tài),實(shí)際比這要復(fù)雜很多,至少有四種,運(yùn)行態(tài)、就緒態(tài)、阻塞態(tài)、掛起態(tài)。

4.程序片在運(yùn)行時(shí)被切換,如何保存現(xiàn)場呢?想想中斷是怎么運(yùn)行的,你需要一個(gè)給每一個(gè)程序片定義一個(gè)棧,在程序片被搶占的時(shí)候保存執(zhí)行的現(xiàn)場。學(xué)名:線程?;蛉蝿?wù)棧。

內(nèi)核想要管理許多程序片,他該怎樣做呢,一張圖帶你讀懂內(nèi)核管理機(jī)制:

      除此以外還會(huì)遇到一個(gè)問題,程序片是應(yīng)用開發(fā)者的主戰(zhàn)場,但是內(nèi)核要實(shí)現(xiàn)管理功能,需要在程序片級(jí)做一些操作,于是程序片又被拆分了兩類出來,系統(tǒng)級(jí)和應(yīng)用級(jí),系統(tǒng)線程IDLE ,應(yīng)用線程。

聲明:本內(nèi)容為作者獨(dú)立觀點(diǎn),不代表電子星球立場。未經(jīng)允許不得轉(zhuǎn)載。授權(quán)事宜與稿件投訴,請(qǐng)聯(lián)系:editor@netbroad.com
覺得內(nèi)容不錯(cuò)的朋友,別忘了一鍵三連哦!
贊 4
收藏 5
關(guān)注 150
成為作者 賺取收益
全部留言
0/200
  • chaochao1545 2021-01-18 09:46
    精彩,很多東西還沒接觸到
    回復(fù)
  • jlh213 2020-12-16 13:24
    看肥肥姐的文章,很精彩,以小見大,見微知著,給人以沐浴春風(fēng),撥云見日的感覺,令人茅廁頓開,聽君一席話,勝讀十連輸,肥肥姐文章猶如迷失方向的小船,看到了指路的明燈,猶如滿天星空的繁星,而你卻是那指引方向的北極,文章幽默詼諧而不失技術(shù)含量,期待肥肥姐的佳作!
    回復(fù) 1條回復(fù)