專利名稱:嵌入式系統(tǒng)處理器進(jìn)程與存儲(chǔ)進(jìn)程分離的實(shí)現(xiàn)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及嵌入式系統(tǒng)技術(shù)領(lǐng)域,特別是涉及一種嵌入式系統(tǒng)處理器進(jìn)程與存儲(chǔ)進(jìn)程分離的實(shí)現(xiàn)方法。
背景技術(shù):
在操作系統(tǒng)中實(shí)施資源管理的抽象是進(jìn)程,操作系統(tǒng)通過為進(jìn)程分配和回收資源實(shí)施對(duì)資源的管理和控制,防止某些進(jìn)程濫用系統(tǒng)中的資源。在傳統(tǒng)操作系統(tǒng)中,實(shí)施處理機(jī)資源管理的抽象是進(jìn)程,實(shí)施存儲(chǔ)器資源管理的抽象也是進(jìn)程。在單處理機(jī)系統(tǒng)中,或者在某些特殊結(jié)構(gòu)的多處理機(jī)系統(tǒng)中,通過構(gòu)造唯一的一種抽象(進(jìn)程),能夠很好地實(shí)施對(duì)處理機(jī)資源和存儲(chǔ)器資源的管理,但是如果處理機(jī)和存儲(chǔ)器之間的互連方式比較復(fù)雜,僅僅構(gòu)造唯一的進(jìn)程抽象,不能很好地實(shí)施對(duì)處理機(jī)資源和存儲(chǔ)器資源的管理。
當(dāng)處理機(jī)和存儲(chǔ)器之間的連接方式比較簡(jiǎn)單,沒有必要實(shí)施處理機(jī)進(jìn)程和存儲(chǔ)進(jìn)程的分離,但是,當(dāng)處理機(jī)和存儲(chǔ)器之間的連接方式比較復(fù)雜時(shí),只有實(shí)現(xiàn)處理機(jī)進(jìn)程和存儲(chǔ)進(jìn)程的分離,才能很好地實(shí)施處理機(jī)資源和存儲(chǔ)器資源的分配。
在單處理機(jī)、單存儲(chǔ)體系統(tǒng)中,任何線程一定在處理機(jī)P上運(yùn)行,線程訪問的數(shù)據(jù)一定存儲(chǔ)在存儲(chǔ)器中。對(duì)于任何線程而言,既不需要選擇處理機(jī),也不需要選擇存儲(chǔ)器,操作系統(tǒng)只需要唯一的一種資源管理的抽象——進(jìn)程,把處理機(jī)和存儲(chǔ)器作為為進(jìn)程分配的兩種資源。通過為進(jìn)程分配回收處理機(jī)資源和存儲(chǔ)器資源實(shí)現(xiàn)對(duì)處理機(jī)和存儲(chǔ)器的管理和控制。在單處理機(jī)、單存儲(chǔ)體系統(tǒng)中,沒有必要實(shí)現(xiàn)處理機(jī)進(jìn)程和存儲(chǔ)進(jìn)程的分離。
單處理機(jī)、多存儲(chǔ)體系統(tǒng)。在單處理機(jī)、多存儲(chǔ)體系統(tǒng)中,對(duì)于任何線程而言,沒有選擇處理機(jī)余地,一個(gè)線程一定在處理機(jī)上P運(yùn)行,但是,線程訪問的數(shù)據(jù)可以存儲(chǔ)在不同的存儲(chǔ)體中。當(dāng)然,可以把多個(gè)存儲(chǔ)體在邏輯上作為一個(gè)存儲(chǔ)體,但是有時(shí)這樣未必合理。例如采用存儲(chǔ)器映像尋址的計(jì)算機(jī)系統(tǒng),I/O端口映像和存儲(chǔ)器映像顯然是不同的存儲(chǔ)體,應(yīng)該采用不同的存儲(chǔ)管理策略。對(duì)操作系統(tǒng)而言,在單處理機(jī)、多存儲(chǔ)體環(huán)境下,操作系統(tǒng)仍然可以只創(chuàng)建唯一的一種資源管理的抽象——進(jìn)程,把各個(gè)存儲(chǔ)體作為不同類型的存儲(chǔ)資源,通過為進(jìn)程分配回收處理機(jī)資源以及各種不同類型的存儲(chǔ)器資源,實(shí)現(xiàn)對(duì)處理機(jī)和存儲(chǔ)器的管理和控制。在單處理機(jī)、多存儲(chǔ)體系統(tǒng)中,也沒有必要實(shí)現(xiàn)處理機(jī)進(jìn)程和存儲(chǔ)進(jìn)程的分離。
多處理機(jī)、單存儲(chǔ)體系統(tǒng)中,在多處理機(jī)、單存儲(chǔ)體系統(tǒng)中,對(duì)于任何線程而言,沒有選擇存儲(chǔ)體的余地,線程訪問的數(shù)據(jù)一定存儲(chǔ)在存儲(chǔ)器中,但是,一個(gè)線程可以選擇在哪個(gè)處理機(jī)上運(yùn)行。操作系統(tǒng)仍然可以只創(chuàng)建唯一的一種資源管理的抽象進(jìn)程,如果各個(gè)處理機(jī)是同構(gòu)的,操作系統(tǒng)透明地實(shí)施處理機(jī)的分配,用戶感覺不到系統(tǒng)中存在多個(gè)處理機(jī),如果各個(gè)處理機(jī)是異構(gòu)的,操作系統(tǒng)通過在創(chuàng)建線程時(shí)指定線程運(yùn)行的處理機(jī)實(shí)施對(duì)處理機(jī)資源的分配,因此,在多處理機(jī)、單存儲(chǔ)體系統(tǒng)中,也沒有必要實(shí)現(xiàn)處理機(jī)進(jìn)程和存儲(chǔ)進(jìn)程的分離。
處理機(jī)和存儲(chǔ)體之間通過共享總線互連的多處理機(jī)多存儲(chǔ)體系統(tǒng)。如果處理機(jī)和存儲(chǔ)體之間通過共享總線互連,處理機(jī)和存儲(chǔ)器的互連結(jié)構(gòu),操作系統(tǒng)也可以把處理機(jī)和存儲(chǔ)體作為兩類不同的資源,也沒有必要實(shí)現(xiàn)處理機(jī)進(jìn)程和存儲(chǔ)進(jìn)程的分離。
在嵌入式系統(tǒng)中,已經(jīng)出現(xiàn)了通過多總線進(jìn)行互連的芯片,并且將成為趨勢(shì),在這種情況下,有必要提供一種處理器進(jìn)程與存儲(chǔ)進(jìn)程分離的實(shí)現(xiàn)方法,來對(duì)分離處理器進(jìn)程與存儲(chǔ)進(jìn)程,以便提高多總線的利用效率,加快處理速度。
發(fā)明內(nèi)容
本發(fā)明的目的在于克服現(xiàn)有技術(shù)中的不足,提供一種嵌入式系統(tǒng)處理器進(jìn)程與存儲(chǔ)進(jìn)程分離的實(shí)現(xiàn)方法。
本發(fā)明解決其技術(shù)問題采用的技術(shù)方案如下本發(fā)明提供了一種嵌入式系統(tǒng)處理器進(jìn)程與存儲(chǔ)進(jìn)程分離的實(shí)現(xiàn)方法,該方法包括以下步驟
(1)對(duì)處理機(jī)和存儲(chǔ)器之間互連情況進(jìn)行分析,如果多個(gè)處理機(jī)和多個(gè)存儲(chǔ)器之間不是簡(jiǎn)單地通過一條共享的總線實(shí)現(xiàn)互連,而是任意的互連結(jié)構(gòu),則(2)進(jìn)行資源管理抽象的構(gòu)造,對(duì)系統(tǒng)進(jìn)行處理機(jī)分組和存儲(chǔ)體分組;(3)為每個(gè)處理機(jī)組構(gòu)造處理機(jī)進(jìn)程,為每個(gè)存儲(chǔ)體組構(gòu)造存儲(chǔ)進(jìn)程。
作為一種改進(jìn),所述步驟(2)中處理機(jī)分組的步驟為對(duì)于每一個(gè)處理機(jī),統(tǒng)計(jì)其能夠訪問的所有存儲(chǔ)體;把每個(gè)處理機(jī)作為一個(gè)處理機(jī)組,比較任意兩個(gè)處理機(jī)組能夠訪問的所有存儲(chǔ)體,如果一致且兩個(gè)處理機(jī)組也同構(gòu),把這兩個(gè)處理機(jī)組合并;重復(fù)執(zhí)行前一步驟直到?jīng)]有任何兩個(gè)處理機(jī)組可以合并為止。
作為一種改進(jìn),所述步驟(2)中存儲(chǔ)體分組的步驟為對(duì)于每一個(gè)存儲(chǔ)體,統(tǒng)計(jì)能夠訪問該存儲(chǔ)體的所有處理機(jī);把每個(gè)存儲(chǔ)體作為一個(gè)存儲(chǔ)體組,比較任意兩個(gè)存儲(chǔ)體組相關(guān)的處理機(jī),如果一致則合并為一個(gè)存儲(chǔ)體組;重復(fù)執(zhí)行前一步驟直到?jīng)]有任何兩個(gè)存儲(chǔ)體組可以合并為止。
與背景技術(shù)相比,本發(fā)明具有的有益的效果是本發(fā)明的方法可以實(shí)現(xiàn)嵌入式系統(tǒng)處理機(jī)進(jìn)程和存儲(chǔ)進(jìn)程的分離,能夠很好地實(shí)施對(duì)處理機(jī)資源和存儲(chǔ)器資源的管理。如果處理機(jī)和存儲(chǔ)器之間不是簡(jiǎn)單地通過一條共享的總線實(shí)現(xiàn)互連,而是一種多總線的互連結(jié)構(gòu),嵌入式操作系統(tǒng)需要實(shí)現(xiàn)處理機(jī)進(jìn)程和存儲(chǔ)進(jìn)程的分離,需要為管理處理機(jī)創(chuàng)建處理機(jī)進(jìn)程,為管理存儲(chǔ)器創(chuàng)建存儲(chǔ)進(jìn)程.如果二者沒有分離,嵌入式操作系統(tǒng)對(duì)處理機(jī)資源和存儲(chǔ)資源管理的機(jī)制將會(huì)很復(fù)雜。
圖1是本發(fā)明過程的示意圖;圖2是處理機(jī)和存儲(chǔ)體之間復(fù)雜的互連結(jié)構(gòu)的示意圖。
具體實(shí)施例方式
下面結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步的說明。
一種嵌入式系統(tǒng)處理器進(jìn)程與存儲(chǔ)進(jìn)程分離的實(shí)現(xiàn)方法,附圖1是本發(fā)明實(shí)施過程的整體示意圖,其具體實(shí)施方法如下1)處理機(jī)和存儲(chǔ)器之間任意互連分析如果處理機(jī)和存儲(chǔ)器之間不是簡(jiǎn)單地通過一條共享的總線實(shí)現(xiàn)互連,而是一種任意的互連結(jié)構(gòu),操作系統(tǒng)需要實(shí)現(xiàn)處理機(jī)進(jìn)程和存儲(chǔ)進(jìn)程的分離,需要為管理處理機(jī)創(chuàng)建處理機(jī)進(jìn)程,為管理存儲(chǔ)器創(chuàng)建存儲(chǔ)進(jìn)程。如果二者沒有分離,操作系統(tǒng)對(duì)處理機(jī)資源和存儲(chǔ)資源管理的機(jī)制將會(huì)很復(fù)雜;在圖2中,8個(gè)處理機(jī)、3個(gè)存儲(chǔ)體以及一個(gè)磁盤機(jī)和一個(gè)磁帶機(jī)互連在一起.處理機(jī)0、處理機(jī)1和處理機(jī)2只能訪問存儲(chǔ)體0,處理機(jī)3和處理機(jī)4能夠訪問存儲(chǔ)體0和存儲(chǔ)體1,處理機(jī)5和處理機(jī)6可以訪問存儲(chǔ)體1和存儲(chǔ)體2,處理機(jī)7能夠訪問存儲(chǔ)體2,也能訪問磁盤機(jī)和磁帶機(jī)等外部設(shè)備,也就是說,處理機(jī)7是一個(gè)I/O處理機(jī)。
2)資源管理抽象的構(gòu)造局部分離的進(jìn)程,把系統(tǒng)分成處理機(jī)組和存儲(chǔ)體組,為每個(gè)處理機(jī)組構(gòu)造處理機(jī)進(jìn)程,為每個(gè)存儲(chǔ)體組構(gòu)造存儲(chǔ)進(jìn)程,實(shí)現(xiàn)處理機(jī)進(jìn)程和存儲(chǔ)進(jìn)程的分離管理;假設(shè)在系統(tǒng)中存在n個(gè)處理機(jī){P1,P2,P3,...,Pn},m個(gè)存儲(chǔ)體{M1,M2,M3,...,Mm},對(duì)于任意i,1≤i≤n和j,1≤j≤n,如果處理機(jī)Pi能夠直接訪問Mj,記為Pi→Mj;對(duì)于任意一個(gè)處理機(jī)Pi,1≤i≤n,記集合SPi={Mj對(duì)任何j(Pi→Mj)},即SPi為處理機(jī)Pi能夠訪問的所有存儲(chǔ)體構(gòu)成的集合;對(duì)于任意一個(gè)存儲(chǔ)體Mj,1≤j≤m,記集合SMj={Pi對(duì)任何i(Pi→Mj)},即SMj為所有能夠訪問存儲(chǔ)體Mj的處理機(jī)構(gòu)成的集合;對(duì)于任意兩個(gè)處理機(jī)Pi,1≤i≤n和Pj,1≤j≤n,如果SPi=SPj,即處理機(jī)Pi和Pj,可以訪問相同的存儲(chǔ)體,同時(shí)如果Pi和Pj,是同構(gòu)的,記為Pi(=)Pj;對(duì)于任意兩個(gè)存儲(chǔ)體Mi,1≤i≤m和Mj,1≤j≤m,如果SMi=SMj,即能夠訪問存儲(chǔ)體Mi和Mj的處理機(jī)構(gòu)成的集合SMi和SMj相同,記為Mi(=)Mj;3)處理機(jī)分組①對(duì)于每一個(gè)處理機(jī)Pi,計(jì)算處理機(jī)Pi能夠訪問的所有存儲(chǔ)體構(gòu)成的集合SPi={Mj對(duì)任何j(Pi→Mj)};
②把每個(gè)處理機(jī)Pi作為一組處理機(jī)GPi,處理機(jī)GPi能夠訪問的所有存儲(chǔ)體構(gòu)成的集合SPi;③比較任意兩個(gè)處理機(jī)組GPi和GPi,能夠訪問的所有存儲(chǔ)體構(gòu)成的集合SGi和SGi,如果SGi和SGi且兩個(gè)處理機(jī)組GPi和GPj同構(gòu),把處理機(jī)組GPi和GPj合并為一個(gè)處理機(jī)組GPi;④重復(fù)執(zhí)行③直到?jīng)]有任何兩個(gè)處理機(jī)組可以合并為止;4)存儲(chǔ)體分組①對(duì)于每一個(gè)存儲(chǔ)體,計(jì)算能夠訪問的存儲(chǔ)體Mj的所有處理機(jī)構(gòu)成的集合SMj={Pi對(duì)任何i(Pi→Mj)};②把每個(gè)存儲(chǔ)體Mi作為一組存儲(chǔ)體GMi,所有能夠訪問存儲(chǔ)體GMi的處理機(jī)構(gòu)成的集合SMj=SMi;③比較任意兩個(gè)存儲(chǔ)體組SMj和SMj,能夠訪問的所有存儲(chǔ)體構(gòu)成的集合SMj和SMi,如果SMj=SMi,把存儲(chǔ)體組SMj=SMj,合并為一個(gè)存儲(chǔ)體組GMi;④重復(fù)執(zhí)行處理機(jī)分組算法③直到?jīng)]有任何兩個(gè)存儲(chǔ)體組可以合并為止。
權(quán)利要求
1.一種嵌入式系統(tǒng)處理器進(jìn)程與存儲(chǔ)進(jìn)程分離的實(shí)現(xiàn)方法,其特征在于,該方法包括以下步驟(1)對(duì)處理機(jī)和存儲(chǔ)器之間互連情況進(jìn)行分析,如果多個(gè)處理機(jī)和多個(gè)存儲(chǔ)器之間不是簡(jiǎn)單地通過一條共享的總線實(shí)現(xiàn)互連,而是任意的互連結(jié)構(gòu),則(2)進(jìn)行資源管理抽象的構(gòu)造,對(duì)系統(tǒng)進(jìn)行處理機(jī)分組和存儲(chǔ)體分組;(3)為每個(gè)處理機(jī)組構(gòu)造處理機(jī)進(jìn)程,為每個(gè)存儲(chǔ)體組構(gòu)造存儲(chǔ)進(jìn)程。
2.根據(jù)權(quán)利要求1所述的嵌入式系統(tǒng)處理器進(jìn)程與存儲(chǔ)進(jìn)程分離的實(shí)現(xiàn)方法,其特征在于,所述步驟(2)中處理機(jī)分組的步驟為對(duì)于每一個(gè)處理機(jī),統(tǒng)計(jì)其能夠訪問的所有存儲(chǔ)體;把每個(gè)處理機(jī)作為一個(gè)處理機(jī)組,比較任意兩個(gè)處理機(jī)組能夠訪問的所有存儲(chǔ)體,如果一致且兩個(gè)處理機(jī)組也同構(gòu),把這兩個(gè)處理機(jī)組合并;重復(fù)執(zhí)行前一步驟直到?jīng)]有任何兩個(gè)處理機(jī)組可以合并為止。
3.根據(jù)權(quán)利要求1所述的嵌入式系統(tǒng)處理器進(jìn)程與存儲(chǔ)進(jìn)程分離的實(shí)現(xiàn)方法,其特征在于,所述步驟(2)中存儲(chǔ)體分組的步驟為對(duì)于每一個(gè)存儲(chǔ)體,統(tǒng)計(jì)能夠訪問該存儲(chǔ)體的所有處理機(jī);把每個(gè)存儲(chǔ)體作為一個(gè)存儲(chǔ)體組,比較任意兩個(gè)存儲(chǔ)體組相關(guān)的處理機(jī),如果一致則合并為一個(gè)存儲(chǔ)體組;重復(fù)執(zhí)行前一步驟直到?jīng)]有任何兩個(gè)存儲(chǔ)體組可以合并為止。
全文摘要
本發(fā)明涉及嵌入式系統(tǒng)技術(shù)領(lǐng)域,旨在提供一種嵌入式系統(tǒng)處理器進(jìn)程與存儲(chǔ)進(jìn)程分離的實(shí)現(xiàn)方法。該方法包括(1)對(duì)處理機(jī)和存儲(chǔ)器之間互連情況進(jìn)行分析,如果多個(gè)處理機(jī)和多個(gè)存儲(chǔ)器之間是任意的互連結(jié)構(gòu),則(2)進(jìn)行資源管理抽象的構(gòu)造,對(duì)系統(tǒng)進(jìn)行處理機(jī)分組和存儲(chǔ)體分組;(3)為每個(gè)處理機(jī)組構(gòu)造處理機(jī)進(jìn)程,為每個(gè)存儲(chǔ)體組構(gòu)造存儲(chǔ)進(jìn)程。本發(fā)明的方法可以實(shí)現(xiàn)嵌入式系統(tǒng)處理機(jī)進(jìn)程和存儲(chǔ)進(jìn)程的分離,能夠很好地實(shí)施對(duì)處理機(jī)資源和存儲(chǔ)器資源的管理。
文檔編號(hào)G06F9/46GK1873616SQ20061005223
公開日2006年12月6日 申請(qǐng)日期2006年6月30日 優(yōu)先權(quán)日2006年6月30日
發(fā)明者陳天洲, 張楠, 馬吉軍, 謝斌 申請(qǐng)人:浙江大學(xué)