freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)專業(yè)畢業(yè)論文-支持多核處理器的rtems嵌入式操作系統(tǒng)的研究(編輯修改稿)

2025-02-09 17:55 本頁面
 

【文章內(nèi)容簡(jiǎn)介】 ,RTEMS采用將最高優(yōu)先級(jí)的任務(wù)放在就緒隊(duì)列的首部,當(dāng)添加新任務(wù)的時(shí)候,將該任務(wù)放在同一優(yōu)先級(jí)的尾部。這樣可以保證調(diào)度模塊以最短的時(shí)間調(diào)度優(yōu)先級(jí)最高的任務(wù),滿足了系統(tǒng)的實(shí)習(xí)性。RTEMS就緒隊(duì)列通過多級(jí)鏈表實(shí)現(xiàn),每個(gè)優(yōu)先級(jí)對(duì)應(yīng)一個(gè)鏈表,鏈表中存儲(chǔ)屬于該優(yōu)先級(jí)的就緒狀態(tài)任務(wù)。為了滿足o(1)時(shí)間內(nèi)完成調(diào)度,RTEMS利用了_Priority_Major_bit_map和_Priority_Bit_map[16]兩種數(shù)據(jù)結(jié)構(gòu),: 優(yōu)先級(jí)數(shù)據(jù)結(jié)構(gòu)_Priority_Major_bit_map記錄每16個(gè)優(yōu)先級(jí)段中是否有任務(wù)存在,每個(gè)優(yōu)先級(jí)段對(duì)應(yīng)_Priority_bit_map數(shù)組中的一個(gè)元素,每個(gè)元素都是16bit,每一位置1表示該優(yōu)先級(jí)有就緒任務(wù)存在。任務(wù)調(diào)度管理模塊通過該位圖能快速定位目前就緒隊(duì)列中最高優(yōu)先級(jí)任務(wù),直接運(yùn)行。在任務(wù)運(yùn)行過程中,如果有更高優(yōu)先級(jí)任務(wù)到達(dá),當(dāng)前任務(wù)就會(huì)被搶占,運(yùn)行更高優(yōu)先級(jí)任務(wù)。用戶在創(chuàng)建任務(wù)的時(shí)候可以設(shè)置搶占模式,如果設(shè)置禁止搶占,則在任務(wù)終止、阻塞或重新設(shè)置搶占模式之前,即使有更高優(yōu)先級(jí)的任務(wù)出現(xiàn),也不會(huì)終止。(2)輪轉(zhuǎn)調(diào)度處于同一優(yōu)先級(jí)的就緒任務(wù),采用輪轉(zhuǎn)調(diào)度算法。創(chuàng)建任務(wù)時(shí),系統(tǒng)會(huì)為每個(gè)任務(wù)分配一個(gè)時(shí)間片,時(shí)間片隨著時(shí)鐘到來而不斷減少,用完之后放棄處理器,并將該任務(wù)放到鏈表末尾,如果隊(duì)列中還有其余的就緒任務(wù)則調(diào)度隊(duì)列中首元素,如果沒有則為該任務(wù)重新分配時(shí)間片,獲得處理器后重新運(yùn)行。(3)優(yōu)先級(jí)反轉(zhuǎn)系統(tǒng)運(yùn)行過程中可能會(huì)出現(xiàn)高優(yōu)先級(jí)的任務(wù)無法運(yùn)行,而低優(yōu)先級(jí)的任務(wù)先要運(yùn)行的情況。例如當(dāng)前系統(tǒng)有一任務(wù)A正在運(yùn)行,并且獲得互斥量進(jìn)入臨界區(qū),此時(shí)任務(wù)B產(chǎn)生,并且其優(yōu)先級(jí)高于A,根據(jù)優(yōu)先級(jí)搶占調(diào)度算法規(guī)則任務(wù)B獲得處理器,進(jìn)入執(zhí)形態(tài),任務(wù)A進(jìn)入阻塞態(tài)。又有一任務(wù)C產(chǎn)生,其優(yōu)先級(jí)高于A、B,因此中斷任務(wù)B,獲得處理器。如果任務(wù)C也需要獲得互斥量進(jìn)入臨界區(qū),但是此時(shí)該臨界區(qū)的互斥量正在被任務(wù)A占有,未被釋放,所以任務(wù)C進(jìn)入阻塞態(tài),通過系統(tǒng)調(diào)度任務(wù)B獲得處理器得以運(yùn)行。: 優(yōu)先級(jí)反轉(zhuǎn)這顯然違背了高優(yōu)先級(jí)任務(wù)需要先被執(zhí)行的原則,解決辦法是采用優(yōu)先級(jí)反轉(zhuǎn)。首先將獲得互斥量的低優(yōu)先級(jí)任務(wù)的優(yōu)先級(jí)調(diào)整為高優(yōu)先級(jí)任務(wù)的優(yōu)先級(jí),這樣低優(yōu)先級(jí)獲得處理器進(jìn)入執(zhí)形態(tài),完成后,釋放互斥量和處理器,并將優(yōu)先級(jí)降為最初值。此時(shí)高優(yōu)先級(jí)任務(wù)獲得互斥量,進(jìn)入就緒態(tài),等待調(diào)度,從而解決了優(yōu)先級(jí)反轉(zhuǎn)問題。 內(nèi)存管理(1)固定大小內(nèi)存分區(qū)管理分區(qū)管理指每次為用戶提供大小相等的內(nèi)存區(qū)域[25],命令包括: rtems partition create 創(chuàng)建一個(gè)分區(qū) rtems partition ident 獲得分區(qū)標(biāo)識(shí)號(hào) rtems partition deletel 刪除一個(gè)分區(qū) rtems partition get buffer 申請(qǐng)一個(gè)內(nèi)存塊 rtems partition return bufier 釋放一個(gè)內(nèi)存塊分區(qū)將物理地址上相鄰的一塊內(nèi)存區(qū)域分成大小相同的緩沖區(qū),空閑緩沖區(qū)由雙鏈表進(jìn)行管理。當(dāng)從分區(qū)中申請(qǐng)內(nèi)存塊時(shí),按照空閑內(nèi)存塊鏈表的順序分配。如果空閑空間不足,調(diào)用者不會(huì)被阻塞,而是獲得一個(gè)空指針,以確保申請(qǐng)內(nèi)存調(diào)用的時(shí)間確定性。釋放內(nèi)存塊時(shí), 將該內(nèi)存塊掛在空閑內(nèi)存塊鏈表的鏈尾。分區(qū)被刪除時(shí)將釋放出這段連續(xù)的內(nèi)存空間。(2)可變大小內(nèi)存區(qū)域管理區(qū)域管理指每次根據(jù)用戶需求分配大小不等的內(nèi)存區(qū)域[25],命令包括: Rtems region create 創(chuàng)建一個(gè)分區(qū) Rtems region ident 獲得分區(qū)的標(biāo)識(shí) Rtems region_delete 刪除一個(gè)分區(qū) Rtems region_extend 擴(kuò)展一個(gè)分區(qū) Rtems region get_segment 申請(qǐng)一個(gè)段 Rtems region return_segment 釋放一個(gè)段區(qū)域管理最小分配單位是塊,塊的大小由用戶進(jìn)行限定,但是必須是頁的整數(shù)倍,例如如果頁的大小為256字節(jié),用戶需求為350字節(jié),那么區(qū)域管理將為用戶分配512字節(jié)大小的塊。所有的空閑塊鏈接成一個(gè)雙向鏈表,分配采用首次適應(yīng)算法,即每次從鏈表首部開始查詢,遇到滿足用戶需求大小的塊時(shí)立即進(jìn)行分配,為了減少內(nèi)存碎片,系統(tǒng)設(shè)置一個(gè)臨界值,如果實(shí)際塊的大小減去用戶需求的大小后超過該臨界值,則將該塊分為兩塊,一塊分配給用戶,另外一塊重新放入到鏈表中。同理釋放塊時(shí),區(qū)域管理首先檢查左右相鄰的塊是否和該塊的地址連續(xù),如果是則進(jìn)行合并,形成更大的塊,然后放入到鏈表中,如果只有一塊和該塊相鄰,則只與相鄰塊進(jìn)行合并,否則直接將該塊放入鏈表結(jié)尾。(3)雙端口內(nèi)存管理雙端口內(nèi)存(DPMA)是指多個(gè)處理器或智能I/O處理器均可訪問的內(nèi)存區(qū)域,RTEMS的雙端口內(nèi)存管理器為雙端口內(nèi)存區(qū)(DPMA)提供了地址變換供能。命令有: rtems_port_create 創(chuàng)建端口 rtems_port_ident 獲取端口的ID標(biāo)識(shí) rtems_port_delete 刪除端口 rtems_port_external_to_internal將雙端口內(nèi)存的外部地址變?yōu)閮?nèi)部地址 rtems_port_internal_to_external 將雙端口內(nèi)存的內(nèi)部地址變?yōu)橥獠康刂冯p端口內(nèi)存屬于某一特定處理器,該處理器訪問時(shí)直接使用內(nèi)部地址,其余處理器或智能I/O處理器通過外部地址進(jìn)行訪問,雙端口管理器完成外部地址與內(nèi)部地址的轉(zhuǎn)換。 同步互斥機(jī)制在支持多任務(wù)應(yīng)用程序的系統(tǒng)中,一次工作的完成往往需要多個(gè)任務(wù)或多個(gè)任務(wù)與多個(gè)中斷程序配合、協(xié)調(diào)完成。為此,系統(tǒng)必須提供任務(wù)間的同步、互斥與通信機(jī)制,保證工作順利完成。RTEMS提供了一套豐富的機(jī)制來滿足上述要求,包括搶占鎖和關(guān)中斷,信號(hào),信號(hào)量,消息隊(duì)列和事件等[26]。(1)搶占鎖和關(guān)中斷搶占鎖是實(shí)現(xiàn)任務(wù)間互斥的一種最基本的機(jī)制,當(dāng)系統(tǒng)中的臨界資源禁止任務(wù)搶占時(shí),稱為搶占上鎖,簡(jiǎn)稱為搶占鎖。其互斥實(shí)現(xiàn)是通過將臨界資源放在_Thread_Disable_dispatch()和_Thread_Enable_dipatch()函數(shù)之間,這兩個(gè)函數(shù)都是對(duì)全局變量計(jì)數(shù)器_Thread_Dispatch_disable_level進(jìn)行加減操作,其中_Thread_Disable_dispatch()進(jìn)行上鎖操作,對(duì)全局變量_Thread_Dispatch_disable_level進(jìn)行加一操作,_Thread_Enable_dipatch()進(jìn)行解鎖操作,對(duì)全局變量_Thread_Dispatch_disable_level進(jìn)行減一操作,搶占鎖支持嵌套。但是搶占鎖只實(shí)現(xiàn)了任務(wù)之間的互斥,并不支持任務(wù)與中斷之間的互斥,因此當(dāng)在禁止搶占期間,有可能有中斷到來使得更高優(yōu)先級(jí)的任務(wù)獲得臨界資源進(jìn)入就緒態(tài)。關(guān)中斷是一種最強(qiáng)硬的互斥機(jī)制,不僅實(shí)現(xiàn)了任務(wù)之間的互斥,還實(shí)現(xiàn)了任務(wù)與中斷,中斷與中斷之間的互斥。關(guān)中斷一般在系統(tǒng)調(diào)用內(nèi)核數(shù)據(jù)結(jié)構(gòu)或進(jìn)行上下文切換時(shí)使用,在這種情況下禁止對(duì)任何外部中斷的響應(yīng)。關(guān)中斷機(jī)制通過_ISR_Disable()和_ISR_Enable()兩個(gè)函數(shù)實(shí)現(xiàn),其中_ISR_Disable()實(shí)現(xiàn)關(guān)中斷操作,_ISR_Enable()實(shí)現(xiàn)開中斷操作。(2)信號(hào)量信號(hào)量是一種非常常用的同步互斥機(jī)制,既可實(shí)現(xiàn)任務(wù)之間的互斥,也可實(shí)現(xiàn)任務(wù)和中斷之間,中斷和中斷之間的互斥,包括三種類型:普通二值信號(hào)量、可嵌套二值信號(hào)量和計(jì)數(shù)信號(hào)量。普通二值信號(hào)量,又叫互斥信號(hào),只能取值0和1兩種情況,不支持嵌套,否則有可能發(fā)生死鎖。當(dāng)互斥信號(hào)為1時(shí),任務(wù)可以進(jìn)入代碼臨界區(qū),并且信號(hào)值對(duì)應(yīng)減一,當(dāng)其余任務(wù)也要求進(jìn)入時(shí),會(huì)發(fā)生阻塞。該任務(wù)完成對(duì)臨界區(qū)的訪問時(shí),對(duì)互斥信號(hào)進(jìn)行加一操作,釋放互斥信號(hào),可從等待該信號(hào)量的任務(wù)隊(duì)列中選擇一任務(wù)進(jìn)行分配。普通二值信號(hào)有可能發(fā)生優(yōu)先級(jí)反轉(zhuǎn)現(xiàn)象,RTEMS通過采用優(yōu)先級(jí)繼承算法解決該問題,即使低優(yōu)先級(jí)任務(wù)的優(yōu)先級(jí)繼承高優(yōu)先級(jí)任務(wù)的優(yōu)先級(jí),重新調(diào)度,獲得處理器后進(jìn)入執(zhí)形態(tài),退出臨界區(qū)后釋放互斥量,優(yōu)先級(jí)再恢復(fù)為之前的優(yōu)先級(jí)??汕短仔盘?hào)量除了取值只有0和1兩種情況外,還允許進(jìn)行嵌套。當(dāng)發(fā)生嵌套時(shí),只是嵌套層次進(jìn)行了加一操作,互斥信號(hào)并沒有進(jìn)行加減操作,嵌套層數(shù)表明被同一任務(wù)訪問次數(shù)。計(jì)數(shù)信號(hào)量主要解決共享多資源的問題,其值等于系統(tǒng)中實(shí)際資源個(gè)數(shù)。信號(hào)量解決同步互斥問題是通過任務(wù)等待隊(duì)列實(shí)現(xiàn)的,每鐘類型的信號(hào)量對(duì)應(yīng)一個(gè)隊(duì)列,申請(qǐng)某一資源而被阻塞的任務(wù)將被掛在其對(duì)應(yīng)隊(duì)列下。當(dāng)有任務(wù)釋放資源時(shí),檢查該隊(duì)列是否掛有阻塞任務(wù),如果有,進(jìn)行選擇,直接將資源對(duì)其進(jìn)行分配,而不改變信號(hào)量狀態(tài);如果沒有,則對(duì)信號(hào)量進(jìn)行加一操作。等待隊(duì)列有兩種實(shí)現(xiàn)策略:基于優(yōu)先級(jí)和先來先服務(wù)。先來先服務(wù)指按照阻塞的順序?qū)Y源進(jìn)行分配,先被阻塞的任務(wù)放在隊(duì)列的頭部,而不管任務(wù)的優(yōu)先級(jí)?;趦?yōu)先級(jí)是指,若有空閑資源時(shí)先分配給高優(yōu)先級(jí)的任務(wù),為了加快檢索速度,實(shí)現(xiàn)時(shí)利用Chain_Control結(jié)構(gòu),其中包括四個(gè)元素,每個(gè)元素對(duì)應(yīng)64個(gè)優(yōu)先級(jí),當(dāng)有任務(wù)阻塞時(shí),首先除以64取余,找到對(duì)應(yīng)的元素,然后將其優(yōu)先級(jí)與0x20做比較,如果小于則從開始進(jìn)行查找,如果大于則從尾部進(jìn)行查找,放入到對(duì)應(yīng)優(yōu)先級(jí)的隊(duì)列中。(3)消息隊(duì)列和事件消息隊(duì)列是實(shí)現(xiàn)任務(wù)間或任務(wù)與中斷間的通信機(jī)制,其中消息是一塊數(shù)據(jù)區(qū)域,其大小和類型由用戶定義。進(jìn)行數(shù)據(jù)通信時(shí),發(fā)送方將消息放在目的方的消息隊(duì)列中,如果隊(duì)列滿,則阻塞該操作;接收方從其對(duì)應(yīng)隊(duì)列中取出消息,如果該隊(duì)列無消息,則進(jìn)入阻塞態(tài),注意如果該操作處于中斷處理中,則不會(huì)阻塞,而只是返回“條件不滿足”。因?yàn)橄㈥?duì)列是通過內(nèi)容拷貝實(shí)現(xiàn)的,因此不適合大量數(shù)據(jù)的通信,在這種情況下可以考慮通過在消息中存儲(chǔ)指針或共享內(nèi)存區(qū)域的辦法來解決。事件相對(duì)消息隊(duì)列來說更快捷,效率更高,并且實(shí)現(xiàn)了一對(duì)多的同步,但是不支持?jǐn)?shù)據(jù)通信。具體實(shí)現(xiàn)是,每個(gè)事件對(duì)應(yīng)一個(gè)標(biāo)志位,只有發(fā)生和不發(fā)生兩種情況,不記錄其余信息。每個(gè)任務(wù)可支持32種事件,可對(duì)其感興趣的位進(jìn)行設(shè)置,并且通過其余任務(wù)或中斷對(duì)事件進(jìn)行觸發(fā),同時(shí)通知所有關(guān)心該事件的任務(wù),由此達(dá)到同步和通信的目的。(4)異步信號(hào)異步信號(hào)是RTEMS中任務(wù)之間和任務(wù)與中斷間異步通信的唯一機(jī)制,當(dāng)有異步信號(hào)到達(dá)時(shí),任務(wù)中斷當(dāng)前的執(zhí)行路徑,調(diào)用相應(yīng)的異步處理函數(shù)對(duì)異步信號(hào)進(jìn)行處理,處理完畢后再恢復(fù)中斷了的執(zhí)行路徑。RTEMS定義了一個(gè)32位整數(shù)rtems_signal_ret信號(hào)集,每一位代表一種信號(hào),異步信號(hào)處理函數(shù)ASR通過調(diào)用rtems_signal_catch函數(shù)進(jìn)行注冊(cè),所有信號(hào)都交給一個(gè)ASR,ASR通過判斷信號(hào)的類型進(jìn)行不同的處理。異步處理函數(shù)在進(jìn)行上下文切換時(shí)調(diào)用,一是當(dāng)中斷返回時(shí),先判斷是否有異步信號(hào)到達(dá),如果有則先處理異步信號(hào);另一個(gè)是當(dāng)任務(wù)進(jìn)入執(zhí)形態(tài),重新開始運(yùn)行時(shí),執(zhí)行之前代碼之前先判斷是有有異步信號(hào)到達(dá)。 中斷管理中斷管理為系統(tǒng)提供一種快速響應(yīng)外部事件的機(jī)制,任何任務(wù)只要有中斷到來都必須終止,系統(tǒng)繼而調(diào)用相應(yīng)的中斷處理函數(shù)。中斷有256級(jí),0255,數(shù)字越大優(yōu)先級(jí)越低。中斷管理提供的處理中斷命令包括: _rtems_interrupt_cacheEstablish an ISR _rtems_interrupt_disableDisable Interrupts _rtems_interrupt_enableEnable Interrupts _rtems_interrupt_flashFlash Interrupt _rtems_interrupt_is_in_progressIs an ISR in Progress中斷產(chǎn)生之后,首先根據(jù)中斷向量值查找中斷向量表,調(diào)用相應(yīng)的中斷處理程序。在中斷處理程序中保存被中斷任務(wù)的內(nèi)容并調(diào)用用戶中斷處理程序?;謴?fù)被中斷任務(wù)的內(nèi)容,中斷返回。從中斷產(chǎn)生到用戶中斷處理器程序處理完畢,就是系統(tǒng)相應(yīng)中斷響應(yīng)的時(shí)間。 對(duì)多處理器的支持RTEMS對(duì)多核處理器提供了強(qiáng)而有力的支持,不但支持同構(gòu)多核處理器,還支持異構(gòu)和混合多核處理器。這是通過多節(jié)點(diǎn)的方式實(shí)現(xiàn)的[27],多核處理器中每個(gè)處理器都分配一個(gè)唯一的節(jié)點(diǎn)編號(hào),在多處理器節(jié)點(diǎn)配置表中進(jìn)行定義,處理器由分配的節(jié)點(diǎn)編號(hào)進(jìn)行區(qū)別。RTEMS在每個(gè)處理器節(jié)點(diǎn)中都有一個(gè)局部對(duì)象表和全局對(duì)象表,以此來區(qū)分節(jié)點(diǎn)執(zhí)行任務(wù)類型,系統(tǒng)據(jù)此決定下一步行為。局部對(duì)象表中的對(duì)象只能由該節(jié)點(diǎn)訪問,而全局對(duì)象表中的對(duì)象所有節(jié)點(diǎn)都可以訪問。RTEMS的設(shè)計(jì)目標(biāo)是跨越所有軟硬件的邊界,在邏輯上成為一個(gè)統(tǒng)一的整體,而這一切都是通過用戶層和內(nèi)核層之間的多核處理器支持層來實(shí)現(xiàn)的[28]。 本章小結(jié)首先對(duì)RTEMS進(jìn)行介紹,然后深入剖析了RTEMS體系結(jié)構(gòu)和內(nèi)核的核心組件,包括任務(wù)管理組件、內(nèi)存管理組件、同步互斥與通信機(jī)制、中斷機(jī)制及對(duì)多處理器的支持,為后文對(duì)多核化關(guān)鍵技術(shù)的研究提供理論支持。第3章 基于SMP方式的RTEMS多核化實(shí)現(xiàn)機(jī)制第3章 基于SMP方式的RTEMS多核化實(shí)現(xiàn)機(jī)制雖然RTEMS提出了對(duì)多核處理器支持的設(shè)計(jì)思路和MPSL的接口定義,然而具體硬件體系結(jié)構(gòu)不同,多核化設(shè)計(jì)過程中需要實(shí)現(xiàn)機(jī)制不一樣。主要探討RTEMS對(duì)SMP系統(tǒng)提供支持的關(guān)鍵技術(shù),針對(duì)單核下的同步與互斥機(jī)制不能直接應(yīng)用在多核系統(tǒng)中的問題,提出改進(jìn)的自旋鎖機(jī)制保證多核的同步與互斥。任務(wù)調(diào)度策略在并行系統(tǒng)中發(fā)揮重要作用,嚴(yán)重影響著系統(tǒng)的性能,將作為一項(xiàng)關(guān)鍵技術(shù)在第4章探討。 RTEMS多核化硬件體系結(jié)構(gòu)對(duì)并行系統(tǒng)結(jié)構(gòu)、存儲(chǔ)結(jié)構(gòu)模型以及通信機(jī)制的了解是探討和選擇RTEMS多核化過程中所需機(jī)制的依據(jù)。(1)并行系統(tǒng)結(jié)構(gòu)分類并行系統(tǒng)的結(jié)構(gòu)按照存儲(chǔ)器結(jié)構(gòu)可以分為兩大類:集中式共享存儲(chǔ)結(jié)構(gòu)和分布式存儲(chǔ)結(jié)構(gòu)[29]。集中式共享存儲(chǔ)結(jié)構(gòu)中,所有處理器利用一根總線共聯(lián)實(shí)現(xiàn)共用一個(gè)存儲(chǔ)器,這種情況下,所有處理器訪問內(nèi)存的時(shí)間相同
點(diǎn)擊復(fù)制文檔內(nèi)容
醫(yī)療健康相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1