溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux2.6內核嵌入式系統(tǒng)有哪些特點

發(fā)布時間:2021-12-24 14:06:55 來源:億速云 閱讀:185 作者:iii 欄目:系統(tǒng)運維

這篇文章主要介紹“Linux2.6內核嵌入式系統(tǒng)有哪些特點”,在日常操作中,相信很多人在Linux2.6內核嵌入式系統(tǒng)有哪些特點問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Linux2.6內核嵌入式系統(tǒng)有哪些特點”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

1.可搶占內核

在先前的內核版本中(包括2.4內核)不允許搶占以核心態(tài)運行的任務(包括通過系統(tǒng)調用進入內核模式的用戶任務),只能等待它們自己主動釋放CPU。這樣必然導致一些重要任務延時以等待系統(tǒng)調用結束。

一個內核任務可以被搶占,為的是讓重要的用戶應用程序可以繼續(xù)運行。這樣做最主要的優(yōu)勢是極大地增強系統(tǒng)的用戶交互性。

2.6內核并不是真正的RTOS(Real Time Operation System),其在內核代碼中插入了搶占點,允許調度程序中止當前進程而調用更高優(yōu)先級的進程,通過對搶占點的測試避免不合理的系統(tǒng)調用延時。2.6內核在一定程度上是可搶占的,比2.4內核具備更好的響應性。但也不是所有的內核代碼段都可以被搶占,可以鎖定內核代碼的關鍵部分,確保CPU的數(shù)據(jù)結構和狀態(tài)始終受到保護而不被搶占。

軟件需要滿足最終時間限制與虛擬內存請求頁面調度之間是相互矛盾的。慢速的頁錯誤處理將會破壞系統(tǒng)的實時響應性,而2.6內核可以編譯無虛擬內存系統(tǒng)避免這個問題,這是解決問題的關鍵,但要求軟件設計者有足夠的內存來保證任務的執(zhí)行。

2.有效的調度程序

2.6版本的 Linux內核使用了由 Ingo Molnar開發(fā)的新的調度器算法,稱為O(1)算法,如圖1所示。它在高負載情況下執(zhí)行得極其出色,并且當有很多處理器并行時也可以很好地擴展[2]。過去的調度程序需要查找整個ready task隊列,并且計算它們的重要性以決定下一步調用的task,需要的時間隨task數(shù)量而改變。O(1)算法則不再每次掃描所有的任務,當task就緒時被放入一個活動隊列中,調度程序每次從中調度適合的task,因而每次調度都是一個固定的時間。任務運行時分配一個時間片,當時間片結束,該任務將放棄處理器并根據(jù)其優(yōu)先級轉到過期隊列中?;顒雨犃兄腥蝿杖空{度結束后,兩個隊列指針互換,過期隊列成為當前隊列,調度程序繼續(xù)以簡單的算法調度當前隊列中的任務。這在多處理器的情況更能提高SMP的效率,平衡處理器的負載,避免進程在處理器間的跳躍。

3.同步原型與共享內存

多進程應用程序需要共享內存和外設資源,為避免競爭采用了互斥的方法保證資源在同一時刻只被一個任務訪??。Linux內核用一個系統(tǒng)調用來決定一個線程阻塞或是繼續(xù)執(zhí)行來實現(xiàn)互斥,在線程繼續(xù)執(zhí)行時,這個費時的系統(tǒng)調用就沒有必要了。Linux2.6所支持的Fast User-Space Mutexes 可以從用戶空間檢測是不是需要阻塞線程,只在需要時執(zhí)行系統(tǒng)調用終止線程。它同樣采用調度優(yōu)先級來確定將要執(zhí)行的進程[4]。 多處理器嵌入式系統(tǒng)各處理器之間需要共享內存,對稱多處理技術對內存訪問采用同等優(yōu)先級,在很大程度上限制了系統(tǒng)的可量測性和處理效率。Linux2.6則提供了新的管理方法――NUMA(Non Uniform Memory Access)。NUMA根據(jù)處理器和內存的拓撲布局,在發(fā)生內存競爭時,給予不同處理器不同級別權限以解決內存搶占瓶頸,提高吞吐量。

4.POSIX線程及NPTL

新的線程模型基于一個1:1的線程模型(一個內核線程對應一個用戶線程),包括內核對新的 NPTL(Native POSIX Threading Library)的支持,這是對以前內核線程方法的明顯改進。2.6內核同時還提供POSIX signals和POSIX high-resolution timers。POSIX signals不會丟失,并且可以攜帶線程間或處理器間的通信信息。嵌入式系統(tǒng)要求系統(tǒng)按時間表執(zhí)行任務,POSIX timer可以提供1kHz的觸發(fā)器使這一切變得簡單,從而可以有效地控制進度。

5.微控制器的支持

Linux2.6內核加入了多種微控制器的支持。無MMU的處理器以前只能利用一些改進的分支版本,如uClinux,而2.6內核已經(jīng)將其整合進了新的內核中,開始支持多種流行的無MMU微控制器,如Dragonball、ColdFire、Hitachi H8/300。Linux在無MMU控制器上仍舊支持多任務處理,但沒有內存保護功能。同時也加入了許多流行的控制器的支持,如S3C2410等。

6. 面向應用

嵌入式應用有用戶定制的特點,硬件設計都針對特定應用開發(fā),這給系統(tǒng)帶來對非標準化設計支持的問題(如IRQ的管理)。為了更好地實現(xiàn),可以采用部件化的操作系統(tǒng)。Linux2.6采用的子系統(tǒng)架構將功能模塊化,可以定制而對其他部分影響最小。同時Linux2.6提供了多種新技術的支持以實現(xiàn)各種應用開發(fā),如Advanced Linux Sound Architecture(ALSA)和Video4Linux等,對多媒體信息處理更加方便;對USB2.0的支持,提供更高速的傳輸,增加藍牙無線接口、音頻數(shù)據(jù)鏈接和面向鏈接的數(shù)據(jù)傳輸L2CAP,滿足短距離的無線連接的需要;而且在2.6內核中還可以配置成無輸入和顯示的純粹無用戶接口系統(tǒng)。

到此,關于“Linux2.6內核嵌入式系統(tǒng)有哪些特點”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關知識,請繼續(xù)關注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

AI