專利名稱:一種用于管理網(wǎng)絡(luò)服務(wù)器內(nèi)存的系統(tǒng)及方法
技術(shù)領(lǐng)域:
本發(fā)明是關(guān)于一種用于管理網(wǎng)絡(luò)服務(wù)器內(nèi)存的系統(tǒng)及方法。
背景技術(shù):
多任務(wù)的操作系統(tǒng)如Linux,Windows都會提供軟件鏈結(jié)庫的鏈結(jié)機(jī)制,使得軟件設(shè)計可以模塊化,從而提高軟件的可利用性并減少重復(fù)的程序內(nèi)存,例如Windows的動態(tài)鏈結(jié)庫(Dynamic Link Library,DLL)檔案即是一實(shí)例。目前大部分軟件設(shè)計中,程序設(shè)計師不僅使用非自行開發(fā)的軟件鏈結(jié)庫,還會將同類型的軟件功能集合成一鏈結(jié)庫,以供程序鏈結(jié)執(zhí)行。
如圖1所示,是傳統(tǒng)上用于管理網(wǎng)絡(luò)服務(wù)器內(nèi)存的系統(tǒng)架構(gòu)圖,包括一中央處理單元、一外存儲器及一內(nèi)存。該外存儲器包括一鏈結(jié)庫L。該內(nèi)存包括一網(wǎng)絡(luò)服務(wù)模塊區(qū),該網(wǎng)絡(luò)服務(wù)模塊區(qū)用于提供運(yùn)行網(wǎng)絡(luò)服務(wù)模塊時需求的內(nèi)存空間。該網(wǎng)絡(luò)服務(wù)模塊區(qū)包括一網(wǎng)絡(luò)服務(wù)模塊程序碼區(qū)及一鏈結(jié)庫L私有區(qū)塊,該網(wǎng)絡(luò)服務(wù)模塊程序碼區(qū)用于提供運(yùn)行網(wǎng)絡(luò)服務(wù)模塊時需求的程序代碼空間,該鏈結(jié)庫L私有區(qū)塊用于提供執(zhí)行鏈結(jié)庫L中函式R時需求的數(shù)據(jù)空間。執(zhí)行同一網(wǎng)絡(luò)服務(wù)模塊會產(chǎn)生多個執(zhí)行個體,網(wǎng)絡(luò)服務(wù)器常采用的軟件實(shí)作方式是為每一連線客戶端提供一執(zhí)行個體進(jìn)行服務(wù)。因著不同的需要,有些鏈結(jié)庫L必須使用一定的內(nèi)存才能夠被鏈結(jié)執(zhí)行。當(dāng)程序設(shè)計師將上述鏈結(jié)庫L整合于一網(wǎng)絡(luò)服務(wù)模塊中時,網(wǎng)絡(luò)服務(wù)器會因?yàn)闊o法負(fù)擔(dān)鏈結(jié)庫L的大量存儲器需求而限制網(wǎng)絡(luò)服務(wù)模塊的執(zhí)行個體數(shù)目,即服務(wù)連線客戶端的數(shù)目。例如一網(wǎng)絡(luò)服務(wù)器有100個連線客戶端,需要100個網(wǎng)絡(luò)服務(wù)模塊服務(wù)每一連線客戶端,則內(nèi)存需求為100個網(wǎng)絡(luò)服務(wù)模塊區(qū)及100個鏈結(jié)庫L私有區(qū)塊占用的內(nèi)存空間。如果設(shè)定一個網(wǎng)絡(luò)服務(wù)模塊占用400KB內(nèi)存空間,一個鏈結(jié)庫L私有區(qū)塊占用400KB內(nèi)存空間,則內(nèi)存需求為(100*400+100*400)KB。
為了解決上述問題,需要提供一種用于管理網(wǎng)絡(luò)服務(wù)器內(nèi)存的系統(tǒng)及方法,以減少連線客戶端對網(wǎng)絡(luò)服務(wù)器內(nèi)存的需求,從而增加連線客戶端數(shù)目。
發(fā)明內(nèi)容本發(fā)明的目的在于提供一種用于管理網(wǎng)絡(luò)服務(wù)器內(nèi)存的系統(tǒng)及方法,以減少連線客戶端對網(wǎng)絡(luò)服務(wù)器內(nèi)存的需求,從而增加連線客戶端數(shù)目。
為達(dá)到上述目的,本發(fā)明提供一種用于管理網(wǎng)絡(luò)服務(wù)器內(nèi)存的系統(tǒng)。該系統(tǒng)包括一中央處理單元、一外存儲器及一內(nèi)存。該外存儲器包括一鏈結(jié)庫L,該鏈結(jié)庫L可為一動態(tài)鏈結(jié)庫,其包括多個函式。該內(nèi)存包括一網(wǎng)絡(luò)服務(wù)模塊程序碼區(qū)、一管理模塊程序代碼區(qū)及多個函式服務(wù)模塊區(qū),該函式服務(wù)模塊區(qū)包括一函式服務(wù)模塊程序碼區(qū)及多個鏈結(jié)庫私有區(qū)。該網(wǎng)絡(luò)服務(wù)模塊程序碼區(qū)用于提供運(yùn)行網(wǎng)絡(luò)服務(wù)模塊時所需的程序代碼空間,該網(wǎng)絡(luò)服務(wù)模塊用于與客戶端連線,接收客戶端發(fā)送的命令信號,根據(jù)該命令信號將待執(zhí)行函式的相關(guān)參數(shù)填入一數(shù)據(jù)結(jié)構(gòu),并將該數(shù)據(jù)結(jié)構(gòu)送入一隊列。該管理模塊程序代碼區(qū)用于提供執(zhí)行管理模塊時所需的程序代碼空間,該管理模塊用于將該隊列中的數(shù)據(jù)結(jié)構(gòu)分配給該函式服務(wù)模塊,并將函式服務(wù)模塊執(zhí)行結(jié)果回傳給該網(wǎng)絡(luò)服務(wù)模塊。該函式服務(wù)模塊區(qū)用于提供執(zhí)行該管理模塊時所需的內(nèi)存空間。該函式服務(wù)模塊程序碼區(qū)用于提供運(yùn)行函式服務(wù)模塊時需求的程序代碼空間,該函式服務(wù)模塊根據(jù)數(shù)據(jù)結(jié)構(gòu)中的參數(shù)鏈結(jié)執(zhí)行該鏈結(jié)庫L中相應(yīng)函式,并將執(zhí)行結(jié)果寫回該數(shù)據(jù)結(jié)構(gòu)。該鏈結(jié)庫L私有區(qū)塊用于提供執(zhí)行鏈結(jié)庫L中函式時需求的數(shù)據(jù)空間,該鏈結(jié)庫L包括多個函式,該多個函式提供給該函式服務(wù)模塊鏈結(jié)執(zhí)行。
本發(fā)明還提供一種用于管理網(wǎng)絡(luò)服務(wù)器內(nèi)存的方法,包括下列步驟將鏈結(jié)庫從網(wǎng)絡(luò)服務(wù)模塊中分割出。提供一內(nèi)存,其中該內(nèi)存包括一數(shù)據(jù)結(jié)構(gòu),存儲有待執(zhí)行函式的輸入及輸出參數(shù);一隊列,存儲有多個數(shù)據(jù)結(jié)構(gòu);一網(wǎng)絡(luò)服務(wù)模塊程序碼區(qū),提供運(yùn)行一網(wǎng)絡(luò)服務(wù)模塊時所需程序代碼的內(nèi)存;一管理模塊程序代碼區(qū),提供執(zhí)行一管理模塊時所需程序代碼的內(nèi)存;及一函式服務(wù)模塊區(qū),包括一函式服務(wù)模塊程序碼區(qū),提供運(yùn)行一函式服務(wù)模塊時所需的程序代碼內(nèi)存空間;一鏈結(jié)庫私有區(qū),提供執(zhí)行鏈結(jié)庫中多個函式時所需的數(shù)據(jù)存儲器空間。該網(wǎng)絡(luò)服務(wù)模塊將待執(zhí)行函式的輸入及輸出參數(shù)填入一數(shù)據(jù)結(jié)構(gòu)中。然后將該數(shù)據(jù)結(jié)構(gòu)送入一隊列。該函式服務(wù)模塊初始化該鏈結(jié)庫。該函式服務(wù)模塊等待該隊列中的數(shù)據(jù)結(jié)構(gòu)并從該隊列中取出一數(shù)據(jù)結(jié)構(gòu)。然后通過該數(shù)據(jù)結(jié)構(gòu)中的輸入?yún)?shù)鏈結(jié)執(zhí)行該鏈結(jié)庫中的相應(yīng)函式。將該函式的執(zhí)行結(jié)果寫回該數(shù)據(jù)結(jié)構(gòu)。該網(wǎng)絡(luò)服務(wù)模塊將數(shù)據(jù)結(jié)構(gòu)內(nèi)的執(zhí)行結(jié)果回復(fù)給相應(yīng)客戶端。
本發(fā)明將鏈結(jié)庫L從網(wǎng)絡(luò)服務(wù)模塊中切割出,網(wǎng)絡(luò)服務(wù)模塊的所有執(zhí)行個體鏈結(jié)執(zhí)行鏈結(jié)庫L的功能,由多個函式服務(wù)模塊的執(zhí)行個體依序代為執(zhí)行。內(nèi)存需求僅為網(wǎng)絡(luò)服務(wù)模塊區(qū)及函式服務(wù)模塊區(qū)的執(zhí)行個體數(shù)目,而函式服務(wù)模塊的執(zhí)行個體數(shù)目可由程序設(shè)計師進(jìn)行控制(例如4個)。由于網(wǎng)絡(luò)服務(wù)模塊與函式服務(wù)模塊使用獨(dú)立的執(zhí)行內(nèi)存空間,從而網(wǎng)絡(luò)服務(wù)模塊可以減少因?yàn)檫\(yùn)行鏈結(jié)庫L所帶來的內(nèi)存負(fù)擔(dān),從而增加連線客戶端數(shù)目。尤其當(dāng)連線客戶端數(shù)目較大時,連線客戶端對網(wǎng)絡(luò)服務(wù)器內(nèi)存的需求可以減少近一半。
圖1是傳統(tǒng)上用于管理網(wǎng)絡(luò)服務(wù)器內(nèi)存的系統(tǒng)架構(gòu)圖。
圖2是本發(fā)明的用于管理網(wǎng)絡(luò)服務(wù)器內(nèi)存的系統(tǒng)模塊圖。
圖3是本發(fā)明的用于管理網(wǎng)絡(luò)服務(wù)器內(nèi)存的模塊關(guān)聯(lián)圖。
圖4是本發(fā)明的網(wǎng)絡(luò)服務(wù)器運(yùn)行時內(nèi)存的分區(qū)示意圖。
圖5是本發(fā)明的網(wǎng)絡(luò)服務(wù)器與客戶端進(jìn)行交互的流程圖。
圖6是本發(fā)明的網(wǎng)絡(luò)服務(wù)模塊的執(zhí)行流程圖。
圖7是本發(fā)明的函式服務(wù)模塊的執(zhí)行流程圖。
具體實(shí)施方式下面先對本實(shí)施方式中涉及的術(shù)語進(jìn)行解釋。函式是一小段執(zhí)行碼,有一進(jìn)入點(diǎn),需要使用堆棧進(jìn)行呼叫。程序是一完整的應(yīng)用程序執(zhí)行碼,如文本編輯程序及FTP服務(wù)程序。執(zhí)行個體是一程序被加載到內(nèi)存中,開始運(yùn)作后的一執(zhí)行單元,一程序可有多個執(zhí)行個體,如編輯程序可被打開很多個同時執(zhí)行。鏈結(jié)庫L是將多個函式存儲于同一存儲區(qū)域,供程序鏈結(jié)使用。動態(tài)鏈結(jié)庫是程序執(zhí)行時不會加載鏈結(jié)庫,當(dāng)需要執(zhí)行其中的函式時才加載,然后鏈結(jié)執(zhí)行其中的函式。鏈結(jié)庫私有區(qū)是加載鏈結(jié)庫L時需要為的配置的數(shù)據(jù)空間(非程序代碼空間)。程序代碼區(qū)是加載一程序或一鏈結(jié)庫L所需的內(nèi)存空間,高級操作系統(tǒng)會讓所有程序共享同一程序代碼區(qū)。數(shù)據(jù)處理區(qū)是程序或函式執(zhí)行時所需的內(nèi)存空間,每一執(zhí)行個體需要一數(shù)據(jù)處理區(qū)。鏈結(jié)庫私有區(qū)是鏈結(jié)庫L需要的數(shù)據(jù)處理區(qū),用于提供鏈結(jié)執(zhí)行函式R時產(chǎn)生的參數(shù)及數(shù)據(jù)的暫存區(qū)。下面參照附圖對本發(fā)明進(jìn)行說明。
如圖2及圖3所示,多個客戶端10通過一網(wǎng)絡(luò)11與一網(wǎng)絡(luò)服務(wù)器12電連接。網(wǎng)絡(luò)11可為一國際互聯(lián)網(wǎng)(Internet)、一企業(yè)內(nèi)部網(wǎng)絡(luò)(Intranet)及一局域網(wǎng)絡(luò)(Local Area Network)。網(wǎng)絡(luò)服務(wù)器12包括一網(wǎng)絡(luò)服務(wù)模塊120、一管理模塊121、一函式服務(wù)模塊122及一鏈結(jié)庫L。該鏈結(jié)庫L可為一動態(tài)鏈結(jié)庫,其包括多個可被函式服務(wù)模塊鏈結(jié)執(zhí)行的函式R。該網(wǎng)絡(luò)服務(wù)模塊120用于與客戶端連線,接收客戶端發(fā)送的命令信號,根據(jù)該命令信號將待執(zhí)行函式R的相關(guān)參數(shù)填入一數(shù)據(jù)結(jié)構(gòu)S,并將該數(shù)據(jù)結(jié)構(gòu)S送入一隊列Q。該管理模塊121用于將該隊列Q中的數(shù)據(jù)結(jié)構(gòu)分配給該函式服務(wù)模塊122,并將函式服務(wù)模塊122執(zhí)行結(jié)果回傳給該網(wǎng)絡(luò)服務(wù)模塊120。該函式服務(wù)模塊122根據(jù)數(shù)據(jù)結(jié)構(gòu)S中的參數(shù)鏈結(jié)執(zhí)行該鏈結(jié)庫L中相應(yīng)函式R,并將執(zhí)行結(jié)果寫回該數(shù)據(jù)結(jié)構(gòu)S。該網(wǎng)絡(luò)服務(wù)模塊120將數(shù)據(jù)結(jié)構(gòu)S中的執(zhí)行結(jié)果回復(fù)給客戶端。其中,執(zhí)行該網(wǎng)絡(luò)服務(wù)模塊120時會產(chǎn)生多個執(zhí)行個體P,每一執(zhí)行個體P服務(wù)一連線客戶端。執(zhí)行該函式服務(wù)模塊122時會產(chǎn)生多個執(zhí)行個體D,該多個執(zhí)行個體D依序服務(wù)該多個執(zhí)行個體P,鏈結(jié)執(zhí)行鏈結(jié)庫L中的函式R。
如圖4所示,是本發(fā)明的網(wǎng)絡(luò)服務(wù)器運(yùn)行時內(nèi)存的分區(qū)示意圖。該用于管理網(wǎng)絡(luò)服務(wù)器內(nèi)存的系統(tǒng)包括一中央處理單元20、一外存儲器21及一內(nèi)存22。該外存儲器20包括一鏈結(jié)庫L。該內(nèi)存22包括一網(wǎng)絡(luò)服務(wù)模塊程序碼區(qū)24、一管理模塊程序代碼區(qū)25及多個函式服務(wù)模塊區(qū)26,該函式服務(wù)模塊區(qū)26包括一函式服務(wù)模塊程序碼區(qū)27及多個鏈結(jié)庫私有區(qū)28。該網(wǎng)絡(luò)服務(wù)模塊程序碼區(qū)24用于提供運(yùn)行網(wǎng)絡(luò)服務(wù)模塊120時所需的程序代碼空間。該管理模塊程序代碼區(qū)25用于提供執(zhí)行管理模塊時所需的程序代碼空間。該函式服務(wù)模塊區(qū)26用于提供執(zhí)行該管理模塊時所需的內(nèi)存空間。該函式服務(wù)模塊程序碼區(qū)27用于提供運(yùn)行函式服務(wù)模塊時需求的程序代碼空間。該鏈結(jié)庫L私有區(qū)塊28用于提供執(zhí)行鏈結(jié)庫L中函式R時需求的數(shù)據(jù)空間,該鏈結(jié)庫L可為一動態(tài)鏈結(jié)庫,其包括多個函式R,該多個函式R提供給該函式服務(wù)模塊122鏈結(jié)執(zhí)行。例如一網(wǎng)絡(luò)服務(wù)器有100個連線客戶端,需要100個網(wǎng)絡(luò)服務(wù)模塊服務(wù)每一連線客戶端,則內(nèi)存需求僅為100個網(wǎng)絡(luò)服務(wù)模塊區(qū)、1個管理模塊程序代碼區(qū)、1個函式服務(wù)模塊程序碼區(qū)及若干個鏈結(jié)庫私有區(qū)(例如4個)所需的內(nèi)存空間。如果設(shè)定一個網(wǎng)絡(luò)服務(wù)模塊占用400KB內(nèi)存空間,一個管理模塊占用400KB內(nèi)存空間,一個函式服務(wù)模塊占用400KB內(nèi)存空間,一個鏈結(jié)庫L私有區(qū)塊占用400KB內(nèi)存空間,函式服務(wù)模塊數(shù)目為4,則傳統(tǒng)的內(nèi)存需求為(100*400+100*400)KB,而本發(fā)明的內(nèi)存需求為(100*400+1*400+4*400+4*400)KB。由此可見,當(dāng)連線客戶端數(shù)目較大時,采用本發(fā)明的用于管理網(wǎng)絡(luò)服務(wù)器內(nèi)存的方法,連線客戶端對網(wǎng)絡(luò)服務(wù)器內(nèi)存的需求可減少近一半。
如圖5所示,是本發(fā)明的網(wǎng)絡(luò)服務(wù)器12與客戶端10進(jìn)行交互的流程圖。網(wǎng)絡(luò)服務(wù)器12與客戶端10進(jìn)行連線(步驟S30)。當(dāng)網(wǎng)絡(luò)服務(wù)器12與客戶斷10連線成功后,接收客戶端10發(fā)送的命令信號(步驟S31)。網(wǎng)絡(luò)服務(wù)器12判斷該命令信號是否為一結(jié)束命令信號(步驟S32)。如果該命令信號是一結(jié)束命令信號,則網(wǎng)絡(luò)服務(wù)器12與客戶端10斷開連線,流程結(jié)束;如果該命令信號不是一結(jié)束命令信號,網(wǎng)絡(luò)服務(wù)器12通過該命令信號判斷是否需要執(zhí)行鏈結(jié)庫L中的函式R(步驟S33)。如果網(wǎng)絡(luò)服務(wù)器12需要執(zhí)行鏈結(jié)庫L中的函式R,網(wǎng)絡(luò)服務(wù)器12執(zhí)行鏈結(jié)庫L中的函式R(步驟S34);如果網(wǎng)絡(luò)服務(wù)器12不需要執(zhí)行鏈結(jié)庫L中的函式R,網(wǎng)絡(luò)服務(wù)器12通過該命令信號執(zhí)行其它函式以服務(wù)客戶端10(步驟S35)。網(wǎng)絡(luò)服務(wù)器12發(fā)送執(zhí)行結(jié)果給客戶端10(步驟S36)。接著判斷網(wǎng)絡(luò)服務(wù)器是否需要等待下一命令信號(步驟S37)。如果網(wǎng)絡(luò)服務(wù)器需要等待下一命令信號,流程轉(zhuǎn)到步驟S31;網(wǎng)絡(luò)服務(wù)器不需要等待下一命令信號,流程結(jié)束。
如圖6所示,是本發(fā)明的網(wǎng)絡(luò)服務(wù)模塊120的執(zhí)行流程圖。當(dāng)網(wǎng)絡(luò)服務(wù)器12通過上述命令信號判斷需要執(zhí)行鏈結(jié)庫L中函式R后,網(wǎng)絡(luò)服務(wù)器12初始化一網(wǎng)絡(luò)服務(wù)模塊120(步驟S40)。網(wǎng)絡(luò)服務(wù)模塊120將待執(zhí)行的函式R的相關(guān)參數(shù)填入一數(shù)據(jù)結(jié)構(gòu)S,該相關(guān)參數(shù)包括輸入?yún)?shù)及輸出參數(shù)(步驟S41)。網(wǎng)絡(luò)服務(wù)模塊120將該數(shù)據(jù)結(jié)構(gòu)S送入一隊列Q,并將該多個數(shù)據(jù)結(jié)構(gòu)S進(jìn)行線性排列,該隊列Q用于存儲多個數(shù)據(jù)結(jié)構(gòu)S(步驟S42)。管理模塊121將隊列Q中的數(shù)據(jù)結(jié)構(gòu)S分配給函式服務(wù)模塊122執(zhí)行(步驟S43)。函式服務(wù)模塊122根據(jù)數(shù)據(jù)結(jié)構(gòu)S中的參數(shù)鏈結(jié)執(zhí)行鏈結(jié)庫L中相應(yīng)函式R,并將執(zhí)行結(jié)果寫回該數(shù)據(jù)結(jié)構(gòu)S(步驟S44)。網(wǎng)絡(luò)服務(wù)模塊120將數(shù)據(jù)結(jié)構(gòu)S內(nèi)的執(zhí)行結(jié)果回復(fù)給客戶端10(步驟S45)。接著判斷網(wǎng)絡(luò)服務(wù)模塊120是否執(zhí)行完畢(步驟S46)。如果網(wǎng)絡(luò)服務(wù)模塊120未執(zhí)行完畢,流程返回到步驟S41;如果網(wǎng)絡(luò)服務(wù)模塊120執(zhí)行完畢,則流程結(jié)束。
如圖7所示,是本發(fā)明的函式服務(wù)模塊122的執(zhí)行流程圖。網(wǎng)絡(luò)服務(wù)器12初始化函式服務(wù)模塊120并加載鏈結(jié)庫L(步驟S50)。函式服務(wù)模塊122初始化鏈結(jié)庫L(步驟S51)。函式服務(wù)模塊122等待隊列Q中的數(shù)據(jù)結(jié)構(gòu)S(步驟S52)。判斷隊列Q中是否有數(shù)據(jù)結(jié)構(gòu)S(步驟S53)。如果隊列Q中沒有數(shù)據(jù)結(jié)構(gòu)S,流程返回步驟S52;如果隊列Q中有數(shù)據(jù)結(jié)構(gòu)S,函式服務(wù)模塊122將一數(shù)據(jù)結(jié)構(gòu)S由隊列Q中取出(步驟S54)。函式服務(wù)模塊通過該數(shù)據(jù)結(jié)構(gòu)S中的輸入?yún)?shù)鏈結(jié)執(zhí)行相應(yīng)函式R(步驟S55)。函式服務(wù)模塊122將該函式R的執(zhí)行結(jié)果寫回相應(yīng)數(shù)據(jù)結(jié)構(gòu)S(步驟S56)。函式服務(wù)模塊122激活網(wǎng)絡(luò)服務(wù)模塊并將上述執(zhí)行結(jié)果發(fā)送給網(wǎng)絡(luò)服務(wù)模塊120(步驟S57)。接著判斷函式服務(wù)模塊122是否執(zhí)行完畢(步驟S58)。如果函式服務(wù)模塊122沒有執(zhí)行完畢,流程返回步驟S52;如果函式服務(wù)模塊122執(zhí)行完畢,則流程結(jié)束。
權(quán)利要求
1.一種用于管理網(wǎng)絡(luò)服務(wù)器內(nèi)存的系統(tǒng),其包括一控制該系統(tǒng)的中央處理單元,一存儲有至少一鏈結(jié)庫的外存儲器及一內(nèi)存,鏈結(jié)庫包括多個函式,其特征在于,該內(nèi)存包括一數(shù)據(jù)結(jié)構(gòu),存儲有待執(zhí)行函式的輸入及輸出參數(shù);一隊列,存儲有多個數(shù)據(jù)結(jié)構(gòu);一網(wǎng)絡(luò)服務(wù)模塊程序碼區(qū),提供運(yùn)行一網(wǎng)絡(luò)服務(wù)模塊時所需程序代碼的內(nèi)存,該網(wǎng)絡(luò)服務(wù)模塊接收命令信號并通過該命令信號將待執(zhí)行函式的輸入及輸出參數(shù)填入一數(shù)據(jù)結(jié)構(gòu),并將該數(shù)據(jù)結(jié)構(gòu)送入一隊列;一管理模塊程序代碼區(qū),提供執(zhí)行一管理模塊時所需程序代碼的內(nèi)存,該管理模塊分配該隊列中的數(shù)據(jù)結(jié)構(gòu);及一函式服務(wù)模塊區(qū),其包括一函式服務(wù)模塊程序碼區(qū),提供運(yùn)行一函式服務(wù)模塊時所需的程序代碼內(nèi)存空間,該函式服務(wù)模塊將該管理模塊分配的數(shù)據(jù)結(jié)構(gòu)從隊列中取出,并通過該數(shù)據(jù)結(jié)構(gòu)中的輸入?yún)?shù)鏈結(jié)執(zhí)行該鏈結(jié)庫中相應(yīng)函式,并將執(zhí)行結(jié)果寫回該數(shù)據(jù)結(jié)構(gòu);及一鏈結(jié)庫私有區(qū),提供執(zhí)行鏈結(jié)庫中多個函式時所需的數(shù)據(jù)存儲器空間,該多個函式提供給該函式服務(wù)模塊鏈結(jié)執(zhí)行。
2.如權(quán)利要求1所述的一種用于管理網(wǎng)絡(luò)服務(wù)器內(nèi)存的系統(tǒng),其特征在于運(yùn)行網(wǎng)絡(luò)服務(wù)模塊可產(chǎn)生多個執(zhí)行個體,每一執(zhí)行個體服務(wù)一連線客戶端。
3.如權(quán)利要求1所述的一種用于管理網(wǎng)絡(luò)服務(wù)器內(nèi)存的系統(tǒng),其特征在于運(yùn)行函式服務(wù)模塊可產(chǎn)生多個執(zhí)行個體,該多個執(zhí)行個體依序服務(wù)該多個網(wǎng)絡(luò)服務(wù)模塊。
4.如權(quán)利要求1所述的一種用于管理網(wǎng)絡(luò)服務(wù)器內(nèi)存的系統(tǒng),其特征在于網(wǎng)絡(luò)服務(wù)模塊與函式服務(wù)模塊分別使用獨(dú)立的執(zhí)行內(nèi)存空間。
5.如權(quán)利要求2所述的一種用于管理網(wǎng)絡(luò)服務(wù)器內(nèi)存的系統(tǒng),其特征在于該網(wǎng)絡(luò)服務(wù)模塊還用于將該數(shù)據(jù)結(jié)構(gòu)中的執(zhí)行結(jié)果發(fā)送給請求的連線客戶端。
6.一種用于管理網(wǎng)絡(luò)服務(wù)器內(nèi)存的方法,該網(wǎng)絡(luò)服務(wù)器與多個客戶端連線,其特征在于,包括下列步驟將鏈結(jié)庫從網(wǎng)絡(luò)服務(wù)模塊中分割出去;提供一內(nèi)存包括一數(shù)據(jù)結(jié)構(gòu),存儲有待執(zhí)行函式的輸入及輸出參數(shù);一隊列,存儲有多個數(shù)據(jù)結(jié)構(gòu);一網(wǎng)絡(luò)服務(wù)模塊程序碼區(qū),提供運(yùn)行一網(wǎng)絡(luò)服務(wù)模塊時所需程序代碼的內(nèi)存;一管理模塊程序代碼區(qū),提供執(zhí)行一管理模塊時所需程序代碼的內(nèi)存;及一函式服務(wù)模塊區(qū),包括一函式服務(wù)模塊程序碼區(qū),提供運(yùn)行一函式服務(wù)模塊時所需的程序代碼內(nèi)存空間;一鏈結(jié)庫私有區(qū),提供執(zhí)行鏈結(jié)庫中多個函式時所需的數(shù)據(jù)存儲器空間;該網(wǎng)絡(luò)服務(wù)模塊接收該多個連線客戶端的命令信號;通過該命令信號將待執(zhí)行函式的輸入及輸出參數(shù)填入一數(shù)據(jù)結(jié)構(gòu)中;將該數(shù)據(jù)結(jié)構(gòu)送入上述隊列;該函式服務(wù)模塊等待該隊列中的數(shù)據(jù)結(jié)構(gòu)并從該隊列中取出一數(shù)據(jù)結(jié)構(gòu);通過該數(shù)據(jù)結(jié)構(gòu)中的輸入?yún)?shù)鏈結(jié)執(zhí)行上述鏈結(jié)庫中的相應(yīng)函式;將該函式的執(zhí)行結(jié)果寫回該數(shù)據(jù)結(jié)構(gòu);及該網(wǎng)絡(luò)服務(wù)模塊將該數(shù)據(jù)結(jié)構(gòu)內(nèi)的執(zhí)行結(jié)果回復(fù)給相應(yīng)連線客戶端。
7.如權(quán)利要求6所述的一種用于管理網(wǎng)絡(luò)服務(wù)器內(nèi)存的方法,其特征在于,還包括判斷該隊列中是否有數(shù)據(jù)結(jié)構(gòu)的步驟,如果該隊列中有數(shù)據(jù)結(jié)構(gòu),則該函式服務(wù)模塊從該隊列中取出一數(shù)據(jù)結(jié)構(gòu),如果該隊列中沒有數(shù)據(jù)結(jié)構(gòu),該函式服務(wù)模塊繼續(xù)等待。
8.如權(quán)利要求6所述的一種用于管理網(wǎng)絡(luò)服務(wù)器內(nèi)存的方法,其特征在于,還包括步驟在運(yùn)行網(wǎng)絡(luò)服務(wù)模塊前,還包括初始化網(wǎng)絡(luò)服務(wù)模塊的步驟。
9.如權(quán)利要求6所述的一種用于管理網(wǎng)絡(luò)服務(wù)器內(nèi)存的方法,其特征在于在運(yùn)行函式服務(wù)模塊前,還包括初始化該函式服務(wù)模塊的步驟。
10.如權(quán)利要求6所述的一種用于管理網(wǎng)絡(luò)服務(wù)器內(nèi)存的方法,其特征在于在初始化該鏈結(jié)庫前,還包括加載并初始化該鏈結(jié)庫的步驟。
11.如權(quán)利要求6所述的一種用于管理網(wǎng)絡(luò)服務(wù)器內(nèi)存的方法,其特征在于,運(yùn)行網(wǎng)絡(luò)服務(wù)模塊可產(chǎn)生多個執(zhí)行個體,每一執(zhí)行個體服務(wù)一連線客戶端。
12.如權(quán)利要求6所述的一種用于管理網(wǎng)絡(luò)服務(wù)器內(nèi)存的方法,其特征在于,運(yùn)行函式服務(wù)模塊可產(chǎn)生多個執(zhí)行個體,該多個執(zhí)行個體依序服務(wù)該多個網(wǎng)絡(luò)服務(wù)模塊。
13.如權(quán)利要求6所述的一種用于管理網(wǎng)絡(luò)服務(wù)器內(nèi)存的方法,其特征在于,網(wǎng)絡(luò)服務(wù)模塊與函式服務(wù)模塊分別使用獨(dú)立的執(zhí)行內(nèi)存空間。
14.如權(quán)利要求6所述的一種用于管理網(wǎng)絡(luò)服務(wù)器內(nèi)存的方法,其特征在于,還包括步驟如果該隊列中沒有數(shù)據(jù)結(jié)構(gòu),流程結(jié)束。
全文摘要
本發(fā)明揭露了一種用于管理網(wǎng)絡(luò)服務(wù)器內(nèi)存的方法,該方法包括下列步驟將鏈結(jié)庫從網(wǎng)絡(luò)服務(wù)模塊中切割出去;提供一函式服務(wù)模塊代替網(wǎng)絡(luò)服務(wù)模塊鏈結(jié)執(zhí)行該鏈結(jié)庫。內(nèi)存需求由網(wǎng)絡(luò)服務(wù)模塊及函式服務(wù)模塊的執(zhí)行個體數(shù)目決定,而函式服務(wù)模塊的執(zhí)行個體數(shù)目可由程序設(shè)計師控制。本發(fā)明還揭露了一種用于管理網(wǎng)絡(luò)服務(wù)器內(nèi)存的系統(tǒng)。由于網(wǎng)絡(luò)服務(wù)模塊與函式服務(wù)模塊使用獨(dú)立的執(zhí)行內(nèi)存空間,從而網(wǎng)絡(luò)服務(wù)模塊可減少因?yàn)檫\(yùn)行鏈結(jié)庫L所帶來的內(nèi)存負(fù)擔(dān),從而增加連線客戶端數(shù)目。
文檔編號G06F17/30GK1797353SQ20041009188
公開日2006年7月5日 申請日期2004年12月25日 優(yōu)先權(quán)日2004年12月25日
發(fā)明者吳政錳 申請人:鴻富錦精密工業(yè)(深圳)有限公司, 鴻海精密工業(yè)股份有限公司