TWI229269B - Method and device for creating and using pre-internalized program files - Google Patents

Method and device for creating and using pre-internalized program files Download PDF

Info

Publication number
TWI229269B
TWI229269B TW090132510A TW90132510A TWI229269B TW I229269 B TWI229269 B TW I229269B TW 090132510 A TW090132510 A TW 090132510A TW 90132510 A TW90132510 A TW 90132510A TW I229269 B TWI229269 B TW I229269B
Authority
TW
Taiwan
Prior art keywords
memory
image
internalized
program file
reusable
Prior art date
Application number
TW090132510A
Other languages
English (en)
Inventor
Iris M Plaxton
Samuel J Rauch
John H Osman
Andrew A Bjorksten
Jason M Bennett
Original Assignee
Freescale Semiconductor Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Freescale Semiconductor Inc filed Critical Freescale Semiconductor Inc
Application granted granted Critical
Publication of TWI229269B publication Critical patent/TWI229269B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44557Code layout in executable memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators

Description

1229269 Λ7 B7 五、發明説明( iLM申請參考 本專利申請於2001年3月7日提出美國專利申請,專利申 清案號為09/800,935。 曼明領域 本發明通常與以高階語言撰寫之程式檔案處理有關,尤 其,與能夠動態載入之以高階語言撰寫的程式檔案有關。- 先前枯蔡 隨著攜帶型及其他電子裝置的數量及種類遞增,在這些 裝置上執行及連接這些裝置的應用程式也相應遞增,以及 使用者希望加入特殊程式及功能的彈性也隨之遞增。這此 裝置有時候被稱為「内嵌式裝置」,因為這些裝置包括用 以執行指令的處理器、特殊功能單位以及用以提供希望功 旎的指令。内嵌式裝置通常是獨立的裝置,其具有自己的 電源供應器,但是通常只包含連接丼他系統的功能。例 如’、如仃動電話、傳呼機與個人數位助理(pDA)之類的内 肷式裝置通常包括用以執行儲存在裝置内之電腦程式的中 央處理單元(CPU)以及允許移動性的電池。在M造内嵌式 裝置之後,個人使用者可能想要藉由加入特殊功能或應用 心式以自4自己的裝置。希望使用以高階程式設計語言 ( Sun Microsystems,Inc .公司開發的javaTM的程式設計語士) 撰窝的«程式或程式碼,用以促進之後安裝使用者供應 的應用程式。Java是一種特別引人注目的程式設計語言厂 因為其屬於平台非相依性程式語言,這表示它不是一種作 業系統或硬體組態專用的程式設計語言。 本紙張尺度制㈣a家標準(CNS) A4規格(加;297公龙>
裝 訂
線 1229269 A 7 _ B7 五、發明説明(2 ) 開發適用於内嵌式裝置之程式碼的一項限制條件為記憶 體數量有限’這會減少裝置能夠儲存的記憶體總量,並且 也會々.I置的計算能力。接著,設計適用於内嵌式裝置 之程式碼的主要目的是將記憶體邊率及已安裝應用程式的 速度提升至最高限度。目前,有數種方法可增加内嵌式應 用程式的記憶體效率,這些方法通常不會延續至使用者後 續安复的額外應用程式。 具體而言,java是一種可移植(p0rtable )、容易程式設計 及架構中ϋ的物件導向式程式設計語言。物件導向式設計 著重於資料(稱為「物件」)及物件連接介面。java程式能夠 在網路(其包括各種處理單元及作業系統架構)内的任何地 點執行。 …
Java程式已經過編譯及解譯。編譯係一次完成,已編譯 Java^式设計程式碼稱為r java位元組碼」(了謂; JBC)。JBC是一種架構中立或平台非相依性的中階語言。 Java解譯器在處理器上剖析及執行JBC指令。每當執行程式 時均會發生解譯。java二進位檔案(稱為類別檔案(dass file ),包括給定程式的jBC以及支援資訊(如符號資料)。類 別檔案(或程式檔案)包括關於類別的「項目」或資訊,如 欄位、方法、JBC陣列及符號參考資料表。具體而言,Java 私式係由一個或一個以上java檔案所組成,在進行編譯時 會產生一個或一組類別檔案。 貫際上,JBC 是「Java虛擬機器」“ java Virtuai Machine”(Java VM)的機器碼指令。所有的Java解譯器(如Java開發環境或具 — __^__— -5-__ 本紙俵尺度適川中阐國家標準(CMS) A4规格(‘210 X 297公發1 ------ 1229269
A7 _______B7五、發明説明(3 ) 備Java功能型web瀏覽器 > 均使用Java VM實施。通常,這些工 具會使用已安裝在系統上的JavaVM,可&繫結;獨谓。請 注意,Java VM也可以硬體實施。在此方式中,可使射篇編譯器在任何機器上編譯程式,並且產生的JBC可在任何^仰 VM實施上執行。 夕=了使以Java撰寫的應用程式可移植(p〇rtable),會維護許 多符號_貧訊。於JBC的一般JavaVM執行期間,JavaVM會使用 付唬資料以執行動態繫結,藉由獲得指向參考結構的實際 ^旨標:例如,每個函式时考均是藉由符號資訊表示;類 别名%,函式名稱;及簽名碼(signature)。類別名稱識別包 含方法宣告的類別物件。方法識別該類別可取得的各種函 式,亚且JBC陣列是用來實施一方法所執行的程式。函式名 稱與簽名碼一起識別其方法内的給定函式。簽名碼描述傳 遞至函式及函式傳回的引數成員及型別。符號資訊展開 Java二進位檔案的大小,並且該項展開會引發記憶體儲存 問題。於執行期間,會維護JBC及符號資訊的兩個複 本·第一複本係儲存在永久記憶體中;而第二複本係儲存 在動怨5己丨思體中,並且使用Java VM容易操縱的格式。針對 如傳呼機、行動電話及PDA之類的小型内嵌式裝置,動態 記憶體非常有限。因此,希望減少動態記憶體使用量。額 外的問題是執行期間的等待日寺間(latency),這是由於使用高 成本查詢表以處理符號參考所致。 為了阱決這些問題的一部份,工具考慮到壓縮及格式化 Java類別檔案以高效率使用記憶體。「預内部化」是一種 -6-
裝 訂
1229269 r A7 B7 五、發明説明(4 將Java類別檔案資訊重新格式化成為代表類別物件之格式 的處理程序,以放置在記憶體中,代表一類別物件。内部 化係發生於類別檔案載入期間,並且是從類別檔案擷取類 别資訊以及將結構中的資訊儲存於動態記憶體中的處理程 序。預内部化處理程序排除符號參考和類別載入、減少動 怨圮憶體儲存2間需求,並且加速應用程式執行。預内部 化棺案_的格式是每個Java VM實施特有的格式。 預内部化發生於編譯之後,但在JBC 一般載入及執行之 前。預内部化類別物件被重新結構,而不需要將之儲存於 動態記憶體中,因此可在永久記憶體中維護。以此方式可 釋出更多的動態記憶體,以供於執行建立動態物件使用。 用於維護狀態及動·態物件的資訊及結構係儲存在稱為_ “Java堆積(heap),,的空間中。預内部化的問題為,由於會將 類別資訊儲存於永久記憶體中,所以無法於執行期間^新 這個資訊。 目前,避免將符號資訊儲存至動態記憶體中的解決方案 是,將類別安裝在目標裝置之前先解析所有的符號參考= 解析參考涉及使用參考項目位置(即,位址)來取代U參考。 預内部化一組類別檔案或“類別檔案單元,,的問題為,已將 類別的參考安裝在裝置上,而類別參考的參考項目位址未 知或不可靠。為了避免重複參考類別資訊,會從裝置移除 安裝的類別’並且使用新樓案集來重新包裝。 圖1顯示用以處理程式檔案(也稱為類別檔案)的先前技 藝處理程序6。程式檔案8 (貼上“類別1,,、“類別?,·及“類 本紙張尺度適用中國國家標準(CMS) A4规格(:210 X 297公釐) 1229269 A7 B7 五、發明説明(5 ) 別3 ”標籤)被預處理器1 0載入。預處理器I 〇產生已格式化 類別檔案資訊1 2。格式化係將每個程式檔案(類別1、類別 2及類別3 )轉換成類別物件,以供執行期間使用,其中類 別物件是使用的JVM實施特有的類別物件。預處理器1 〇是 一種可用硬體或軟體實施的工具。已格式化類別檔案資訊 1 2被結構化以儲存在目標裝置中,其中該裝置具有動態記 憶體及-永久記憶體。編輯器和連結器1 6組合已格式化類別 檔案資訊1 2與Java VM原始碼1 4。Java VM原始碼1 4是目標 裝置中實施之Java VM特有的原始碼。編輯器和連結器1 6的 輸出是Java VM影像1 8,其具有兩個部份:第一部份儲存 Java VM 19 ;而第二部份儲存預先載入類別資訊2 〇。預先載 入類別資訊2 0是已格式化類別檔案資訊的已編輯版本。 此時,Java VM影像1 8係儲存在目標裝置的裝置記憶體2 2 中。在此情況下’裝置記憶體22包括動態記憶體26及永久 記憶體2 4。在一項具體實施例中,動態記憶體2 6係以 實施’而永久兄憶體2 4係以ROM及/或快閃記憶體實施。 動怨纟己憶體2 6係於執彳亍期間使用,用以儲存過渡值及變 數。永久圯fe體2 4包括多重部份:一第一部份2 8係用來儲 存一類別載入器,一第二部份3 0係用來儲存一 jbc解譯 器;以及一第三部份32係用來儲存預先載入類別資訊2〇。 類別載入咨部份2 8係用來格式化二進位類別資訊以供Java VM使用,並且不需要格式化預先載入類別資訊2 〇,因為 已於預處理與編輯期間格式化預先載入類別資訊。儲存於 裝置記憶體22中的Java VM影像18係用來執行程式檔案8中 _____ -8-_ 本紙張尺度適财㈣家料(CNS) A4規格(21(.)χ2ί)7公發) -- 1229269
AT
1229269
A7 B7 五、發明説明( 案42載入至動態記憶體26中 (類別4、_別5及%0丨< 乂而要私載入的程式檔案’貝力J 及類力丨j 6 )儲存s击匕Java雄穑π 、了 土動怨記憶體20中,而減少隹、(heap)可用的空間。 種情況,+ p 1 禎失動怨記憶體空間會形成一 樘b w,其中即使所有的額 憶體26中,於執行期 王式忌衣42均儲存在動態記 不足以儲m 的可用動態記憶體空間仍然空間通-常有限,在許,;;Γ 式。此類的動態記憶體.ρΕ, ^ ^ 夕怎用中,使Java堆積(heap)可用的空間總增加至最高限度非常重要。 。工 另外’針對所有執行的額外程 & , ,5批 載入或内邵化額外程式梓安 水久内邵化。此類的岸用 疋谈 ,„ 7怂用“ A有時候被稱為“瞬間應用程 式。反覆的内部化_ 4親兰/ θ A ^減緩程式執行。請注意,執行 厂月間载入器内部化的虎的處理程序。 私序不是Java程式設計環境特有 邏式簡置_ ΕϊΕ[ 本發月知藉由貫例及附圖來進行解說,但本發明未限定 在這些實例及附圖内,纟中相似的參照代表相似的元件, 並且其中: 圖1 1不用以處理要永久儲存於裝置記憶體中之程式檔 案之已知方法的方塊圖; 圖2顯示用以將應用程式特有程式檔案加入至如圖1所示 之裝置記憶體中之已知方法的方塊圖; 圖3 7F根據本發明之用以接收程式檔案及建立程式情 案可執行影像之攜帶型裝置的方塊圖; "
本紙張尺度適财國國家料(CNS)7Tii^()X 297公發)
1229269
發明説明 圖4顯示圖3所示之攜帶型裝置之程式檔案記憶體結構細 節的方塊圖; 圖5顯示根據本發明之用以建立及處理預内部化檔案之 處理程序的流程圖; 圖6顯示根據本發明之用以在用戶端外(〇ff_client)建立及 處理預内邰化檔案之處理程序的流程圖; 圖7喊不用以實施如圖6所示之流程圖之用戶端/用戶端 外(diem/off-client)系統的方塊圖;以及 圖8顯示根據本發明具體實施例之裝置的方塊圖。 熟知技藝人士應明白,圖中的元件是簡化的圖解,並且 不需要按比例繪製。例如,相對於其他元件,圖中部份元 件的尺寸可能過度放大,以利於更容易瞭解本發明的具體 實施例。 、 發明詳細說明 基於容易解說明的目的,Java程式設計語言係當作範 例;但是’本發明也適用於其他的程式設計語言。本文中 會參考具有内嵌式Java程式的系統來使用數個術語。記憶 體代表唯讀記憶體(R0M)、可寫入記憶體及可讀寫記憶 體。可讀寫記憶體可能是隨機存取記憶體(RAM)、電可檫 除可程式化唯讀記憶體(EEPROM)、可程式化記憶體 (PROM)、包括單次(〇ne-Time PROM ; OTPROM)、可擦除式 PROM (EPROM)、快閃記憶體等等。術語“動態記憶體,,係用 來表示以動態方式配置的記憶體,並且當停止供電給裝置 時不會保留儲存的資訊或資料,如RAM。術語“永久記憶 -11- 本紙張尺度適用中國國家標準(CNS) A4规格(210 X 297公釐) 1229269
AT __B7 五、發明説明(9 ) 體係用來表示執行期間視為唯讀的記憶體,並且當停止 供電給裝置時會保留儲存的資訊或資料,如ROM。 本發明一種用以建立及使用能夠動態載入之以高階語言 撰寫之預内邵化程式檔案的方法或處理程序。在本文中, 術π方法及“處理程序”同義。需要有一種處理程式樓案 的方法’其考慮到加入或移除使用者特有的程式檔案,以 改良吡加程式檔案的後續執行速度,而不會減少可供執行 使用的動態記憶體總量。 圖3所示的示範性程式設計環境4 4具有裝置4 5及附加程 式檔案46,其具有任意數量之η個類別檔案,其中η是整 數。每個類別檔案均是任意大小,並且代表使用者希望加 入至裝置4 5之一組1集型程式檔案的一個程式檔案。應明 白,裝置45的原廠製造商不使用圖解之附加程式檔案46來 程式規劃裝置4 5。 裝置4 5係經由應用程式管理員4 8耦合至附加程式樓案 4 6。以雙向方式耦合至應用程式管理員4 8是動態記憶體 5 2、永久記憶體5 6及虛擬機器(Virtual Machine ; VM) 50。動 態記憶體5 2的一種形是隨機存取記憶體(RAM),而永久記 憶體5 6則係以快閃記憶體實施。永久記憶體5 6儲存附加程 式檔案4 6的預内部化影像。在圖解的形式中,虛擬機器5 〇 個別耦合至動態記憶體5 2和永久記憶體5 6。應明白,動態 記憶體5 2與永久記憶體5 6之間會經由導線(圖中未顯示)在 裝置4 5内傳送資訊,以響應虛擬機器5 0。在圖解的形式 中,虛擬機器5 0具有類別載入器6 1、類別解析器6 2,、類 -12- 本紙張尺度適用中國國家標準(CNS) A4規格(:η()Χ297公釐) 1229269 10 五、發明説明( 别如⑬态6 j、貧源管理員6 4、動態記憶體管理員 譯器66、預内部化器67及複數個預先載入應用: ==68,全部都是駐存在永久記憶㈣中。虚擬機 ⑽功遂具有Java堆積54,其駐存在動態記憶體7〇中。 、在操作過財,裝置45先被製造商程式規劃,以在預先 載入應用程式和程式庫68内納入預先決定程式樓案。當執 行,類·的預先載入應用程式時,虛擬機器50係以一第:或 y模式執行,並且在其永久記憶體6 9外處理應用程式: 疋假叹裝置4 5使用者想要將來自於任何外部來源的附 力:程式樓案46加入至裝置45。應用程式管理員48係用來 協助將附加程式檔案46置於動態記憶體52或永久記憶體 56中。選取哪一個杞憶體使用與特有應用程式有關,而= 亡發明無關。應用程式管理員48以一第二模式或預内部化 挺j啟動虛擬機器50,用以將程式檔案預内部化成為虛擬 機时的原生(natjve)記憶體結構。基於闡明的用途,本文中 使用的術語「原生(native)記憶體結構」應表示所討論之特 =虛擬機器所特有的作業,而不適用於任何其他虛擬機 备。原生(native)記憶體結構表示特定虛擬機器,其中虛擬 機备疋裝置上特定安裝的虛擬機器。預内部化模式的結果 疋一裎式檔案的預内部化影像,然後將之儲存於永久記憶 把5 6中。預内部化影像是一種可重複使用的可執行影像, 因為預内部化影像現在係駐存在永久記憶體中,並且萬一 其後必須執行新引進的應用程式,也不需要重複預内部 化。另外’現在可刪除置於動態記憶體5 2或永久記憶體5 6 1229269 A 7
中的附加私式檔案4 6原始複本,因而可顯著節省記憶體。 虛擬機器50是已修改的標準虛擬機器,以能夠執行預内 耗功能。先前技藝虛擬機器不執行預内部化。類別載入 器61和類別解析器62已被修改,以便以正常模式執行或以 預内部化模式執行。另外,類別載人器61已被擴充,以辨 識預内部化類別。位元組碼解譯器66已被擴充,以支援預 内部化·杏6 7建立的新位元組碼。 安基於簡明清楚的目的,預内部化的處理程序涉及類別檔 案處理。首先,類別被類別載入器61置於虛擬機器5〇中。 類別載入器6 1建立與附加程式檔案4 6每個及所有類別相關 的虛擬機器特有資料結構。在正常模式中,會按照應用程 式使用方式的決定由,類別載入器61載入類別。於預内部化 期間,會掃描虛擬機器特有資料結構,以決定於執行附加 類別期間會參考哪些其他類別,可能是附加檔案的内部或 外邵類別。在正常模式中,於類別載人期間必須執行類別 初始化方法,因此需要位元組碼解譯器6 6的引動過程 (inv0cati0n)。位元組碼解譯器6 6執行預先決定類別特有的 初始化。例如,此類的類別包括靜態初始設定式(Statlc initializer)。於士裝用途的預内部化期間,不會執行靜態初 始$定式(Static initializer)。只有在已執行應用程式的情況下 才把發生靜態W始設定式(Static initializer)執行。虛擬機器5 〇 的顾别解析备6 2係用來解析每個類別的常數集區(咖 Pool) ’其方式是符合發行Java參考平台的傳統方法。在完成 解析之後,就會更新〗_位元組碼(JavaByteC〇de;JBC)以指 丨X 297公發) 1229269
AT __B7 五、發明説明(~~ 向現在解析的參考(經由位址指標)。另夕卜,於預内部化期 間,虛擬機器50的類別驗證器63會以傳統方式驗證類別。 類別驗,被排除以利未來執行附加標案。驗證是嵐程式 ,計,言中的傳統函式’並且不會進一步討論驗證。資源 管理員64儲存與附加檔案相關的資源’其方式是結合資源 與7加程式檔案◊在整個處理程序過程中,動態記憶體管 里員6乏係$來在動怨吞己,|·思體中建立與類別相關的資料結 構。產生的資料結構統稱為内部化影像。然後,將最後影 像寫入至永久記憶體56中。總而言之’預内部化器67是一 小段程式碼’用以導向虛擬機器5〇的組件以執行這些預内 部化步驟。 圖4顯示兩個程式·輪案預内部化之後,圖3所示之永久記 憶體的進一步細節。複數個程式檔案7 3 (包括一第三組程 式檔案74)係耦合至仏”應用程式管理員(JAM)76。jam76 在永久1己憶體9 2中維護動態預内部化應用程式清單。就製 造及銷售虛擬機器之後發生將應用程式加入至虛擬機器的 意義而了’預内部化應用程式被稱為“動態,,。 JAM 76係連接至虛擬機器72,其具有與圖3所示之虛擬 機器5 0相同的組件。基於方便解說的目的,圖4中不會明 確詳細描繪虛擬機器的所有組件。虛擬機器7 2具有位元組 碼解譯器79,其適用於▽“處於一第一或正常執行模式的 情況;一預内部化器8 0,其適用於VM處於一第二或預内 部化執行模式的情況;以及程式檔案的預先載入類別81。 虛擬機器7 2係耦合至永久記憶體8 4,這個永久記憶體内包 __— —__^15-_ 本紙張尺度適川中國國家標準(CNS) A4規格(210X297公货) ----- 1229269 A7 B7 五、發明説明( 含一第一組程式檔案的一預内部化影像8 6、一第二組程式 樓案的一預内部化影像8 8以及供未來程式檔案9 〇使用的空 間。 在操作過程中,當最初使用位元組碼解譯器7 9以第一或 正常執行模式運作時,JAM 76指示虛擬機器7 2執行預先載 入類別8 1及/或預内部化影像8 6及/或預内部化影像8 8。 JAM 76指示虚擬機器7 2首先使用預内部化器8 〇以預内部化 第三組程式檔案74。預内部化器80係用來實施第三組程式 檔案74的預内部化,其方式與參考圖3之預内部化器”所 說明的方式相同。預内部化器8〇建立第三組程式檔案74的 影像’然後將之儲存於供未來程式檔案9〇使用的空間中。 此外,JAM 76指示虛'丨疑機器72從永久記憶體84移除第二組 粒式檔案8 8。JAM 76透過使用保存在永久記憶體9 2中的動 態預内部化應用程式清單,以維護預内部化影像的知識。 在預内部化一組程式檔案之前,JAM 76從以第二模式運作 的虛擬機器7 2獲取供未來程式檔案9 〇使用的空間總量。以 此方式協助JAM 76決定是否可預内部化程式檔案。在請求 加入一組程式檔案74或移除已預内部化影像88之後,以第 二模式運作的虛擬機器72也會將成功或失敗指示傳回給 JAM 76 ° 凊注意,在圖3和4所示的具體實施例中,第二模式或預 内部化模式均可重複使用虚擬機器的核心組件。因此,本 發明增強虛擬機器以允許儲存已完成轉譯成為記憶體資源 位址的影像。 -16- 1229269 五、發明説明(14 圖5於員不結合_卢p 虛k機态之一 Java應用程式管理_ —各種 程式應用執行選項的兩m ^ 、 、、的處理程序1〇〇。處理程序從步驟ιοί開 ^万、^ 1〇),使用者或另一來源從一組可用的程式檔案 k取個袄式“案。所選程式檔案可能以預内部化影像形 式已存在於或尚未存在於裝置的記憶體中。這組程式檔案 包含虛擬機器外部的㈣載人類別及/或預内部化影像及/ 或程式_樓案。應明合,同 <r A ^ 圖)/又有砰細描緣預先載入類別的 處理万;步驟105 ’決疋是否已建立預内部化應用程式影 像如果已事先建互影像,影像會駐存在包含虛擬機器之 裝置的永久記憶體中。如果步驟1〇5的结果為“是”,則步驟 1〇7提供兩項選擇:⑴執行程式㈣,或⑺從永久記憶體 的預内部化空間移合程式檔案。在一種形式中,可從使用 者接收使用者請求,以決定使用者所作的選擇。假設最初 使用者或其他來源決定執行程式檔案。由於程式檔案存在 於永久記憶體的預内部化空間中,所以Java應用程式管理 員會呼叫正常模式的虛擬機器,以於步驟109執行預内部化 影像。完成執行之後,就已到達關於程式檔案執行的結束 步驟100。假設使用者或其他來源決定從包含虚擬機器之裝 置的永久記憶體中移除程式樓案。於步驟丨12,Java應用程 式管理貝會呼叫第一模式的虛擬機器,以移除預内部化影 像。請注意,當虛擬機器正在以預内部化模式運作時,移 除預内部化影像是預内部化器的附加功能。移除之後,到 達結束步.¾ 113。Java應用私式管理員也會更新永久記憶體 中的動態預内部化程式檔案清單。 -17- 本紙張尺度適川中國國家標苹(CNS) Λ4規格(210 X 297公釐) 1229269 A 7 __ B7 五、發明説明1 ~~ ~ 回到步驟105 ’假設已事先發生相關預内部化影像。如果 步驟105的結果為“否,,,則步驟114提供兩項選擇:(丨)執行 权式棺案,或(2 )將程式檔案加入至永久記憶體的預内部 化二間。在一項實施中,選擇可被實施以響應使用者請 求’以執行程式檔案或進入預内部化模式。另一項具體會 施例可實施使用自動執行常式選擇。如果使用者或其他來% 源決定執行程式檔案,則執行步驟116。請注意,步驟116 與圖2裝置所執行的非預内部化程式檔案執行一致。步驟 116具有第一步驟Π8,用以當虛擬機器以第一或正常模式 運作時内部化程式樓案。請注意,虛擬機器的預内部化器 不適用於這個預内部化函式。而是,虛擬機器使用各種函 式部份(如驗證器’解析器等等)來執行預内部化。於步驟 118發生内部化之後,於步驟12〇,虛擬機器執行程式樓 案。步驟121結束程式執行。請注意,因為程式不是已儲存 的預内部化影像,所以每個選取要執行的程式檔案時,均 必須執行步驟118。回到步驟114,萬一使用者或其他來源 決定預内部化程式檔案,則會執行步,驟124,而不是執行步 驟116。於步驟124,Java應用程式管理員會呼叫第二或預内 部化模式的虛擬機器以建立預内部化影像,其方式與參考 圖3所述的方式相同。在建立預内部化影像之後,將影像 儲存至裝置的永久記憶體中。請注意,萬一於步驟1〇5再次 選取要執行的程式檔案,則不需要再次執行步驟124,而是 將處理程序導向至步驟107。 圖6顯示替代具體實施例處理程序130。處理程序Π0從步 _____-18-___ 本紙悵尺度適W中國國家標準(CNS) A4规格(210 X 297公釐) 1229269 A7 B7 五、發明説明(16 驟131開始。於步驟133,使用者或其他來源從一組可用的 程式檔案選取一個或一個以上程式檔案。在一種形式中, 進行選擇的可能“其他來源,,可包括裝置外程式檔案伺服器 或另一個裝置外來源。於步驟135,決定是否已在裝置上建 i預内部化影像。已將“裝置上,,準則加入至步驟135的原因 為,這個具體實施例解說從裝置外來源接收已預内部化影 像的情J兄,以及預内部化器如何處理這個情況。如果結果 為“是” ’則步驟137、140、14卜143和144分別與圖5所示的步 驟107、109、1〇〇、112和113完全一樣。步驟137可決定執行一 項執行作業或一項移除作業,以響應使用者請求。如果結 果為“否”,則執行步驟146以決定是否已在裝置的其他位置 建互預内部化影像。如果查詢結果為‘;否,,,則步驟148、 150、151、152、153、156和158分別與圖5所示的步驟U4、116、 118、120、121、124和125完全一樣。步驟148可決定執行一頊 執行作業或一項預内部化作業,以響應使用者請求。如果 查詢結果為“是”,則實施步驟157。於步驟157, Java應用程 式管理員會呼叫虛擬機器以不預内部化影像,而是只將預 内部化影像複製及修補(patch)至裝置之永久記憶體中的特 定位置。完成步驟157之後,到達結束步驟16〇。 請參考圖7,圖中進一步顯示從裝置外來源接收影像的 處理。這個具體實施例解決進一步縮減應用程式執行時間 的需求’其方式是顯著縮減預内部化時間。換言之,本於 明可實施在當作伺服器的裝置上。因此,其優點為可在^ 似於現有裝置的裝置外伺服器或裝置外用戶端(對等式): -19- 1229269 A7 广 _ B7 五、發明説明(17 ) 執行Java虛擬機器環境。裝置外影像與裝置之虛擬機器建 互之影像間的差異為’影像係儲存在裝置的記憶體資源 内。 系統180通常具有一第一用戶端裝置182/、一第二用戶端 裝置或具有用戶端裝置模擬之伺服器18ί以及一應用程式組 184 ’其中應用程式組不是駐存在裝置ι82上可重複使用可… 執行影_像形式。用戶端裝置182通常包括應用程式管理員 2〇4、動態記憶體2〇6、永久記憶體22〇及虛擬機器21〇。在一 種形式中,裝置181及182的結構相同於圖3所示之裝置4 5的 結構。顯而易見,可建立替代具體實施例及修改結構,以 執行本文中講授的功能。可使用位於裝置182外部之永久記 憶體中的選用性儲存裝置2〇〇來儲存附加檔案的預内部化影 像。 在操作過程中,裝置181及182的外部來源會建立附加檔 案184。附加檔案以4被應用程式管理員185置入裝置或具有 用戶端裝置模擬之伺服器181中。以第二模式運作的虛擬機 器188將附加檔案被預内部化至其永久記憶體ι9〇中。虛擬 機器188利用動態記憶體187支援其模式。儲存的記憶體可 能是或不是由裝置181執行。如果裝置181是用戶端裝置, 則這個應用程式影像很可能是由裝置181執行。如果裝置 181是具有用戶端裝置模擬之伺服器,則裝置181僅僅係用 來建立預内部化影像(即,裝置181係當作應用程式伺服 器)。當裝置181係當作有用戶端裝置模擬之伺服器使用 時,則會視需要將影像儲存於永久記憶體2〇〇中,其可能位 ____ -20-____ 本紙張尺度適用中國國家標準(CNS) Α4規格(210X 297公釐) 1229269
AT _ B7 五、發明説明(ι8 ) 於系統設計選擇的任何位置。如果第一用戶端裝置丨8?的應 用程式管理員204從永久記憶體200或應用程式管理員185接 收預内部化影像,則只有預内部化的最後步驟才必須發 生。最後步驟是圖6所示的步驟157,並且涉及將預内部化 影像複製及修補(patch)至裝置之永久記憶體220中。因此, 顯而易見,系統180係用來啟動裝置182以避免完全的預内 部化處_理步驟。使用處理能力及動態記憶體大小極端有限 的低級用戶端裝置,與獨立裝置相比,本發明可使低級用 戶端裝置能夠使用非常駐應用程式設定組態,此外,每當 需要執行非内部化程式時,本文所講授之低級用戶端組態 執行整個預内部化處理程序的速度快於先前技藝裝置。 圖8顯示貫施本發_的裝置3〇〇。裝置3〇〇具有處理器及 記憶體304。記憶體304被組織以具有許多不同的結構,並 且圖8只顯示類似於參考先前圖式所討論的結構。I / 〇以雙 向方式耦合至處理器302及記憶體304 ,並且處理器3〇2及記 憶體304也可以雙向方式耦合。在圖解的形式中,記憶體 304具有Java應用程式管理員31〇、虚擬機器312、動態記憶體 314及永久記憶體316。 在操作過私中’處理器執行預先決定指令。記憶體3〇4的 第一部份係Μ合至處理器302,用以將指令及資料提供給處 理器。在一種形式中’記憶體3〇4的第一部份是虛擬機器 312。1己憶體304包括至少一第一組、一第二組及一第三組 一個或一個以上指令。所討論的每組指令集是否包含複數 個指令取決定設計及程式設計選擇而定,並且取決於與軟 ---21- 本紙張尺度適川中國阈家標爷(CMS) Λ4規格(210X297公釐) -----— 1229269 A 7 B7 五、發明説明(|9 ) 體功能相對需要多少硬體功能。僅基於討論的目的,在下 面的討論中假設將使用複數個指令的指令功能,以使硬體 實施降至最低限度。但是,若希望,本文中所描述的指令 功此可旎使用單一指令實施。第一複數個指令係用來接收 一第一程式檔案。第二複數個指令係用來將該第一程式檔 案預内部化成為虛擬機器的原生(native)記憶體結構,以建 三孩第—一程式檔案的可重複使用可執行影像。第三複數個 指令係用來將該預内部化程式檔案影像或可重複使用可執 行影像儲存至記憶體304内的第二記憶體部份中。虛擬機器 312能夠執行可重複使用可執行影像,而不需要在執行之前 先内部化。 圖8所示的記憶體-304也可包括一第四複數個指令,用以 利用記憶體接收及儲存可重複使用可執行影像。當儲存可 重複使用可執行影像時,記憶體指標會被内建機制更新, 以允許在同-裝置記憶體内四處移動影像。因此,儲存可 重復使料執行影像的記憶體是具備態動記憶體調解能 力’以高效率使用記憶體儲存區及調解記憶體以高匕 用有效位址。這個處理程序准許在裝置上移動物件,以建 正一第二可重複使用可執行影像。將可重複使 像儲存在裝置内之後,可重複使用可執行影像内的記= 位址被更新以反映現行記憶體位址。記憶體304也可包括八 離式複數個指令,用以在處理使用者請求時執行,立中; 響應使用者請求,虛擬機器會以預内部化模式運作了分= 式複數個指令可能位於記憶體綱中,用以引發從第二:憶 本紙狀錢财S S师hCNS) Α4規^^_297公幻 -22- 1229269 A7 B7 五、發明説明(2〇 ) 體轉遞預内部化程式檔案影像,其中第二記憶體可能在裝 置内部或外部。記憶體304内的另一複數個指令可實施使用 者請求處理,其方式是移動或整個移除記憶體中的預内部 化程式檔案。 . 可重複使用可執行影像被事先建立,其方式是將程式檔 案預内邵化成為虛擬機器312的原生(native)記憶體結構。在% 此情況·下’虛擬機器312能夠執行可重複使用可執行影像, 而不需要在執行之前先内部化可重複使厨可執行影像。記 十思體304可額外儲存分離式複數個指令,用以將可重複使用 可執行影像移動至記憶體内的不同位置。另外,記憶體3〇4 可儲存另一組指令,其能夠更新可重複使用可執行影像或 預内部化程式墙案影像内的記憶體位址。應明白,記憶體 304也可儲存用以實施圖5及圖6所示之處理程序的指令。 本發明特別有利於運用在攜帶型無線裝置中。可實施本 發明之攜帶型裝置類型的實例包括:電話、網際網路設備 (攜帶型及/或非攜帶型)、個人數位助理(pDA)、傳呼機、 照相機、攝錄影機(照相機/錄影機)、攜帶型電視及組合各 種通信功能的產品。 於前面的說明書中’已參考Java程式設計語言及特定具
文中講授的軟體(例如, 给他咼階程式設計語言。再者,本 如圖3所示之虛擬機器5 〇的軟體實
A7 A7
發明説明(21 施)可内嵌於電腦硬碟機、軟碟機、3·5,,磁片、電腦磁帶、 磁性鼓( magnetic drums )、靜態隨機存取記憶體(sram)單 元、動態隨機存取記憶體(DRAM)單元、或電可擦除 (EEPR〇M、EPR〇M、快閃記憶體)單元、非揮發性記憶體單 元、鐵電或強磁性記憶體、光碟(compactdisk;CD)、雷射光 碟、光碟片等等電腦可讀取媒體。因此,說明書暨附圖應 視為解_說,而不應視為限制,並且所有此類的修改皆屬本 發明範蜂内。 已說明關於特定具體實施例的優勢、其他優點及問題解 决方案。但是,可導致任何優勢、優點及解決方案發生或 更顯著的優勢、優點、問題解決方案及任何元件不應被理 解為任何或所有申涂專利範例的關键、必要項或基本功能 或元件。本文中所使用的術語“包括,,、“包含,,或其任何其 他的變化都是用來涵蓋非專有内含項,使得包括元件清單 的方法、方法、物品或裝置不僅包括這些元件,而且還包 括未明確列出或此類方法、方法、物品或裝置原有的其他 件。 ___^ 本紙張又度適用中國國家標準(CNS) A4規格(210 X 297公發)

Claims (1)

  1. 正替換頁 丨ΰ月&曰 A8 B8 C8 D8 1229269 第090132510號專利申請案 中文申請專利範圍替換本(92年10月) 六、申請專利範圍 1. 一種用以操作一具有一正常作業模式及一預内部化作業 模式之虛擬機器之方法,該方法包括: 從一組可用程式檔案選取一程式檔案,以識別一所選 程式檔案; 決定是否已建立該所選取程式檔案的可重複使用預内 部化影像,其中該可重複使用預内部化影像能夠被執 行’之後在執行之前就不需要先内部化該所選程式檔 案; 如果尚未建立該所選取程式檔案的可重複使用預内部 化影像’則以該預内部化模式選擇性運作該虛擬機器, 包括: 建立該所選取程式檔案的可重複使用預内部化影像; 以及 將該所選取程式檔案的可重複使用預内部化影像儲存 至記憶體中。 2·如申請專利範圍第1項之方法,進一步包括·· 如果尚未建立該所選取程式檔案的可重複使用預内部 化影像’則執行以該預内部化模式選擇性運作該虛擬機 器’以響應一使用者請求。 3·如申請專利範圍第1項之方法,其中該該虛擬機器係在 一第一裝置内執行,並且該方法進一步包括: 如果可在該第一裝置内取得該所選取程式檔案的可重 複使用預内部化影像,則執行該所選取程式檔案的可重 複使用預内部化影像,而不需要在執行之前先内部化該 本紙張尺奴財H S家鮮(CNS) A4規格公董) 1229269
    所選程式檔案的可重複使用預内部化影像;以及 如果可在一第二裝置(與該第一裝置分開)内取得該所 選取程式檔案的可重複使用預内部化影像,則進入該預 内部化模式、將該所選取程式檔案的可重複使用預内部 化影像從該第二裝置複製至該第一裝置,並且更新該所 選程式檔案之可重複使用預内部化影像内的位址。 4.如申請專利範圍第1項之方法,進一步包括: 在一第一裝置内執行該虛擬機器;以及 如果可在該第一裝置内取得該所選取程式檔案的可重 複使用預内部化影像,則選擇性進入該預内部化模式, 並且移除該所選取程式檔案的可重複使用預内部化影 像。 5· —種產生並使用預内部化程式檔案之裝置,包括: 一處理器,用以執行指令; 一第一記憶體,其耦合至該處理器,用以將指令及資 料提供給該處理器,該第一記憶體包括: 一第一組一個或一個以上指令,當該處理器執行該第 一組一個或一個以上指令時,實施接收一程式檔案; 一第一組一個或一個以上指令,當該處理器執行該第 二組一個或一個以上指令時,實施將該程式檔案預内部 化成為一虛擬機器的原生(native)記憶體結構,以建立該 程式檔案的可重複使用可執行影像;以及 一第三組一個或一個以上指令,當該處理器執行該第 二組一個或一個以上指令時,實施儲存該可重複使用可 本紙張尺度適用中國國家標準(CNS) A4規格(210X 297公釐) 1229269
    執行影像,其巾該可重複使用可執行f彡像能夠被該虛擬 機器執行,而不需要在執行之前先内部化。 6·如申請專利範圍第5項之裝置,該裝置進一步包括一第 一圮憶體,讀第二記憶體位於該裝置内部或外部,並且 其中該第一 1己憶體或該第二記憶體包括一第四複數個指 令,當該處理器執行時,該第四組一個或一個以上指令 更新該可重複使用可執行影像内的一記憶體位址。 7·如申請專利範圍第5項之裝置,該裝置進一步包括一第 二記憶體,該第二記憶體位於該裝置内部或外部,並且 其中該第一記憶體或該第二記憶體的一個記憶體包括: 一第四組一個或一個以上指令,當該處理器執行該第 四組一個或一個以上指令時,會將該可重複使用可執行 影像移動至該第二記憶體内的不同位置;以及 一第五組一個或一個以上指令’當該處理器執行該第 五組一個或一個以上指令時,會更新該可重複使用可執 行影像内的記憶體位址。
    本紙張尺度適用中國國家搮準(CNS) A4規格(210 X 297公*)
TW090132510A 2001-03-07 2001-12-27 Method and device for creating and using pre-internalized program files TWI229269B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US09/800,935 US7080373B2 (en) 2001-03-07 2001-03-07 Method and device for creating and using pre-internalized program files

Publications (1)

Publication Number Publication Date
TWI229269B true TWI229269B (en) 2005-03-11

Family

ID=25179757

Family Applications (1)

Application Number Title Priority Date Filing Date
TW090132510A TWI229269B (en) 2001-03-07 2001-12-27 Method and device for creating and using pre-internalized program files

Country Status (8)

Country Link
US (2) US7080373B2 (zh)
EP (1) EP1425658A2 (zh)
JP (1) JP2005509194A (zh)
KR (1) KR100864192B1 (zh)
CN (1) CN1306402C (zh)
AU (1) AU2002248212A1 (zh)
TW (1) TWI229269B (zh)
WO (1) WO2002073401A2 (zh)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7093086B1 (en) * 2002-03-28 2006-08-15 Veritas Operating Corporation Disaster recovery and backup using virtual machines
US7213246B1 (en) 2002-03-28 2007-05-01 Veritas Operating Corporation Failing over a virtual machine
US7603670B1 (en) 2002-03-28 2009-10-13 Symantec Operating Corporation Virtual machine transfer between computer systems
US6757778B1 (en) 2002-05-07 2004-06-29 Veritas Operating Corporation Storage management system
US20040015943A1 (en) * 2002-07-17 2004-01-22 Ying-Chou Chen Embedded computer system equipped with an upgradeable software library
KR100493893B1 (ko) * 2003-02-07 2005-06-10 삼성전자주식회사 자바 프로그램에서 클래스 로딩 과정을 단축시키는 시스템및 방법
JP2004312711A (ja) * 2003-03-25 2004-11-04 Ricoh Co Ltd 画像形成装置及び画像形成装置を遠隔のアプリケーションにより操作する方法
CN100388191C (zh) * 2003-04-01 2008-05-14 松下电器产业株式会社 程序连接方法、装置以及终端装置
US7203944B1 (en) * 2003-07-09 2007-04-10 Veritas Operating Corporation Migrating virtual machines among computer systems to balance load caused by virtual machines
US20050028132A1 (en) * 2003-07-31 2005-02-03 Srinivasamurthy Venugopal K. Application specific optimization of interpreters for embedded systems
US7246200B1 (en) 2003-11-12 2007-07-17 Veritas Operating Corporation Provisioning and snapshotting using copy on read/write and transient virtual machine technology
US7124291B1 (en) * 2003-12-22 2006-10-17 Sun Microsystems, Inc System and method for eliminating static initialization overhead by memory space cloning of a master runtime system process
US7810092B1 (en) 2004-03-02 2010-10-05 Symantec Operating Corporation Central administration and maintenance of workstations using virtual machines, network filesystems, and replication
EP1622009A1 (en) * 2004-07-27 2006-02-01 Texas Instruments Incorporated JSM architecture and systems
KR100622820B1 (ko) 2004-12-22 2006-09-19 엘지전자 주식회사 데이터 방송 콘텐츠에서 클래스 파일 분석을 통한 이미지처리 방법 및 그 장치
US20060184937A1 (en) * 2005-02-11 2006-08-17 Timothy Abels System and method for centralized software management in virtual machines
US8583770B2 (en) * 2005-02-16 2013-11-12 Red Hat, Inc. System and method for creating and managing virtual services
US20070027877A1 (en) * 2005-07-29 2007-02-01 Droshev Mladen I System and method for improving the efficiency of remote method invocations within a multi-tiered enterprise network
US9606846B2 (en) * 2005-07-29 2017-03-28 Sap Se System and method for dynamic proxy generation
JP2007164526A (ja) * 2005-12-14 2007-06-28 Canon Inc 情報処理装置及び方法
US20070168509A1 (en) * 2005-12-30 2007-07-19 Droshev Mladen I System and method for remote loading of classes
CN100458700C (zh) * 2006-03-22 2009-02-04 北京握奇数据系统有限公司 带有安全需求的应用程序的构建方法和装置
CN101410904B (zh) * 2006-03-24 2011-09-14 松下电器产业株式会社 再现装置、调试装置、系统lsi、程序
US8626557B2 (en) * 2006-09-26 2014-01-07 International Business Machines Corporation System and method of providing snapshot to support approval of workflow changes
US20090070752A1 (en) * 2007-09-06 2009-03-12 International Business Machines Corporation Method and system for optimization of an application
US8261254B2 (en) * 2008-03-31 2012-09-04 Symantec Corporation Dynamic insertion and removal of virtual software sub-layers
US8631397B2 (en) 2008-03-31 2014-01-14 Microsoft Corporation Virtualized application image patching
US8577845B2 (en) * 2008-06-13 2013-11-05 Symantec Operating Corporation Remote, granular restore from full virtual machine backup
US8479178B2 (en) * 2008-06-27 2013-07-02 Microsoft Corporation Compiler in a managed application context
US9507613B2 (en) * 2012-03-30 2016-11-29 Oracle International Corporation Methods and apparatus for dynamically preloading classes
US9952879B2 (en) * 2012-08-30 2018-04-24 Microsoft Technology Licensing, Llc Application pre-layout in byte-addressable persistent random access memory
US9740500B2 (en) * 2012-08-30 2017-08-22 Microsoft Technology Licensing, Llc Layout system for operating systems using BPRAM
US9753846B2 (en) * 2012-09-06 2017-09-05 Red Hat, Inc. Adjusting the operating memory used by a virtual machine during runtime
US11347498B2 (en) * 2013-02-26 2022-05-31 Red Hat, Inc. Bytecode modification
US9959106B2 (en) * 2013-11-14 2018-05-01 International Business Machines Corporation Sharing of portable initialized objects between computing platforms
KR20160019125A (ko) * 2014-08-11 2016-02-19 동부대우전자 주식회사 냉장고
US9811367B2 (en) 2014-11-13 2017-11-07 Nsp Usa, Inc. Method and apparatus for combined hardware/software VM migration
US10303782B1 (en) 2014-12-29 2019-05-28 Veritas Technologies Llc Method to allow multi-read access for exclusive access of virtual disks by using a virtualized copy of the disk
US10394528B2 (en) 2016-03-30 2019-08-27 Oracle International Corporation Returning a runtime type loaded from an archive in a module system
US10191753B2 (en) 2016-03-30 2019-01-29 Oracle International Corporation Generating verification metadata and verifying a runtime type based on verification metadata
CN110806910A (zh) * 2018-07-18 2020-02-18 深圳市鸿合创新信息技术有限责任公司 一种轮播图的优化方法及系统、电子设备
CN109241011B (zh) * 2018-09-21 2023-01-06 联想(北京)有限公司 一种虚拟机文件处理方法及装置

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA226747A (en) * 1922-12-05 F. Exhart Charles Lighting mixture
US4695950A (en) * 1984-09-17 1987-09-22 International Business Machines Corporation Fast two-level dynamic address translation method and means
DE69230890T2 (de) 1991-10-31 2000-12-07 Matritech Inc Bestimmung von nukleären matrixproteinen in flüssigkeiten
US6400996B1 (en) * 1999-02-01 2002-06-04 Steven M. Hoffberg Adaptive pattern recognition based control system and method
US5581768A (en) * 1995-02-27 1996-12-03 Intel Corporation Method and apparatus for executing applications in place from write once/seldom memories
KR100618756B1 (ko) * 1996-01-24 2007-05-04 선 마이크로시스템즈 인코퍼레이티드 네트워크또는로컬메모리로부터수신된명령세트를실행하는프로세서및컴퓨터시스템
US5838910A (en) 1996-03-14 1998-11-17 Domenikos; Steven D. Systems and methods for executing application programs from a memory device linked to a server at an internet site
US5815709A (en) 1996-04-23 1998-09-29 San Microsystems, Inc. System and method for generating identifiers for uniquely identifying object types for objects used in processing of object-oriented programs and the like
US5815718A (en) 1996-05-30 1998-09-29 Sun Microsystems, Inc. Method and system for loading classes in read-only memory
JP2000514584A (ja) 1996-10-25 2000-10-31 シュルンベルジェ システーム 高級プログラミング言語を用いたマイクロコントローラ
WO1998021655A1 (en) * 1996-11-13 1998-05-22 Paran, Arik Real time program language accelerator
GB2321981B (en) 1997-02-06 2002-01-09 Ibm Hosted machine code installation
US5920720A (en) 1997-02-25 1999-07-06 Microsoft Corporation Efficient computer based virtual machine object structure
US5943496A (en) * 1997-05-17 1999-08-24 Intertop Corporation Methods for developing and instantiating object classes using a java virtual machine extension
US6021273A (en) 1997-06-30 2000-02-01 Sun Microsystems, Inc. Interpreter generation and implementation utilizing interpreter states and register caching
US6349344B1 (en) * 1997-12-16 2002-02-19 Microsoft Corporation Combining multiple java class files into a run-time image
US6658492B1 (en) * 1998-03-20 2003-12-02 Sun Microsystems, Inc. System and method for reducing the footprint of preloaded classes
US6199196B1 (en) 1998-03-20 2001-03-06 Sun Microsystems, Inc. Methods and apparatus for linking a program for remote execution
US5999732A (en) 1998-03-23 1999-12-07 Sun Microsystems, Inc. Techniques for reducing the cost of dynamic class initialization checks in compiled code
US6061520A (en) * 1998-04-07 2000-05-09 Sun Microsystems, Inc. Method and system for performing static initialization
US6110227A (en) * 1998-06-24 2000-08-29 Microsoft Corporation Systems and methods for pre-processing variable initializers
US6438744B2 (en) 1998-07-15 2002-08-20 Microsoft Corporation Dynamic mapping of component interfaces
KR20010072477A (ko) * 1998-08-13 2001-07-31 썬 마이크로시스템즈, 인코포레이티드 가상 머신 환경에서 네이티브 코드를 변환하고 실행하는방법 및 장치
US6336122B1 (en) 1998-10-15 2002-01-01 International Business Machines Corporation Object oriented class archive file maker and method
CA2255042C (en) * 1998-11-30 2004-04-13 Leonard W. Theivendra Class loader
US6272674B1 (en) * 1998-12-14 2001-08-07 Nortel Networks Limited Method and apparatus for loading a Java application program
CA2267477C (en) 1999-03-30 2003-10-14 Object Technology International Inc. Packaging memory image files
US6763397B1 (en) * 1999-05-27 2004-07-13 Sun Microsystems, Inc. Fully lazy linking
US6460178B1 (en) 1999-06-30 2002-10-01 Microsoft Corporation Shared library optimization for heterogeneous programs
US6813762B1 (en) * 2000-02-22 2004-11-02 Freescale Semiconductor, Inc. Method for processing program files in a programming language capable of dynamic loading
US20020194293A1 (en) 2001-06-13 2002-12-19 Osman John H. Communications system and method therefor

Also Published As

Publication number Publication date
US20060225059A1 (en) 2006-10-05
WO2002073401A2 (en) 2002-09-19
EP1425658A2 (en) 2004-06-09
CN1524219A (zh) 2004-08-25
KR20040004551A (ko) 2004-01-13
US8099729B2 (en) 2012-01-17
JP2005509194A (ja) 2005-04-07
WO2002073401A3 (en) 2004-04-01
US7080373B2 (en) 2006-07-18
KR100864192B1 (ko) 2008-10-20
CN1306402C (zh) 2007-03-21
AU2002248212A1 (en) 2002-09-24
US20020129078A1 (en) 2002-09-12

Similar Documents

Publication Publication Date Title
TWI229269B (en) Method and device for creating and using pre-internalized program files
JP5518085B2 (ja) ランタイムにおいて生成したコードのキャッシュへの格納
EP4099153B1 (en) Extending a virtual machine instruction set architecture
US6944846B2 (en) Algorithm for localization of a JAVA application using reflection API and a custom class loader
US8392906B2 (en) Enabling parallel websphere runtime versions
US10048960B2 (en) Identifying source code used to build executable files
US20160232017A1 (en) System and Method for Reloading Constructors
US8141035B2 (en) Method for accessing internal states of objects in object oriented programming
US20070169018A1 (en) Method and an apparatus for translating programming language code
JPH11327916A (ja) コンパイル済コ―ドにおけるダイナミッククラス初期化チェックのコスト低減技術
JPH10283189A (ja) 内蔵実行可能アプリケーション及びコンピュータ読み取り可能な記憶媒体並びに内蔵実行可能アプリケーションの作成方法及びその作成システム
US8001518B2 (en) Configuring a shared library to accommodate relocatable data in a pervasive device
JPH0644085A (ja) アクセスを実行する方法及び装置並びにコンピュータシステム
US20070169017A1 (en) Method and apparatus for translating an application programming interface (API) call
US20060168567A1 (en) Preserving platform independence with native accelerators for performance critical program objects
US9742948B2 (en) Image forming apparatus and method for deleting application
CN112363726A (zh) 一种内核模块的跨内核版本编译方法及系统
CN111880804A (zh) 应用程序代码的处理方法及装置
US9940334B2 (en) Image forming apparatus and control method thereof
JP2008059482A (ja) 情報処理装置、情報処理方法
CN116204199B (zh) 基于命令行的项目管理方法、系统、设备及存储介质
Solis et al. C# and the. NET Framework
JP2003256209A (ja) プログラム実行装置
KR100945151B1 (ko) 외부 메모리 상의 가상머신 기반 모바일 응용 프로그램을효과적으로 실행하는 모바일 미디어 장치 및 동작 방법

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees