<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 盤(pán)點(diǎn)uC/OS和uClinux操作系統的對比

盤(pán)點(diǎn)uC/OS和uClinux操作系統的對比

作者: 時(shí)間:2014-06-10 來(lái)源:網(wǎng)絡(luò ) 收藏

引 言

本文引用地址:http://dyxdggzs.com/article/248081.htm

嵌入式系統的應用與開(kāi)發(fā)是當今計算機行業(yè)發(fā)展的一個(gè)熱點(diǎn)?,F今嵌入式軟件的應用與開(kāi)發(fā)的領(lǐng)域主要有:國防、通信、電子、辦公自動(dòng)化、機/車(chē)頂盒、掌上電腦(或PDA)、手機軟件、工業(yè)控制、信息家電等領(lǐng)域。

隨著(zhù)嵌入式技術(shù)的發(fā)展,由于嵌入式應用不斷增長(cháng)、嵌入式系統復雜性不斷提高,導致嵌入式軟件的規模和復雜性也在相應的不斷提高。目前嵌入式軟件、硬件的應用與開(kāi)發(fā)體現如下趨勢:隨著(zhù)計算技術(shù)、通信技術(shù)的飛速發(fā)展,計算機、通信、消費電子的一體化趨勢日益明顯,嵌入式技術(shù)已成為一個(gè)研究熱點(diǎn);特別是互聯(lián)網(wǎng)的迅速普及,使得網(wǎng)絡(luò )化、微型化和專(zhuān)業(yè)化成為嵌入式發(fā)展的新趨勢;嵌入式產(chǎn)品的開(kāi)發(fā)和應用成為信息產(chǎn)業(yè)的主流之一,中間件技術(shù)開(kāi)始和嵌入式軟件的應用與開(kāi)發(fā)相結合起來(lái)。

嵌入式應用是繼 PC 后的重要應用,具有廣闊的發(fā)展應用前景,涉及嵌入式軟件應用的領(lǐng)域也日見(jiàn)增加,應用所產(chǎn)生的市場(chǎng)經(jīng)濟價(jià)值也越來(lái)越大。同時(shí),隨著(zhù)電子信息技術(shù)的發(fā)展,嵌入式應用產(chǎn)品將和人民的日常生活聯(lián)系變得更加緊密。從技術(shù)應用的層面來(lái)看,嵌入式技術(shù)的應用發(fā)展空間巨大,在工業(yè)控制、汽車(chē)電子、數字電視技術(shù)等領(lǐng)域中將會(huì )得到大量的應用。

操作系統是兩種性能優(yōu)良、源碼公開(kāi)且被廣泛應用的免費嵌入式操作系統,可以作為研究實(shí)時(shí)操作系統和非實(shí)時(shí)操作系統的典范。本文通過(guò)對的對比,分析和總結嵌入式操作系統應用中的若干重要問(wèn)題,歸納嵌入式系統開(kāi)發(fā)中操作系統的選型依據。

兩種嵌入式操作系統主要性能比較:

嵌入式操作系統是嵌入式系統軟硬件資源的控制中心,它以盡量合理的有效方法組織多個(gè)用戶(hù)共享嵌入式系統的各種資源。其中用戶(hù)指的是系統程序之上的所有軟件。所謂合理有效的方法,指的就是操作系統如何協(xié)調并充分利用硬件資源來(lái)實(shí)現多任務(wù)。復雜的操作系統都支持文件系統,方便組織文件并易于對其規范化操作。

嵌入式操作系統還有一個(gè)特點(diǎn)是,針對不同的平臺,系統不是直接可用的,一般需要經(jīng)過(guò)針對專(zhuān)門(mén)平臺的移植操作系統才能正常工作。

1.系統結構

μC/OS-II的組成部分:

μC/OS-II可以大致分成核心、任務(wù)處理、時(shí)間處理、任務(wù)同步與通信,CPU的移植等5個(gè)部分。

1) 核心部分(OSCore.c)

是操作系統的處理核心,包括操作系統初始化、操作系統運行、中斷進(jìn)出的前導、時(shí)鐘節拍、任務(wù)調度、事件處理等多部分。能夠維持系統基本工作的部分都在這里。

2) 任務(wù)處理部分(OSTask.c)

任務(wù)處理部分中的內容都是與任務(wù)的操作密切相關(guān)的。包括任務(wù)的建立、刪除、掛起、恢復等等。因為μC/OS-II是以任務(wù)為基本單位調度的,所以這部分內容也相當重要。

3) 時(shí)鐘部分(OSTime.c)

μC/OS-II中的最小時(shí)鐘單位是timetick(時(shí)鐘節拍)。任務(wù)延時(shí)等操作是在這里完成的。

4) 任務(wù)同步和通信部分

為事件處理部分,包括信號量、郵箱、郵箱隊列、事件標志等部分;主要用于任務(wù)間的互相聯(lián)系和對臨界資源的訪(fǎng)問(wèn)。

5) 與CPU的接口部分

是指μC/OS-II針對所使用的CPU的移植部分。由于μC/OS-II是一個(gè)通用性的操作系統,所以對于關(guān)鍵問(wèn)題上的實(shí)現,還是需要根據具體CPU的具體內容和要求作相應的移植。這部分內容由于牽涉到SP等系統指針,所以通常用匯編語(yǔ)言編寫(xiě)。主要包括中斷級任務(wù)切換的底層實(shí)現、任務(wù)級任務(wù)切換的底層實(shí)現、時(shí)鐘節拍的產(chǎn)生和處理、中斷的相關(guān)處理部分等內容。

內核結構如圖1所示:



圖1

圖1代表了內核的功能結構,與Linux基本相同,不同的只是對內存管理和進(jìn)程管理進(jìn)行改寫(xiě),以滿(mǎn)足無(wú)MMU處理器的要求。uClinux是Linux 操作系統的一種,是由Linux2.0內核發(fā)展來(lái)的,是專(zhuān)為沒(méi)有MMU的微處理器(如ARM7TDMI、Coldfire 等)設計的嵌入式Linux操作系統。另外,由于大多數內核源代碼都被重寫(xiě),uClinux的內核要比原Linux 2.0內核小的多, 但保留了Linux 操作系統的主要優(yōu)點(diǎn):穩定性,優(yōu)異的網(wǎng)絡(luò )能力以及優(yōu)秀的文件系統支持

2.任務(wù)調度

1.-II 采用的是可剝奪型實(shí)時(shí)多任務(wù)內核??蓜儕Z型的實(shí)時(shí)內核在任何時(shí)候都運行就緒了的最高優(yōu)先級的任務(wù)。

uC/os-II的任務(wù)調度是完全基于任務(wù)優(yōu)先級的搶占式調度,也就是最高優(yōu)先級的任務(wù)一旦處于就緒狀態(tài),則立即搶占正在運行的低優(yōu)先級任務(wù)的處理器資源。為了簡(jiǎn)化系統設計,uC/OS-II規定所有任務(wù)的優(yōu)先級不同,因為任務(wù)的優(yōu)先級也同時(shí)唯一標志了該任務(wù)本身。

任務(wù)調度將在以下情況下發(fā)生:

1) 高優(yōu)先級的任務(wù)因為需要某種臨界資源,主動(dòng)請求掛起,讓出處理器,此時(shí)將調度就緒狀態(tài)的低優(yōu)先級任務(wù)獲得執行,這種調度也稱(chēng)為任務(wù)級的上下文切換。

2) 高優(yōu)先級的任務(wù)因為時(shí)鐘節拍到來(lái),在時(shí)鐘中斷的處理程序中,內核發(fā)現高優(yōu)先級任務(wù)獲得了執行條件(如休眠的時(shí)鐘到時(shí)),則在中斷態(tài)直接切換到高優(yōu)先級任務(wù)執行。這種調度也稱(chēng)為中斷級的上下文切換。

這兩種調度方式在uC/OS-II的執行過(guò)程中非常普遍,一般來(lái)說(shuō)前者發(fā)生在系統服務(wù)中,后者發(fā)生在時(shí)鐘中斷的服務(wù)程序中。

調度工作的內容可以分為兩部分:最高優(yōu)先級任務(wù)的尋找和任務(wù)切換。其最高優(yōu)先級任務(wù)的尋找是通過(guò)建立就緒任務(wù)表來(lái)實(shí)現的。u C / O S 中的每一個(gè)任務(wù)都有獨立的堆??臻g,并有一個(gè)稱(chēng)為任務(wù)控制塊TCB(Task Control Block)的數據結構,其中第一個(gè)成員變量就是保存的任務(wù)堆棧指針。任務(wù)調度模塊首先用變量OSTCBHighRdy 記錄當前最高級就緒任務(wù)的TCB 地址,然后調用OS_TASK_SW()函數來(lái)進(jìn)行任務(wù)切換。

2.uClinux沒(méi)有MMU管理存儲器,在實(shí)現多個(gè)進(jìn)程時(shí)(fork調用生成子進(jìn)程)需要實(shí)現數據保護。由于uClinux的多進(jìn)程管理是通過(guò)vfork來(lái)實(shí)現,因此fork等于vfork。這意味著(zhù)uClinux系統fork調用完成后,要么子進(jìn)程代替父進(jìn)程執行(此時(shí)父進(jìn)程已經(jīng)sleep)直到子進(jìn)程調用exit退出;要么調用exec執行一個(gè)新的進(jìn)程,這個(gè)時(shí)候將產(chǎn)生可執行文件的加載,即使這個(gè)進(jìn)程只是父進(jìn)程的拷貝,這個(gè)過(guò)程也不能避免。當子進(jìn)程執行exit或exec后,子進(jìn)程使用wakeup把父進(jìn)程喚醒,使父進(jìn)程繼續往下執行。

linux相關(guān)文章:linux教程


tcp/ip相關(guān)文章:tcp/ip是什么



上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: uC/OS uClinux

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>