亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

減少運行時間存儲空間需求的計算機系統(tǒng)和方法

文檔序號:6412239閱讀:326來源:國知局
專利名稱:減少運行時間存儲空間需求的計算機系統(tǒng)和方法
技術(shù)領(lǐng)域
本發(fā)明涉及以減少的運行時間存儲空間需求執(zhí)行程序的計算機系統(tǒng)和方法。本發(fā)明尤其涉及在網(wǎng)絡(luò)中執(zhí)行根據(jù)經(jīng)由網(wǎng)絡(luò)傳送的體系結(jié)構(gòu)中性碼產(chǎn)生的體系結(jié)構(gòu)專用碼以使對體系結(jié)構(gòu)專用碼的運行時間存儲空間需求得到減少的計算機系統(tǒng)和方法。
現(xiàn)在建立或配置計算機系統(tǒng)來利用其代碼是體系結(jié)構(gòu)中性(AN)二進(jìn)制格式(以下稱為AN碼)的程序的特性。于是這些程序的AN碼與計算機系統(tǒng)的具體體系結(jié)構(gòu)或平臺無關(guān)。
本說明書中的術(shù)語“體系結(jié)構(gòu)”指一系列型號的計算機的操作特性。特定體系結(jié)構(gòu)的例子包括Macintosh計算機、采用DOS或Windows操作系統(tǒng)的IBM PC兼容計算機、運行Solaris操作系統(tǒng)的Sun Microsystems計算機和采用Unix操作系統(tǒng)的計算機系統(tǒng)。
本說明書中的術(shù)語“體系結(jié)構(gòu)專用(AS)”指這樣的要求,即二進(jìn)制格式的某些程序的代碼(以后稱為AS碼)僅在具有特定計算機體系結(jié)構(gòu)的計算機系統(tǒng)上被執(zhí)行。因此,具有利用普通編程語言(例如C語言)書寫并對特定體系結(jié)構(gòu)(例如IBM兼容PC)編譯的代碼的程序只能在該體系結(jié)構(gòu)或該體系結(jié)構(gòu)的仿真器上運行。
本說明書中的術(shù)語“體系結(jié)構(gòu)中性”指其編譯代碼能夠在具有不同體系結(jié)構(gòu)的各種計算機系統(tǒng)上被執(zhí)行的程序。例如,特定體系結(jié)構(gòu)的計算機系統(tǒng)可以利用Java(Sun Microsystems的商標(biāo))虛擬機模塊來進(jìn)行設(shè)計。對于Java虛擬機的指令集,Java虛擬機模塊能夠執(zhí)行具有利用Java編程語言書寫和被編譯為字節(jié)碼的代碼(以后稱為Java字節(jié)碼)的程序。Java字節(jié)碼與計算機系統(tǒng)的特定體系結(jié)構(gòu)無關(guān)。
具有AN碼的程序的重要特性包括了它們的可移植性。例如,由于AN碼形式的程序能夠在構(gòu)成用來執(zhí)行AN碼的任何計算機系統(tǒng)上執(zhí)行,而不管該計算機系統(tǒng)的具體體系結(jié)構(gòu)如何,所以可以容易地通過網(wǎng)絡(luò)把這些程序從一個計算機系統(tǒng)移植到另一個計算機系統(tǒng)。例如,編譯為Java字節(jié)碼的程序可以在具有Java虛擬機模塊的任何計算機系統(tǒng)上執(zhí)行,并可容易地利用HotJava(Sun Microsystems的商標(biāo))網(wǎng)絡(luò)通信管理器通過網(wǎng)絡(luò)從一個計算機系統(tǒng)移植到另一個計算機系統(tǒng)。
此外,與被編譯成Java字節(jié)碼的程序的可移植性有關(guān)的另一重要特性是這些程序的可驗證性。具體來說,Java虛擬機模塊能夠容易地驗證這些程序滿足預(yù)定的完整性標(biāo)準(zhǔn)。這種完整性標(biāo)準(zhǔn)包括堆棧和數(shù)據(jù)類型使用約束,這種約束保證Java字節(jié)碼不能夠上溢或下溢Java虛擬機模塊的堆棧,并且Java字節(jié)碼形式的全部指令只使用其數(shù)據(jù)類型滿足對這些指令的數(shù)據(jù)類型約束的數(shù)據(jù)。因此,Java字節(jié)碼形式的程序不能夠偽造目標(biāo)指針,并且一般來說只能夠訪問已明確允許用戶使用的系統(tǒng)資源。
出于這些原因,把計算機系統(tǒng)設(shè)計成執(zhí)行通過網(wǎng)絡(luò)接收的AN碼形式的程序。實際上,在某些情況下,由于程序被直接裝入計算機系統(tǒng)的運行時間(即執(zhí)行時間)存儲器(例如隨機存取存儲器(RAM)),所以這種計算機系統(tǒng)甚至可以不需要輔助存儲器(例如硬盤)。這樣一來,這種計算機系統(tǒng)的用戶就在軟件購買、安裝、配置和更新的周期之外,這種周期是軟件產(chǎn)品的當(dāng)前特點。
AN碼的上述特點使其特別適合于供被連網(wǎng)和根據(jù)需要被裝入AN碼的小型或廉價計算機系統(tǒng)使用。例如,這種計算機系統(tǒng)可以是視頻游戲機、個人數(shù)字助理(PDA)、蜂窩電話、或其它類似的計算機系統(tǒng)或計算機操作設(shè)備。
但是,遺憾的是AN碼形式的程序的運行比AS碼形式的相同程序的運行要慢。例如,Java虛擬機模塊執(zhí)行的Java碼形式的程序的運行通常比AS碼形式的相同程序慢了2.5至20倍。因此,計算機系統(tǒng)的用戶可能發(fā)覺需要把通過網(wǎng)絡(luò)接收的程序的AN碼生成(即變換為)AS碼,以便在計算機系統(tǒng)上執(zhí)行。在這種情況下,計算機系統(tǒng)可能還包括代碼產(chǎn)生器,一旦接收到程序的AN碼,該代碼產(chǎn)生器就將其生成相應(yīng)的AS碼,以便在計算機系統(tǒng)的特定體系結(jié)構(gòu)上執(zhí)行。
在上述計算機系統(tǒng)中,價格是極其重要的。實際上,構(gòu)成這種計算機系統(tǒng)的最主要的成本之一是執(zhí)行被裝入程序所需的運行時間存儲器的數(shù)量。因此,減少這些計算機系統(tǒng)所需的運行時間存儲器的數(shù)量是非常重要的,這是因為這種減少提供了競爭性強的優(yōu)點。
遺憾的是根據(jù)AN生成的AS碼比原始AN碼大得多。例如,根據(jù)Java字節(jié)碼生成的AS碼通常是Java字節(jié)碼大小的2至5倍。于是固定數(shù)量的運行時間存儲器能夠存儲的編譯AS碼要比能夠存儲的AN碼少得多。但是,如上所述,AS碼比生成該AS碼的AN碼快得多,并且AS碼也許是獲得滿足要求的性能的唯一方法。
此外,在上述那樣計算機系統(tǒng)中,也許不能夠?qū)o助存儲器進(jìn)行分頁。在這種情況下,當(dāng)需要生成的AS碼在運行時間存儲器內(nèi)的空間時,可以在運行時間存儲器內(nèi)對生成的AS碼進(jìn)行高速緩存和沖洗(flush)。但是,一旦要繼續(xù)執(zhí)行被沖洗程序,就必需通過網(wǎng)絡(luò)再次下載原始AN碼并將其生成為AS碼。這就會顯著影響程序的執(zhí)行速度。此外,即使在能夠?qū)o助存儲器進(jìn)行分頁的計算機系統(tǒng)中,從輔助存儲器檢索AS碼所需的時間可能過長。
在本發(fā)明中,用AS碼的壓縮和解壓縮來減少AS碼在運行時間存儲器內(nèi)的存儲成本。由于這要比沖洗AS碼和重新產(chǎn)生AS碼快得多,所以壓縮和解壓縮不顯著影響AS碼的執(zhí)行速度。
總之,本發(fā)明是計算機網(wǎng)絡(luò)中的客戶計算機系統(tǒng)和相關(guān)的方法,通過該網(wǎng)絡(luò)以體系結(jié)構(gòu)中性碼的形式提供具有方法的程序。當(dāng)方法是根據(jù)方法的計算機體系結(jié)構(gòu)中性碼產(chǎn)生的體系結(jié)構(gòu)專用碼的形式時,客戶計算機能夠以減少的運行時間存儲空間需求執(zhí)行程序??蛻粲嬎銠C系統(tǒng)包括運行時間存儲器、通信接口、網(wǎng)絡(luò)通信管理器、執(zhí)行控制器、代碼產(chǎn)生器以及代碼壓縮器。
網(wǎng)絡(luò)通信接口接收體系結(jié)構(gòu)中性碼形式的方法。網(wǎng)絡(luò)通信管理器把接收到的方法的體系結(jié)構(gòu)中性碼無壓縮地裝入運行時間存儲器的可用空間。
代碼產(chǎn)生器然后根據(jù)裝入的方法的體系結(jié)構(gòu)中性碼在運行時間存儲器內(nèi)產(chǎn)生方法的未壓縮體系結(jié)構(gòu)專用碼。執(zhí)行控制器控制程序的執(zhí)行,以便在不同時刻調(diào)用或不調(diào)用方法。
代碼壓縮器在存儲器內(nèi)壓縮未被調(diào)用方法中的那些可壓縮方法的體系結(jié)構(gòu)專用碼。這樣就在運行時間存儲器內(nèi)得到可用空間。代碼壓縮器還在運行時間存儲器的可用空間內(nèi)解壓縮方法中的那些可解壓縮方法的體系結(jié)構(gòu)專用碼,以便方法中的那些可解壓縮方法可被調(diào)用。
在一個實施例中,一旦方法中的那些可解壓縮方法要被調(diào)用,代碼壓縮器就解壓縮方法中的那些可解壓縮方法的壓縮體系結(jié)構(gòu)專用碼。
在另一實施例中,在預(yù)定時間間隔之后,代碼壓縮器解壓縮方法中的那些可解壓縮方法的壓縮體系結(jié)構(gòu)專用碼。
在再一實施例中,一旦方法中的那些可壓縮方法不再被調(diào)用,代碼壓縮器就壓縮方法中的那些可壓縮方法的未壓縮體系結(jié)構(gòu)專用碼。
在還一實施例中,當(dāng)需要運行時間存儲器內(nèi)的空間但得不到時,代碼壓縮器就壓縮方法中的那些可壓縮方法的未壓縮體系結(jié)構(gòu)專用碼。此外,在這一實施例,客戶計算機系統(tǒng)可以進(jìn)一步包括一調(diào)用順序表,該調(diào)用順序表按照最早被調(diào)用方法至最近被調(diào)用方法的順序列出當(dāng)前未被調(diào)用的那些方法。這樣一來,當(dāng)需要運行時間存儲器內(nèi)的空間但得不到時,方法中的那些可壓縮方法就都是在該調(diào)用順序表中的具有未壓縮體系結(jié)構(gòu)專用碼的最早被調(diào)用的方法。
在另一實施例中,當(dāng)需要運行時間存儲器內(nèi)的空間但得不到時,代碼壓縮器就將方法中的那些可被沖洗方法的壓縮體系結(jié)構(gòu)專用碼從運行時間存儲器中沖洗出去。
作為以上實施例的一替代實施例,客戶計算機系統(tǒng)可進(jìn)一步包括一輔助存儲器。在這種情況下,當(dāng)需要運行時間存儲器內(nèi)的空間但得不到時,代碼壓縮器就把方法中的那些可存儲方法的壓縮體系結(jié)構(gòu)專用碼存儲在該輔助存儲器內(nèi)。代碼壓縮器從該輔助存儲器中檢索方法中的那些其壓縮體系結(jié)構(gòu)專用碼將要被解壓縮的可檢索方法的壓縮體系結(jié)構(gòu)專用碼。
結(jié)合附圖參看以下詳細(xì)說明和所附的權(quán)利要求書將更容易理解本發(fā)明的其它目的和特點,附圖中

圖1是采用了本發(fā)明的客戶計算機系統(tǒng)的方框圖。
圖2是客戶計算機系統(tǒng)的操作的功能方框圖。
圖3是客戶計算機系統(tǒng)的壓縮方法的流程圖。
圖4是客戶計算機系統(tǒng)的解壓縮方法的流程圖。
圖5表示客戶計算機系統(tǒng)的一替代實施例。
圖6表示客戶計算機系統(tǒng)的該替代實施例的操作的功能方框圖。
參看圖1,該圖表示本發(fā)明的計算機網(wǎng)絡(luò)100,該計算機網(wǎng)絡(luò)100包括一個或多個客戶計算機系統(tǒng)102、一個或多個服務(wù)器計算機系統(tǒng)104和網(wǎng)絡(luò)通信連接106。
客戶計算機系統(tǒng)102通過網(wǎng)絡(luò)通信連接106與服務(wù)器計算機系統(tǒng)104連接。網(wǎng)絡(luò)通信連接可以是局域網(wǎng)或廣域網(wǎng)、互聯(lián)網(wǎng)(Intemet)或某些其它類型的網(wǎng)絡(luò)通信連接。
每一服務(wù)器計算機系統(tǒng)104包括中央處理單元(CPU)110、用戶接口112、網(wǎng)絡(luò)通信接口116和存儲器118。網(wǎng)絡(luò)通信接口使每一服務(wù)器計算機系統(tǒng)能夠通過網(wǎng)絡(luò)通信連接106與客戶計算機系統(tǒng)102通信。
每服務(wù)器計算機系統(tǒng)104的存儲器118存儲操作系統(tǒng)120、網(wǎng)絡(luò)通信管理器122和程序145。操作系統(tǒng)和通信管理器都在CPU120上運行。操作系統(tǒng)響應(yīng)用戶利用用戶接口112發(fā)送的或網(wǎng)絡(luò)通信接口116通過網(wǎng)絡(luò)通信連接106從客戶計算機系統(tǒng)102的用戶接收的命令,控制并協(xié)調(diào)網(wǎng)絡(luò)通信管理器的運行。
程序145包括方法147。在本說明書中,在程序執(zhí)行期間各個時刻被調(diào)用和不被調(diào)用的程序的任何分離的段或部分都被看作是方法。
每一服務(wù)器計算機系統(tǒng)104的方法147包含獨立于客戶計算機系統(tǒng)102的具體體系結(jié)構(gòu)(即平臺)的AN語言的體系結(jié)構(gòu)中性(AN)碼。這些程序被從特定的編程語言編譯成為AN碼。在最佳實施例中,這些程序用Java編程語言書寫,并被編譯成為Java字節(jié)碼。此外,這些程序被包括在組成了按照面向?qū)ο蠓绞奖痪幊痰能浖绦虻木哂蟹椒ǖ膶ο箢悆?nèi)。
如后面將更詳細(xì)地說明的那樣,一旦用戶請求,就利用網(wǎng)絡(luò)通信管理器122把方法147傳送給客戶計算機系統(tǒng)102。因此,這些方法的AN碼被看作是網(wǎng)絡(luò)移動碼。
每一客戶計算機系統(tǒng)102可以是視頻游戲機、個人數(shù)字助理(PDA)、蜂窩電話、臺式計算機、或要求少量運行時間存儲器的其它計算機系統(tǒng)或計算機操作設(shè)備。此外,每一客戶計算機系統(tǒng)包括中央處理單元(CPU)126、用戶接口128、網(wǎng)絡(luò)通信接口132、只讀存儲器(ROM)134和運行時間(即執(zhí)行時間)隨機存取存儲器(RAM)136。網(wǎng)絡(luò)通信接口使客戶計算機系統(tǒng)能夠通過網(wǎng)絡(luò)通信連接106與服務(wù)器計算機系統(tǒng)104通信。
每一客戶計算機系統(tǒng)102的RAM136存儲操作系統(tǒng)138、網(wǎng)絡(luò)通信管理器140、虛擬機模塊142、代碼產(chǎn)生器144以及代碼壓縮器146,它們都裝載自ROM134。該RAM還存儲具有方法147和/或方法148的程序145,方法147包含下載AN碼,而方法148包含根據(jù)下載AN碼產(chǎn)生的體系結(jié)構(gòu)專用(AS)碼。操作系統(tǒng)、網(wǎng)絡(luò)通信管理器、虛擬機模塊、代碼編譯器、代碼壓縮器以及程序都在CPU126上被運行。操作系統(tǒng)響應(yīng)用戶利用用戶接口128發(fā)送的命令,控制并協(xié)調(diào)網(wǎng)絡(luò)通信管理器、虛擬機模塊、代碼編譯器、代碼壓縮器以及程序的執(zhí)行。
如上所述,一旦用戶請求,就從服務(wù)器計算機系統(tǒng)104接收包含AN碼的方法147。利用在最佳實施例中是Hot Java網(wǎng)絡(luò)通信管理器的網(wǎng)絡(luò)通信管理器140獲得這些方法。該網(wǎng)絡(luò)通信管理器然后把這些方法裝入RAM136。
虛擬機模塊142的代碼校正程序151驗證裝入方法147的AN碼滿足預(yù)定的完整性標(biāo)準(zhǔn)。如上所述,這一標(biāo)準(zhǔn)可以包括堆棧和數(shù)據(jù)類型使用約束,以確保裝入方法不上溢或下溢虛擬機模塊的堆棧,并且所有指令只使用其數(shù)據(jù)類型與這些指令的數(shù)據(jù)類型約束一致的數(shù)據(jù)。在最佳實施例中,虛擬機模塊是Java虛擬機模塊。
包含AS碼的方法148最初包含利用網(wǎng)絡(luò)通信管理器140從服務(wù)器計算機系統(tǒng)104獲得并被裝入RAM136的AN碼。但這些程序的原始AN碼已被代碼產(chǎn)生器144生成AS碼。AS碼是在客戶計算機的特定體系結(jié)構(gòu)上可執(zhí)行的。如上所述,由于生成的AS碼的執(zhí)行可以比相應(yīng)的AN碼的執(zhí)行快,所以用戶可能希望有被生成AS碼的AN碼的程序。
此外,當(dāng)存儲在RAM136內(nèi)的預(yù)定的AS碼產(chǎn)生標(biāo)準(zhǔn)150得到滿足時,包含AS碼的方法148就產(chǎn)生了它們的AN碼。AS碼產(chǎn)生標(biāo)準(zhǔn)由用戶利用用戶接口128進(jìn)行輸入,以后將對其作更詳細(xì)的描述。
虛擬機模塊142的執(zhí)行控制器153控制方法147和/或148的執(zhí)行。具體來說,執(zhí)行程序解釋方法147的AN碼以便在客戶計算機系統(tǒng)102的特定體系結(jié)構(gòu)上執(zhí)行,并使這些方法能夠調(diào)用包含AS碼的方法148以便在該特定體系結(jié)構(gòu)上執(zhí)行。在方法的執(zhí)行期間產(chǎn)生的執(zhí)行數(shù)據(jù)149存儲在RAM136內(nèi)。此外,如果網(wǎng)絡(luò)通信管理器140、代碼產(chǎn)生器144和/或代碼壓縮器146都是AN碼,則執(zhí)行控制器還控制它們的執(zhí)行。
此外,為了保持低的客戶計算機系統(tǒng)102的RAM空間需求,代碼壓縮器146在各個時刻在RAM136內(nèi)壓縮和解壓縮方法147和/或148的代碼。對可壓縮和可解壓縮的方法這樣做,這是因為它們分別滿足存儲在RAM136內(nèi)的、由用戶利用用戶接口128輸入的預(yù)定的壓縮和解壓縮標(biāo)準(zhǔn)152和154。以下將更詳細(xì)描述壓縮和解壓縮標(biāo)準(zhǔn)。
利用方法狀態(tài)數(shù)據(jù)結(jié)構(gòu)155保持方法147和/或148的存儲和調(diào)用狀態(tài)。方法狀態(tài)數(shù)據(jù)結(jié)構(gòu)被網(wǎng)絡(luò)通信管理器140、執(zhí)行控制器153、代碼產(chǎn)生器144和代碼壓縮器146進(jìn)行更新。
圖2表示各客戶計算機系統(tǒng)102在RAM136內(nèi)的壓縮和解壓縮方法147和/或148時的操作的功能方框圖。此外,圖3和4分別表示優(yōu)選的壓縮和解壓縮方法300和400。
參看圖1-3,當(dāng)用戶請求執(zhí)行客戶計算機系統(tǒng)104之一中的程序145之一時,用戶的客戶計算機系統(tǒng)102從服務(wù)器計算機系統(tǒng)獲得被請求程序的各個方法147(圖3的步驟302)。當(dāng)用戶利用用戶接口128發(fā)出命令來從服務(wù)器計算機系統(tǒng)下載并執(zhí)行程序時就完成了各個方法147的獲得。作為響應(yīng),操作系統(tǒng)120調(diào)用網(wǎng)絡(luò)通信管理器140,后者產(chǎn)生表示已作出了這種請求的信息。網(wǎng)絡(luò)通信接口132然后把該信息傳送給服務(wù)器計算機系統(tǒng)。
服務(wù)器計算機系統(tǒng)104的網(wǎng)絡(luò)通信接口116接收傳送的信息。作為響應(yīng),服務(wù)器計算機系統(tǒng)的網(wǎng)絡(luò)通信管理器122把被請求程序145的方法147提供給網(wǎng)絡(luò)通信接口,該網(wǎng)絡(luò)通信接口然后把方法傳送給用戶的客戶計算機系統(tǒng)102。
傳送的方法147被用戶的客戶計算機系統(tǒng)102的網(wǎng)絡(luò)通信接口132接收。作為響應(yīng),網(wǎng)絡(luò)通信管理器140則判斷在RAM136內(nèi)是否有足夠的空間用于裝入所接收的方法(圖3的判斷步驟304)。如果有,則網(wǎng)絡(luò)通信管理器將這些方法的未壓縮的AN碼裝入RAM內(nèi)的可用空間(圖3的步驟306)。這樣一來,這些方法就與其它程序45的先前裝入的方法147一道被裝入RAM。在裝入這些方法時,網(wǎng)絡(luò)通信管理器更新方法狀態(tài)數(shù)據(jù)結(jié)構(gòu)155的方法存儲狀態(tài)表200,以便區(qū)分方法和被這些方法占據(jù)的RAM136內(nèi)的存儲空間的相應(yīng)指針。此外,網(wǎng)絡(luò)通信管理器還更新方法狀態(tài)表來指出方法的AN碼是未被壓縮的(U)。
網(wǎng)絡(luò)通信管理器140然后調(diào)用虛擬機模塊142的代碼校正程序151。作為響應(yīng),該代碼校正程序驗證最近被裝入的方法147的AN碼滿足上述的預(yù)定完整性標(biāo)準(zhǔn)(圖3的步驟307)。
網(wǎng)絡(luò)通信管理器140然后判斷最近被裝入的方法147中的任一方法的AN碼是否要被編譯成為AS碼(圖3的判斷步驟308)。根據(jù)AS碼產(chǎn)生標(biāo)準(zhǔn)150進(jìn)行這種判斷。正如本領(lǐng)域的普通技術(shù)人員都知道的那樣,用戶可以從廣泛的任選項中并根據(jù)用戶的客戶計算機系統(tǒng)特有的一些條件選擇和/或調(diào)整AS碼產(chǎn)生標(biāo)準(zhǔn)。例如,AS碼產(chǎn)生標(biāo)準(zhǔn)可以規(guī)定在這些方法被裝入時要把所有下載方法的AN碼生成AS碼,或者規(guī)定沒有具有AN碼的下載方法在它們被下載時要使它們的AN碼被生成AS碼,或者規(guī)定只有那些具有特定大小或類型的AN碼的下載方法在它們被下載時才要使它們的AN碼被生成AS碼。
如果最近被裝入的方法147中的任何方法要使它們的AN碼被生成AS碼,則網(wǎng)絡(luò)通信管理器就調(diào)用代碼產(chǎn)生器144。代碼產(chǎn)生器判斷RAM136內(nèi)是否有足夠的空間用于把這些方法的AN碼生成AS碼(圖3的判斷步驟310)。如果有,則代碼產(chǎn)生器就在可用空間內(nèi)產(chǎn)生這些方法的AS碼(圖3的步驟312)并更新方法存儲狀態(tài)表200內(nèi)的指針,以便指向被生成的AS碼占據(jù)的空間。這樣一來,這些方法與其AN碼已被生成AS碼的其它先前裝入方法一道被存儲在RAM內(nèi)作為包含AS碼的方法148。
具有最近被裝入的包含AN碼的方法147和/或最近被裝入并被生成AS碼的包含AS碼的方法148的程序145則與任何先前裝入的程序145一道在執(zhí)行程序的控制下被執(zhí)行(圖3的步驟314)。如上所述,執(zhí)行控制器解釋方法147的AN碼以便在用戶的客戶計算機系統(tǒng)102的特定體系結(jié)構(gòu)上執(zhí)行,并使這些程序能夠調(diào)用包含AS碼的方法148以便在該特定體系結(jié)構(gòu)上執(zhí)行。
因為可以使裝入方法147和/或148的每一個進(jìn)入休眠狀態(tài)等,所以它可以在各個時刻都不被調(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的空間需求,滿足了預(yù)定壓縮標(biāo)準(zhǔn)152的每一裝入方法147和/或148的代碼被代碼壓縮器146進(jìn)行壓縮。在最佳實施例中,壓縮標(biāo)準(zhǔn)規(guī)定可壓縮方法147或148的代碼應(yīng)在(1)需要RAM136內(nèi)的空間但得不到時以及在(2)該方法是LRI表202中的尚未使其代碼被壓縮的最早被調(diào)用的方法。
一旦網(wǎng)絡(luò)通信管理器140確認(rèn)在RAM136內(nèi)沒有可用于裝入被服務(wù)器計算機系統(tǒng)104接收的一個或多個方法(圖3的判斷步驟304)的空間,它就調(diào)用代碼壓縮器146。作為響應(yīng),該代碼壓縮器就壓縮LRI表202中的最早被調(diào)用方法的代碼,直到有足夠的空間為止(圖3的步驟316)。代碼壓縮器還更新方法存儲狀態(tài)表200,以便區(qū)分該方法的壓縮代碼的存儲空間的相應(yīng)指針和指出該方法的代碼已被壓縮(C)。網(wǎng)絡(luò)通信管理器然后如上所述地把對其已有可用空間的方法裝入到該可用空間(圖3的步驟306)。
代碼壓縮器146可以使用本領(lǐng)域眾所周知的任何快速壓縮技術(shù)。此外,代碼壓縮器還可以使用單獨的壓縮技術(shù)來對方法147的AN碼和方法148的AS碼進(jìn)行最佳壓縮。
此外,一旦代碼產(chǎn)生器需要RAM內(nèi)的空間來編譯最近裝入的一個或多個方法147(圖3的判決步驟310),則代碼產(chǎn)生器144就調(diào)用代碼壓縮器146。如同在最近裝入的方法的情形一樣,該代碼壓縮器壓縮LRI表202中的最早被調(diào)用方法的代碼,直到有足夠的空間為止(圖3的步驟318),并更新方法存儲狀態(tài)表200,以便區(qū)分該方法的壓縮代碼的存儲空間的相應(yīng)指針和指出該方法的代碼已被壓縮(C)。如上所述,代碼產(chǎn)生器然后在該可用空間內(nèi)產(chǎn)生對其已有可用空間的方法的AS碼(圖3的步驟312)。
另外,在裝入的方法147和/或148被調(diào)用時,它們就產(chǎn)生執(zhí)行數(shù)據(jù)。對于被執(zhí)行控制器153確認(rèn)為是被調(diào)用的(圖3的判斷步驟320)和在RAM136內(nèi)有空間可用來存儲執(zhí)行數(shù)據(jù)的(判斷步驟302)這些方法中的任何方法,執(zhí)行控制器把執(zhí)行數(shù)據(jù)存儲在RAM內(nèi)(圖3的步驟324)。
但是,對于被執(zhí)行程序153確認(rèn)為是可執(zhí)行的(圖3的判斷步驟320)和在RAM內(nèi)雖沒有但需要用來存儲執(zhí)行數(shù)據(jù)的空間的(判斷步驟322)裝入方法147和/或148中的每一個,執(zhí)行程序調(diào)用代碼壓縮器146。如同在需要RAM內(nèi)的空間的先前情形一樣,代碼壓縮器壓縮LRI表202中的最早被執(zhí)行方法的代碼,直到有足夠的空間為止(圖3的步驟326)。如上所述,代碼壓縮器更新方法存儲狀態(tài)表200,以便區(qū)分該方法的壓縮代碼的存儲空間的相應(yīng)指針和指出該方法的代碼已被壓縮(C)。如上所述,執(zhí)行控制器然后把執(zhí)行數(shù)據(jù)存儲在RAM的可用空間內(nèi)(圖3的步驟324),并繼續(xù)具有其執(zhí)行數(shù)據(jù)已被存儲的方法的程序的執(zhí)行(圖3的步驟314)。
此外,參看圖1、2和4,一旦在RAM136內(nèi)有可用空間,被壓縮的并滿足了預(yù)定解壓縮標(biāo)準(zhǔn)154的每一裝入方法147和/或148就被代碼壓縮器146進(jìn)行解壓縮。在最佳實施例中,解壓縮可解壓縮方法的代碼的預(yù)定解壓縮標(biāo)準(zhǔn)僅規(guī)定該方法的代碼是壓縮的,且在該方法要再次被調(diào)用時,該方法的代碼被解壓縮。
因此,每當(dāng)執(zhí)行控制器153確認(rèn)裝入方法147和/或148之一要被調(diào)用時(圖4的判斷步驟402),它就判斷該方法的代碼是否被進(jìn)行了壓縮(圖4的判斷步驟404)。根據(jù)方法存儲狀態(tài)表200進(jìn)行這種判斷。如果該方法的代碼沒有被壓縮,則該方法就被執(zhí)行控制器調(diào)用(圖4的步驟406)。當(dāng)其不再被調(diào)用時,其代碼就可被代碼壓縮器146按照上述方式進(jìn)行壓縮。
但是,如果要被調(diào)用的方法147或148的代碼被進(jìn)行了壓縮,則執(zhí)行控制器就調(diào)用代碼壓縮器146來解壓縮該方法的代碼。代碼壓縮器判斷在RAM136內(nèi)是否有足夠的空間用來解壓縮該方法的代碼(圖4的判斷步驟408)。如果有足夠的空間,代碼壓縮器就在該可用空間內(nèi)解壓縮該方法的代碼(圖4的步驟410)。在這樣做的時候,它還更新方法存儲狀態(tài)表200,以便區(qū)分未壓縮代碼的存儲空間的相應(yīng)指針和指出該方法的代碼現(xiàn)在未壓縮(U)。
但是,如果沒有足夠的空間,則代碼壓縮器146就壓縮LRI表202中的其代碼尚未被壓縮的最早被執(zhí)行方法的代碼,直到有可用空間為止(圖4的步驟412)。按照上述方式進(jìn)行這種壓縮。在有可用空間之后,要被解壓縮的方法147或148的代碼就按照剛才所描述的方式被代碼壓縮器在可用空間內(nèi)進(jìn)行解壓縮,然后被執(zhí)行控制器153調(diào)用(圖4的步驟410和406)。
根據(jù)以上所述,本發(fā)明顯然在保持執(zhí)行速度的同時減小了運行時間存儲器的空間。這是因為當(dāng)需要RAM內(nèi)的空間時,通過壓縮裝入方法147和/或148,不需要把它們從RAM136中沖洗出去和再次從服務(wù)器計算機系統(tǒng)104下載的緣故。此外,在包含AS碼的方法的情形中,由于這些方法不需要重新下載和再次產(chǎn)生,所以還保持了執(zhí)行速度。但是,本領(lǐng)域的普通技術(shù)人員都懂得,可以用其它替代的實施例來提供相同的優(yōu)點。
具體來說,上述壓縮標(biāo)準(zhǔn)152規(guī)定當(dāng)需要RAM136內(nèi)的空間但得不到時,就壓縮具有未壓縮代碼的最早被調(diào)用方法147和/或148的代碼。但是,壓縮標(biāo)準(zhǔn)可以由用戶從廣泛的選擇范圍中進(jìn)行選擇,并且以用戶的客戶計算機系統(tǒng)102特有的一些條件為基礎(chǔ)。例如,壓縮標(biāo)準(zhǔn)可簡單地規(guī)定一旦程序不再被調(diào)用就壓縮每一方法的代碼?;蛘?,可以規(guī)定僅在有時間進(jìn)行壓縮時才壓縮某些方法的代碼。作為上述任一壓縮標(biāo)準(zhǔn)的額外的變化,壓縮標(biāo)準(zhǔn)可規(guī)定只壓縮特定大小或類型的方法的代碼。
此外,如上所述,解壓縮標(biāo)準(zhǔn)154規(guī)定了一旦其代碼是壓縮碼的方法147或148要被調(diào)用,該方法就使其代碼被解壓縮。但是,解壓縮標(biāo)準(zhǔn)可以規(guī)定在預(yù)定時間間隔過去之后才解壓縮壓縮碼。在這種情況下,數(shù)據(jù)壓縮器將包括對時間間隔進(jìn)行計時的定時器。在一個例子中,可將這一技術(shù)用于被置于休眠狀態(tài)一段已知的時間間隔的方法,以便該方法在此時間間隔內(nèi)被壓縮、然后就在其要被喚醒之前被解壓縮?;蛘?,在另一個例子中,該技術(shù)可用于正在等待數(shù)據(jù)的方法,即選擇壓縮該方法的時間間隔以便預(yù)測什么時候可將數(shù)據(jù)提供給該方法。
在另一實施例中,壓縮標(biāo)準(zhǔn)152還可以包括規(guī)定何時把裝入方法147和/或148沖洗出RAM136的沖洗標(biāo)準(zhǔn)。例如,該沖洗標(biāo)準(zhǔn)可以規(guī)定如果在RAM內(nèi)再也沒有不被調(diào)用的裝入方法,則LRI表202中的具有壓縮碼的最早被調(diào)用的方法就是可沖洗的并將被從RAM136中沖洗出去,直到有足夠的空間為止。因此,一旦方法被從RAM中沖洗出去并隨后被再次調(diào)用,網(wǎng)絡(luò)通信管理器就必需從按照上述方式提供方法的服務(wù)器計算機系統(tǒng)104中重新下載方法。執(zhí)行控制器153通過消除對任何被沖洗方法的引用來更新方法存儲狀態(tài)表200。
此外,作為最近描述實施例的變化,AS碼產(chǎn)生標(biāo)準(zhǔn)150可以規(guī)定已使它們的AN碼被生成AS碼的方法148的AN碼應(yīng)當(dāng)與生成的AS碼一道被保留在RAM136內(nèi)。這樣一來,如果該方法的AS碼不得不從RAM中被沖洗出去,該方法的AN碼就可被重新生成該方法的AS碼。這將節(jié)省從服務(wù)器計算機系統(tǒng)重新下載該方法的AN碼所需的時間。此外,AN碼可以在RAM內(nèi)被壓縮,直到需要它被再生成AS碼為止。
在最近描述實施例的另一種變化中,方法148的下載AN碼一開始將在執(zhí)行控制器153的控制下被執(zhí)行。然后,執(zhí)行控制器將根據(jù)AN碼的運行時間行為收集統(tǒng)計資料,如果所收集的統(tǒng)計資料滿足AS碼產(chǎn)生標(biāo)準(zhǔn)150中的某些閾值標(biāo)準(zhǔn),就將該AN碼生成AS碼。例如,執(zhí)行控制器可以保持AN碼運行次數(shù)的計數(shù)值。一旦該計數(shù)值超過了閾值次數(shù),執(zhí)行控制器就調(diào)用代碼產(chǎn)生器144來把AN碼生成AS碼。
由于從執(zhí)行速度的觀點來看把裝入方法147和/或148沖洗出RAM136是昂貴的,所以如圖5和6所示,用輔助存儲器500來存儲將要被沖洗的方法。在這種情況下,以上討論的壓縮標(biāo)準(zhǔn)152將包括輔助存儲標(biāo)準(zhǔn)156,該標(biāo)準(zhǔn)類似于剛才討論的沖洗標(biāo)準(zhǔn),用來存儲因滿足輔助存儲標(biāo)準(zhǔn)而可存儲的方法。但是,在這種情況下,代碼壓縮器146將更新方法存儲狀態(tài)表200內(nèi)的指針來指向在輔助存儲器內(nèi)的這些方法。此外,對于在這樣的意義上是可被檢索的方法,即它們的代碼被進(jìn)行了壓縮、被存儲在輔助存儲器內(nèi)以及要被解壓縮,將從輔助存儲器中檢索這些方法的代碼,然后按照上述方式在RAM136內(nèi)對它們進(jìn)行解壓縮。
此外,在客戶計算機系統(tǒng)102包括輔助存儲器500的實施例中(例如連網(wǎng)的臺式計算機),可以從服務(wù)器計算機系統(tǒng)104中把方法147下載至該輔助存儲器。然后,就可以從該輔助存儲器而不是從該服務(wù)器計算機系統(tǒng)104直接地把這些方法裝入RAM136。此外,在這樣的實施例中,操作系統(tǒng)138、網(wǎng)絡(luò)通信管理器140、虛擬機模塊142和代碼壓縮器146都可以存儲在該輔助存儲器內(nèi),并可從該輔助存儲器中被裝入RAM。
在還一實施例中,可從服務(wù)器計算機系統(tǒng)104之一中把操作系統(tǒng)138、網(wǎng)絡(luò)通信管理器140、虛擬機模塊142、代碼產(chǎn)生器144以及代碼壓縮器146下載至客戶計算機系統(tǒng)102的RAM136??梢园凑张c以上對于服務(wù)器計算機系統(tǒng)的方法147所描述的方式相同的方式進(jìn)行這種下載。
最后,雖然參照一些具體實施例描述了本發(fā)明,但這種描述是對本發(fā)明的一種說明而不是對其進(jìn)行限制。不超出由所附權(quán)利要求書所限定的本發(fā)明的精神和范圍,本領(lǐng)域的普通技術(shù)人員可以作出各種改進(jìn)。
權(quán)利要求
1.在一計算機網(wǎng)絡(luò)中,通過該計算機網(wǎng)絡(luò)以體系結(jié)構(gòu)中性碼的形式提供具有方法的程序,當(dāng)方法是根據(jù)方法的體系結(jié)構(gòu)中性碼產(chǎn)生的體系結(jié)構(gòu)專用碼的形式時,一種客戶計算機系統(tǒng)以減少的運行時間存儲空間需求來執(zhí)行程序,該客戶計算機系統(tǒng)包括運行時間存儲器;接收體系結(jié)構(gòu)中性碼形式的方法的網(wǎng)絡(luò)通信接口;把接收到的方法的體系結(jié)構(gòu)中性碼無壓縮地裝入運行時間存儲器的可用空間的網(wǎng)絡(luò)通信管理器;根據(jù)裝入的方法的體系結(jié)構(gòu)中性碼在運行時間存儲器內(nèi)產(chǎn)生方法的未壓縮體系結(jié)構(gòu)專用碼的代碼產(chǎn)生器;控制程序的執(zhí)行,由此在不同的時刻調(diào)用和不調(diào)用方法的執(zhí)行控制器;代碼壓縮器,(A)在運行時間存儲器內(nèi)壓縮未被調(diào)用方法中的那些可壓縮方法的未壓縮體系結(jié)構(gòu)專用碼,由此在運行時間存儲器內(nèi)得到可用空間,和(B)在運行時間存儲器的可用空間中解壓縮方法中的那些可解壓縮方法的壓縮體系結(jié)構(gòu)專用碼,以便方法中的那些可解壓縮方法可被調(diào)用。
2.權(quán)利要求1的客戶計算機系統(tǒng),在該系統(tǒng)中,一旦要調(diào)用方法中的那些可解壓縮方法,代碼壓縮器就解壓縮方法中的那些可解壓縮方法的壓縮體系結(jié)構(gòu)專用碼。
3.權(quán)利要求1的客戶計算機系統(tǒng),其中的代碼壓縮器在預(yù)定時間間隔之后解壓縮方法中的那些可解壓縮方法的壓縮體系結(jié)構(gòu)專用碼。
4.權(quán)利要求1、2或3的客戶計算機系統(tǒng),在該系統(tǒng)中,一旦方法中的那些可壓縮方法不再被調(diào)用,代碼壓縮器就壓縮方法中的那些可壓縮方法的未壓縮體系結(jié)構(gòu)專用碼。
5.權(quán)利要求1、2或3的客戶計算機系統(tǒng),在該系統(tǒng)中,當(dāng)需要運行時間存儲器內(nèi)的空間但得不到時,代碼壓縮器就壓縮方法中的那些可壓縮方法的未壓縮體系結(jié)構(gòu)專用碼。
6.權(quán)利要求1至5中的任一權(quán)利要求的客戶計算機系統(tǒng),還包括按照最早被調(diào)用方法至最近被調(diào)用方法的順序列出方法中的那些當(dāng)前未被調(diào)用方法的調(diào)用順序表;當(dāng)需要運行時間存儲器內(nèi)的空間但得不到時,方法中的那些可壓縮方法是調(diào)用順序表中的具有未壓縮體系結(jié)構(gòu)專用碼的最早被調(diào)用的方法。
7.權(quán)利要求1至6中的任一權(quán)利要求的客戶計算機系統(tǒng),在該系統(tǒng)中,當(dāng)需要運行時間存儲器內(nèi)的空間但得不到時,代碼壓縮器就把方法中的那些可被沖洗方法的壓縮體系結(jié)構(gòu)專用碼從運行時間存儲器中沖洗出去。
8.權(quán)利要求1至7中的任一權(quán)利要求的客戶計算機系統(tǒng),還包括輔助存儲器;代碼壓縮器,(A)當(dāng)需要運行時間存儲器內(nèi)的空間但得不到時,把方法中的那些可存儲方法的壓縮體系結(jié)構(gòu)專用碼存儲在該輔助存儲器內(nèi),和(B)從該輔助存儲器中檢索方法中的那些其壓縮體系結(jié)構(gòu)專用碼將要被解壓縮的可被檢索的方法的壓縮體系結(jié)構(gòu)專用碼。
9.在一計算機網(wǎng)絡(luò)中,通過該計算機網(wǎng)絡(luò)以體系結(jié)構(gòu)中性碼的形式提供具有方法的程序,當(dāng)方法是根據(jù)方法的體系結(jié)構(gòu)中性碼產(chǎn)生的體系結(jié)構(gòu)專用碼的形式時,一種方法用于以減少的運行時間存儲空間需求來執(zhí)行程序,該方法包括以下步驟提供運行時間存儲器;接收體系結(jié)構(gòu)中性碼形式的程序;把接收到的方法的體系結(jié)構(gòu)中性碼無壓縮地裝入運行時間存儲器的可用空間;根據(jù)裝入的方法的體系結(jié)構(gòu)中性碼在運行時間存儲器內(nèi)產(chǎn)生方法的未壓縮體系結(jié)構(gòu)專用碼;執(zhí)行程序,由此在不同的時刻調(diào)用和不調(diào)用方法;在運行時間存儲器內(nèi)壓縮未被調(diào)用方法中的那些可壓縮方法的未壓縮體系結(jié)構(gòu)專用碼,由此在運行時間存儲器內(nèi)得到可用空間;以及在運行時間存儲器的可用空間內(nèi)解壓縮方法中的那些可解壓縮方法的壓縮體系結(jié)構(gòu)專用碼,以便方法中的那些可解壓縮方法可被調(diào)用。
10.權(quán)利要求9的方法,其中的解壓縮步驟包括一旦方法中的那些可解壓縮方法要被調(diào)用,就解壓縮方法中的那些可解壓縮方法的壓縮體系結(jié)構(gòu)專用碼。
11.權(quán)利要求9的方法,其中的解壓縮步驟包括在預(yù)定時間間隔之后解壓縮方法中的那些可解壓縮方法的壓縮體系結(jié)構(gòu)專用碼。
12.權(quán)利要求9、10或11的方法,其中的壓縮步驟包括一旦方法中的那些可壓縮方法不再被調(diào)用,就壓縮方法中的那些可壓縮方法的未壓縮體系結(jié)構(gòu)專用碼。
13.權(quán)利要求9、10或11的方法,其中的壓縮步驟包括在需要運行時間存儲器內(nèi)的空間但得不到時,就壓縮方法中的那些可壓縮方法的體系結(jié)構(gòu)專用碼。
14.權(quán)利要求9至13中的任一權(quán)利要求的方法,還包括以下步驟提供按照最早被調(diào)用方法至最近被調(diào)用方法的順序列出方法中的那些當(dāng)前未被調(diào)用方法的調(diào)用順序表;當(dāng)需要運行時間存儲器內(nèi)的空間但得不到時,方法中的那些可壓縮方法是調(diào)用順序表中的具有未壓縮體系結(jié)構(gòu)專用碼的最早被調(diào)用的方法。
15.權(quán)利要求9至14中的任一權(quán)利要求的方法,還包括當(dāng)需要運行時間存儲器內(nèi)的空間但得不到時,就把程序中的那些可被沖洗程序的壓縮體系結(jié)構(gòu)專用碼從運行時間存儲器中沖洗出去的步驟。
16.權(quán)利要求9至15中的任一權(quán)利要求的方法,還包括以下步驟提供輔助存儲器;當(dāng)需要運行時間存儲器內(nèi)的空間但得不到時,把方法中的那些可存儲方法的壓縮體系結(jié)構(gòu)專用碼存儲在該輔助存儲器內(nèi);以及從該輔助存儲器中檢索方法中的那些其壓縮體系結(jié)構(gòu)專用碼將要被解壓縮的可檢索方法的壓縮體系結(jié)構(gòu)專用碼。
全文摘要
一種計算機網(wǎng)絡(luò)中的客戶計算機系統(tǒng)及其方法,通過該計算機網(wǎng)絡(luò)以體系結(jié)構(gòu)中性碼的形式提供具有方法的程序。當(dāng)方法是根據(jù)方法的體系結(jié)構(gòu)中性碼產(chǎn)生的體系結(jié)構(gòu)專用碼的形式時,客戶計算機能夠以減少的運行時間存儲空間需求來執(zhí)行程序。該客戶計算機系統(tǒng)包括:網(wǎng)絡(luò)通信接口、網(wǎng)絡(luò)通信管理器、代碼產(chǎn)生器、執(zhí)行控制器、代碼壓縮器。其中代碼壓縮器分別壓縮未調(diào)用方法和解壓縮調(diào)用方法的體系結(jié)構(gòu)專用碼以減小運行時間存儲器空間需求。
文檔編號G06F9/44GK1174359SQ9711595
公開日1998年2月25日 申請日期1997年6月5日 優(yōu)先權(quán)日1996年6月5日
發(fā)明者蒂莫西·G·林霍爾姆 申請人:太陽微系統(tǒng)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1