專(zhuān)利名稱(chēng):減少運(yùn)行時(shí)間存儲(chǔ)空間需求的計(jì)算機(jī)系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及以減少的運(yùn)行時(shí)間存儲(chǔ)空間需求執(zhí)行程序的計(jì)算機(jī)系統(tǒng)和方法。本發(fā)明尤其涉及在網(wǎng)絡(luò)中執(zhí)行根據(jù)經(jīng)由網(wǎng)絡(luò)傳送的代碼(即網(wǎng)絡(luò)移動(dòng)碼)以使代碼的運(yùn)行時(shí)間存儲(chǔ)空間需求得到減少的計(jì)算機(jī)系統(tǒng)和方法。
現(xiàn)在建立或配置的計(jì)算機(jī)系統(tǒng)利用了其代碼是體系結(jié)構(gòu)中性(AN)二進(jìn)制格式(以下稱(chēng)為AN碼)的程序的特性。于是這些程序的AN碼與計(jì)算機(jī)系統(tǒng)的具體體系結(jié)構(gòu)或平臺(tái)無(wú)關(guān)。
本說(shuō)明書(shū)中的術(shù)語(yǔ)“體系結(jié)構(gòu)”指一系列型號(hào)的計(jì)算機(jī)的操作特性。具體體系結(jié)構(gòu)的例子包括Macintosh計(jì)算機(jī)、采用Dos或Windows操作系統(tǒng)的IBM PC兼容計(jì)算機(jī)、運(yùn)行Solaris操作系統(tǒng)的Sun Microsystems計(jì)算機(jī)和采用Unix操作系統(tǒng)的計(jì)算機(jī)系統(tǒng)。
本說(shuō)明書(shū)中的術(shù)語(yǔ)“體系結(jié)構(gòu)專(zhuān)用(AS)”指這樣的要求,即二進(jìn)制格式的某些程序的代碼(以后稱(chēng)為AS碼)僅在具有特定計(jì)算機(jī)體系結(jié)構(gòu)的計(jì)算機(jī)系統(tǒng)上被執(zhí)行。因此,具有利用普通編程語(yǔ)言(例如C語(yǔ)言)書(shū)寫(xiě)并對(duì)特定體系結(jié)構(gòu)(例如IBM兼容PC)編譯的代碼的程序只能在該體系結(jié)構(gòu)或該體系結(jié)構(gòu)的仿真器上運(yùn)行。
本說(shuō)明書(shū)中的術(shù)語(yǔ)“體系結(jié)構(gòu)中性(AN)”指其編譯代碼能夠在具有不同體系結(jié)構(gòu)的各種計(jì)算機(jī)系統(tǒng)上被執(zhí)行。例如,特定體系結(jié)構(gòu)的計(jì)算機(jī)系統(tǒng)可以利用Java(Sun Microsystems的商標(biāo))虛擬機(jī)模塊來(lái)進(jìn)行配置。對(duì)于Java虛擬機(jī)的指令集,Java虛擬機(jī)模塊能夠執(zhí)行具有利用Java編程語(yǔ)言書(shū)寫(xiě)和被編譯為字節(jié)碼的代碼(以后稱(chēng)為Java字節(jié)碼)的程序。Java字節(jié)碼與計(jì)算機(jī)系統(tǒng)的特定體系結(jié)構(gòu)無(wú)關(guān)。
具有AN碼的程序的重要特性包括了它們的可移值性。例如,由于AN碼形式的程序能夠在被配置用來(lái)執(zhí)行AN碼的任何計(jì)算機(jī)系統(tǒng)上執(zhí)行,而不管該計(jì)算機(jī)系統(tǒng)的具體體系結(jié)構(gòu)如何,所以可以容易地通過(guò)網(wǎng)絡(luò)把這些程序從一個(gè)計(jì)算機(jī)系統(tǒng)移植到另一個(gè)計(jì)算機(jī)系統(tǒng)。例如,編譯為Java字節(jié)碼的程序可以在具有Java虛擬機(jī)模塊的任何計(jì)算機(jī)系統(tǒng)上執(zhí)行,并可容易地利用Hot Java(Sun Microsystems的商標(biāo))網(wǎng)絡(luò)通信管理器通過(guò)網(wǎng)絡(luò)從一個(gè)計(jì)算機(jī)系統(tǒng)移植到另一個(gè)計(jì)算機(jī)系統(tǒng)。
此外,與被編譯為Java字節(jié)碼的程序的可移植性有關(guān)的另一重要特性是這些程序的可驗(yàn)證性。具體來(lái)說(shuō),Java虛擬機(jī)模塊能夠容易地驗(yàn)證這些程序滿(mǎn)足預(yù)定的完整性標(biāo)準(zhǔn)。這種完整性標(biāo)準(zhǔn)包括堆棧和數(shù)據(jù)類(lèi)型使用約束,這種約束保證Java字節(jié)碼不能夠上溢或下溢Java虛擬機(jī)模塊的堆棧,并且Java字節(jié)碼形式的全部指令只使用其數(shù)據(jù)類(lèi)型滿(mǎn)足對(duì)這些指令的數(shù)據(jù)類(lèi)型約束的數(shù)據(jù)。因此Java字節(jié)碼形式的程序不能夠偽造目標(biāo)指針,并且一般來(lái)說(shuō)只能夠訪(fǎng)問(wèn)已明確允許用戶(hù)使用的系統(tǒng)資源。
出于這些原因,把計(jì)算機(jī)系統(tǒng)配置成執(zhí)行通過(guò)網(wǎng)絡(luò)接收的AN碼形式的程序。實(shí)際上,在某些情況下,由于程序被直接裝入計(jì)算機(jī)系統(tǒng)的運(yùn)行時(shí)間(即執(zhí)行時(shí)間)存儲(chǔ)器(例如隨機(jī)存取存儲(chǔ)器(RAM)),所以這種計(jì)算機(jī)系統(tǒng)甚至可以不需要輔助存儲(chǔ)器(例如硬盤(pán))。這樣一來(lái),這種計(jì)算機(jī)系統(tǒng)的用戶(hù)就在軟件購(gòu)買(mǎi)、安裝、配置和更新的周期之外,這種周期是軟件產(chǎn)品的當(dāng)前特點(diǎn)。
AN碼的上述特點(diǎn)使其特別適合于供被連網(wǎng)和根據(jù)需要被裝入AN碼的小型或廉價(jià)計(jì)算機(jī)系統(tǒng)使用。例如,這種計(jì)算機(jī)系統(tǒng)可以是視頻游戲機(jī)、個(gè)人數(shù)字助理(PDA)、蜂窩電話(huà)、或其它類(lèi)似的計(jì)算機(jī)系統(tǒng)或計(jì)算機(jī)操作設(shè)備。
但是,遺憾的是AN碼形式的程序的運(yùn)行比AS碼形式的相同程序的運(yùn)行要慢。例如,Java虛擬機(jī)模塊執(zhí)行的Java字節(jié)碼形式的程序的運(yùn)行通常比AS碼形式的相同程序慢了2.5至20倍。因此,計(jì)算機(jī)系統(tǒng)的用戶(hù)可能發(fā)覺(jué)需要通過(guò)網(wǎng)絡(luò)接收程序的AS碼,以便AS碼能夠在該計(jì)算機(jī)系統(tǒng)的特定體系結(jié)構(gòu)上執(zhí)行。但是,為了保證這些程序安全地傳送給計(jì)算機(jī)系統(tǒng),網(wǎng)絡(luò)必需是封閉的或可靠的,或者這些程序必需具有可被驗(yàn)證的嵌入式數(shù)字標(biāo)符。
此外,根據(jù)AN碼生成的AS碼比原始AN碼大得多。例如,根據(jù)Java字節(jié)碼生成的AS碼通常是Java字節(jié)碼大小的2至5倍。于是固定數(shù)量的運(yùn)行時(shí)間存儲(chǔ)器能夠存儲(chǔ)的編譯AS碼要比能夠存儲(chǔ)的AN碼少得多。但是,如上所述,AS碼比生成該AS碼的AN碼快得多,并且AS碼也許是獲得滿(mǎn)足要求性能的唯一方法。
在上述計(jì)算機(jī)系統(tǒng)中,價(jià)格是極其重要的。實(shí)際上,配置這種計(jì)算機(jī)系統(tǒng)的最主要的成本之一是執(zhí)行被裝入程序所需的運(yùn)行時(shí)間存儲(chǔ)器的數(shù)量。因此,減少這些計(jì)算機(jī)系統(tǒng)所需的運(yùn)行時(shí)間存儲(chǔ)器的數(shù)量是非常重要的,這是因?yàn)檫@種減少提供了競(jìng)爭(zhēng)性強(qiáng)的優(yōu)點(diǎn)。
此外,在上述這種計(jì)算機(jī)系統(tǒng)中,也許不能夠?qū)o助存儲(chǔ)器進(jìn)行分頁(yè)。在這種情況下,當(dāng)在運(yùn)行時(shí)間存儲(chǔ)器內(nèi)需要用于通過(guò)網(wǎng)絡(luò)接收的AS碼或AS碼的空間時(shí),可以在運(yùn)行時(shí)間存儲(chǔ)器內(nèi)對(duì)它進(jìn)行高速緩存和沖洗。但是,一旦要繼續(xù)執(zhí)行被沖洗的程序,就必需通過(guò)網(wǎng)絡(luò)再次下載原始代碼。這就會(huì)顯著影響程序的執(zhí)行速度。此外,即使在能夠?qū)o助存儲(chǔ)器進(jìn)行分頁(yè)的計(jì)算機(jī)系統(tǒng)中,從輔助存儲(chǔ)器檢索原始代碼所需的時(shí)間可能過(guò)長(zhǎng)。
在本發(fā)明中,利用通過(guò)對(duì)網(wǎng)絡(luò)接收的程序的代碼進(jìn)行壓縮和解壓縮來(lái)減少該代碼在運(yùn)行時(shí)間存儲(chǔ)器內(nèi)的存儲(chǔ)成本。由于這要比沖洗該代碼在檢索它要快得多,所以壓縮和解壓縮不顯著影響該代碼的執(zhí)行速度。
總之,本發(fā)明是計(jì)算機(jī)網(wǎng)絡(luò)中的客戶(hù)計(jì)算機(jī)系統(tǒng)和相關(guān)方法,通過(guò)該計(jì)算機(jī)網(wǎng)絡(luò)提供具有方法的程序。客戶(hù)計(jì)算機(jī)能夠以減少的運(yùn)行時(shí)間存儲(chǔ)空間需求執(zhí)行程序??蛻?hù)計(jì)算機(jī)系統(tǒng)包括運(yùn)行時(shí)間存儲(chǔ)器、網(wǎng)絡(luò)通信接口、網(wǎng)絡(luò)通信管理器、執(zhí)行控制器、以及壓縮器。
網(wǎng)絡(luò)通信接口接收程序的方法,而網(wǎng)絡(luò)通信管理器把接收到的方法無(wú)壓縮地裝入運(yùn)行時(shí)間存儲(chǔ)器的可用空間。執(zhí)行控制器控制程序的執(zhí)行,以便方法被調(diào)用或不被調(diào)用。
壓縮器在運(yùn)行時(shí)間存儲(chǔ)器內(nèi)壓縮未被調(diào)用的未壓縮程序中的那些可壓縮程序。這樣就在運(yùn)行時(shí)間存儲(chǔ)器內(nèi)得到可用空間。壓縮器還在運(yùn)行時(shí)間存儲(chǔ)器內(nèi)的可用空間內(nèi)解壓縮壓縮方法中的那些可解壓縮方法以便它們可被調(diào)用。
在一個(gè)實(shí)施例中,一旦壓縮方法中的那些可解壓縮方法要被調(diào)用,壓縮器就解壓縮它們。
在另一實(shí)施例中,代碼壓縮器在預(yù)定時(shí)間間隔之后解壓縮壓縮方法中的那些可解壓縮方法。
在再一實(shí)施例中,一旦未壓縮方法中的那些可壓縮方法不再被調(diào)用,壓縮器就壓縮它們。
在還一實(shí)施例中,當(dāng)需要運(yùn)行時(shí)間存儲(chǔ)器內(nèi)的空間但得不到時(shí),壓縮器就壓縮未壓縮方法中的那些可壓縮方法。此外,在這一實(shí)施例,客戶(hù)計(jì)算機(jī)系統(tǒng)可以進(jìn)一步包括一調(diào)用順序表,該調(diào)用順序表按照最早被調(diào)用方法至最近被調(diào)用方法的順序列出當(dāng)前未被調(diào)用的那些方法。這樣一來(lái),當(dāng)需要運(yùn)行時(shí)間存儲(chǔ)器內(nèi)的空間但得不到時(shí),未壓縮方法中的那些可壓縮方法就是在該調(diào)用順序表中的最早被調(diào)用的方法。
在另一實(shí)施例中,當(dāng)需要運(yùn)行時(shí)間存儲(chǔ)器內(nèi)的空間但得不到時(shí),壓縮器就將壓縮方法中的那些可沖洗方法從運(yùn)行時(shí)間存儲(chǔ)器中沖洗出去。
作為以上實(shí)施例的一替代實(shí)施例,客戶(hù)計(jì)算機(jī)系統(tǒng)可進(jìn)一步包括一輔助存儲(chǔ)器。在這種情況下,當(dāng)需要運(yùn)行時(shí)間存儲(chǔ)器內(nèi)的空間但得不到時(shí),壓縮器就把壓縮方法中的那些可存儲(chǔ)方法存儲(chǔ)在該輔助存儲(chǔ)器內(nèi)。壓縮器然后從該輔助存儲(chǔ)器中檢索將要被解壓縮的壓縮方法中的那些可檢索方法。
結(jié)合附圖參看以下詳細(xì)說(shuō)明和所附的權(quán)利要求書(shū)將更容易理解本發(fā)明的其它目的和特點(diǎn),附圖中
圖1是采用了本發(fā)明的客戶(hù)計(jì)算機(jī)系統(tǒng)的方框圖。
圖2是客戶(hù)計(jì)算機(jī)系統(tǒng)的操作的功能方框圖。
圖3是客戶(hù)計(jì)算機(jī)系統(tǒng)的壓縮方法的流程圖。
圖4是客戶(hù)計(jì)算機(jī)系統(tǒng)的解壓縮方法的流程圖。
圖5表示客戶(hù)計(jì)算機(jī)系統(tǒng)的一替代實(shí)施例。
圖6表示客戶(hù)計(jì)算機(jī)系統(tǒng)的該替代實(shí)施例的操作的功能方框圖。
參看圖1,該圖表示本發(fā)明的計(jì)算機(jī)網(wǎng)絡(luò)100。該計(jì)算機(jī)網(wǎng)絡(luò)100包括一個(gè)或多個(gè)客戶(hù)計(jì)算機(jī)系統(tǒng)102、一個(gè)或多個(gè)服務(wù)器計(jì)算機(jī)系統(tǒng)104和網(wǎng)絡(luò)通信連接106。
客戶(hù)計(jì)算機(jī)系統(tǒng)102通過(guò)網(wǎng)絡(luò)通信連接106與服務(wù)器計(jì)算機(jī)系統(tǒng)104連接。網(wǎng)絡(luò)通信連接可以是局域網(wǎng)或廣域網(wǎng)、互聯(lián)網(wǎng)(Intemet)或某些其它類(lèi)型的網(wǎng)絡(luò)通信連接。
每一服務(wù)器計(jì)算機(jī)系統(tǒng)104包括中央處理單元(CPU)110、用戶(hù)接口112、網(wǎng)絡(luò)通信接口116和存儲(chǔ)器118。網(wǎng)絡(luò)通信接口使每一服務(wù)器計(jì)算機(jī)系統(tǒng)能夠通過(guò)網(wǎng)絡(luò)通信連接106與客戶(hù)計(jì)算機(jī)系統(tǒng)102通信。
每一服務(wù)器計(jì)算機(jī)系統(tǒng)104的存儲(chǔ)器118存儲(chǔ)操作系統(tǒng)120、網(wǎng)絡(luò)通信管理器(或服務(wù)器)122和程序145。操作系統(tǒng)和通信管理器都在CPU120上運(yùn)行。操作系統(tǒng)響應(yīng)用戶(hù)利用用戶(hù)接口112發(fā)送的或由網(wǎng)絡(luò)通信接口116通過(guò)網(wǎng)絡(luò)通信連接106從客戶(hù)計(jì)算機(jī)系統(tǒng)102的用戶(hù)接收的命令,控制并協(xié)調(diào)網(wǎng)絡(luò)通信管理器的運(yùn)行。
程序145包括方法147和/或148。在本說(shuō)明書(shū)中,在程序執(zhí)行期間各個(gè)時(shí)刻被調(diào)用和不被調(diào)用的程序的任何分立的段或部分都被看作是方法。
每一服務(wù)器計(jì)算機(jī)系統(tǒng)104的方法147包含獨(dú)立于客戶(hù)計(jì)算機(jī)系統(tǒng)102的具體體系結(jié)構(gòu)(即平臺(tái))的體系結(jié)構(gòu)中性(AN)碼。這些程序被從特定的編程語(yǔ)言編譯成為AN碼。在最佳實(shí)施例中,這些程序用Java編碼語(yǔ)言書(shū)寫(xiě)并被編譯成為Java字節(jié)碼。此外,這些程序被包括在組成了按照面向?qū)ο蠓绞奖痪幊痰能浖绦虻木哂蟹椒ǖ膶?duì)象類(lèi)內(nèi)。
相反地,每一服務(wù)器計(jì)算機(jī)系統(tǒng)104的方法148包含對(duì)于客戶(hù)計(jì)算機(jī)系統(tǒng)102的具體體系結(jié)構(gòu)編譯的體系結(jié)構(gòu)專(zhuān)用(AS)碼。如上所述,需要這種方法是因?yàn)樗鼈儽華N碼形式的相同方法運(yùn)行要快。如以下更詳細(xì)說(shuō)明得那樣,網(wǎng)絡(luò)100最好是封閉的和可靠的網(wǎng)絡(luò),在其內(nèi)可以高度的可靠性安全地把這些程序傳送給客戶(hù)計(jì)算機(jī)102,或者這些程序最好具有可被驗(yàn)證的嵌入式數(shù)字標(biāo)符。
如后面還將更詳細(xì)地說(shuō)明的那樣,一旦用戶(hù)請(qǐng)求,就利用網(wǎng)絡(luò)通信管理器122把方法147和/或148傳送給客戶(hù)計(jì)算機(jī)系統(tǒng)102。因此,這些方法的AN碼被看作是網(wǎng)絡(luò)移動(dòng)碼。
每一客戶(hù)計(jì)算機(jī)系統(tǒng)102可以是視頻游戲機(jī)、個(gè)人數(shù)字助理(PDA)、蜂窩電話(huà)、臺(tái)式計(jì)算機(jī)、或要求少量運(yùn)行時(shí)間存儲(chǔ)器的其它計(jì)算機(jī)系統(tǒng)或計(jì)算機(jī)操作設(shè)備。此外,每一客戶(hù)計(jì)算機(jī)系統(tǒng)包括中央處理單元(CPU)126、用戶(hù)接口128、網(wǎng)絡(luò)通信接口132、只讀存儲(chǔ)器(ROM)134和運(yùn)行時(shí)間隨機(jī)存取存儲(chǔ)器(RAM)136。網(wǎng)絡(luò)通信接口使客戶(hù)計(jì)算機(jī)系統(tǒng)能夠通過(guò)網(wǎng)絡(luò)通信連接106與服務(wù)器計(jì)算機(jī)系統(tǒng)104通信。
每一客戶(hù)計(jì)算機(jī)系統(tǒng)102的RAM136存儲(chǔ)操作系統(tǒng)138、網(wǎng)絡(luò)通信管理器140、虛擬機(jī)模塊142、以及代碼壓縮器146,它們都裝載自ROM134。該RAM還存儲(chǔ)具有方法147和/或方法148的程序145,方法147包含AN碼,而方法148包含從服務(wù)器計(jì)算機(jī)系統(tǒng)104下載的體系結(jié)構(gòu)專(zhuān)用(AS)碼。操作系統(tǒng)、網(wǎng)絡(luò)通信管理器、虛擬機(jī)模塊、代碼編譯器、代碼壓縮器以及程序都在CPU126上被執(zhí)行。操作系統(tǒng)響應(yīng)用戶(hù)利用用戶(hù)接口128發(fā)送的命令,控制并協(xié)調(diào)網(wǎng)絡(luò)通信管理器、虛擬機(jī)模塊、代碼編譯器、代碼壓縮器以及程序的執(zhí)行。
如上所述,一旦用戶(hù)請(qǐng)求,就從服務(wù)器計(jì)算機(jī)系統(tǒng)104接收的方法147和/或148。利用在最佳實(shí)施例中是HotJava網(wǎng)絡(luò)通信管理器的網(wǎng)絡(luò)通信管理器140獲得這些方法。該網(wǎng)絡(luò)通信管理器然后把這些方法裝入RAM136。
虛擬機(jī)模塊142的代碼校驗(yàn)器151驗(yàn)證裝入方法147的AN碼滿(mǎn)足預(yù)定的完整性標(biāo)準(zhǔn)。如上所述,這一標(biāo)準(zhǔn)可以包括堆棧和數(shù)據(jù)類(lèi)型使用約束,以確保裝入方法不上溢和或下溢虛擬機(jī)模塊的堆棧,并且所有指令只使用其數(shù)據(jù)類(lèi)型與這些指令的數(shù)據(jù)類(lèi)型約束一致的數(shù)據(jù)。在最佳實(shí)施例中,虛擬機(jī)模塊是Java虛擬機(jī)模塊。
但是,在具有AS碼的接收方法148的情況下,不能夠用代碼校驗(yàn)器151直接驗(yàn)證它們的完整性。因此,為了間接驗(yàn)證它們的完整性,網(wǎng)絡(luò)100可以是可在其內(nèi)以高度的可靠性安全地把這些方法傳送給客戶(hù)計(jì)算機(jī)102的封閉的和可靠的網(wǎng)絡(luò)?;蛘撸绻摼W(wǎng)絡(luò)100不是安全的,這些程序可以具有使網(wǎng)絡(luò)通信管理器140能夠驗(yàn)證它們來(lái)自可靠源的嵌入式數(shù)字標(biāo)符。
虛擬機(jī)模塊142的執(zhí)行控制器153控制程序145的執(zhí)行。具體來(lái)說(shuō),執(zhí)行控制器解釋方法147的AN碼以便在客戶(hù)計(jì)算機(jī)系統(tǒng)102的特定體系結(jié)構(gòu)上執(zhí)行,并使這些方法能夠調(diào)用包含AS碼的方法148以便在該特定體系結(jié)構(gòu)上執(zhí)行。在程序的執(zhí)行期間產(chǎn)生的執(zhí)行數(shù)據(jù)149存儲(chǔ)在RAM136內(nèi)。此外,如果網(wǎng)絡(luò)通信管理器140、代碼編譯器144和/或代碼壓縮器146都是AN碼,則執(zhí)行控制器還控制它們的執(zhí)行。
此外,為了保持低的客戶(hù)計(jì)算機(jī)系統(tǒng)102的RAM空間需求,代碼壓縮器146在不同時(shí)刻在RAM 136內(nèi)壓縮和解壓縮方法147和/或148的代碼。對(duì)可壓縮和可解壓縮的方法這樣做,這是因?yàn)樗鼈兎謩e滿(mǎn)足存儲(chǔ)在RAM 136內(nèi)的和由用戶(hù)利用用戶(hù)接口128輸入的預(yù)定壓縮和解壓縮標(biāo)準(zhǔn)152和154。以下將更詳細(xì)描述壓縮和解壓縮標(biāo)準(zhǔn),在本發(fā)明的一些實(shí)施例中,壓縮和解壓縮標(biāo)準(zhǔn)是用戶(hù)可選擇和/或可改變的(利用用戶(hù)接口128)一組預(yù)定的存儲(chǔ)器管理策略。
利用方法狀態(tài)數(shù)據(jù)結(jié)構(gòu)155保持方法147和/或148的存儲(chǔ)和調(diào)用狀態(tài)。方法狀態(tài)數(shù)據(jù)結(jié)構(gòu)被網(wǎng)絡(luò)通信管理器148、執(zhí)行控制器153、和代碼壓縮器146進(jìn)行更新。
圖2表示各客戶(hù)計(jì)算機(jī)系統(tǒng)102在RAM136內(nèi)壓縮和解壓方法147和/或148時(shí)的操作的功能方框圖。此外,圖3和4分別表示優(yōu)選的壓縮和解壓縮方法300和400。
參看圖1至3,當(dāng)用戶(hù)請(qǐng)求執(zhí)行某一服務(wù)器計(jì)算機(jī)系統(tǒng)104的某一程序145時(shí),用戶(hù)的客戶(hù)計(jì)算機(jī)系統(tǒng)102從服務(wù)器計(jì)算機(jī)系統(tǒng)獲得被請(qǐng)求的程序(圖3的步驟302)。當(dāng)用戶(hù)利用用戶(hù)接口128發(fā)出命令從服務(wù)器計(jì)算機(jī)系統(tǒng)下載并執(zhí)行程序時(shí)就完成了被請(qǐng)求程序的獲得。作為響應(yīng),操作系統(tǒng)120調(diào)用網(wǎng)絡(luò)通信管理器140,后者產(chǎn)生表示已作出了這種請(qǐng)求的信息。網(wǎng)絡(luò)通信接口132然后把該信息傳送給服務(wù)器計(jì)算機(jī)系統(tǒng)。
服務(wù)器計(jì)算機(jī)系統(tǒng)104的網(wǎng)絡(luò)通信接口116接收傳送的信息。作為響應(yīng),服務(wù)器計(jì)算機(jī)系統(tǒng)的網(wǎng)絡(luò)通信管理器122把被請(qǐng)求程序145的方法147和/或148提供給網(wǎng)絡(luò)通信接口,該網(wǎng)絡(luò)通信接口然后把這些方法傳送給用戶(hù)的客戶(hù)計(jì)算機(jī)系統(tǒng)102。
傳送的方法147和/或148被用戶(hù)的客戶(hù)計(jì)算機(jī)系統(tǒng)102的網(wǎng)絡(luò)通信接口132接收。作為響應(yīng),網(wǎng)絡(luò)通信管理器140則判斷在RAM136內(nèi)是否有足夠的空間用于裝入所接收的方法(圖3的判斷步驟304)。如果有,則網(wǎng)絡(luò)通信管理器將未壓縮的這些方法的代碼裝入RAM內(nèi)的可用空間(圖3的步驟306)。這樣一來(lái),這些方法就與其它程序145先前裝入程序的方法147和/或148一道被裝入RAM。在裝入這些方法時(shí),網(wǎng)絡(luò)通信管理器更新方法狀態(tài)數(shù)據(jù)結(jié)構(gòu)155的方法存儲(chǔ)狀態(tài)表200,以便區(qū)分方法和被這些方法占據(jù)的RAM136內(nèi)的存儲(chǔ)空間的相應(yīng)指針。此外,網(wǎng)絡(luò)通信管理器還更新程序狀態(tài)表來(lái)指出這些方法的代碼是未被壓縮的(U)。
網(wǎng)絡(luò)通信管理器140然后調(diào)用虛擬機(jī)模塊142的代碼校驗(yàn)器151。作為響應(yīng),該代碼校驗(yàn)器驗(yàn)證最近被裝入的方法147的AN碼滿(mǎn)足上述的預(yù)定完整性標(biāo)準(zhǔn)(圖3的步驟307)。
其方法147和/或148最近被裝入的程序145則與任何先前裝入的程序一道在執(zhí)行控制器的控制下被執(zhí)行(圖3的步驟314)。當(dāng)程序被執(zhí)行時(shí),它們的方法就在它們被執(zhí)行期間的不同時(shí)刻被調(diào)用和不被調(diào)用。如上所述,執(zhí)行控制器解釋方法147的AN碼以便在用戶(hù)的客戶(hù)計(jì)算機(jī)系統(tǒng)102的特定體系結(jié)構(gòu)上執(zhí)行,并使這些方法能夠調(diào)用包含AS碼的方法148以便在該特定體系結(jié)構(gòu)上執(zhí)行。
各裝入方法147和/或148可以因?yàn)楸匦璧却龜?shù)據(jù)或進(jìn)行休眠狀態(tài)等而在各個(gè)時(shí)刻都不被調(diào)用。一旦執(zhí)行控制器確認(rèn)出現(xiàn)了這種情況,它就將該方法加入到程序狀態(tài)數(shù)據(jù)結(jié)構(gòu)155的調(diào)用順序(LRI)表202,以便指出該方法目前不被調(diào)用。LRI表中的方法按照從最近被調(diào)用至最早被調(diào)用的次序列出。
如上所述,為了減少RAM136的空間需求,滿(mǎn)足了預(yù)定壓縮標(biāo)準(zhǔn)152的每一裝入方法147和/或148的代碼被代碼壓縮器146進(jìn)行壓縮。在最佳實(shí)施例中,壓縮標(biāo)準(zhǔn)規(guī)定可壓縮方法147或148的代碼應(yīng)在(1)需要RAM136內(nèi)的空間但得不到時(shí)、以及在(2)該方法是LRI表202中的尚未使其代碼被壓縮的最早被調(diào)用的方法時(shí)被壓縮。
一旦網(wǎng)絡(luò)通信管理器140確認(rèn)在RAM 136內(nèi)沒(méi)有可用于裝入被服務(wù)器計(jì)算機(jī)系統(tǒng)104接收的一個(gè)或多個(gè)方法147和/或148(圖3的判斷步驟304)的空間,它就調(diào)用代碼壓縮器146。作為響應(yīng),該代碼壓縮器就壓縮LRI表202中其代碼尚未被壓縮的最早被調(diào)用方法的代碼,直到有足夠的空間為止(圖3的步驟316)。代碼壓縮器還更新方法存儲(chǔ)狀態(tài)表200,以便區(qū)分該方法的壓縮代碼的存儲(chǔ)空間的相應(yīng)指針和指出該方法的代碼已被壓縮(C)。網(wǎng)絡(luò)通信管理器然后如上所述地把已有對(duì)應(yīng)可用空間的方法裝入到該可用空間(圖3的步驟306)。
代碼壓縮器146可以使用本領(lǐng)域眾所周知的任何快速數(shù)據(jù)壓縮技術(shù)。此外,代碼壓縮器還可以使用單獨(dú)的壓縮技術(shù)來(lái)對(duì)方法147的AN碼和方法148的AS碼進(jìn)行最佳壓縮。
此外,在裝入方法147和/或148被調(diào)用時(shí),它們就產(chǎn)生執(zhí)行數(shù)據(jù)。對(duì)于任何被執(zhí)行控制器153確認(rèn)是被調(diào)用的(圖3的判斷步驟320)和在RAM 136內(nèi)有空間可用來(lái)存儲(chǔ)其執(zhí)行數(shù)據(jù)的(判斷步驟322)方法,執(zhí)行控制器把執(zhí)行數(shù)據(jù)存儲(chǔ)在RAM內(nèi)(圖3的步驟324)。
但是,對(duì)于被執(zhí)行控制器153確認(rèn)為是被調(diào)用的(圖3的判斷步驟320)和在RAM內(nèi)雖沒(méi)有但需要可用來(lái)存儲(chǔ)執(zhí)行數(shù)據(jù)的空間的(判斷步驟322)每個(gè)裝入方法147和/或148,執(zhí)行控制器調(diào)用代碼壓縮器146。如同在需要RAM內(nèi)的空間的先前情形一樣,代碼壓縮器壓縮LRI表202中其代碼尚未被壓縮的最早被調(diào)用方法的代碼,直到有足夠的空間為止(圖3的步驟326)。如上所述,代碼壓縮器更新方法存儲(chǔ)狀態(tài)表200,以便區(qū)分該方法的壓縮代碼的存儲(chǔ)空間的相應(yīng)指針和指出該方法的代碼已被壓縮(C)。如上所述,執(zhí)行控制器然后把執(zhí)行數(shù)據(jù)存儲(chǔ)在RAM的可用空間內(nèi)(圖3的步驟324),并繼續(xù)具有其執(zhí)行數(shù)據(jù)已被存儲(chǔ)的方法的程序的執(zhí)行(圖3的步驟314)。
此外,參看圖1、2和4,一旦在RAM 136內(nèi)有可用空間,被壓縮的并滿(mǎn)足了預(yù)定解壓縮標(biāo)準(zhǔn)154的每一裝入方法147和/或148就被代碼壓縮器146進(jìn)行解壓縮。在最佳實(shí)施例中,用于解壓縮可解壓方法的代碼的預(yù)定解壓縮標(biāo)準(zhǔn)僅規(guī)定該方法的代碼是壓縮的,且將在該方法要再次被調(diào)用時(shí)被解壓縮。
因此,每當(dāng)執(zhí)行控制器153確認(rèn)裝入方法147和/或148之一要被調(diào)用(圖中的判斷步驟402),它就判斷該方法的代碼是否被進(jìn)行了壓縮(圖4的判斷步驟404)。根據(jù)方法存儲(chǔ)狀態(tài)表200進(jìn)行這種判斷。如果該方法的代碼沒(méi)有被壓縮,則該方法就被執(zhí)行控制器調(diào)用(圖4的步驟406)。當(dāng)其不再被調(diào)用時(shí),其代碼就可被代碼壓縮器146按照上述方式進(jìn)行壓縮。
但是,如果要被調(diào)用的方法147或148的代碼被進(jìn)行了壓縮,則執(zhí)行控制器就調(diào)用代碼壓縮器146來(lái)解壓縮該方法的代碼。代碼壓縮器判斷在RAM 136內(nèi)是否有足夠的空間用來(lái)解壓縮該方法的代碼(圖4的判斷步驟408)。如果有足夠的空間,代碼壓縮器就在該可用空間內(nèi)解壓縮該方法的代碼(圖4的步驟410)。在這樣做的時(shí)候,它還更新方法存儲(chǔ)狀態(tài)表200,以便區(qū)分未被壓縮代碼的存儲(chǔ)空間的相應(yīng)指針和指出該方法的代碼現(xiàn)在未被壓縮(U)。
但是,如果沒(méi)有足夠的空間,則代碼壓縮器146就壓縮LRI表202中的其代碼尚未被壓縮的最早被執(zhí)行方法的代碼,直到有可用空間為止(圖4的步驟412)。按照上述方式進(jìn)行這種壓縮。在有可用空間之后,要被解壓縮的方法147或148的代碼就按照剛才所描述的方式被代碼壓縮器在可用空間內(nèi)進(jìn)行解壓縮,然后被執(zhí)行控制器153調(diào)用(圖4的步驟410和406)。
根據(jù)以上所述,本發(fā)明顯然在保持執(zhí)行速度的同時(shí)減小了運(yùn)行時(shí)間存儲(chǔ)器的空間。這是因?yàn)楫?dāng)需要RAM內(nèi)的空間時(shí),通過(guò)壓縮裝入方法147和/或148,不需要把它們從RAM 136中沖洗出去和再次從服務(wù)器計(jì)算機(jī)系統(tǒng)104下載的緣故。但是,本領(lǐng)域的普通技術(shù)人員都懂得,可以用其它替代的實(shí)施例來(lái)提供相同的優(yōu)點(diǎn)。
具體來(lái)說(shuō),上述壓縮標(biāo)準(zhǔn)152規(guī)定當(dāng)需要RAM 136內(nèi)的空間但得不到時(shí),就壓縮具有未被壓縮代碼的最早被調(diào)用方法147和/或148的代碼。但是,壓縮標(biāo)準(zhǔn)可以由用戶(hù)從廣泛的選擇范圍中進(jìn)行選擇,并且以用戶(hù)的客戶(hù)計(jì)算機(jī)系統(tǒng)102特有的一些條件為基礎(chǔ)。例如,壓縮標(biāo)準(zhǔn)可簡(jiǎn)單地規(guī)定一旦方法不再被調(diào)用就壓縮每一方法的代碼。或者,可以規(guī)定只在有時(shí)間進(jìn)行壓縮時(shí)才壓縮某些方法的代碼。作為上述任一壓縮標(biāo)準(zhǔn)的額外變化,壓縮標(biāo)準(zhǔn)可規(guī)定只壓縮特定大小或類(lèi)型的方法的代碼。
此外,如上所述,解壓縮標(biāo)準(zhǔn)154規(guī)定了一旦其代碼是壓縮碼的方法147或148要被調(diào)用,該方法就使其代碼被解壓縮。但是,解壓縮標(biāo)準(zhǔn)可以規(guī)定在預(yù)定時(shí)間間隔過(guò)去之后才解壓縮壓縮碼。在這種情況下,數(shù)據(jù)壓縮器將包括對(duì)時(shí)間間隔進(jìn)行計(jì)時(shí)的定時(shí)器。在一個(gè)例子中,可將這一技術(shù)用于被置于休眠狀態(tài)一段已知的時(shí)間間隔的方法,以便該方法在此時(shí)間間隔內(nèi)被壓縮、然后就在其要被喚醒之前被解壓縮?;蛘?,在另一個(gè)例子中,該技術(shù)可用于正在等待數(shù)據(jù)的方法,即選擇壓縮方法時(shí)占用的一段時(shí)間間隔以便預(yù)測(cè)什么時(shí)候可將數(shù)據(jù)提供給該方法。
在另一實(shí)施例中,壓縮標(biāo)準(zhǔn)152還可以包括規(guī)定何時(shí)把裝入方法147和/或148沖洗出RAM 136的沖洗標(biāo)準(zhǔn)。例如,該沖洗標(biāo)準(zhǔn)可以規(guī)定如果在RAM內(nèi)再也沒(méi)有不被調(diào)用和未壓縮的裝入方法,則LRI表202中的具有壓縮碼的最早被調(diào)用的方法就是可沖洗的并將被從RAM 136中沖洗出去,直到有足夠的空間為止。因此,一旦方法被從RAM中沖洗出去然后被再次調(diào)用,網(wǎng)絡(luò)通信管理器140就必需從按照上述方式提供程序的服務(wù)器計(jì)算機(jī)系統(tǒng)104中重新下載方法。執(zhí)行控制器153通過(guò)消除對(duì)任何被沖洗方法的引用更新程序存儲(chǔ)狀態(tài)表200。
由于從執(zhí)行速度的觀(guān)點(diǎn)來(lái)看把裝入方法147和/或148沖洗出RAM 136是昂貴的,所以可如圖5和6所示,用輔助存儲(chǔ)器500來(lái)存儲(chǔ)否則要被沖洗的方法。在這種情況下,以上討論的壓縮標(biāo)準(zhǔn)152將包括輔助存儲(chǔ)標(biāo)準(zhǔn),該標(biāo)準(zhǔn)類(lèi)似于剛才討論的沖洗標(biāo)準(zhǔn)并用于存儲(chǔ)因?yàn)闈M(mǎn)足輔助存儲(chǔ)標(biāo)準(zhǔn)而是可存儲(chǔ)的方法。但是,在這種情況下,代碼壓縮器146將更新程序存儲(chǔ)狀態(tài)表200內(nèi)的指針來(lái)指向在輔助存儲(chǔ)器內(nèi)的這些方法。此外,對(duì)于在這樣的意義上是可被檢索的方法,即它們的代碼被進(jìn)行了壓縮、被存儲(chǔ)在輔助存儲(chǔ)器內(nèi)以及要被解壓縮,將從輔助存儲(chǔ)器中檢索這些方法的代碼,然后按照上述方式在RAM 136內(nèi)對(duì)它們進(jìn)行解壓縮。
此外,在客戶(hù)計(jì)算機(jī)系統(tǒng)102包括輔助存儲(chǔ)器500的實(shí)施例中(例如連網(wǎng)的臺(tái)式計(jì)算機(jī)),可以從服務(wù)器計(jì)算機(jī)系統(tǒng)104中把方法147和/或148下載至該輔助存儲(chǔ)器。然后,就可以從該輔助存儲(chǔ)器而不是從該服務(wù)器計(jì)算機(jī)系統(tǒng)104直接把這些方法裝入RAM 136。此外,在這樣的實(shí)施例中,操作系統(tǒng)138、網(wǎng)絡(luò)通信管理器140、虛擬機(jī)模塊142和代碼壓縮器146都可以存儲(chǔ)在該輔助存儲(chǔ)器內(nèi),并可從該輔助存儲(chǔ)器中被裝入RAM。
在又一實(shí)施例中,可從服務(wù)器計(jì)算機(jī)系統(tǒng)104之一中把操作系統(tǒng)138、網(wǎng)絡(luò)通信管理器140、虛擬機(jī)模塊142、以及代碼壓縮器146下載至客戶(hù)計(jì)算機(jī)系統(tǒng)102的RAM 136??梢园凑张c以上對(duì)于服務(wù)器計(jì)算機(jī)系統(tǒng)的方法147和/或148所描述的相同方式進(jìn)行這種下載。
在再一實(shí)施例中,虛擬機(jī)模塊142實(shí)際上在硅片上實(shí)現(xiàn)并用作客戶(hù)計(jì)算機(jī)系統(tǒng)102的CPU126。在這種情況下,不對(duì)于特定的體系結(jié)構(gòu)解釋具有AN碼的方法147而是直接執(zhí)行它。在這一實(shí)施例中將不使用具有AS碼的方法148。
最后,雖然參照一些具體實(shí)施例描述了本發(fā)明,但這種描述是對(duì)本發(fā)明的一種說(shuō)明而不是對(duì)其進(jìn)行限制。不超出由所附權(quán)利要求書(shū)所限定的本發(fā)明的精神和范圍,本領(lǐng)域的普通技術(shù)人員可以作出各種改進(jìn)。
權(quán)利要求
1.在一計(jì)算機(jī)網(wǎng)絡(luò)中,通過(guò)該計(jì)算機(jī)網(wǎng)絡(luò)提供具有方法的程序,一種客戶(hù)計(jì)算機(jī)系統(tǒng)以減少的運(yùn)行時(shí)間存儲(chǔ)空間需求執(zhí)行程序,該客戶(hù)計(jì)算機(jī)系統(tǒng)包括運(yùn)行時(shí)間存儲(chǔ)器;接收方法的網(wǎng)絡(luò)通信接口;把接收到的方法無(wú)壓縮地裝入運(yùn)行時(shí)間存儲(chǔ)器的可用空間的網(wǎng)絡(luò)通信管理器;控制程序的執(zhí)行,由此在不同的時(shí)刻調(diào)用和不調(diào)用方法的執(zhí)行控制器;壓縮器,(A)在運(yùn)行時(shí)間存儲(chǔ)器內(nèi)壓縮未被調(diào)用的未壓縮方法中的那些可壓縮方法,由此在運(yùn)行時(shí)間存儲(chǔ)器內(nèi)得到可用空間,以及(B)在運(yùn)行時(shí)間存儲(chǔ)器內(nèi)的可用空間內(nèi)解壓縮壓縮方法中的那些可解壓縮方法,以便壓縮方法中的那些可解壓縮方法可被調(diào)用。
2.權(quán)利要求1的客戶(hù)計(jì)算機(jī)系統(tǒng),在該系統(tǒng)中,一旦壓縮方法中的那些可解壓縮方法要被調(diào)用,壓縮器就解壓縮壓縮方法中的那些可解壓縮方法。
3.權(quán)利要求1的客戶(hù)計(jì)算機(jī)系統(tǒng),其中的壓縮器在預(yù)定時(shí)間間隔之后解壓縮壓縮方法中的那些可解壓縮方法。
4.權(quán)利要求1、2或3的客戶(hù)計(jì)算機(jī)系統(tǒng),在該系統(tǒng)中,一旦未壓縮方法中的那些可壓縮方法不再被調(diào)用,壓縮器就壓縮未壓縮方法中的那些可壓縮方法。
5.權(quán)利要求1、2或3的客戶(hù)計(jì)算機(jī)系統(tǒng),在該系統(tǒng)中,當(dāng)需要運(yùn)行時(shí)間存儲(chǔ)器內(nèi)的空間但得不到時(shí),壓縮器就壓縮未壓縮方法中的那些可壓縮方法。
6.權(quán)利要求1至5中的任一權(quán)利要求的客戶(hù)計(jì)算機(jī)系統(tǒng),還包括按照最早被調(diào)用方法至最近被調(diào)用方法的順序列出當(dāng)前未被調(diào)用的那些方法的調(diào)用順序表;當(dāng)需要運(yùn)行時(shí)間存儲(chǔ)器內(nèi)的空間但得不到時(shí),未壓縮方法中的那些可壓縮方法是在調(diào)用順序表中的未被壓縮的最早被調(diào)用的方法。
7.權(quán)利要求1至6中的任一權(quán)利要求的客戶(hù)計(jì)算機(jī)系統(tǒng),在該系統(tǒng)中該方法包括獨(dú)立于該客戶(hù)計(jì)算機(jī)系統(tǒng)體系結(jié)構(gòu)的體系結(jié)構(gòu)中性碼形式的方法;以及該客戶(hù)計(jì)算機(jī)系統(tǒng)還包括虛擬機(jī)模塊,該虛擬機(jī)模塊包括執(zhí)行控制器并允許體系結(jié)構(gòu)中性碼形式的方法的執(zhí)行。
8.權(quán)利要求1至7中的任一權(quán)利要求的客戶(hù)計(jì)算機(jī)系統(tǒng),在該系統(tǒng)中,當(dāng)需要運(yùn)行時(shí)間存儲(chǔ)器內(nèi)的空間但得不到時(shí),壓縮器就把壓縮方法中的那些可被沖洗方法從運(yùn)行時(shí)間存儲(chǔ)器中沖洗出去。
9.權(quán)利要求1至8中的任一權(quán)利要求的客戶(hù)計(jì)算機(jī)系統(tǒng),還包括輔助存儲(chǔ)器;壓縮器,(A)當(dāng)需要運(yùn)行時(shí)間存儲(chǔ)器內(nèi)的空間但得不到時(shí),就在該輔助存儲(chǔ)器內(nèi)存儲(chǔ)壓縮方法中的那些可存儲(chǔ)方法,以及(B)從該輔助存儲(chǔ)器中檢索要被解壓縮的壓縮方法的那些可被檢索的方法。
10.在一計(jì)算機(jī)網(wǎng)絡(luò)中,通過(guò)該計(jì)算機(jī)網(wǎng)絡(luò)提供具有方法的程序,一種方法以減少的運(yùn)行時(shí)間存儲(chǔ)空間需求執(zhí)行程序,該方法包括以下步驟提供運(yùn)行時(shí)間存儲(chǔ)器;接收方法;把接收到的方法無(wú)壓縮地裝入運(yùn)行時(shí)間存儲(chǔ)器的可用空間;執(zhí)行程序,以便方法在不同的時(shí)刻被調(diào)用和不被調(diào)用;在存儲(chǔ)器內(nèi)壓縮未被調(diào)用的未壓縮方法中的那些可壓縮方法,由此在運(yùn)行時(shí)間存儲(chǔ)器內(nèi)得到可用空間;以及在運(yùn)行時(shí)間存儲(chǔ)器的可用空間內(nèi)解壓縮壓縮方法中的那些可解壓縮方法,以便壓縮方法中的那些可解壓縮方法可被調(diào)用。
11.權(quán)利要求10的方法,其中的解壓縮步驟包括一旦壓縮方法中的那些可解壓縮方法要被調(diào)用就解壓縮壓縮方法中的那些可被壓縮方法。
12.權(quán)利要求10的方法,其中的解壓縮步驟包括在預(yù)定時(shí)間間隔之后解壓縮壓縮方法中的那些可解壓縮方法。
13.權(quán)利要求10、11或12的方法,其中的壓縮步驟包括一旦未壓縮方法中的那些可壓縮方法不再被調(diào)用就壓縮未被壓縮方法中的那些可被壓縮方法。
14.權(quán)利要求10、11或12的方法,其中的壓縮步驟包括當(dāng)需要運(yùn)行時(shí)間存儲(chǔ)器內(nèi)的空間但得不到時(shí)就壓縮未被壓縮方法中的那些可壓縮方法。
15.權(quán)利要求10至14中的任一權(quán)利要求的方法,還包括以下步驟提供按照最早被調(diào)用方法至最近被調(diào)用方法的順序列出當(dāng)前未被調(diào)用的那些方法的調(diào)用順序表;當(dāng)需要運(yùn)行時(shí)間存儲(chǔ)器內(nèi)的空間但得不到時(shí),未壓縮方法中的那些可壓縮方法是在調(diào)用順序表中的未被壓縮的最早被調(diào)用的方法。
16.權(quán)利要求10至15中的任一權(quán)利要求的方法,還包括當(dāng)需要運(yùn)行時(shí)間存儲(chǔ)器內(nèi)的空間但得不到時(shí)就把壓縮方法中的那些可被沖洗方法從運(yùn)行時(shí)間存儲(chǔ)器中沖洗出去的步驟。
17.權(quán)利要求10至16中的任一權(quán)利要求的方法,還包括以下步驟提供輔助存儲(chǔ)器;當(dāng)需要運(yùn)行時(shí)間存儲(chǔ)器內(nèi)的空間但得不到時(shí),把壓縮方法中的那些可存儲(chǔ)方法存儲(chǔ)在該輔助存儲(chǔ)器內(nèi);以及從該輔助存儲(chǔ)器中檢索要被解壓縮的壓縮方法中的那些可被檢索的方法。
全文摘要
在提供具有方法的程序的計(jì)算機(jī)網(wǎng)絡(luò)中的一種客戶(hù)計(jì)算機(jī)系統(tǒng)和相關(guān)方法。該客戶(hù)計(jì)算機(jī)能夠以減少的運(yùn)行時(shí)間存儲(chǔ)空間需求執(zhí)行程序。該客戶(hù)計(jì)算機(jī)系統(tǒng)包括網(wǎng)絡(luò)通信接口、網(wǎng)絡(luò)通信管理器、執(zhí)行控制器和壓縮器。其中,該壓縮器在運(yùn)行時(shí)間存儲(chǔ)器內(nèi)壓縮未被調(diào)用的未壓縮方法中的那些可壓縮方法,以便在運(yùn)行時(shí)間存儲(chǔ)器內(nèi)得到可用空間;還在運(yùn)行時(shí)間存儲(chǔ)器的可用空間內(nèi)解壓縮方法中的那些可解壓縮方法,以便它們可被調(diào)用。
文檔編號(hào)G06F9/44GK1174358SQ9711595
公開(kāi)日1998年2月25日 申請(qǐng)日期1997年6月5日 優(yōu)先權(quán)日1996年6月5日
發(fā)明者蒂莫西·G·林霍爾姆 申請(qǐng)人:太陽(yáng)微系統(tǒng)有限公司