跨進(jìn)程的資源共享方法和設(shè)備的制作方法
【專利摘要】本發(fā)明的實施方式提供了一種跨進(jìn)程的資源共享方法和設(shè)備。所述方法包括:與同一個程序的多個進(jìn)程實現(xiàn)進(jìn)程間通信;響應(yīng)于所述多個進(jìn)程中當(dāng)前請求獲取資源文件的進(jìn)程的獲取請求,確定所述獲取請求所針對的目標(biāo)資源文件;為所述目標(biāo)資源文件分配一塊共享內(nèi)存區(qū)域作為資源文件存儲區(qū),將所述目標(biāo)資源文件從物理磁盤載入到所述資源文件存儲區(qū)中;將所述資源文件存儲區(qū)的映射地址返回給所述多個進(jìn)程中當(dāng)前請求獲取資源文件的進(jìn)程。當(dāng)同一個程序的多個進(jìn)程對資源文件的需求相同時,本發(fā)明的方法可以節(jié)約IO操作、CPU時間以及內(nèi)存空間。此外,本發(fā)明的另一方面提供了一種跨進(jìn)程的資源共享的設(shè)備,例如,客戶端上安裝的軟件。
【專利說明】跨進(jìn)程的資源共享方法和設(shè)備
【技術(shù)領(lǐng)域】
[0001]本發(fā)明的實施方式涉及數(shù)據(jù)存儲領(lǐng)域,更具體地,本發(fā)明的實施方式涉及跨進(jìn)程的資源共享方法和設(shè)備。
【背景技術(shù)】
[0002]本部分旨在為權(quán)利要求書中陳述的本發(fā)明的實施方式提供背景或上下文。此處的描述可包括可以探究的概念,但不一定是之前已經(jīng)想到或者已經(jīng)探究的概念。因此,除非在此指出,否則在本部分中描述的內(nèi)容對于本申請的說明書和權(quán)利要求書而言不是現(xiàn)有技術(shù),并且并不因為包括在本部分中就承認(rèn)是現(xiàn)有技術(shù)。
[0003]在一臺電腦上,往往會同時運行一個程序的多個進(jìn)程,例如,游戲玩家為了多個游戲賬號下的不同角色之間的交互,或者,為了同時玩多個不同的角色,就會運行一個游戲程序的多個進(jìn)程。
[0004]在現(xiàn)有技術(shù)中,每個進(jìn)程都擁有自己專屬的一個內(nèi)存空間,當(dāng)某個進(jìn)程需要資源文件時,該進(jìn)程會調(diào)用一個資源管理模塊,該資源管理模塊將資源文件從物理磁盤載入到該進(jìn)程專屬的內(nèi)存空間。
【發(fā)明內(nèi)容】
[0005]但是,本發(fā)明人在研究過程中發(fā)現(xiàn),在現(xiàn)有技術(shù)中,一個程序的多個進(jìn)程對資源文件的需求通常是相同,即,一個程序的多個進(jìn)程通常需要的資源文件是相同的。例如,當(dāng)一個程序的多個進(jìn)程都需要資源文件A時,對于每一個進(jìn)程而言,都會調(diào)用一次資源管理模塊,并由資源管理模塊將資源文件A從物理磁盤載入到每一個進(jìn)程各自的內(nèi)存空間中。也就是說,資源管理模塊會重復(fù)多次地對資源文件A執(zhí)行載入操作。其中,資源管理模塊在每次載入過程中都要執(zhí)行如下操作:從物理磁盤讀取經(jīng)過編碼處理的資源文件,對讀取的資源文件進(jìn)行解碼,將解碼后的資源文件寫入到每個進(jìn)程各自的內(nèi)存空間。
[0006]因此依照現(xiàn)有技術(shù),在資源管理模塊從物理磁盤讀取經(jīng)過編碼處理的資源文件的過程中,會消耗IO操作;在資源管理模塊對讀取的資源文件進(jìn)行解碼的過程中,也會消耗CPU時間;在資源管理模塊將解碼后的資源文件寫入到每個進(jìn)程各自的內(nèi)存空間的過程中,還會消耗內(nèi)存空間。如果資源管理模塊重復(fù)多次地對相同的資源文件執(zhí)行讀取、解碼和存儲操作時,必然會消耗大量的IO操作、CPU時間和內(nèi)存空間。特別是在一個程序同時運行大量進(jìn)程的情況下,而對IO操作、CPU時間以及內(nèi)存空間的損耗問題就變得更加嚴(yán)重。
[0007]為此,非常需要一種跨進(jìn)程的集中的資源管理共享方法和設(shè)備,以解決現(xiàn)有技術(shù)中當(dāng)同一個程序的多個進(jìn)程對資源文件的需求相同時,會消耗大量的IO操作、CPU時間以及內(nèi)存這一技術(shù)問題。
[0008]在本上下文中,本發(fā)明的實施方式期望提供一種實現(xiàn)跨進(jìn)程的資源共享方法和設(shè)備。
[0009]在本發(fā)明實施方式的第一方面中,提供了一種實現(xiàn)跨進(jìn)程的資源共享方法,包括:與同一個程序的多個進(jìn)程實現(xiàn)進(jìn)程間通信;響應(yīng)于所述多個進(jìn)程中當(dāng)前請求獲取資源文件的進(jìn)程的獲取請求,確定所述獲取請求所針對的目標(biāo)資源文件;為所述目標(biāo)資源文件分配一塊共享內(nèi)存區(qū)域作為資源文件存儲區(qū),將所述目標(biāo)資源文件從物理磁盤載入到所述資源文件存儲區(qū)中;將所述資源文件存儲區(qū)的映射地址返回給所述多個進(jìn)程中當(dāng)前請求獲取資源文件的進(jìn)程。
[0010]在本發(fā)明實施方式的第二方面中,提供了一種實現(xiàn)跨進(jìn)程的資源共享設(shè)備,包括:進(jìn)程間通信單元,用于與同一個程序的多個進(jìn)程實現(xiàn)進(jìn)程間通信;資源文件確定單元,用于響應(yīng)于所述多個進(jìn)程中當(dāng)前請求獲取資源文件的進(jìn)程的獲取請求,確定所述獲取請求所針對的目標(biāo)資源文件;資源文件載入單元,用于為所述目標(biāo)資源文件分配一塊共享內(nèi)存區(qū)域作為資源文件存儲區(qū),將所述目標(biāo)資源文件從物理磁盤載入到所述資源文件存儲區(qū)中;資源文件地址返回單元,用于將所述資源文件存儲區(qū)的映射地址返回給所述多個進(jìn)程中當(dāng)前請求獲取資源文件的進(jìn)程。
[0011]在本發(fā)明實施方式中,由于為目標(biāo)資源文件分配了一塊共享內(nèi)存區(qū)域,而共享內(nèi)存區(qū)域允許被同一個程序的多個進(jìn)程訪問,因此,只需執(zhí)行一次將目標(biāo)資源文件載入到共享內(nèi)存區(qū)域的操作,而無需重復(fù)執(zhí)行將目標(biāo)資源文件分別載入到多個進(jìn)程各自的內(nèi)存空間的操作。從而,當(dāng)同一個程序的多個進(jìn)程對資源文件的需求相同時,可以節(jié)約IO操作、CPU時間以及內(nèi)存空間。
【專利附圖】
【附圖說明】
[0012]通過參考附圖閱讀下文的詳細(xì)描述,本發(fā)明示例性實施方式的上述以及其他目的、特征和優(yōu)點將變得易于理解。在附圖中,以示例性而非限制性的方式示出了本發(fā)明的若干實施方式,其中:
[0013]圖1示意性地示出了本發(fā)明的實施方式的一個示例性應(yīng)用場景;
[0014]圖2示意性地示出了根據(jù)本發(fā)明的一個實施方式的跨進(jìn)程的資源共享的方法的流程圖;
[0015]圖3示意性地示出了根據(jù)本發(fā)明的一個實施方式的基于共享內(nèi)存實現(xiàn)進(jìn)程間通信的方法的流程圖;
[0016]圖4示意性地示出了根據(jù)本發(fā)明的另一個實施方式的跨進(jìn)程的資源共享的方法的流程圖;
[0017]圖5示意性地示出了根據(jù)本發(fā)明一個實施方式的跨進(jìn)程的資源共享設(shè)備的結(jié)構(gòu)框架圖。
[0018]在附圖中,相同或?qū)?yīng)的標(biāo)號表不相同或?qū)?yīng)的部分。
【具體實施方式】
[0019]下面將參考若干示例性實施方式來描述本發(fā)明的原理和精神。應(yīng)當(dāng)理解,給出這些實施方式僅僅是為了使本領(lǐng)域技術(shù)人員能夠更好地理解進(jìn)而實現(xiàn)本發(fā)明,而并非以任何方式限制本發(fā)明的范圍。相反,提供這些實施方式是為了使本公開更加透徹和完整,并且能夠?qū)⒈竟_的范圍完整地傳達(dá)給本領(lǐng)域的技術(shù)人員。
[0020]本領(lǐng)域技術(shù)技術(shù)人員知道,本發(fā)明的實施方式可以實現(xiàn)為一種系統(tǒng)、裝置、設(shè)備、方法或計算機程序產(chǎn)品。因此,本公開可以具體實現(xiàn)為以下形式,即:完全的硬件、完全的軟件(包括固件、駐留軟件、微代碼等),或者硬件和軟件結(jié)合的形式。
[0021]根據(jù)本發(fā)明的實施方式,提出了一種實現(xiàn)跨進(jìn)程的資源共享的方法和設(shè)備。
[0022]在本文中,需要理解的是,附圖中的任何元素數(shù)量均用于示例而非限制,以及任何命名都僅用于區(qū)分,而不具有任何限制含義。
[0023]下面參考本發(fā)明的若干代表性實施方式,詳細(xì)闡釋本發(fā)明的原理和精神。
[0024]發(fā)明概沭
[0025]本發(fā)明人發(fā)現(xiàn),同一個程序的多個進(jìn)程所需的資源文件通常是相同的,對于每一個進(jìn)程而言,其會各自調(diào)用一次資源管理模塊,以便由資源管理模塊將資源文件從物理磁盤載入到每一個進(jìn)程各自的內(nèi)存空間中。也就是說,資源管理模塊會重復(fù)多次地對相同的資源文件執(zhí)行載入操作,并且,每次載入過程都要執(zhí)行如下操作:從物理磁盤讀取經(jīng)過編碼處理的資源文件,對讀取的資源文件進(jìn)行解碼,將解碼后的資源文件寫入到每個進(jìn)程各自的內(nèi)存空間。由于從物理磁盤讀取經(jīng)過編碼處理的資源文件的過程會消耗IO操作,對讀取的資源文件進(jìn)行解碼的過程中會消耗CPU時間,將解碼后的資源文件寫入到每一個進(jìn)程各自的內(nèi)存空間的過程會消耗內(nèi)存空間,因此,當(dāng)資源管理模塊在多個進(jìn)程的調(diào)用下,重復(fù)多次地對相同的資源文件執(zhí)行載入操作時,必然會消耗大量的IO操作、CPU時間以及內(nèi)存空間。
[0026]如果針對同一個程序的多個進(jìn)程所需的相同的資源文件,只進(jìn)行一次載入操作,就可以節(jié)約因重復(fù)多次載入操作而消耗的IO操作、CPU時間以及內(nèi)存空間。
[0027]在介紹了本發(fā)明的基本原理之后,下面具體介紹本發(fā)明的各種非限制性實施方式。
[0028]應(yīng)用場景總覽
[0029]首先參考圖1,圖1示意性地示出了本發(fā)明的實施方式的一個示例性應(yīng)用場景。其中,在客戶端(例如,臺式機)10上,運行了同一個程序的多個需求進(jìn)程11 (附圖中的一個僅為示例)和一個中心進(jìn)程12。中心進(jìn)程12響應(yīng)于需求進(jìn)程11對資源文件的獲取請求,先在客戶端10上為資源文件分配一塊共享內(nèi)存區(qū)域13,然后將資源文件從物理磁盤載入到共享內(nèi)存區(qū)域13中,最后將共享內(nèi)存區(qū)域13的映射地址返回給需求進(jìn)程11 ;需求進(jìn)程11根據(jù)共享內(nèi)存區(qū)域13的映射地址從共享內(nèi)存區(qū)域13中讀取資源文件。本領(lǐng)域技術(shù)人員可以理解,圖1所示的示意圖僅是本發(fā)明的實施方式可以在其中得以實現(xiàn)的一個示例。本發(fā)明實施方式的適用范圍不受到該框架任何方面的限制。
[0030]示例性方法
[0031]下面結(jié)合圖1的應(yīng)用場景,參考圖2來描述根據(jù)本發(fā)明示例性實施方式的、用于實現(xiàn)跨進(jìn)程的資源共享的方法。需要注意的是,上述應(yīng)用場景僅是為了便于理解本發(fā)明的精神和原理而示出,本發(fā)明的實施方式在此方面不受任何限制。相反,本發(fā)明的實施方式可以應(yīng)用于適用的任何場景。
[0032]請參閱圖2,其示意性地示出了根據(jù)本發(fā)明的一個實施方式的跨進(jìn)程的資源共享的方法的流程圖,方法具體例如可以包括:
[0033]步驟201:與同一個程序的多個進(jìn)程實現(xiàn)進(jìn)程間通信。
[0034]目前,實現(xiàn)進(jìn)程間通信的方式有很多,例如,可以通過系統(tǒng)窗口消息實現(xiàn)進(jìn)程間通信,或者,也可以通過網(wǎng)絡(luò)協(xié)議時間進(jìn)程間通信。
[0035]除此之外,根據(jù)本發(fā)明的第一個優(yōu)選方式,還可以基于共享內(nèi)存實現(xiàn)進(jìn)程間通信。
[0036]圖3示意性地示出了根據(jù)本發(fā)明的一個實施方式的基于共享內(nèi)存實現(xiàn)進(jìn)程間通信的方法的流程圖,方法具體例如可以包括:
[0037]步驟301:為所述多個進(jìn)程創(chuàng)建一塊內(nèi)存共享區(qū)域作為初始通信區(qū),并為所述初始通信區(qū)創(chuàng)建一個事件內(nèi)核對象作為第一事件內(nèi)核對象。
[0038]中心進(jìn)程創(chuàng)建一塊內(nèi)存共享區(qū)域作為初始通信區(qū),同一個程序的多個需求進(jìn)程共用該初始通信區(qū)。并且,該初始通信區(qū)具有一個約定名字。
[0039]在創(chuàng)建初始通信區(qū)的過程中,中心進(jìn)程映射該初始通信區(qū)的共享內(nèi)存,并得到初始通信區(qū)的映射地址。通過初始通信區(qū)的映射地址,中心進(jìn)程既可以從初始通信區(qū)中讀取數(shù)據(jù),也可以向初始通信區(qū)寫入數(shù)據(jù)。
[0040]另外,第一事件內(nèi)核對象也具有一個約定名字。
[0041]步驟302:響應(yīng)于所述第一事件內(nèi)核對象的通知消息,從所述初始通信區(qū)中讀取所述多個進(jìn)程的身份標(biāo)識,所述第一事件內(nèi)核對象的通知消息是所述多個進(jìn)程中當(dāng)前新加入的進(jìn)程將自己身份標(biāo)識寫入到所述初始通信區(qū)中時觸發(fā)的。
[0042]下面將以需求進(jìn)程I為當(dāng)前新加入的進(jìn)程為例,說明以下各步驟的執(zhí)行過程。
[0043]需求進(jìn)程I通過初始通信區(qū)的約定名字映射初始通信區(qū)的共享內(nèi)存,并得到初始通信區(qū)的映射地址。通過初始通信區(qū)的映射地址,需求進(jìn)程I既可以從初始通信區(qū)中讀取數(shù)據(jù),也可以向初始通信區(qū)寫入數(shù)據(jù)。
[0044]其中,需求進(jìn)程I將自身的身份標(biāo)識寫入到初始通信區(qū)中,寫入完畢后觸發(fā)第一事件內(nèi)核對象的通知消息,中心進(jìn)程在接收到第一事件內(nèi)核對象的通知消息后,從初始通信區(qū)中讀取需求進(jìn)程I的身份標(biāo)識。
[0045]步驟303:根據(jù)讀取的所述多個進(jìn)程中當(dāng)前新加入的進(jìn)程的身份標(biāo)識為所述多個進(jìn)程中當(dāng)前新加入的進(jìn)程分別分配一塊共享內(nèi)存區(qū)域作為進(jìn)程通信區(qū),并為所述進(jìn)程通信區(qū)創(chuàng)建一個事件內(nèi)核對象作為第二事件內(nèi)核對象。
[0046]當(dāng)中心進(jìn)程從初始通信區(qū)中讀取出需求進(jìn)程I的身份標(biāo)識后,為需求進(jìn)程I分配一塊共享內(nèi)存區(qū)域作為進(jìn)程通信區(qū)1,并為需求進(jìn)程I分配一個唯一的索引號。
[0047]在為需求進(jìn)程I分配進(jìn)程通信區(qū)I的過程中,中心進(jìn)程映射該進(jìn)程通信區(qū)I的共享內(nèi)存,并得到進(jìn)程通信區(qū)I的映射地址。通過進(jìn)程通信區(qū)I的映射地址,中心進(jìn)程既可以從進(jìn)程通信區(qū)I中讀取數(shù)據(jù),也可以向進(jìn)程通信區(qū)I寫入數(shù)據(jù)。
[0048]另外,第二事件內(nèi)核對象的名字可以為第一事件內(nèi)核對象的約定名字+需求進(jìn)程I的索引號。
[0049]步驟304:將所述進(jìn)程通信區(qū)的映射地址寫入到所述初始通信區(qū),并重置位于所述初始通信區(qū)的第一標(biāo)志位,被重置的所述第一標(biāo)志位用于指示所述多個進(jìn)程中當(dāng)前新加入的進(jìn)程已經(jīng)可以從所述初始通信區(qū)中讀取所述進(jìn)程通信區(qū)的映射地址,以便基于所述進(jìn)程通信區(qū)與所述多個進(jìn)程中當(dāng)前新加入的進(jìn)程時間進(jìn)程間通信。
[0050]中心進(jìn)程將進(jìn)程通信區(qū)I的映射地址寫入到初始通信區(qū)中,并且,重置位于初始通信區(qū)的一個標(biāo)志位。需求進(jìn)程I一旦發(fā)現(xiàn)初始通信區(qū)中的該標(biāo)志位被重置,就從初始通信區(qū)讀取進(jìn)程通信區(qū)I的映射地址。需求進(jìn)程I通過該進(jìn)程通信區(qū)I的映射地址,既可以從進(jìn)程通信區(qū)I中讀取數(shù)據(jù),也可以向進(jìn)程通信區(qū)I寫入數(shù)據(jù)。
[0051]除了進(jìn)程通信區(qū)I的映射地址之外,中心進(jìn)程還將需求進(jìn)程I的索引號寫入到初始通信區(qū),以便需求進(jìn)程I從初始通信區(qū)中讀取該索引號。之后,中心進(jìn)程與需求進(jìn)程I之間通過進(jìn)程通信區(qū)I實現(xiàn)進(jìn)程間通信。
[0052]接著返回圖2。
[0053]步驟202:響應(yīng)于所述多個進(jìn)程中當(dāng)前請求獲取資源文件的進(jìn)程的獲取請求,確定所述獲取請求所針對的目標(biāo)資源文件。
[0054]根據(jù)本發(fā)明的第一個優(yōu)選方式,當(dāng)基于共享內(nèi)存實現(xiàn)進(jìn)程間通信時,響應(yīng)于所述多個進(jìn)程中當(dāng)前請求獲取資源文件的進(jìn)程的獲取請求,確定所述獲取請求所針對的目標(biāo)資源文件具體為:響應(yīng)于所述第二事件內(nèi)核對象的通知消息,從所述進(jìn)程通信區(qū)中讀取目標(biāo)資源文件的路徑名,根據(jù)所述目標(biāo)資源文件的路徑名確定所述多個進(jìn)程中當(dāng)前請求獲取資源文件的進(jìn)程請求獲取的目標(biāo)資源文件,所述第二事件內(nèi)核對象的通知消息是所述多個進(jìn)程中當(dāng)前請求獲取資源文件的進(jìn)程將所述目標(biāo)資源文件的路徑名寫入到所述進(jìn)程通信區(qū)中時觸發(fā)的。
[0055]例如,當(dāng)需要資源文件A時,需求進(jìn)程I將資源文件A的路徑名寫入到進(jìn)程通信區(qū)I中,然后觸發(fā)第二事件內(nèi)核對象的通知消息,當(dāng)中心進(jìn)程接收到第二事件內(nèi)核對象的通知消息后,從進(jìn)程通信區(qū)I中讀取資源文件A的路徑名。
[0056]步驟203:為所述目標(biāo)資源文件分配一塊共享內(nèi)存區(qū)域作為資源文件存儲區(qū),將所述目標(biāo)資源文件從物理磁盤載入到所述資源文件存儲區(qū)中。
[0057]例如,中心進(jìn)程為資源文件A分配一塊共享內(nèi)存區(qū)域作為資源文件A存儲區(qū),并根據(jù)資源文件A的路徑名從物理磁盤中找到該資源文件A,然后將資源文件A載入到該資源文件A存儲區(qū)中,并得到資源文件A在資源文件A存儲區(qū)中的映射地址。
[0058]當(dāng)然,在中心進(jìn)程為資源文件A分配資源文件A存儲區(qū)的過程中,中心進(jìn)程映射資源文件A存儲區(qū)的共享內(nèi)存,得到資源文件A存儲區(qū)的映射地址,通過該映射地址,中心進(jìn)程可以向資源文件A存儲區(qū)寫入資源文件A。
[0059]步驟204:將所述資源文件存儲區(qū)的映射地址返回給所述多個進(jìn)程中當(dāng)前請求獲取資源文件的進(jìn)程。
[0060]例如,中心進(jìn)程將資源文件A存儲區(qū)的映射地址寫入到進(jìn)程通信區(qū)I中,并重置位于進(jìn)程通信區(qū)I中的一個標(biāo)志位,需求進(jìn)程I 一旦發(fā)現(xiàn)進(jìn)程通信區(qū)I中的該標(biāo)志位被重置,就從進(jìn)程通信區(qū)I讀取資源文件A存儲區(qū)的映射地址。通過資源文件A存儲區(qū)的映射地址,需求進(jìn)程I就可以進(jìn)一步從資源文件A存儲區(qū)中讀取資源文件A。
[0061]對于需求進(jìn)程來說,除了資源文件之外,其運行還要依賴一些用于描述資源文件的輔助信息,如,資源文件的大小和資源文件是否被占用等信息。并且,在有些情況下,即使保存某些資源文件的資源文件存儲區(qū)被釋放,需求進(jìn)程仍然需要這些資源文件的輔助信息,此時,輔助信息不能與資源文件一同被刪除。
[0062]為了更加方便需求進(jìn)程獲取這些輔助信息,根據(jù)本發(fā)明的第二個優(yōu)選方式,方法還包括:為所述目標(biāo)資源文件分配一塊共享內(nèi)存區(qū)域作為資源文件描述區(qū),所述資源文件描述區(qū)中至少包含所述資源文件存儲區(qū)的映射地址。
[0063]則上述步驟204替換為:將所述資源文件描述區(qū)的映射地址返回給所述多個進(jìn)程中當(dāng)前請求獲取資源文件的進(jìn)程。
[0064]當(dāng)然,除了所述目標(biāo)資源文件在所述資源文件存儲區(qū)中的映射地址之外,所述資源文件描述區(qū)還至少包含:目標(biāo)資源文件的大小和鎖定標(biāo)識,所述鎖定標(biāo)識用于指示所述確定的資源文件是否被占用。
[0065]另外,在實際操作中,中心進(jìn)程可以為目標(biāo)資源文件分配一個一個資源文件描述區(qū),而資源文件描述區(qū)中資源文件存儲區(qū)的映射地址可以先置空,以及目標(biāo)資源文件的大小和鎖定標(biāo)識等輔助信息先寫入到資源文件描述區(qū)中,此時已可以將資源文件描述區(qū)的映射地址返回給需求進(jìn)程,以便需求進(jìn)程可以優(yōu)先先根據(jù)資源文件描述的映射地址獲得位于資源文件描述區(qū)中的輔助信息。同時中心進(jìn)程可以繼續(xù)分配資源文件存儲區(qū),將資源文件載入該區(qū)后,再將映射地址填入資源文件描述區(qū)中存儲區(qū)映射地址段。需求進(jìn)程會跟蹤資源文件描述區(qū)中的存儲區(qū)映射地址段,一旦發(fā)生改變,可以立即判定出資源文件是否已經(jīng)被載入存儲區(qū)。
[0066]根據(jù)本發(fā)明的第一個優(yōu)選方式,當(dāng)基于共享內(nèi)存實現(xiàn)進(jìn)程間通信時,將所述資源文件描述區(qū)的映射地址返回給所述多個進(jìn)程中當(dāng)前請求獲取資源文件的進(jìn)程具體為:將所述資源文件描述區(qū)的映射地址寫入所述多個進(jìn)程中當(dāng)前請求獲取資源文件的進(jìn)程的進(jìn)程通信區(qū),并重置位于所述初始通信區(qū)的第二標(biāo)志位,被重置的所述第二標(biāo)志位用于指示所述多個進(jìn)程中當(dāng)前請求獲取資源文件的進(jìn)程已經(jīng)可以從自己的進(jìn)程通信區(qū)中讀取所述資源文件描述區(qū)的映射地址。
[0067]例如,中心進(jìn)程為資源文件A分配資源文件A描述區(qū),在資源文件A描述區(qū)中包含有資源文件A存儲區(qū)的映射地址,以及資源文件A的大小和鎖定標(biāo)識等輔助信息。中心進(jìn)程將資源文件A描述區(qū)的映射地址寫入到需求進(jìn)程I的進(jìn)程通信區(qū)I中,并重置位于初始通信區(qū)的一個標(biāo)志位,需求進(jìn)程I 一旦發(fā)現(xiàn)該標(biāo)志位被重置,就從進(jìn)程通信區(qū)I中讀取資源文件A描述區(qū)的映射地址。
[0068]對于每一個已經(jīng)存儲到共享內(nèi)存的資源文件,當(dāng)有需求進(jìn)程需要該資源文件時,為了避免重復(fù)載入并更夠更快地向該需求進(jìn)程反饋結(jié)果,根據(jù)本發(fā)明的第三個優(yōu)選方式,還包括:建立所述目標(biāo)資源文件的路徑名與所述資源文件描述區(qū)的映射地址之間的對應(yīng)關(guān)系,將建立的對應(yīng)關(guān)系保存在預(yù)設(shè)列表中。
[0069]請參閱圖4,其示意性地示出了根據(jù)本發(fā)明的另一個實施方式的跨進(jìn)程的資源共享的方法的流程圖,方法具體例如可以包括:
[0070]步驟401:與同一個程序的多個進(jìn)程實現(xiàn)進(jìn)程間通信;
[0071]步驟402:響應(yīng)于所述多個進(jìn)程中當(dāng)前請求獲取資源文件的進(jìn)程的獲取請求,確定所述獲取請求所針對的目標(biāo)資源文件;
[0072]步驟403:查詢在預(yù)設(shè)列表中是否存在所述目標(biāo)資源文件的路徑名,如果是,進(jìn)入步驟404,否則,進(jìn)入步驟406 ;
[0073]步驟404:直接從所述預(yù)設(shè)列表中讀取與所述目標(biāo)資源文件的路徑名具有對應(yīng)關(guān)系的所述資源文件描述區(qū)的映射地址;
[0074]步驟405:將所述資源文件描述區(qū)的映射地址返回給所述多個進(jìn)程中當(dāng)前請求獲取資源文件的進(jìn)程,結(jié)束流程;
[0075]步驟406:為所述目標(biāo)資源文件分配一塊共享內(nèi)存區(qū)域作為資源文件描述區(qū)以及分配一塊共享內(nèi)存區(qū)域作為資源文件存儲區(qū),并將所述目標(biāo)資源文件從物理磁盤載入到所述資源文件存儲區(qū)中,所述資源文件描述區(qū)中至少包含所述資源文件存儲區(qū)的映射地址;
[0076]步驟407:將所述資源文件描述區(qū)的映射地址返回給所述多個進(jìn)程中當(dāng)前請求獲取資源文件的進(jìn)程;
[0077]步驟408:建立所述目標(biāo)資源文件的路徑名與所述資源文件描述區(qū)的映射地址之間的對應(yīng)關(guān)系,將建立的對應(yīng)關(guān)系保存在預(yù)設(shè)列表中,結(jié)束流程。
[0078]為了避免資源文件占用過多的共享內(nèi)存空間,根據(jù)本發(fā)明的第四個優(yōu)選方式,還包括:定期檢查所述資源文件存儲區(qū)中的資源文件的占用狀況,當(dāng)所述資源文件存儲區(qū)中的資源文件在預(yù)設(shè)時間段內(nèi)始終空閑時,釋放所述資源文件存儲區(qū)。
[0079]在具體操作時,中心進(jìn)程可以定期掃描預(yù)設(shè)列表中的各資源文件描述區(qū)的映射地址,根據(jù)映射地址定期讀取位于各資源文件描述區(qū)中的鎖定標(biāo)記,當(dāng)鎖定標(biāo)記在連續(xù)幾次都指示資源文件未被占用時,說明該資源文件在預(yù)設(shè)時間段內(nèi)始終空閑,中心進(jìn)程根據(jù)位于資源文件描述區(qū)中的資源文件存儲區(qū)的映射地址,對相應(yīng)的資源文件存儲區(qū)進(jìn)行釋放。
[0080]需要說明的是,在本發(fā)明的一個優(yōu)選方式中,可以以固定大小(例如8M)為單位創(chuàng)建共享內(nèi)存塊。當(dāng)一個共享內(nèi)存塊使用完后,再創(chuàng)建一個共享內(nèi)存塊,以此動態(tài)增加。并且,每個共享內(nèi)存塊的命名可以為基本約定名_塊索引的方式。例如,基本約定命名為:ShareMemoryForResfile,則第一個被建立的共享內(nèi)存塊的名字則為ShareMemoryForResfileJ,第二個被建立的共享內(nèi)存塊的名字就是ShareMemoryForResfiIe_2,以此類推。
[0081]由于同一塊共享內(nèi)存區(qū)域在不同的進(jìn)程中,可能會被映射到不同的地址區(qū)段。因此,在本發(fā)明的一個優(yōu)選方式中,可以通過如下方式表達(dá)各共享內(nèi)存區(qū)域的映射地址:先確定該共享內(nèi)存區(qū)域在第幾個共享內(nèi)存塊(即,所在共享內(nèi)存塊的索引號)和在該共享內(nèi)存塊內(nèi)的相對地址偏移,然后將所在共享內(nèi)存塊的索引號和在該共享內(nèi)存塊內(nèi)的相對地址偏移合并到一個32位的整形數(shù)據(jù)中,即,高8位記錄共享內(nèi)存塊的索引號,低24位記錄在該共享內(nèi)存塊內(nèi)的相對地址偏移。
[0082]根據(jù)本發(fā)明,由于為目標(biāo)資源文件分配了一塊共享內(nèi)存區(qū)域,而共享內(nèi)存區(qū)域允許被同一個程序的多個進(jìn)程訪問,因此,只需執(zhí)行一次將目標(biāo)資源文件載入到共享內(nèi)存區(qū)域的操作,而無需重復(fù)執(zhí)行將目標(biāo)資源文件分別載入到多個進(jìn)程各自的內(nèi)存空間的操作。從而,當(dāng)同一個程序的多個進(jìn)程對資源文件的需求相同時,可以節(jié)約IO操作、CPU時間以及內(nèi)存空間。
_3] 示例性設(shè)備
[0084]在介紹了方法之后,接下來,參考圖5,其示意性地示出了根據(jù)本發(fā)明一個實施方式的跨進(jìn)程的資源共享設(shè)備的結(jié)構(gòu)框架圖,來描述用于實現(xiàn)跨進(jìn)程的資源共享的設(shè)備。具體地,該設(shè)備例如可以包括:
[0085]進(jìn)程間通信單元501,用于與同一個程序的多個進(jìn)程實現(xiàn)進(jìn)程間通信;
[0086]資源文件確定單元502,用于響應(yīng)于所述多個進(jìn)程中當(dāng)前請求獲取資源文件的進(jìn)程的獲取請求,確定所述獲取請求所針對的目標(biāo)資源文件;
[0087]資源文件載入單元503,用于為所述目標(biāo)資源文件分配一塊共享內(nèi)存區(qū)域作為資源文件存儲區(qū),將所述目標(biāo)資源文件從物理磁盤載入到所述資源文件存儲區(qū)中;[0088]資源文件地址返回單元504,用于將所述資源文件存儲區(qū)的映射地址返回給所述多個進(jìn)程中當(dāng)前請求獲取資源文件的進(jìn)程。
[0089]根據(jù)本發(fā)明的一個實施方式,還包括:資源文件描述區(qū)分配單元,用于為所述目標(biāo)資源文件分配一塊共享內(nèi)存區(qū)域作為資源文件描述區(qū),所述資源文件描述區(qū)中至少包含所述資源文件存儲區(qū)的映射地址;
[0090]則所述資源文件地址返回單元504具體用于,將所述資源文件描述區(qū)的映射地址返回給所述多個進(jìn)程中當(dāng)前請求獲取資源文件的進(jìn)程。
[0091]根據(jù)本發(fā)明的一個實施方式,還包括:關(guān)系存儲單元,用于建立所述目標(biāo)資源文件與所述資源文件描述區(qū)的映射地址之間的對應(yīng)關(guān)系,將建立的對應(yīng)關(guān)系保存在預(yù)設(shè)列表中。
[0092]根據(jù)本發(fā)明的一個實施方式,還包括:關(guān)系查詢單元,用于在所述資源文件載入單元為所述目標(biāo)資源文件分配一塊共享內(nèi)存區(qū)域作為資源文件存儲區(qū),并將所述目標(biāo)資源文件從物理磁盤載入到所述資源文件存儲區(qū)中之前,查詢在所述預(yù)設(shè)列表中是否存在所述目標(biāo)資源文件路徑名;
[0093]則所述資源文件載入單元503具體用于,當(dāng)在所述預(yù)設(shè)列表中不存在所述目標(biāo)資源文件的路徑名時,為所述目標(biāo)資源文件分配一塊共享內(nèi)存區(qū)域作為資源文件存儲區(qū),并將所述目標(biāo)資源文件從物理磁盤載入到所述資源文件存儲區(qū)中。
[0094]根據(jù)本發(fā)明的一個實施方式,還包括:預(yù)設(shè)列表讀取單元,用于當(dāng)在所述預(yù)設(shè)列表中存在所述目標(biāo)資源文件的路徑名時,直接從所述預(yù)設(shè)列表中讀取與所述目標(biāo)資源文件的路徑名具有對應(yīng)關(guān)系的所述資源文件描述區(qū)的映射地址。
[0095]根據(jù)本發(fā)明的一個實施方式,當(dāng)在所述預(yù)設(shè)列表中存在所述目標(biāo)資源文件的路徑名時,直接從所述預(yù)設(shè)列表中讀取與所述目標(biāo)資源文件的路徑名具有對應(yīng)關(guān)系的所述資源文件描述區(qū)的映射地址。
[0096]根據(jù)本發(fā)明的一個實施方式,還包括:釋放單元,用于定期檢查所述資源文件存儲區(qū)中的資源文件的占用狀況,當(dāng)所述資源文件存儲區(qū)中的資源文件在預(yù)設(shè)時間段內(nèi)始終空閑時,釋放所述資源文件存儲區(qū)。
[0097]根據(jù)本發(fā)明的一個實施方式,進(jìn)程間通信單元501包括:
[0098]創(chuàng)建子單元,用于為所述多個進(jìn)程創(chuàng)建一塊共享內(nèi)存區(qū)域作為初始通信區(qū),并為所述初始通信區(qū)創(chuàng)建一個事件內(nèi)核對象作為第一事件內(nèi)核對象;
[0099]第一消息響應(yīng)子單元,用于響應(yīng)于所述第一事件內(nèi)核對象的通知消息,從所述初始通信區(qū)中讀取所述多個進(jìn)程的身份標(biāo)識,所述第一事件內(nèi)核對象的通知消息是所述多個進(jìn)程中當(dāng)前新加入的進(jìn)程將自己的身份標(biāo)識寫入到所述初始通信區(qū)中時觸發(fā)的;
[0100]第一分配子單元,用于根據(jù)讀取的所述多個進(jìn)程中當(dāng)前新加入的進(jìn)程的身份標(biāo)識為所述多個進(jìn)程中當(dāng)前新加入的進(jìn)程分別分配一塊共享內(nèi)存區(qū)域作為進(jìn)程通信區(qū),并為所述進(jìn)程通信區(qū)創(chuàng)建一個事件內(nèi)核對象作為第二事件內(nèi)核對象;
[0101]第一寫入子單元,用于將所述進(jìn)程通信區(qū)的映射地址寫入到所述初始通信區(qū),并重置位于所述初始通信區(qū)的第一標(biāo)志位,被重置的所述第一標(biāo)志位用于指示所述多個進(jìn)程中當(dāng)前新加入的進(jìn)程已經(jīng)可以從所述初始通信區(qū)中讀取所述進(jìn)程通信區(qū)的映射地址,以便基于所述進(jìn)程通信區(qū)與所述多個進(jìn)程中當(dāng)前新加入的進(jìn)程實現(xiàn)進(jìn)程間通信。[0102]根據(jù)本發(fā)明的一個實施方式,資源文件確定單元502具體用于,響應(yīng)于所述第二事件內(nèi)核對象的通知消息,從所述進(jìn)程通信區(qū)中讀取目標(biāo)資源文件的路徑名,根據(jù)所述目標(biāo)資源文件的路徑名確定所述多個進(jìn)程中當(dāng)前請求獲取資源文件的進(jìn)程請求獲取的目標(biāo)資源文件,所述第二事件內(nèi)核對象的通知消息是所述多個進(jìn)程中當(dāng)前請求獲取資源文件的進(jìn)程將所述目標(biāo)資源文件的路徑名寫入到所述進(jìn)程通信區(qū)中時觸發(fā)的。
[0103]根據(jù)本發(fā)明的一個實施方式,資源文件地址返回單元504具體用于,將所述資源文件描述區(qū)的映射地址寫入所述多個進(jìn)程中當(dāng)前請求獲取資源文件的進(jìn)程的進(jìn)程通信區(qū),并重置位于所述初始通信區(qū)的第二標(biāo)志位,被重置的所述第二標(biāo)志位用于指示所述多個進(jìn)程中當(dāng)前請求獲取資源文件的進(jìn)程已經(jīng)可以從自己的進(jìn)程通信區(qū)中讀取所述資源文件描述區(qū)的映射地址。
[0104]根據(jù)本發(fā)明,由于為目標(biāo)資源文件分配了一塊共享內(nèi)存區(qū)域,而共享內(nèi)存區(qū)域允許被同一個程序的多個進(jìn)程訪問,因此,只需執(zhí)行一次將目標(biāo)資源文件載入到共享內(nèi)存區(qū)域的操作,而無需重復(fù)執(zhí)行將目標(biāo)資源文件分別載入到多個進(jìn)程各自的內(nèi)存空間的操作。從而,當(dāng)同一個程序的多個進(jìn)程對資源文件的需求相同時,可以節(jié)約IO操作、CPU時間以及內(nèi)存空間。
[0105]應(yīng)當(dāng)注意,盡管在上文詳細(xì)描述中提及了跨進(jìn)程的資源共享設(shè)備的若干裝置或子裝置,但是這種劃分僅僅并非強制性的。實際上,根據(jù)本發(fā)明的實施方式,上文描述的兩個或更多裝置的特征和功能可以在一個裝置中具體化。反之,上文描述的一個裝置的特征和功能可以進(jìn)一步劃分為由多個裝置來具體化。
[0106]此外,盡管在附圖中以特定順序描述了本發(fā)明方法的操作,但是,這并非要求或者暗示必須按照該特定順序來執(zhí)行這些操作,或是必須執(zhí)行全部所示的操作才能實現(xiàn)期望的結(jié)果。附加地或備選地,可以省略某些步驟,將多個步驟合并為一個步驟執(zhí)行,和/或?qū)⒁粋€步驟分解為多個步驟執(zhí)行。
[0107]雖然已經(jīng)參考若干【具體實施方式】描述了本發(fā)明的精神和原理,但是應(yīng)該理解,本發(fā)明并不限于所公開的【具體實施方式】,對各方面的劃分也不意味著這些方面中的特征不能組合以進(jìn)行受益,這種劃分僅是為了表述的方便。本發(fā)明旨在涵蓋所附權(quán)利要求的精神和范圍內(nèi)所包括的各種修改和等同布置。
【權(quán)利要求】
1.一種方法,包括:與同一個程序的多個進(jìn)程實現(xiàn)進(jìn)程間通信;響應(yīng)于所述多個進(jìn)程中當(dāng)前請求獲取資源文件的進(jìn)程的獲取請求,確定所述獲取請求所針對的目標(biāo)資源文件;為所述目標(biāo)資源文件分配一塊共享內(nèi)存區(qū)域作為資源文件存儲區(qū),將所述目標(biāo)資源文件從物理磁盤載入到所述資源文件存儲區(qū)中;將所述資源文件存儲區(qū)的映射地址返回給所述多個進(jìn)程中當(dāng)前請求獲取資源文件的進(jìn)程。
2.根據(jù)權(quán)利要求1所述的方法,還包括:為所述目標(biāo)資源文件分配一塊共享內(nèi)存區(qū)域作為資源文件描述區(qū),所述資源文件描述區(qū)中至少包含所述資源文件存儲區(qū)的映射地址;則所述將所述資源文件存儲區(qū)的映射地址返回給所述多個進(jìn)程中當(dāng)前請求獲取資源文件的進(jìn)程具體為:將所述資源文件描述區(qū)的映射地址返回給所述多個進(jìn)程中當(dāng)前請求獲取資源文件的進(jìn)程。
3.根據(jù)權(quán)利要求2所述的方法,還包括:建立所述目標(biāo)資源文件的路徑名與所述資源文件描述區(qū)的映射地址之間的對應(yīng)關(guān)系,將建立的對應(yīng)關(guān)系保存在預(yù)設(shè)列表中。
4.根據(jù)權(quán)利要求3所述的方法,在為所述目標(biāo)資源文件分配一塊共享內(nèi)存區(qū)域作為資源文件存儲區(qū),并將所述目標(biāo)資源文件從物理磁盤載入到所述資源文件存儲區(qū)中之前,還包括:查詢在所述預(yù)設(shè)列表中是否存在所述目標(biāo)資源文件的路徑名;則所述為所述目標(biāo)資源文件分配一個共享內(nèi)存區(qū)域作為資源文件存儲區(qū),并將所述目標(biāo)資源文件從物理磁盤載入到所述資源文件存儲區(qū)中具體為:當(dāng)在所述預(yù)設(shè)列表中不存在所述目標(biāo)資源文件的路徑名時,為所述目標(biāo)資源文件分配一塊共享內(nèi)存區(qū)域作為資源文件存儲區(qū),并將所述目標(biāo)資源文件從物理磁盤載入到所述資源文件存儲區(qū)中。
5.根據(jù)權(quán)利要求4所述的方法,還包括:當(dāng)在所述預(yù)設(shè)列表中存在所述目標(biāo)資源文件的路徑名時,直接從所述預(yù)設(shè)列表中讀取與所述目標(biāo)資源文件的路徑名具有對應(yīng)關(guān)系的所述資源文件描述區(qū)的映射地址。
6.根據(jù)權(quán)利要求1所述的方法,還包括: 定期檢查所述資源文件存儲區(qū)中的資源文件的占用狀況,當(dāng)所述資源文件存儲區(qū)中的資源文件在預(yù)設(shè)時間段內(nèi)始終空閑時,釋放所述資源文件存儲區(qū)。
7.根據(jù)權(quán)利要求1至6中任意一項所述的方法,其中,所述與同一個程序的多個進(jìn)程實現(xiàn)進(jìn)程間通信,包括:為所述多個進(jìn)程創(chuàng)建一塊共享內(nèi)存區(qū)域作為初始通信區(qū),并為所述初始通信區(qū)創(chuàng)建一個事件內(nèi)核對象作為第一事件內(nèi)核對象;響應(yīng)于所述第一事件內(nèi)核對象的通知消息,從所述初始通信區(qū)中讀取所述多個進(jìn)程的身份標(biāo)識,所述第一事件內(nèi)核對象的通知消息是所述多個進(jìn)程中當(dāng)前新加入的進(jìn)程將自己的身份標(biāo)識寫入到所述初始通信區(qū)中時觸發(fā)的; 根據(jù)讀取的所述多個進(jìn)程中當(dāng)前新加入的進(jìn)程的身份標(biāo)識為所述多個進(jìn)程中當(dāng)前新加入的進(jìn)程分別分配一塊共享內(nèi)存區(qū)域作為進(jìn)程通信區(qū),并為所述進(jìn)程通信區(qū)創(chuàng)建一個事件內(nèi)核對象作為第二事件內(nèi)核對象;將所述進(jìn)程通信區(qū)的映射地址寫入到所述初始通信區(qū),并重置位于所述初始通信區(qū)的第一標(biāo)志位,被重置的所述第一標(biāo)志位用于指示所述多個進(jìn)程中當(dāng)前新加入的進(jìn)程已經(jīng)可以從所述初始通信區(qū)中讀取所述進(jìn)程通信區(qū)的映射地址,以便基于所述進(jìn)程通信區(qū)與所述多個進(jìn)程中當(dāng)前新加入的進(jìn)程實現(xiàn)進(jìn)程間通信。
8.根據(jù)權(quán)利要求7所述的方法,其中,響應(yīng)于所述多個進(jìn)程中當(dāng)前請求獲取資源文件的進(jìn)程的獲取請求,確定所述獲取請求所針對的目標(biāo)資源文件具體為:響應(yīng)于所述第二事件內(nèi)核對象的通知消息,從所述進(jìn)程通信區(qū)中讀取目標(biāo)資源文件的路徑名,根據(jù)所述目標(biāo)資源文件的路徑名確定所述多個進(jìn)程中當(dāng)前請求獲取資源文件的進(jìn)程請求獲取的目標(biāo)資源文件,所述第二事件內(nèi)核對象的通知消息是所述多個進(jìn)程中當(dāng)前請求獲取資源文件的進(jìn)程將所述目標(biāo)資源文件的路徑名寫入到所述進(jìn)程通信區(qū)中時觸發(fā)的。
9.根據(jù)權(quán)利要求7所述的方法,其中,將所述資源文件描述區(qū)的映射地址返回給所述多個進(jìn)程中當(dāng)前請求獲取資源文件的進(jìn)程具體為:將所述資源文件描述區(qū)的映射地址寫入所述多個進(jìn)程中當(dāng)前請求獲取資源文件的進(jìn)程的進(jìn)程通信區(qū),并重置位于所述初始通信區(qū)的第二標(biāo)志位,被重置的所述第二標(biāo)志位用于指示所述多個進(jìn)程中當(dāng)前請求獲取資源文件的進(jìn)程已經(jīng)可以從自己的進(jìn)程通信區(qū)中讀取所述資源文件描述區(qū)的映射地址。
10.一種設(shè)備,包括:進(jìn)程間通信單元,用于與同一個程序的多個進(jìn)程實現(xiàn)進(jìn)程間通信;資源文件確定單元,用于響應(yīng)于所述多個進(jìn)程中當(dāng)前請求獲取資源文件的進(jìn)程的獲取請求,確定所述獲取請求所針對的目標(biāo)資源文件;資源文件載入單元,用于為所述目標(biāo)資源文件分配一塊共享內(nèi)存區(qū)域作為資源文件存儲區(qū),將所述目標(biāo)資源文件從物理磁盤載入到所述資源文件存儲區(qū)中;資源文件地址返回單元,用于將所述資源文件存儲區(qū)的映射地址返回給所述多個進(jìn)程中當(dāng)前請求獲取資源文件的進(jìn)程。
11.根據(jù)權(quán)利要求10所述的設(shè)備,還包括:資源文件描述區(qū)分配單元,用于為所述目標(biāo)資源文件分配一塊共享內(nèi)存區(qū)域作為資源文件描述區(qū),所述資源文件描述區(qū)中至少包含所述資源文件存儲區(qū)的映射地址;則所述資源文件地址返回單元具體用于,將所述資源文件描述區(qū)的映射地址返回給所述多個進(jìn)程中當(dāng)前請求獲取資源文件的進(jìn)程。
12.根據(jù)權(quán)利要求11所述的設(shè)備,還包括:關(guān)系存儲單元,用于建立所述目標(biāo)資源文件與所述資源文件描述區(qū)的映射地址之間的對應(yīng)關(guān)系,將建立的對應(yīng)關(guān)系保存在預(yù)設(shè)列表中。
13.根據(jù)權(quán)利要求12所述的設(shè)備,還包括:關(guān)系查詢單元,用于在所述資源文件載入單元為所述目標(biāo)資源文件分配一塊共享內(nèi)存區(qū)域作為資源文件存儲區(qū),并將所述目標(biāo)資源文件從物理磁盤載入到所述資源文件存儲區(qū)中之前,查詢在所述預(yù)設(shè)列表中是否存在所述目標(biāo)資源文件路徑名;則所述資源文件載入單元具體用于,當(dāng)在所述預(yù)設(shè)列表中不存在所述目標(biāo)資源文件的路徑名時,為所述目標(biāo)資源文件分配一塊共享內(nèi)存區(qū)域作為資源文件存儲區(qū),并將所述目標(biāo)資源文件從物理磁盤載入到所述資源文件存儲區(qū)中。
14.根據(jù)權(quán)利要求13所述的設(shè)備,還包括:預(yù)設(shè)列表讀取單元,用于當(dāng)在所述預(yù)設(shè)列表中存在所述目標(biāo)資源文件的路徑名時,直接從所述預(yù)設(shè)列表中讀取與所述目標(biāo)資源文件的路徑名具有對應(yīng)關(guān)系的所述資源文件描述區(qū)的映射地址。
15.根據(jù)權(quán)利要求11至14中任意一項所述的設(shè)備,其中,所述進(jìn)程間通信單元包括:創(chuàng)建子單元,用于為所述多個進(jìn)程創(chuàng)建一塊共享內(nèi)存區(qū)域作為初始通信區(qū),并為所述初始通信區(qū)創(chuàng)建一個事件內(nèi)核對象作為第一事件內(nèi)核對象;第一消息響應(yīng)子單元,用于響應(yīng)于所述第一事件內(nèi)核對象的通知消息,從所述初始通信區(qū)中讀取所述多個進(jìn)程的身份標(biāo)識,所述第一事件內(nèi)核對象的通知消息是所述多個進(jìn)程中當(dāng)前新加入的進(jìn)程將自己的身份標(biāo)識寫入到所述初始通信區(qū)中時觸發(fā)的;第一分配子單元,用于根據(jù)讀取的所述多個進(jìn)程中當(dāng)前新加入的進(jìn)程的身份標(biāo)識為所述多個進(jìn)程中當(dāng)前新加入的進(jìn)程分別分配一塊共享內(nèi)存區(qū)域作為進(jìn)程通信區(qū),并為所述進(jìn)程通信區(qū)創(chuàng)建一個事件內(nèi)核對象作為第二事件內(nèi)核對象;第一寫入子單元,用于將所述進(jìn)程通信區(qū)的映射地址寫入到所述初始通信區(qū),并重置位于所述初始通信區(qū)的第一標(biāo)志位,被重置的所述第一標(biāo)志位用于指示所述多個進(jìn)程中當(dāng)前新加入的進(jìn)程已經(jīng)可以從所述 初始通信區(qū)中讀取所述進(jìn)程通信區(qū)的映射地址,以便基于所述進(jìn)程通信區(qū)與所述多個進(jìn)程中當(dāng)前新加入的進(jìn)程實現(xiàn)進(jìn)程間通信。
【文檔編號】G06F9/54GK103605577SQ201310648237
【公開日】2014年2月26日 申請日期:2013年12月4日 優(yōu)先權(quán)日:2013年12月4日
【發(fā)明者】吳國瑞, 吳海育 申請人:廣州博冠信息科技有限公司