色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > Linux內(nèi)核的嵌入式系統(tǒng)應(yīng)用

          Linux內(nèi)核的嵌入式系統(tǒng)應(yīng)用

          作者: 時(shí)間:2012-04-06 來源:網(wǎng)絡(luò) 收藏
            

          1.4 POSIX線程及NPTL

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

          1.5 微控制器的支持

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

          1.6 面向應(yīng)用

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

          1.2 有效的調(diào)度程序

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

          1.3 同步原型與

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



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉