當前位置:首頁 > 公眾號精選 > 小熊派開源社區(qū)
[導讀]HuaweiLiteOSHuaweiLiteOS是華為面向IoT領(lǐng)域,構(gòu)建的“統(tǒng)一物聯(lián)網(wǎng)操作系統(tǒng)和中間件軟件平臺”,以輕量級(內(nèi)核小于10k)、低功耗(1節(jié)5號電池最多可以工作5年),快速啟動,互聯(lián)互通,安全等關(guān)鍵能力,為開發(fā)者提供“一站式”完整軟件平臺,有效降低開發(fā)門檻、縮短開...

Huawei LiteOSHuawei LiteOS是華為面向IoT領(lǐng)域,構(gòu)建的“統(tǒng)一物聯(lián)網(wǎng)操作系統(tǒng)和中間件軟件平臺”,以輕量級(內(nèi)核小于10k)、低功耗(1節(jié)5號電池最多可以工作5年),快速啟動,互聯(lián)互通,安全等關(guān)鍵能力,為開發(fā)者提供“一站式”完整軟件平臺,有效降低開發(fā)門檻、縮短開發(fā)周期。下面對LiteOS基礎(chǔ)內(nèi)核的任務(wù)管理、內(nèi)存管理、中斷管理、信號量、互斥鎖五大模塊進行簡單介紹。

01
LiteOS內(nèi)核的任務(wù)管理


基本概念和功能任務(wù)是競爭系統(tǒng)資源的最小運行單元。任務(wù)可以使用或等待CPU、使用內(nèi)存空間等系統(tǒng)資源,并獨立于其它任務(wù)運行。
Huawei LiteOS是一個支持多任務(wù)的操作系統(tǒng),一個任務(wù)就表示一個線程,任務(wù)之間可以進行切換和通信。LiteOS的任務(wù)管理模塊提供任務(wù)創(chuàng)建、刪除、延時、掛起和恢復、更改任務(wù)優(yōu)先級、鎖定任務(wù)調(diào)度和解鎖任務(wù)調(diào)度、根據(jù)任務(wù)控制塊查詢?nèi)蝿?wù) ID、根據(jù) ID 查詢?nèi)蝿?wù)控制塊信息等功能。
因為LiteOS內(nèi)核是搶占式調(diào)度內(nèi)核,所以高優(yōu)先級的任務(wù)可以打斷低優(yōu)先級任務(wù),低優(yōu)先級任務(wù)必須在高優(yōu)先級任務(wù)阻塞或結(jié)束后才能得到調(diào)度,同優(yōu)先級任務(wù)會進行時間片輪轉(zhuǎn)調(diào)度。優(yōu)先級表示任務(wù)執(zhí)行的優(yōu)先順序,決定了在發(fā)生任務(wù)切換時即將要執(zhí)行的任務(wù)。LiteOS中的任務(wù)一共有32個優(yōu)先級 (0-31),最高優(yōu)先級為 0,最低優(yōu)先級為31。
任務(wù)控制TCB每一個任務(wù)都含有一個任務(wù)控制塊(TCB)。TCB 包含了任務(wù)上下文棧指針(stack pointer)、任務(wù)狀態(tài)(包括就緒、運行、阻塞、退出4種狀態(tài))、任務(wù)棧大?。ㄈ蝿?wù)棧里保存著局部變量、寄存器、函數(shù)參數(shù)、函數(shù)返回地址等)、任務(wù)優(yōu)先級、任務(wù)ID、任務(wù)名等信息。TCB相當于每個任務(wù)在內(nèi)核中的身份證,可以反映出每個任務(wù)運行情況。
運作機制在任務(wù)模塊初始化時,系統(tǒng)會先申請TCB需要的內(nèi)存空間。如果任務(wù)初始化成功,則系統(tǒng)對TCB內(nèi)容進行初始化。用戶創(chuàng)建任務(wù)時,系統(tǒng)會將任務(wù)棧進行初始化,預(yù)置上下文。此外,系統(tǒng)還會將“任務(wù)入口函數(shù)”地址放在相應(yīng)位置。這樣在任務(wù)第一次啟動進入運行態(tài)時,將會執(zhí)行“任務(wù)入口函數(shù)”。
02
LiteOS內(nèi)核的內(nèi)存管理

主要功能Huawei LiteOS的內(nèi)存管理模塊管理系統(tǒng)的內(nèi)存資源,主要包括內(nèi)存的初始化、分配及釋放,是操作系統(tǒng)的核心模塊之一。

在系統(tǒng)運行過程中,內(nèi)存管理模塊通過對內(nèi)存的申請/釋放操作,來管理用戶和OS對內(nèi)存的使用,使內(nèi)存的利用率和使用效率達到最優(yōu),同時最大限度地解決系統(tǒng)的內(nèi)存碎片問題。
Huawei LiteOS的內(nèi)存管理分為動態(tài)內(nèi)存管理和靜態(tài)內(nèi)存管理。
動態(tài)內(nèi)存管理在動態(tài)內(nèi)存池中分配用戶指定大小的內(nèi)存塊。
o  優(yōu)點:按需分配。
o  缺點:內(nèi)存池中可能出現(xiàn)碎片。
靜態(tài)內(nèi)存管理在靜態(tài)內(nèi)存池中分配用戶初始化時預(yù)設(shè)(固定)大小的內(nèi)存塊,初始化后塊大小不可變更。
o  優(yōu)點:分配和釋放效率高,靜態(tài)內(nèi)存池中無碎片。
o  缺點:只能申請到初始化預(yù)設(shè)大小的內(nèi)存塊,不能按需申請。
03
LiteOS內(nèi)核的中斷管理

中斷的介紹中斷是指出現(xiàn)需要時,CPU暫停執(zhí)行當前程序,轉(zhuǎn)而執(zhí)行新程序的過程。即在程序運行過程中,系統(tǒng)出現(xiàn)了一個必須由CPU立即處理的事務(wù)。此時,CPU暫時中止當前程序的執(zhí)行轉(zhuǎn)而處理這個事務(wù),這個過程就叫做中斷。
為什么需要中斷眾多周知,CPU的處理速度比外設(shè)的運行速度快很多,外設(shè)可以在沒有CPU介入的情況下完成一定的工作,但某些情況下需要CPU為其做一定的工作。通過中斷機制,在外設(shè)不需要CPU介入時,CPU可以執(zhí)行其它任務(wù),而當外設(shè)需要CPU時通過產(chǎn)生中斷信號使CPU立即中斷當前任務(wù)來響應(yīng)中斷請求。用戶通過中斷申請,注冊中斷處理程序,可以指定CPU響應(yīng)中斷請求時所執(zhí)行的具體操作。這樣可以使CPU避免把大量時間耗費在等待、查詢外設(shè)狀態(tài)的操作上,因此將大大提高系統(tǒng)實時性以及執(zhí)行效率。
相關(guān)的硬件與中斷相關(guān)的硬件可以劃分為三類:設(shè)備、中斷控制器、CPU本身。
  • 設(shè)備:發(fā)起中斷的源,當設(shè)備需要請求CPU時,產(chǎn)生一個中斷信號,該信號連接至中斷控制器。
  • 中斷控制器:中斷控制器是 CPU 眾多外設(shè)中的一個,它一方面接收其它外設(shè)中斷引腳的輸入,另一方面,它會發(fā)出中斷信號給CPU??梢酝ㄟ^對中斷控制器編程實現(xiàn)對中斷源的優(yōu)先級、觸發(fā)方式、打開和關(guān)閉源等設(shè)置操作。常用的中斷控制器有VIC(Vector Interrupt Controller)和GIC(General Interrupt Controller),在 ARM Cortex-M 系列中使用的中斷控制器是NVIC(Nested Vector Interrupt Controller)。
  • CPU:CPU會響應(yīng)中斷源的請求,中斷當前正在執(zhí)行的任務(wù),轉(zhuǎn)而執(zhí)行中斷處理程序。

主要功能Huawei LiteOS支持:
·  中斷初始化
·  中斷創(chuàng)建
·  開/關(guān)中斷
·  恢復中斷
·  中斷使能
·  中斷屏蔽
04
LiteOS內(nèi)核的信號量

基本概念和功能信號量(Semaphore)是一種實現(xiàn)任務(wù)間通信的機制,可以用于任務(wù)之間同步或臨界資源的互斥訪問。

信號量可以被任務(wù)獲取或者申請,不同的信號量通過信號量索引號來唯一確定,每個信號量都有一個計數(shù)值和任務(wù)隊列。通常信號量的計數(shù)值表示有效的資源數(shù),即剩下的可被占用的互斥資源數(shù)。當任務(wù)申請(Pend)信號量時,如果申請成功,則信號量的計數(shù)值遞減,如申請失敗,則掛起在該信號量的等待任務(wù)隊列上,一旦有任務(wù)釋放該信號量,則等待任務(wù)隊列中的任務(wù)被喚醒開始執(zhí)行。
信號量運作示意圖↓

使用場景信號量是一種非常靈活的同步方式,可以運用在多種場合中,實現(xiàn)鎖、同步、資源計數(shù)等功能,也能方便的用于任務(wù)與任務(wù),中斷與任務(wù)的同步中。
· 任務(wù)間互斥
用作互斥時,信號量創(chuàng)建后記數(shù)是滿的,在需要使用臨界資源時,先申請信號量,使其變空,這樣其他任務(wù)需要使用臨界資源時就會因為無法申請到信號量而阻塞,從而保證了臨界資源的安全。
· 任務(wù)間同步
用作同步時,信號量在創(chuàng)建后被置為空,任務(wù)1申請信號量而阻塞,任務(wù)2在某種條件發(fā)生后,釋放信號量,于是任務(wù)1得以進入READY或RUNNING態(tài),從而達到了兩個任務(wù)間的同步。
· 資源計數(shù)
用作資源計數(shù)時,信號量的作用是一個特殊的計數(shù)器,可以遞增或者遞減,但是值永遠不能為負值,典型的應(yīng)用場景是生產(chǎn)者與消費者的場景。
· 中斷與任務(wù)的同步
用作中斷與任務(wù)的同步時,可以在中斷未觸發(fā)時將信號量的值置為0,從而堵塞中斷服務(wù)處理任務(wù),一旦中斷被觸發(fā),則喚醒堵塞的中斷服務(wù)處理任務(wù)進行中斷處理。
05
LiteOS內(nèi)核的互斥鎖

基本概念和功能互斥鎖(mutex)又稱互斥型信號量,是一種特殊的二值信號量,用于實現(xiàn)對共享資源的獨占式處理?;コ怄i主要使用在多任務(wù)環(huán)境下,此時往往存在多個任務(wù)競爭同一共享資源的應(yīng)用場景。另外,Huawei LiteOS通過優(yōu)先級繼承算法,解決了信號量存在的優(yōu)先級翻轉(zhuǎn)問題。
運作機制任意時刻互斥鎖只有兩種狀態(tài):開鎖或閉鎖。當有任務(wù)持有時,互斥鎖處于閉鎖狀態(tài),這個任務(wù)獲得該互斥鎖的所有權(quán)。當該任務(wù)釋放它時,該互斥鎖被開鎖,任務(wù)失去該互斥鎖的所有權(quán)。當一個任務(wù)持有互斥鎖時,其他任務(wù)將不能再對該互斥鎖進行開鎖或持有,所以其他任務(wù)此時訪問這個公共資源將會被阻塞,直到互斥鎖被持有該鎖的任務(wù)釋放后,其他任務(wù)才能重新訪問該公共資源。
互斥鎖運作示意圖↓
本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉