一種應用于多核系統(tǒng)的分布式引用計數(shù)系統(tǒng)及計數(shù)方法
【專利摘要】本發(fā)明涉及一種應用于多核系統(tǒng)的分布式引用計數(shù)系統(tǒng),包括至少兩個系統(tǒng)內(nèi)核、內(nèi)存存儲模塊、任務管理器和系統(tǒng)全局引用計數(shù)模塊,還包括數(shù)個分別與各個系統(tǒng)內(nèi)核一一對應的本地資源引用模塊;基于本發(fā)明設計的技術(shù)方案,能夠克服傳統(tǒng)操作系統(tǒng)引用資源機制的瓶頸;與此相應,本發(fā)明還設計了基于以上系統(tǒng)的計數(shù)方法,有效降低了系統(tǒng)內(nèi)核直接對系統(tǒng)全局引用計數(shù)模塊的訪問頻率,有效避免了某個系統(tǒng)內(nèi)核獨占系統(tǒng)全局引用計數(shù)模塊而出現(xiàn)的過分“抖動”現(xiàn)象,有效地改善了操作系統(tǒng)的服務能力,提高了系統(tǒng)的可擴展性。
【專利說明】—種應用于多核系統(tǒng)的分布式引用計數(shù)系統(tǒng)及計數(shù)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種應用于多核系統(tǒng)的分布式引用計數(shù)系統(tǒng)及計數(shù)方法。
【背景技術(shù)】
[0002]為了管理各種資源,現(xiàn)代操作系統(tǒng)(例如Linux) —般采用引用計數(shù)的策略對資源進行管理,現(xiàn)有的資源的引用計數(shù)是一個共享計數(shù)器。內(nèi)核中的計數(shù)器可用于網(wǎng)絡統(tǒng)計、記錄各種資源的使用率等等。如果多個處理器試圖更新同一個計數(shù)器,則可能引起嚴重的競爭。因此,傳統(tǒng)操作系統(tǒng)通常使用粗粒度鎖來保護內(nèi)核對象中共享的引用計數(shù)。進程獲取一個對象的引用時,首先申請鎖,申請成功后操作計數(shù)器加1,最后解鎖;釋放引用時則依次執(zhí)行加鎖、計數(shù)器減I和解鎖操作,并執(zhí)行垃圾回收,同時需要判斷計數(shù)器是否為零,如果為零,表示沒有進程引用相應的對象,此時可撤銷該對象。隨著系統(tǒng)中CPU (或CPU核)數(shù)量的增加,計數(shù)器可能成為瓶頸:每次只有一個CPU可以修改該值,其它所有的CPU都必須等待操作結(jié)束,才能再次訪問計數(shù)器。如果計數(shù)器頻繁地被訪問,對鎖的競爭更為激烈。計數(shù)器的本質(zhì)是一個整數(shù)變量,在SMP環(huán)境下需要保護該變量不被并發(fā)更新。一種簡單的方法是把計數(shù)器定義為原子變量,并使用相應的原子加、減操作,然而原子計數(shù)器使用了復雜的鎖操作,要求當前CPU獨占該變量的cache訪問。一個經(jīng)常修改的原子計數(shù)器可能導致CPU核的cache過分抖動,嚴重影響系統(tǒng)性能。
[0003]本發(fā)明克服了傳統(tǒng)操作系統(tǒng)引用計數(shù)機制的瓶頸,從而解決由傳統(tǒng)操作系統(tǒng)使用粗粒度鎖來保護內(nèi)核對象中共享的引用而導致的CPU某個內(nèi)核獨占共享引用計數(shù)而過分“抖動”,嚴重影響系統(tǒng)性能的問題。該機制適用于優(yōu)化操作系統(tǒng)中引用計數(shù),從而避免共享計數(shù)器的競爭,改善系統(tǒng)的可擴展性。
【發(fā)明內(nèi)容】
[0004]針對上述技術(shù)問題,本發(fā)明所要解決的技術(shù)問題是提供一種克服了傳統(tǒng)操作系統(tǒng)引用資源機制的瓶頸,有效避免某個系統(tǒng)內(nèi)核獨占系統(tǒng)全局引用計數(shù)模塊而過分“抖動”,嚴重影響系統(tǒng)性能現(xiàn)象發(fā)生的應用于多核系統(tǒng)的分布式引用計數(shù)系統(tǒng)。
[0005]與之相應,針對上述技術(shù)問題,本發(fā)明所要解決的技術(shù)問題是提供一種基于本發(fā)明設計的應用于多核系統(tǒng)的分布式引用計數(shù)系統(tǒng),克服了傳統(tǒng)操作系統(tǒng)引用資源機制的瓶頸,有效提高系統(tǒng)資源引用效率的計數(shù)方法。
[0006]本發(fā)明為了解決上述技術(shù)問題采用以下技術(shù)方案:本發(fā)明設計了一種應用于多核系統(tǒng)的分布式引用計數(shù)系統(tǒng),包括至少兩個系統(tǒng)內(nèi)核、內(nèi)存存儲模塊、任務管理器和系統(tǒng)全局引用計數(shù)模塊;還包括數(shù)個本地資源引用模塊,本地資源引用模塊的數(shù)量與系統(tǒng)內(nèi)核的數(shù)量相一致;各個系統(tǒng)內(nèi)核分別一一對應與各個本地資源引用模塊相通信;同時,各個系統(tǒng)內(nèi)核分別與內(nèi)存存儲模塊、任務管理器、系統(tǒng)全局引用計數(shù)模塊相通信。
[0007]作為本發(fā)明的一種優(yōu)選技術(shù)方案:還包括全局鎖模塊和數(shù)個本地鎖模塊,所述各個系統(tǒng)內(nèi)核與全局鎖模塊相通信;本地鎖模塊的數(shù)量與所述系統(tǒng)內(nèi)核的數(shù)量相一致,所述各個系統(tǒng)內(nèi)核分別 對應與各個本地鎖模塊相通信。
[0008]本發(fā)明所述一種基于本發(fā)明設計應用于多核系統(tǒng)的分布式引用計數(shù)系統(tǒng)采用以上技術(shù)方案與現(xiàn)有技術(shù)相比,具有以下技術(shù)效果:
(1)本發(fā)明設計一種應用于多核系統(tǒng)的分布式引用計數(shù)系統(tǒng),在現(xiàn)有技術(shù)基礎之上,弓丨入數(shù)個分別與各個系統(tǒng)內(nèi)核一一對應的本地資源引用模塊,有效降低了系統(tǒng)內(nèi)核直接對系統(tǒng)全局引用計數(shù)模塊的訪問頻率,有效避免了某個系統(tǒng)內(nèi)核獨占系統(tǒng)全局引用計數(shù)模塊而出現(xiàn)的過分“抖動”現(xiàn)象,有效地改善了操作系統(tǒng)的服務能力,提高了系統(tǒng)的可擴展性;
(2)本發(fā)明設計一種應用于多核系統(tǒng)的分布式引用計數(shù)系統(tǒng),在引入本地資源引用模塊的同時,引入全局鎖模塊和本地鎖模塊,實現(xiàn)在各個系統(tǒng)內(nèi)核進行資源高效率引用的同時,避免了針對資源的并發(fā)操作,保證了系統(tǒng)的穩(wěn)定運行。
[0009]與此相應,本發(fā)明為了解決上述技術(shù)問題采用以下技術(shù)方案:本發(fā)明還設計了一種基于本發(fā)明所述應用于多核系統(tǒng)的分布式引用計數(shù)系統(tǒng)的計數(shù)方法,包括如下步驟:
步驟001.根據(jù)系統(tǒng)工作要求,預先初始化從所述內(nèi)存存儲模塊中分配可用資源至所述各個本地資源弓丨用模塊中,所述系統(tǒng)全局引用計數(shù)模塊清零;
步驟002.所述系統(tǒng)內(nèi)核接收由任務管理器分配的任務后,該系統(tǒng)內(nèi)核根據(jù)接收到的任務,向與之對應的本地資源引用模塊請求并獲得引用資源;
步驟003.該系統(tǒng)內(nèi)核根據(jù)請求獲得的引用資源完成該任務的執(zhí)行,同時,所述系統(tǒng)全局引用計數(shù)模塊根據(jù)該系統(tǒng)內(nèi)核請求獲得的引用資源數(shù),更新已引用的系統(tǒng)資源數(shù)。
[0010]作為本發(fā)明的一種優(yōu)選技術(shù)方案:所述步驟002中,若所述該系統(tǒng)內(nèi)核請求引用資源的數(shù)量大于其對應的本地資源引用模塊中存儲可用資源的數(shù)量時,該系統(tǒng)內(nèi)核先引用其對應的本地資源引用模塊中的所有可用資源后,然后從所述內(nèi)存存儲模塊中的可用資源中繼續(xù)引用不足的資源。
[0011]作為本發(fā)明的一種優(yōu)選技術(shù)方案:所述步驟002中,該系統(tǒng)內(nèi)核獲得引用資源后,與該系統(tǒng)內(nèi)核對應的本地鎖模塊對該系統(tǒng)內(nèi)核從對應本地資源引用模塊中引用的資源進行加鎖;同時,全局鎖模塊對由所述內(nèi)存存儲模塊中引用的資源進行加鎖。
[0012]作為本發(fā)明的一種優(yōu)選技術(shù)方案:所述步驟003后,還包括步驟004如下:
步驟004.該系統(tǒng)內(nèi)核完成該任務的執(zhí)行后,該系統(tǒng)內(nèi)核釋放所引用的資源,所述全局引用計數(shù)模塊減去該釋放引用資源的數(shù)量,更新已引用的系統(tǒng)資源數(shù),并且判斷當前所引用的資源引用自何處,若來自所述本地資源引用模塊,則由本地資源引用模塊回收該資源,并解除該資源上相應的鎖;若來自所述內(nèi)存存儲模塊,則由內(nèi)存存儲模塊回收該資源,并解除該資源上相應的鎖。
[0013]本發(fā)明所述一種基于本發(fā)明所述應用于多核系統(tǒng)的分布式引用計數(shù)系統(tǒng)的計數(shù)方法采用以上技術(shù)方案與現(xiàn)有技術(shù)相比,具有以下技術(shù)效果:
(I)本發(fā)明設計的基于本發(fā)明所述應用于多核系統(tǒng)的分布式引用計數(shù)系統(tǒng)的計數(shù)方法,針對引入數(shù)個分別與各個系統(tǒng)內(nèi)核一一對應的本地資源引用模塊的多核系統(tǒng),通過各個系統(tǒng)內(nèi)核分別與各個本地資源引用模塊一一對應的通信方式,有效降低了多個系統(tǒng)內(nèi)核直接對系統(tǒng)全局引用計數(shù)模塊的訪問頻率,克服了資源引用機制的瓶頸,避免了某個系統(tǒng)內(nèi)核獨占系統(tǒng)全局引用計數(shù)模塊而出現(xiàn)的過分“抖動”現(xiàn)象,有效地改善了操作系統(tǒng)的服務能力,提聞了系統(tǒng)的可擴展性; (2)本發(fā)明設計的基于本發(fā)明所述應用于多核系統(tǒng)的分布式引用計數(shù)系統(tǒng)的計數(shù)方法,在實現(xiàn)各個系統(tǒng)內(nèi)核對資源引用的同時,采用全局鎖模塊和本地鎖模塊,對相應被引用的資源實現(xiàn)加鎖操作,避免了針對資源的并發(fā)操作,保證了系統(tǒng)方法的穩(wěn)定運行;
(3)本發(fā)明設計的基于本發(fā)明所述應用于多核系統(tǒng)的分布式引用計數(shù)系統(tǒng)的計數(shù)方法中,還設計了針對引用資源的資源回收操作,能夠保證系統(tǒng)內(nèi)核執(zhí)行完任務后,及時實現(xiàn)對資源的釋放與回收操作,保證了系統(tǒng)內(nèi)核再次執(zhí)行任務時的高效率。
【專利附圖】
【附圖說明】
[0014]圖1是本發(fā)明設計基于應用于多核系統(tǒng)的分布式引用計數(shù)系統(tǒng)的計數(shù)方法的步驟流程示意圖。
【具體實施方式】
[0015]下面結(jié)合說明書附圖對本發(fā)明的【具體實施方式】作進一步詳細的說明。
[0016]本發(fā)明設計一種應用于多核系統(tǒng)的分布式引用計數(shù)系統(tǒng),包括至少兩個系統(tǒng)內(nèi)核、內(nèi)存存儲模塊、任務管理器和系統(tǒng)全局引用計數(shù)模塊;還包括數(shù)個本地資源引用模塊,本地資源引用模塊的數(shù)量與系統(tǒng)內(nèi)核的數(shù)量相一致;各個系統(tǒng)內(nèi)核分別一一對應與各個本地資源引用模塊相通信;同時,各個系統(tǒng)內(nèi)核分別與內(nèi)存存儲模塊、任務管理器、系統(tǒng)全局引用計數(shù)模塊相通信,在現(xiàn)有技術(shù)基礎之上,引入數(shù)個分別與各個系統(tǒng)內(nèi)核一一對應的本地資源引用模塊,有效降低了系統(tǒng)內(nèi)核直接對系統(tǒng)全局引用計數(shù)模塊的訪問頻率,有效避免了某個系統(tǒng)內(nèi)核獨占系統(tǒng)全局引用計數(shù)模塊而出現(xiàn)的過分“抖動”現(xiàn)象,有效地改善了操作系統(tǒng)的服務能力,提高了系統(tǒng)的可擴展性。
[0017]作為本發(fā)明的一種優(yōu)選技術(shù)方案:還包括全局鎖模塊和數(shù)個本地鎖模塊,所述各個系統(tǒng)內(nèi)核與全局鎖模塊相通信;本地鎖模塊的數(shù)量與所述系統(tǒng)內(nèi)核的數(shù)量相一致,所述各個系統(tǒng)內(nèi)核分別一一對應與各個本地鎖模塊相通信,在引入本地資源引用模塊的同時,引入全局鎖模塊和本地鎖模塊,實現(xiàn)在各個系統(tǒng)內(nèi)核進行資源高效率引用的同時,避免了針對資源的并發(fā)操作,保證了系統(tǒng)的穩(wěn)定運行。
[0018]與此相應,如圖1所示,本發(fā)明設計一種基于本發(fā)明所述應用于多核系統(tǒng)的分布式引用計數(shù)系統(tǒng)的計數(shù)方法,包括如下步驟:
步驟001.根據(jù)系統(tǒng)工作要求,預先初始化從所述內(nèi)存存儲模塊中分配可用資源至所述各個本地資源弓丨用模塊中,所述系統(tǒng)全局引用計數(shù)模塊清零;
步驟002.所述系統(tǒng)內(nèi)核接收由任務管理器分配的任務后,該系統(tǒng)內(nèi)核根據(jù)接收到的任務,向與之對應的本地資源引用模塊請求并獲得引用資源;
步驟003.該系統(tǒng)內(nèi)核根據(jù)請求獲得的引用資源完成該任務的執(zhí)行,同時,所述系統(tǒng)全局引用計數(shù)模塊根據(jù)該系統(tǒng)內(nèi)核請求獲得的引用資源數(shù),更新已引用的系統(tǒng)資源數(shù)。
[0019]本發(fā)明設計的基于本發(fā)明所述應用于多核系統(tǒng)的分布式引用計數(shù)系統(tǒng)的計數(shù)方法,針對引入數(shù)個分別與各個系統(tǒng)內(nèi)核一一對應的本地資源引用模塊的多核系統(tǒng),通過各個系統(tǒng)內(nèi)核分別與各個本地資源引用模塊一一對應的通信方式,有效降低了多個系統(tǒng)內(nèi)核直接對系統(tǒng)全局引用計數(shù)模塊的訪問頻率,克服了資源引用機制的瓶頸,避免了某個系統(tǒng)內(nèi)核獨占系統(tǒng)全局引用計數(shù)模塊而出現(xiàn)的過分“抖動”現(xiàn)象,有效地改善了操作系統(tǒng)的服務能力,提高了系統(tǒng)的可擴展性。
[0020]作為本發(fā)明的一種優(yōu)選技術(shù)方案:所述步驟002中,若所述該系統(tǒng)內(nèi)核請求引用資源的數(shù)量大于其對應的本地資源引用模塊中存儲可用資源的數(shù)量時,該系統(tǒng)內(nèi)核先引用其對應的本地資源引用模塊中的所有可用資源后,然后從所述內(nèi)存存儲模塊中的可用資源中繼續(xù)引用不足的資源。
[0021]作為本發(fā)明的一種優(yōu)選技術(shù)方案:所述步驟002中,該系統(tǒng)內(nèi)核獲得引用資源后,與該系統(tǒng)內(nèi)核對應的本地鎖模塊對該系統(tǒng)內(nèi)核從對應本地資源引用模塊中引用的資源進行加鎖;同時,全局鎖模塊對由所述內(nèi)存存儲模塊中引用的資源進行加鎖。
[0022]本發(fā)明設計的基于本發(fā)明所述應用于多核系統(tǒng)的分布式引用計數(shù)系統(tǒng)的計數(shù)方法,在實現(xiàn)各個系統(tǒng)內(nèi)核對資源引用的同時,采用全局鎖模塊和本地鎖模塊,對相應被引用的資源實現(xiàn)加鎖操作,避免了針對資源的并發(fā)操作,保證了系統(tǒng)方法的穩(wěn)定運行。
[0023]作為本發(fā)明的一種優(yōu)選技術(shù)方案:所述步驟003后,還包括步驟004如下:
步驟004.該系統(tǒng)內(nèi)核完成該任務的執(zhí)行后,該系統(tǒng)內(nèi)核釋放所引用的資源,所述全局引用計數(shù)模塊減去該釋放引用資源的數(shù)量,更新已引用的系統(tǒng)資源數(shù),并且判斷當前所引用的資源引用自何處,若來自所述本地資源引用模塊,則由本地資源引用模塊回收該資源,并解除該資源上相應的鎖;若來自所述內(nèi)存存儲模塊,則由內(nèi)存存儲模塊回收該資源,并解除該資源上相應的鎖。
[0024]本發(fā)明設計的基于本發(fā)明所述應用于多核系統(tǒng)的分布式引用計數(shù)系統(tǒng)的計數(shù)方法中,還設計了針對引用資源的資源回收操作,能夠保證系統(tǒng)內(nèi)核執(zhí)行完任務后,及時實現(xiàn)對資源的釋放與回收操作,保證了系統(tǒng)內(nèi)核再次執(zhí)行任務時的高效率。
[0025]綜上所述,本發(fā)明設計一種應用于多核系統(tǒng)的分布式引用計數(shù)系統(tǒng)及計數(shù)方法實際應用過程中,針對應用于多核系統(tǒng)的分布式引用計數(shù)系統(tǒng),包括至少兩個系統(tǒng)內(nèi)核、內(nèi)存存儲模塊、任務管理器、系統(tǒng)全局引用計數(shù)模塊、全局鎖模塊和數(shù)個本地鎖模;還包括數(shù)個本地資源引用模塊,本地資源引用模塊的數(shù)量與系統(tǒng)內(nèi)核的數(shù)量相一致;各個系統(tǒng)內(nèi)核分別一一對應與各個本地資源引用模塊相通信;同時,各個系統(tǒng)內(nèi)核分別與內(nèi)存存儲模塊、任務管理器、系統(tǒng)全局引用計數(shù)模塊相通信;各個系統(tǒng)內(nèi)核與全局鎖模塊相通信;本地鎖模塊的數(shù)量與所述系統(tǒng)內(nèi)核的數(shù)量相一致,所述各個系統(tǒng)內(nèi)核分別一一對應與各個本地鎖模塊相通信?;谝陨蠎糜诙嗪讼到y(tǒng)的分布式引用計數(shù)系統(tǒng)的基礎之上,通過如下方法步驟實現(xiàn)計數(shù)。
[0026]步驟001.根據(jù)系統(tǒng)工作要求,預先初始化從所述內(nèi)存存儲模塊中分配可用資源至所述各個本地資源弓丨用模塊中,所述系統(tǒng)全局引用計數(shù)模塊清零;
步驟002.所述系統(tǒng)內(nèi)核接收由任務管理器分配的任務后,該系統(tǒng)內(nèi)核根據(jù)接收到的任務,向與之對應的本地資源引用模塊請求并獲得引用資源,若所述該系統(tǒng)內(nèi)核請求引用資源的數(shù)量大于其對應的本地資源引用模塊中存儲可用資源的數(shù)量時,該系統(tǒng)內(nèi)核先引用其對應的本地資源引用模塊中的所有可用資源后,然后從所述內(nèi)存存儲模塊中的可用資源中繼續(xù)引用不足的資源;該系統(tǒng)內(nèi)核獲得引用資源后,與該系統(tǒng)內(nèi)核對應的本地鎖模塊對該系統(tǒng)內(nèi)核從對應本地資源引用模塊中引用的資源進行加鎖;同時,全局鎖模塊對由所述內(nèi)存存儲模塊中引用的資源進行加鎖;
步驟003.該系統(tǒng)內(nèi)核根據(jù)請求獲得的引用資源完成該任務的執(zhí)行,同時,所述系統(tǒng)全局引用計數(shù)模塊根據(jù)該系統(tǒng)內(nèi)核請求獲得的引用資源數(shù),更新已引用的系統(tǒng)資源數(shù);
步驟004.該系統(tǒng)內(nèi)核完成該任務的執(zhí)行后,該系統(tǒng)內(nèi)核釋放所引用的資源,所述全局引用計數(shù)模塊減去該釋放引用資源的數(shù)量,更新已引用的系統(tǒng)資源數(shù),并且判斷當前所引用的資源引用自何處,若來自所述本地資源引用模塊,則由本地資源引用模塊回收該資源,并解除該資源上相應的鎖;若來自所述內(nèi)存存儲模塊,則由內(nèi)存存儲模塊回收該資源,并解除該資源上相應的鎖。
[0027]本發(fā)明是在傳統(tǒng)操作系統(tǒng)基礎上設計了應用于多核系統(tǒng)的分布式引用計數(shù)系統(tǒng)及計數(shù)方法,能夠有效減少進程間對資源引用的競爭,降低持有資源引用、釋放資源引用時的開銷。改進后的計數(shù)系統(tǒng)及計數(shù)方法保留了系統(tǒng)全局引用計數(shù)模塊,同時引入了數(shù)個分別與各個系統(tǒng)內(nèi)核一一對應的本地資源引用模塊,初始化時,從所述內(nèi)存存儲模塊中分配可用資源至所述各個本地資源引用模塊中,所述系統(tǒng)全局引用計數(shù)模塊清零;當某個系統(tǒng)內(nèi)核執(zhí)行任務需要引用資源時,該系統(tǒng)內(nèi)核先從與之對應的本地資源引用模塊中請求引用資源,若所述該系統(tǒng)內(nèi)核請求引用資源的數(shù)量大于其對應的本地資源引用模塊中存儲可用資源的數(shù)量時,該系統(tǒng)內(nèi)核先引用其對應的本地資源引用模塊中的所有可用資源后,然后從所述內(nèi)存存儲模塊中的可用資源中繼續(xù)引用不足的資源;該系統(tǒng)內(nèi)核獲得引用資源后,再通過相應的本地鎖模塊或全局鎖模塊對相應的資源進行加鎖;同時,系統(tǒng)全局引用計數(shù)模塊更新已引用的系統(tǒng)資源數(shù);當該系統(tǒng)內(nèi)核執(zhí)行完該任務時,本發(fā)明相應設計了資源回收方法。相對于傳統(tǒng)的資源引用機制,本發(fā)明克服了資源引用機制的瓶頸,避免了某個系統(tǒng)內(nèi)核獨占系統(tǒng)全局引用計數(shù)模塊而出現(xiàn)的過分“抖動”現(xiàn)象,有效地改善了操作系統(tǒng)的服務能力,提高了系統(tǒng)的可擴展性。
[0028]上面結(jié)合附圖對本發(fā)明的實施方式作了詳細說明,但是本發(fā)明并不限于上述實施方式,在本領(lǐng)域普通技術(shù)人員所具備的知識范圍內(nèi),還可以在不脫離本發(fā)明宗旨的前提下做出各種變化。
【權(quán)利要求】
1.一種應用于多核系統(tǒng)的分布式引用計數(shù)系統(tǒng),包括至少兩個系統(tǒng)內(nèi)核、內(nèi)存存儲模塊、任務管理器和系統(tǒng)全局引用計數(shù)模塊;其特征在于:還包括數(shù)個本地資源引用模塊,本地資源引用模塊的數(shù)量與系統(tǒng)內(nèi)核的數(shù)量相一致;各個系統(tǒng)內(nèi)核分別一一對應與各個本地資源引用模塊相通信;同時,各個系統(tǒng)內(nèi)核分別與內(nèi)存存儲模塊、任務管理器、系統(tǒng)全局引用計數(shù)模塊相通信。
2.根據(jù)權(quán)利要求1所述一種應用于多核系統(tǒng)的分布式引用計數(shù)系統(tǒng),其特征在于:還包括全局鎖模塊和數(shù)個本地鎖模塊,所述各個系統(tǒng)內(nèi)核與全局鎖模塊相通信;本地鎖模塊的數(shù)量與所述系統(tǒng)內(nèi)核的數(shù)量相一致,所述各個系統(tǒng)內(nèi)核分別一一對應與各個本地鎖模塊相通信。
3.一種基于權(quán)利要求1至2中任意一項所述應用于多核系統(tǒng)的分布式引用計數(shù)系統(tǒng)的計數(shù)方法,其特征在于,包括如下步驟: 步驟001.根據(jù)系統(tǒng)工作要求,預先初始化從所述內(nèi)存存儲模塊中分配可用資源至所述各個本地資源弓丨用模塊中,所述系統(tǒng)全局引用計數(shù)模塊清零; 步驟002.所述系統(tǒng)內(nèi)核接收由任務管理器分配的任務后,該系統(tǒng)內(nèi)核根據(jù)接收到的任務,向與之對應的本地資源引用模塊請求并獲得引用資源; 步驟003.該系統(tǒng)內(nèi)核根據(jù)請求獲得的引用資源完成該任務的執(zhí)行,同時,所述系統(tǒng)全局引用計數(shù)模塊根據(jù)該系統(tǒng)內(nèi)核請求獲得的引用資源數(shù),更新已引用的系統(tǒng)資源數(shù)。
4.根據(jù)權(quán)利要求3所述一種基于應用于多核系統(tǒng)的分布式引用計數(shù)系統(tǒng)的計數(shù)方法,其特征在于,所述步驟002中,若所述該系統(tǒng)內(nèi)核請求引用資源的數(shù)量大于其對應的本地資源引用模塊中存儲可用資源的數(shù)量時,該系統(tǒng)內(nèi)核先引用其對應的本地資源引用模塊中的所有可用資源后,然后從所述內(nèi)存存儲模塊中的可用資源中繼續(xù)引用不足的資源。
5.根據(jù)權(quán)利要求4所述一種基于應用于多核系統(tǒng)的分布式引用計數(shù)系統(tǒng)的計數(shù)方法,其特征在于,所述步驟002中,該系統(tǒng)內(nèi)核獲得引用資源后,與該系統(tǒng)內(nèi)核對應的本地鎖模塊對該系統(tǒng)內(nèi)核從對應本地資源引用模塊中引用的資源進行加鎖;同時,全局鎖模塊對由所述內(nèi)存存儲模塊中引用的資源進行加鎖。
6.根據(jù)權(quán)利要求5所述一種基于應用于多核系統(tǒng)的分布式引用計數(shù)系統(tǒng)的計數(shù)方法,其特征在于,所述步驟003后,還包括步驟004如下: 步驟004.該系統(tǒng)內(nèi)核完成該任務的執(zhí)行后,該系統(tǒng)內(nèi)核釋放所引用的資源,所述全局引用計數(shù)模塊減去該釋放引用資源的數(shù)量,更新已引用的系統(tǒng)資源數(shù),并且判斷當前所引用的資源引用自何處,若來自所述本地資源引用模塊,則由本地資源引用模塊回收該資源,并解除該資源上相應的鎖;若來自所述內(nèi)存存儲模塊,則由內(nèi)存存儲模塊回收該資源,并解除該資源上相應的鎖。
【文檔編號】G06F15/177GK103942180SQ201410120816
【公開日】2014年7月23日 申請日期:2014年3月28日 優(yōu)先權(quán)日:2014年3月28日
【發(fā)明者】侯榮濤, 榮歡, 王琴 申請人:南京信息工程大學