發布時間: 2018-03-06 11:38:19
?LiteOS Kernel基本框架
Huawei LiteOS基礎內核是最精簡的Huawei LiteOS操作系統,包括: 任務管理、內存管理、時間管理、通信機制、中斷管理、隊列管理、事件管理、定時器、異常管理等操作系統基礎組件,可以單獨運行。
?LiteOS Kernel模塊 - 任務
任務是競爭系統資源的最小運行單元。任務可以使用或等待CPU、使用內存空間等系統資源,并獨立于其它任務運行。
Huawei LiteOS的任務模塊提供任務的創建、刪除、延遲、掛起、恢復等功能,以及鎖定和解鎖任務調度。任務是搶占式調度機制,同時支持時間片輪轉調度方式。
可以類比理解windows任務管理器,查看每個任務占用內存和CPU的情況。
時間片輪轉調度是一種最古老,最簡單,最公平且使用最廣的算法。
每個進程被分配一個時間段,稱作它的時間片,即該進程允許運行的時間。如果在時間片結束時進程還在運行,則CPU將被剝奪并分配給另一個進程。如果進程在時間片結束前阻塞或結束,則CPU當即進行切換。調度程序所要做的就是維護一張就緒進程列表,當進程用完它的時間片后,它被移到隊列的末尾。 CPU假如比做一個游戲機,現在A,B,C都想玩,如何去分配呢,時間片輪轉調度就是來分配這游戲機的,先讓A玩三分鐘,再讓B玩三分鐘,再讓C玩三分鐘,再來讓A玩三分鐘,如此循環。
任務創建后,內核可以執行鎖任務調度,解鎖任務調度,掛起,恢復,延時等操作,同時也可以設置任務優先級,獲取任務優先級。任務結束的時候,如果任務的狀態是自刪除狀態(LOS_TASK_STATUS_DETACHED),則進行當前任務自刪除操作。
LiteOS Kernel模塊 - 內存管理 (1)
內存管理模塊管理系統的內存資源,它是操作系統的核心模塊之一。
Huawei LiteOS的內存管理提供靜態內存和動態內存兩種算法,支持內存申請、釋放。目前支持的內存管理算法有固定大小的BOX算法、動態申請DLINK算法。
提供內存統計、內存越界檢測功能。
內存是計算機中重要的部件之一,它是與CPU進行溝通的橋梁。計算機中所有程序的運行都是在內存中進行的,因此內存的性能對計算機的影響非常大。內存(Memory)也被稱為內存儲器,其作用是用于暫時存放CPU中的運算數據,以及與硬盤等外部存儲器交換的數據。
動態內存:在動態內存池中分配用戶指定大小的內存塊。
優點:按需分配。
缺點:內存池中可能出現碎片。
靜態內存:在靜態內存池中分配用戶初始化時預設(固定)大小的內存塊。
優點:分配和釋放效率高,靜態內存池中無碎片。
缺點:只能申請到初始化預設大小的內存塊,不能按需申請。
動態內存管理主要是在用戶需要使用大小不等的內存塊的場景中使用。
當用戶需要分配內存時,可以通過操作系統的動態內存申請函數索取指定大小內存塊,一旦使用完畢,通過動態內存釋放函數歸還所占用內存,使之可以重復使用。
LiteOS Kernel模塊 - 內存管理 (3) – 靜態內存
當用戶需要使用固定長度的內存時,可以使用靜態內存分配的方式獲取內存,一旦使用完畢,通過靜態內存釋放函數歸還所占用內存,使之可以重復使用。 ?
LiteOS Kernel模塊 - 中斷
中斷是指出現需要時,CPU暫停執行當前程序,轉而執行新程序的過程。
Huawei LiteOS的中斷支持中斷創建、開/關中斷、恢復中斷、中斷使能、中斷屏蔽等功能。
中斷是計算機中的一個十分重要的概念,在現代計算機中毫無例外地都要采用中斷技術。什么是中斷呢?可以舉一個日常生活中的例子來說明,假如你正在給朋友寫信,電話鈴響了。這時,你放下手中的筆,去接電話。通話完畢,再繼續寫信。這個例子就表現了中斷及其處理過程:電話鈴聲使你暫時中止當前的工作,而去處理更為急需處理的事情(接電話),把急需處理的事情處理完畢之后,再回頭來繼續原來的事情。在這個例子中,電話鈴聲稱為“中斷請求”,你暫停寫信去接電話叫作“中斷響應”,接電話的過程就是“中斷處理”,相應地,在計算機執行程序的過程中,由于出現某個特殊情況(或稱為“事件”),使得CPU中止現行程序,而轉去執行處理該事件的處理程序(俗稱中斷處理或中斷服務程序),待中斷服務程序執行完畢,再返回斷點繼續執行原來的程序,這個過程稱為中斷。 中斷是一個過程
根據需要,用戶通過中斷申請,注冊中斷處理程序,可以指定CPU響應中斷請求時所執行的具體操作。
LiteOS Kernel模塊 - 隊列
隊列又稱消息隊列,是一種常用于任務間通信的數據結構,實現了接收來自任務或中斷的不固定長度的消息,并根據不同的接口選擇傳遞消息是否存放在自己空間。
Huawei LiteOS的消息隊列支持隊列的創建、刪除、發送和接收功能。
消息以先進先出方式排隊,支持異步讀寫工作方式
讀隊列和寫隊列都支持超時機制
發送消息類型由通信雙方約定,可以允許不同長度(不超過隊列節點較大值)消息
一個任務能夠從任意一個消息隊列接收和發送消息
多個任務能夠從同一個消息隊列接收和發送消息
當隊列使用結束后,如果是動態申請的內存,需要通過釋放內存函數回收
Huawei LiteOS中Message消息處理模塊提供了以下功能:
LiteOS Kernel模塊 -信號量
信號量是一種實現任務間通信的機制,實現任務之間同步或臨界資源的互斥訪問。常用于協助一組相互競爭的任務來訪問臨界資源。
l Huawei LiteOS的信號量支持信號量的創建、刪除、PV等功能
信號量是一種非常靈活的同步方式,可以運用在多種場合中,實現鎖、同步、資源計數等功能,也能方便的用于任務與任務,中斷與任務的同步中。
互聯框架解決不同協議終端的互聯互通 ?
? 家居場景里,終端使用不同類型的無線、有線通信協議,互聯的難度大
? 設備、網關、云端沒有統一的應用接口,無法實現互通
? CoAP(Constrained Application Protocol):由于物聯網中的很多設備都是資源受限型的,即只有少量的內存空間和有限的計算能力,所以傳統的HTTP協議應用在物聯網上就顯得過于龐大而不適用。 IETF的CoRE工作組提出了一種基于REST架構的CoAP協議。
? REST即表述性狀態傳遞(英文:Representational State Transfer,簡稱REST)是Roy Fielding博士在2000年他的博士論文中提出來的一種軟件架構風格。它是一種針對網絡應用的設計和開發方式,可以降低開發的復雜性,提高系統的可伸縮性。
優化Mesh自組網能力,滿足海量終端組網 ?
海量路燈自組網(快速自愈、高可靠性、支持1000+節點,組網時間<20mins)
傳感框架
傳感框架提供多傳感器統一管理,更低時延、更高精度,傳感智能化?
? 提供多種傳感算法,應用無需開發,直接調用
? 抽象不同類型傳感器接口,屏蔽硬件細節,實現即插即用。
安全框架
安全框架提供端管云協同安全能力
下一篇: {華為物聯網}操作系統