国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      應用執(zhí)行裝置及方法

      文檔序號:6559240閱讀:198來源:國知局
      專利名稱:應用執(zhí)行裝置及方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及一種對于應用(application)執(zhí)行裝置在應用結(jié)束時回收不必要的資源的技術(shù)。
      對于一般的應用執(zhí)行裝置而言,操作系統(tǒng)的核心程序(kernel)通過應用結(jié)束等回收不必要的資源(存儲器、鍵盤等各種裝置)。這里,所謂“回收”是指核心程序等操作系統(tǒng)從應用中取回向應用提供的資源。核心程序為了進行資源的回收,在每個裝置中存儲資源回收的順序。因此,應用所使用的裝置變得不必要,核心程序根據(jù)該裝置的回收順序就能夠進行資源的回收,從而能夠有效地利用資源。
      另外,對于Java應用執(zhí)行裝置而言,例如在PC中,關(guān)于存儲器以外的其它資源的回收,Java中間設(shè)備(所謂的虛擬計算機)本身不回收資源,在Java損耗結(jié)束時,由核心程序回收資源。
      另一方面,通過Java中間件(middle ware)的“回收站”來進行存儲器的回收。所謂“回收站”是指回收存儲器區(qū)域中不必要的區(qū)域。在Java中,應用的下載通過向存儲器中下載構(gòu)成應用的多類的各種實例(以下稱為對象)來進行。存儲器區(qū)域由從執(zhí)行中的應用中下載的對象共有,在存儲器區(qū)域中,按下載的順序分配區(qū)域。因此,因為多個應用而連續(xù)地在存儲器區(qū)域中下載對象的情況下,從一個應用下載的各對象以不連續(xù)的形式分配在存儲器區(qū)域中。
      存儲器區(qū)域由下載的對象不連續(xù)地占有時,為了消除存儲器不足,進行無用單元的回收。但是,上述說明的資源回收處理技術(shù)中存在下述問題第一在由應用執(zhí)行裝置中的核心程序進行資源回收處理的情況下,每次向應用執(zhí)行裝置重新追加裝置,追加的裝置的回收順序必須被重新存儲在核心程序中。
      第二在Java應用執(zhí)行裝置中的資源回收處理的情況下,未結(jié)束Java中間設(shè)備而依次執(zhí)行應用時,因為核心程序的存儲器以外的資源的回收直到Java中間設(shè)備結(jié)束后才能進行,所以即使結(jié)束了一個應用,因為提供給該應用的資源未被回收,所以在下一應用有必要是同一資源的情況下,不能執(zhí)行下一應用。
      第三以不連續(xù)的形式分配給對象的存儲器區(qū)域變得不必要的情況下,存儲器區(qū)域的無用單元的回收的負荷變大。
      鑒于上述問題,本發(fā)明的第一個目的是提供一種不通過核心程序來執(zhí)行資源回收的應用執(zhí)行裝置。
      為了達到上述目的,本發(fā)明具有“權(quán)利要求1”的結(jié)構(gòu)。另外,也可是“權(quán)利要求2”的結(jié)構(gòu),或是“權(quán)利要求4”的結(jié)構(gòu),或是“權(quán)利要求33”的結(jié)構(gòu)。
      通過該結(jié)構(gòu),每當應用結(jié)束時,因為不是通過核心程序部而是通過程序庫部回收不必要的資源,所以每次追加新的資源時沒必要修正核心程序部。
      這里,也可以是“權(quán)利要求7”的結(jié)構(gòu)。
      根據(jù)該結(jié)構(gòu),因為只向?qū)τ诮Y(jié)束的應用提供資源的程序庫通知哪個是已結(jié)束的應用,所以不用徒勞地向不提供該資源的程序庫部進行通知,而能夠回收該資源。
      這里,也可以是“權(quán)利要求8”的結(jié)構(gòu)。
      根據(jù)該結(jié)構(gòu),因為程序庫部能夠全部回收向結(jié)束的多個應用提供的資源,所以可進行有效的資源的回收。
      這里,也可以是“權(quán)利要求17”的結(jié)構(gòu)。另外,還可以是“權(quán)利要求34”的結(jié)構(gòu)。
      根據(jù)該結(jié)構(gòu),對應于應用是中斷還是結(jié)束來判定是否應回收資源,并能夠回收指定部分的資源。
      本發(fā)明的第二個目的是提供一種Java應用執(zhí)行裝置,不必重新啟動Java中間設(shè)備也能連續(xù)地執(zhí)行Java應用。
      為了實現(xiàn)該目的,本發(fā)明具有“權(quán)利要求20”的結(jié)構(gòu)。另外,也可以是“權(quán)利要求35”的結(jié)構(gòu)。
      根據(jù)該結(jié)構(gòu),因為沒必要在每次應用結(jié)束時回收資源,所以可確保連續(xù)地執(zhí)行Java應用。
      這里,也可以是“權(quán)利要求26”的結(jié)構(gòu)。
      根據(jù)該結(jié)構(gòu),確保了Java中間設(shè)備部中的必要的資源,因為即使應用結(jié)束時也不回收該資源,所以可在較短的時間內(nèi)執(zhí)行新的應用。
      本發(fā)明的第三個目的是提供一種減輕無用單元回收處理的負荷的Java應用執(zhí)行裝置。
      為了實現(xiàn)該目的,本發(fā)明具有“權(quán)利要求37”的結(jié)構(gòu)。另外,也可以是“權(quán)利要求44”的結(jié)構(gòu),或是“權(quán)利要求51”的結(jié)構(gòu)。
      根據(jù)該結(jié)構(gòu),每當結(jié)束應用時,釋放分配給結(jié)束應用的大量分割區(qū)域,因為在釋放的大量分割區(qū)域的內(nèi)部不需要無用單元回收,所以可減輕無用單元回收的負荷。
      這里,可以是“權(quán)利要求38”的結(jié)構(gòu)。另外,也可是“權(quán)利要求45”的結(jié)構(gòu),或是“權(quán)利要求52”的結(jié)構(gòu)。
      根據(jù)該結(jié)構(gòu),因為將存儲器尺寸比大量存儲器區(qū)域整體小的大量分割區(qū)域作為對象來進行無用單元回收,所以能夠減輕一次無用單元回收的負荷。
      這里,可以是“權(quán)利要求39”的結(jié)構(gòu)。另外,也可是“權(quán)利要求46”的結(jié)構(gòu),或是“權(quán)利要求53”的結(jié)構(gòu)。
      根據(jù)該結(jié)構(gòu),因為在進行無用單元回收期間也可繼續(xù)執(zhí)行將該處理對象用作大量分割區(qū)域的應用以外的應用,所以用戶不用等待該處理的結(jié)束就可進行使用其它應用的操作。


      圖1是表示應用執(zhí)行裝置10的構(gòu)成的框圖;圖2表示定義為回收函數(shù)的C語言程序的一個實例;圖3表示記述了回收函數(shù)的登記和呼叫出執(zhí)行的C語言程序的實例;圖4是表示各程序庫部進行資源提供處理的流程圖;圖5表示將控制文件系統(tǒng)的程序庫部(下面稱為程序庫部F)保持的應用標識符和資源名(文件名)進行編組的表;圖6是表示各程序庫部進行資源回收處理的流程圖;圖7表示多個應用一起結(jié)束的情況下的各程序庫部進行資源回收處理的流程圖;圖8是表示應用執(zhí)行裝置20的結(jié)構(gòu)的框圖;圖9是表示定義接口的Java程序的實例;圖10表示生成應用信息接口的類的一個實例;圖11表示資源回收類的一個實例;圖12表示生成資源回收類的資源回收接口的實例;圖13是表示各程序庫進行資源提供的處理的流程圖;圖14是表示在應用信息接口存儲知道應用狀態(tài)的方法和消除資源回收接口的登記的方法的情況下各程序庫部進行回收處理的流程圖;圖15是表示應用執(zhí)行裝置30的結(jié)構(gòu)的框圖;圖16表示應用和對應于應用生成的任務(wù)和構(gòu)成任務(wù)的寄存器的對應關(guān)系的表的實例;圖17是表示應用終止時應用管理部33b進行處理的流程圖;圖18是表示分分類庫部進行監(jiān)聽程序管理的處理的流程圖;圖19是保持分類庫部的表實例;圖20是表示通知發(fā)生事件的處理的流程圖;圖21是表示分類庫部進行監(jiān)聽程序呼叫處理的流程圖;圖22是使用鍵將從專用寄存器呼叫的監(jiān)聽程序的順序的實例模式化的圖;圖23是表示VM部33a獲得系統(tǒng)專用的寄存器的處理的流程圖;圖24是表示應用執(zhí)行裝置40的結(jié)構(gòu)的框圖;圖25表示對應用管理部43b保持的類加載器的實例對應的應用ID進行分組的表實例;圖26是表示應用管理部43b生成的類加載器的實例和任務(wù)的關(guān)系的模式圖;圖27表示將提供的資源的資源名和應用ID分組的表的實施;圖28是表示應用執(zhí)行裝置100的結(jié)構(gòu)的框圖;圖29是表示大量存儲器區(qū)域管理表104f與存儲器105的狀態(tài)的圖;圖30是表示由VM部103接受對象區(qū)域獲得指示后的應用執(zhí)行裝置100的對象區(qū)域獲得的動作的流程圖;圖31是表示應用終止時的應用執(zhí)行裝置100的分割大量區(qū)域的釋放動作的流程圖;圖32是表示系統(tǒng)大量區(qū)域105-1登記在存儲器大量區(qū)域管理表104f中的狀態(tài)的圖。
      實施例1根據(jù)本實施例中的應用執(zhí)行裝置,在每次應用結(jié)束等時不是由核心程序、而是由程序庫部進行向應用提供的資源的回收。
      這里,“應用”是指程序和因執(zhí)行程序而產(chǎn)生的功能中的任一個。所謂“資源”是指調(diào)諧器、MPEG音頻解碼器、MPEG視頻解碼器、鍵盤輸入裝置、遙控輸入裝置、鼠標輸入裝置、跟蹤板輸入裝置、互斥體(ミユ-テツクス)、信號標志(semaphore)、網(wǎng)絡(luò)裝置、串行裝置、IEEE1394(串行接口)、USB(通用串行總線)裝置接口、文件系統(tǒng)、顯示裝置、存儲器、調(diào)制解調(diào)器等。程序庫部是響應于應用請求對資源進行控制(資源的確保、管理、回收)的所謂裝置驅(qū)動組。
      具體而言,程序庫部對應于來自應用的資源提供請求提供資源的時候,取得識別請求資源提供的應用的標識符,將提供的資源和取得的應用標識符分組后保持在表中。因此,當結(jié)束應用時,取得結(jié)束的應用的應用標識符,從表指定對應于取得的標識符的資源,并回收指定的資源。
      下面利用附圖來說明本應用執(zhí)行裝置的實施例。圖1是表示應用執(zhí)行裝置10的結(jié)構(gòu)的框圖。應用執(zhí)行裝置10由應用輸入部11、應用存儲部12、核心程序部13、程序庫存儲部14、裝置部15、指示通知部16構(gòu)成。
      應用輸入部11由軟盤驅(qū)動器、CD驅(qū)動器、網(wǎng)絡(luò)接口板、廣播接收機等構(gòu)成,接收應執(zhí)行的應用,存儲在應用存儲部12中。
      應用存儲部12由RAM、ROM、硬盤、CD驅(qū)動器、軟盤等構(gòu)成,存儲從應用輸入部11輸出的應用或事先存儲的應用。
      核心程序部13由依次執(zhí)行部13a、資源回收通知部13b、標識符提供部13c構(gòu)成,執(zhí)行應用存儲部12存儲的應用。
      依次執(zhí)行部13a在執(zhí)行的應用為二進制程序的情況下,由照樣執(zhí)行二進制程序的CPU等構(gòu)成。執(zhí)行的應用在Java字節(jié)代碼(Java為美國Sun Microsystems,Inc.的商標)這種中間代碼的情況下,由依次解析中間代碼并執(zhí)行的模塊(虛擬計算機或轉(zhuǎn)換機)等構(gòu)成。依次執(zhí)行部13a讀出應用存儲部12存儲的應用并執(zhí)行。之后,從執(zhí)行應用向存儲在的程序庫存儲部14中的程序庫部請求提供資源,從程序庫部接收應用請求的資源提供。
      資源回收通知部13b對于每次應用結(jié)束等時向該應用提供資源的程序庫部通知資源回收指示和該應用標識符。具體而言,資源回收通知部13b從程序庫存儲部14存儲器的程序庫部接收回收函數(shù)的登記,從指示通知部16接收應用結(jié)束或中斷的通知時,呼叫登記的回收函數(shù)并執(zhí)行,向程序庫部通知該應用的標識符。
      這里,所謂的“回收函數(shù)的登記”是指對應于程序庫部的應用請求,向該應用開始提供新的資源時,委托資源回收通知部13b,“若該應用結(jié)束或中斷,通過呼叫回收函數(shù)并執(zhí)行來通知該程序庫部,中斷或結(jié)束的應用為哪個”。
      圖2表示定義回收函數(shù)的C語言程序的一個實例。CALLBACK-f表示回收函數(shù)的類型名。該回收函數(shù)沒有返回值,自變量為整數(shù)值。圖3表示記錄回收函數(shù)的登記、消除和執(zhí)行的C語言程序的實例。行序號6-14表示登記的程序?qū)嵗?,行序?6-20表示消除的程序?qū)嵗行蛱?2-26表示執(zhí)行的程序?qū)嵗?br> 標識符提供部13c對應于來自程序庫部的請求提供應用的標識符。
      程序庫存儲部14由控制作為資源的裝置的多個程序庫部14a-14n構(gòu)成。各程序庫部控制裝置部15對應的裝置(例如程序庫部14a控制裝置15a,程序庫部14b控制裝置15b。)。實際上,程序庫存儲部14由ROM或硬盤構(gòu)成,在各程序庫部中,通過記錄裝置控制用的函數(shù)組的程序向應用呼叫后執(zhí)行來實現(xiàn)裝置的控制。
      具體而言,各程序庫部通過進行如下所示的處理來控制資源。對應于應用的請求來提供資源,將回收函數(shù)登記在資源回收通知部13b中。接著,從應用識別部13c中取得請求資源的應用的應用標識符,將提供的資源的資源名分成組后保持在表中。之后,由資源釋放通知部13b執(zhí)行登記的回收函數(shù),通知使用應回收的資源的應用的應用標識符時,從保持的表來指定對應于通知的應用標識符的資源名,回收指定的資源名的資源。
      下面,參照圖4來說明各程序庫部對應于應用的請求進行資源提供的處理。圖4是表示各程序庫部進行資源提供處理的流程圖。各程序庫部對應于應用的請求確保資源(S301),判斷是否已登記了回收函數(shù)(例如設(shè)定標志,判斷登記、未登記)(S302),在未登記的情況下(S302:N),在資源回收通知部13b中登記回收函數(shù)(S303)。
      接著,呼叫標識符提供部13c,取得請求資源的應用的應用標識符(S304),將取得的應用標識符和確保的資源的資源名分組后保持在表中(S305),向應用提供資源(S306)。在登記的情況下(S302:Y),不重新登記回收函數(shù),執(zhí)行S304-S306。
      上述表的實例如圖5所示。圖5表示將控制文件系統(tǒng)的程序庫部(下面稱為程序庫部F)保持的應用標識符和資源名(文件名)分組的表。圖5-(1)表示程序庫部向資源釋放通知部13b登記回收函數(shù),對應于應用標識符“1”的應用來提供文件名“a.txt”的資源。應用通過呼叫程序庫部F的函數(shù)來請求提供資源時,程序庫部F確保文件名“b.txt”的資源,從標識符提供部13c取得應用標識符“2”。此時,程序庫F的回收函數(shù)因為已登記而不再登記。程序庫部F將取得的應用標識符“2”和確保資源的文件名“b.txt”分組后保持在表中,如圖5-(2)所示更新表。
      接著,參照圖6來說明各程序庫部進行的資源回收處理。圖6是表示各程序庫部進行的資源回收處理的流程圖。當呼叫回收函數(shù)時,各程序庫部通過資源回收通知部13b取得應用標識符(S401),取出一組保持在表中的應用標識符和資源名(S402),將取出的應用標識符與由資源回收通知部13b取得的應用標識符進行比較(S403)。當應用標識符一致時,回收取出的組的資源名資源(S404),從表中消除該組(S405),當結(jié)束與保持在表中的全部組的比較時(S406:Y),結(jié)束處理。例如在圖5-(2)的表實例中,在取得應用標識符為“2”的情況下,從表中消除對應于應用標識符“2”的文件名“b.txt”(圖5-(3))。當與全部組的比較未結(jié)束時(S406:N),取出下一組(S402),重復同樣的處理(S403-S406)。當應用標識符不一致時,在結(jié)束了與保持在表中的全部組的比較的情況下(S406:Y),結(jié)束處理。在未結(jié)束與全部組的比較的情況下(S406:N),取出下一組(S402),重復同樣的處理(S403-S406)。
      裝置15a-15n包含存儲器、顯示器、輸入裝置(鍵盤、遙控等)、文件系統(tǒng)、網(wǎng)絡(luò)裝置等,各裝置對應于來自通過程序庫存儲部14存儲的各程序庫部所構(gòu)成的應用的控制進行動作。
      指示通知部16進行應用的開始、停止、再開始、結(jié)束的處理。
      所謂的應用的開始處理是指指示依次執(zhí)行部13a中應用存儲部12存儲的應用的執(zhí)行。
      所謂的應用停止處理是指中斷在依次執(zhí)行部13a中執(zhí)行的應用,如果必要則向資源回收通知部13b通知應用的中斷。
      所謂應用的再開始處理是指指示在依次執(zhí)行部13a中中斷的應用的執(zhí)行。
      所謂應用結(jié)束的處理是指指示依次執(zhí)行部13a中執(zhí)行的應用的結(jié)束,向資源回收通知部13b通知應用的結(jié)束。
      在本實施例中,在應用結(jié)束或中斷時向應用提供資源的各程序庫部通知的應用標識符為一個,但在多個應用同時結(jié)束的情況下,也可向各程序庫部通知多個應用標識符。此時的各程序庫部進行的資源回收處理的流程如圖7所示。通過資源回收通知部13b取得提供各程序庫部回收資源的多個應用的標識符(S751),取出一個取得的應用標識符(S752),取出一組保持在表中的應用標識符和資源名(S753),將取出的應用標識符與由資源回收通知部13b取得的應用標識符進行比較(S754)。當應用標識符一致時(S754:Y),將對應的資源名作為回收對象的資源名來保持(S755),從表中消除該組(S756),當結(jié)束與保持在表中的全部組的比較時(S757:Y),取得下一個應用標識符(S758、S752),重復同樣的處理。在結(jié)束了對應于S751中取得的全部組的應用標識符的比較時(S758:Y),回收所有對應于S755中作為回收對象的資源名保持的資源名的資源(S759)。
      由此,程序庫部可有效地進行資源回收。例如,(一個)程序庫部管理的資源全部回收以結(jié)束多個應用的情況下,能夠僅以初始化管理表的處理來迅速回收資源。
      (實施例2)在根據(jù)實施例1中,程序庫部在結(jié)束應用等情況下在每個程序庫部中登記呼叫的回收函數(shù),但在本實施例中,生成相當于實施例1的回收函數(shù)的資源回收接口,回收每次應用結(jié)束等時提供給應用的資源。這里,“資源回收接口”是指從程序庫部存儲的類(Java字節(jié)代碼的程序)生成的、記錄各種信息和作為取出該信息用的函數(shù)的方法的程序,資源回收接口保持取出請求資源提供的應用和提供資源信息這些信息用的方法。通過在程序上呼叫該方法來取出保持的信息。
      下面利用附圖來說明本應用執(zhí)行裝置的實施例。圖8是表示應用執(zhí)行裝置20的結(jié)構(gòu)的框圖。應用執(zhí)行裝置20由應用輸入部11、應用存儲部12、OS部23、程序庫存儲部24、裝置部15、指示通知部16構(gòu)成。應用輸入部11、應用存儲部12、裝置部15、指示通知部16與包含于實施例1的執(zhí)行裝置10的相同,所以省略其說明。
      OS部23由虛擬計算機23a、應用管理部23b構(gòu)成,執(zhí)行應用存儲部12存儲的Java應用(以下稱為應用)。
      虛擬計算機機23a從應用存儲部12下載應用,依次解析應用的字節(jié)代碼,執(zhí)行應用。另外,通過存儲在程序庫存儲部24中的各程序庫部來控制存儲在裝置部15中的各裝置。實際上,從虛擬計算機23a執(zhí)行的應用來呼叫作為記錄裝置控制的程序的各程序庫部的類,通過執(zhí)行類的程序來實現(xiàn)各裝置的控制。
      應用管理部23b管理執(zhí)行的應用,另外,具有相當于實施例1的標識符提供部13c的功能。具體而言,應用管理部23b從定義存儲應用信息的處理的類在每個應用中生成執(zhí)行處理的實例,在生成的各實例(這里,稱為應用信息實例)中,存儲執(zhí)行的各應用的應用標識符,使用生成的各應用信息實例(圖8的23c-23e)來管理執(zhí)行的應用。另外,各程序庫部請求從應用提供資源時,提供作為指定請求應用的標識符的應用信息實例。這里,取代將各應用的標識符存儲在各應用信息實例內(nèi),也可將應用信息實例作為應用的標識符。
      各應用信息實例具有相當于實施例1的資源回收通知部13b的功能。具體而言,進行以下的處理。各應用信息實例從各程序庫接收資源回收實例的登記。這里,所謂“資源回收實例的登記”是指當程序庫部向應用提供新的資源時,委托存儲該應用標識符的應用信息實例,“如果該應用結(jié)束或中斷時,通知該程序庫部,通知該應用為哪一個”。上述通知通過呼叫登記時生成的資源回收實例中安裝的方法來執(zhí)行。資源回收實例從各程序庫部存儲的各類來如下所示生成。各類通過安裝“接口”來安裝“接口”定義的方法?!敖涌凇倍x應安裝于類中的方法。圖9是該接口的一個實例。在該實例中,Resource CollectionListener接口定義update方法。各程序庫部存儲的各類通過安裝該接口來準備記錄在update方法中的資源回收處理類,由準備的類生成安裝該接口的資源回收實例,在應用信息實例中登記生成的資源回收實例。通過該處理,在生成的資源回收實例中,保證了安裝接口定義的方法(這里指update方法),通過呼叫該接口定義的方法來執(zhí)行上述通知。
      另外,應用結(jié)束或中斷的情況下,存儲該應用標識符的應用信息實例通過安裝在登記的資源回收實例中的方法(這里指update方法)來向該應用提供資源的程序庫部進行上述通知。
      之后,應用信息實例也可存儲消除登記的資源回收實例的方法,也可存儲了解應用狀態(tài)的方法。
      圖10表示生成存儲上述方法的應用信息實例的類的一個實例。圖10中,生成應用信息實例的作為類的application Propoxy定義相當于應用名(application name)的內(nèi)部變量和了解應用狀態(tài)的gets tatus方法、登記資源回收實例(resource Collection Lister)的add Listener方法、消除資源回收實例的登記的remove Listener方法。
      程序庫存儲部24由多個程序庫部24a-24n構(gòu)成。各程序庫部控制裝置部15的裝置15a-15n,對應于應用的請求來進行作為資源的裝置提供的處理和提供資源回收的處理。實際上,程序庫存儲部24由ROM或硬盤構(gòu)成,在各程序庫部中,通過向應用呼叫并執(zhí)行記錄在作為裝置控制用的程序的類組中的程序來實現(xiàn)裝置的控制。
      首先說明資源提供處理。各程序庫部被請求從應用提供資源時,向應用提供所請求的資源,呼叫應用管理部23b,取得對應于該應用的應用信息實例,從資源回收類生成資源回收實例,將生成的資源回收實例登記在該應用信息實例中。之后,各程序庫部將提供的資源的資源名和該應用信息實例分組后保持在資源回收實例中。
      圖11表示資源回收類的一個實例。在圖11中,定義控制文件系統(tǒng)的資源回收類。具體而言,定義稱為資源回收實例生成時生成的“區(qū)域”的內(nèi)部變量app(相當于應用信息實例)和name(相當于資源的文件名)的信息和在應用結(jié)束或中斷時呼叫、執(zhí)行資源回收處理的update方法。圖12表示圖11的資源回收類生成的資源回收實例的實例。901表示保持資源回收實例的實例表,902、903表示生成的資源回收實例。圖12-(1)表示將資源回收信息實例902提供的資源名(這里為文件名“a.txt”)和應用信息實例(這時作為“1”)分組后保持。圖12-(2)表示程序庫向在與圖12-(1)不同的應用信息實例“2”中管理的應用提供資源(文件名為“b.txt”的文件)并重新生成資源回收實例903。
      下面利用圖13來詳細說明資源提供的處理。圖13是表示各程序庫部進行資源提供的處理的流程圖。各程序庫部被請求從應用提供資源時,對應于請求來確保資源(S1001),從應用管理部23b取得對應于該應用的應用信息實例(S1002)。接著,取出一個保持的資源回收實例(S1003),比較從應用管理部23b中取得的應用信息實例和保持在取出的資源回收實例中的應用信息實例(S1004)。當應用信息實例一致的情況下(S1004:Y),在保持該應用信息實例的資源回收實例中保持確保的資源的資源名(S1005),向該應用提供確保的資源(S1009)。另一方面,在S1004中,當應用信息實例不一致的情況下(S1004:N),相對于保持的其它全部資源回收實例進行應用信息實例的比較(S1006),如果一致(S1006:Y)則重新生成資源回收實例,在生成的資源回收實例中,將從應用管理部23b取得的應用信息實例和確保的資源的資源名分組后保持(S1007),將生成的資源回收實例登記在對應于請求資源確保的應用的應用信息實例中(S1008),向應用提供確保的資源(S1009)。
      接著,說明資源回收處理。程序庫部在應用結(jié)束或中斷時,從存儲該應用標識符的應用信息實例中呼叫對應的資源回收實例的方法時,回收對應于保持在該資源回收實例中的資源名的資源。
      對在上述情況下的準備了解應用信息實例中的應用狀態(tài)的方法(下面稱為應用狀態(tài)方法)和消除資源回收實例的登記的方法的情況下的資源回收處理進行說明。圖14是表示應用信息實例具有應用狀態(tài)方法的情況下的程序庫部進行回收處理的流程圖。程序庫部從應用信息實例中呼叫登記的資源回收實例的方法時,呼叫保持在資源回收實例中的應用信息實例的應用狀態(tài)方法,取得應用中斷或結(jié)束的信息(S1101),基于取得的信息來判定是否回收資源(S1102),在回收資源的情況下,回收對應于保持在該資源回收實例中的資源名的資源(S1103),呼叫消除該資源回收實例的登記的方法,通過執(zhí)行該方法來釋放該資源回收實例(S1104)。
      另外,S1102中的判定也可以是不是使用應用的全部資源的、所謂回收指定部分資源的判定。這時,S1104中的資源回收實例的釋放在回收全部資源時進行。
      (實施例3)本實施例中的應用執(zhí)行裝置在每個應用中生成線程(thread),在生成的線程中確保應用請求的資源,OS部通過以與生成的線程對應的對象單位進行每次應用結(jié)束時向結(jié)束的應用提供的資源釋放來回收不要的資源,從而可能不結(jié)束Java中間設(shè)備(所謂的虛擬計算機)而執(zhí)行下一個應用。這里,所謂“線程”是指依次執(zhí)行應用的程序代碼的范圍(一連串的處理流程)。Java中記錄的應用生成多個線程,各個線程能夠并列后執(zhí)行應用的程序代碼。在本實施例中,所謂“對象”是執(zhí)行應用的多個線程的集合。在本實施例中,分配給應用的資源與該“對象”相互關(guān)聯(lián)地被管理。
      下面利用附圖詳細說明本應用執(zhí)行裝置的實施例。圖15是表示應用執(zhí)行裝置30的結(jié)構(gòu)的框圖。應用執(zhí)行裝置30由應用輸入部11、應用存儲部12、Java中間設(shè)備部33、OS部34、硬件部35、指示通知部36構(gòu)成。
      因為應用輸入部11、應用存儲部12與包含在實施例1的執(zhí)行裝置10中的相同,所以省略其說明。
      Java中間設(shè)備部33由VM(虛擬計算機)部33a、應用管理部33b、分類庫存儲部33c構(gòu)成,執(zhí)行應用存儲部12存儲的應用。
      VM部33a執(zhí)行應用。
      具體而言,VM部33a進行如下所示的處理。包含于硬盤35中的CPU35a能夠執(zhí)行以字節(jié)代碼記錄的應用,依次翻譯成二進制代碼,在CPU35a中執(zhí)行翻譯的二進制代碼。
      另外,VM部33a確保在自己的動作和應用執(zhí)行中所必需的資源。
      具體而言,VM部33a呼叫包含于分類庫存儲部33c中的各分類庫部,通過各分類庫部來確保自己動作中所必需的資源。另外,在應用執(zhí)行中從應用來請求資源的確保時,呼叫包含于分類庫存儲部33c中的各分類庫部,通過各分類庫部來確保應用所請求的資源。
      另外,VM部33a在從應用來請求結(jié)束處理的線程消除時,委托核心程序34a來消除線程。
      應用管理部33b進行應用啟動處理、應用執(zhí)行中追加或消除線程索表(thread)的管理、應用結(jié)束的處理。
      首先來說明應用啟動的處理。應用管理部33b從指示通知部36接收應用開始指示時,在核心程序34a中生成對象和屬于對象的最初線程,在VM部33a中生成的最初線程中,通過執(zhí)行應用來確保VM部33a的動作中所必需的資源,啟動應用。
      接著說明應用執(zhí)行中追加或消除線程的管理。應用管理部33b通過保持表示應用和對應于應用生成的對象和構(gòu)成對象的線程的對應關(guān)系表、并通過每次更新通過應用的請求來追加或消除線程的表,對應于應用和對象來管理線程。圖16中表示表的實例。圖16-(1)中,為執(zhí)行中的兩個應用,表示對于應用ID“1”的應用生成對象ID“201”的對象,對象ID“201”的對象由線程ID“1”和“2”的線程構(gòu)成,對于應用ID“2”的應用生成對象ID“202”的對象,對象ID“202”的對象由線程ID“4”、“5”、“6”的線程構(gòu)成,圖16-(2)表示在應用ID“1”的應用執(zhí)行中,生成新的線程(線程ID“7”的線程),生成的線程的線程ID“7”被追加到表中,圖16-(3)表示在應用“2”的應用執(zhí)行中消除線程ID“5”的線程。
      最后說明應用結(jié)束的處理。圖17為表示應用結(jié)束時應用管理部33b進行處理的流程圖。應用管理部33b從指示通知部36接收應用結(jié)束的指示,向核心程序34a通知對應于結(jié)束的應用的對象ID,依賴于資源回收(S801),下面,向包含在分類庫存儲部33c中的各分類庫部通知結(jié)束的應用的ID(S802),最后,為了生成對應于結(jié)束的應用的對象,釋放確保的存儲器后結(jié)束對象(S803),由此,進行應用結(jié)束的處理。例如,在圖16-(3)的實例中,在應用ID“2”的應用結(jié)束的情況下,應用管理部33b向核心程序34a通知對應于應用ID“2”的對象ID“202”,依賴于核心程序34a中的對應于對象ID“202”的資源回收,接著向分類庫部通知結(jié)束的應用ID“2”,最后,釋放存儲器,結(jié)束生成的對象“202”和包含于其中的線程“4”和“6”。
      分類庫存儲部33c由多個分類庫部33c1-33cn構(gòu)成,各分類庫部控制作為包含于硬件部35中的資源的裝置,進行資源提供處理、聽眾的管理和聽眾呼叫的處理。
      實際上,分類庫部33c由ROM或硬盤等構(gòu)成,在各分類庫部中,通過向應用呼叫后執(zhí)行記錄在作為裝置控制用的程序的類組中的程序來實現(xiàn)裝置的控制。
      首先,說明各分類庫部進行資源提供的處理。當分類庫部請求提供從VM部33a執(zhí)行的應用呼叫的作為資源的裝置時,呼叫對應于存儲在OS部34的程序庫存儲部34b中該裝置的程序庫部,提供被請求的資源。
      下面說明各分類庫部進行聽眾管理的處理。分類庫部生成從VM33a執(zhí)行的應用呼叫的、聽眾登記的、進行呼叫登記的聽眾的處理的線程(下面稱為專用線程)。通過分類庫部的專用線程的生成在執(zhí)行應用的線程中執(zhí)行。分類庫部生成作為屬于執(zhí)行的應用的對象的線程的呼叫聽眾的專用線程。
      這里,所謂聽眾是指接受事件(通過由用戶進行遙控呼叫操作或從對方先切斷調(diào)制解調(diào)器等的裝置的狀態(tài)變化)發(fā)生的連絡(luò)的類或接口,在聽眾中,定義發(fā)生事件時呼叫的方法,呼叫該方法,通過執(zhí)行方法來進行事件的處理。在事件發(fā)生時呼叫登記的聽眾。例如,當發(fā)生由用戶的遙控操作呼叫的事件時呼叫定義為登記的聽眾的方法,通過執(zhí)行呼叫的方法來處理事件。
      另外,所謂“聽眾登記”是指應用委托監(jiān)視該事件的分類庫部“當發(fā)生事件時通知該應用”。通過該分類庫部在聽眾登記時呼叫定義為該聽眾的方法來執(zhí)行上述通知。
      另外,分類庫部進行聽眾登記時呼叫應用管理部33b,取得進行聽眾登記的應用ID。應用管理部33b通過進行以下處理來特指定應用的ID,向分類庫部提供指定的ID。應用管理部33b取得進行呼叫的線程的線程類的實例,使用從該實例中取出作為實例保持的散列碼值的方法的hashcode函數(shù),指定進行呼叫的實例的ID(線程ID),從表示應用管理部33b管理的應用ID和線程ID的對應關(guān)系的表來指定對應于線程ID的應用ID,向分類庫部提供指定的ID。這里,取出的散列碼值為分配給各實例的識別序號(ID),以通過VM部33a高效地管理由類生成的實例。各分類庫部對應于應用管理部33b提供的應用ID和生成的專用線程的ID以及登記的聽眾的ID以保持在表中。
      圖18是表示分類庫部進行聽眾管理處理的流程圖。
      當為了聽眾登記而由VM部33a執(zhí)行的應用發(fā)出呼叫時,分類庫部呼叫應用管理部33b,取得進行聽眾登記的應用的ID(S501),從表示登記的聽眾、專用線程、應用ID的對應關(guān)系的表取出一組應用ID和線程以及聽眾(S502),比較該應用ID和取得的應用ID(S503)。
      在ID一致的情況下(S503:Y),對應于該ID向表追加重新進行聽眾登記的聽眾(S504)。在ID不一致的情況下(S503:N),取出保持在表中的下一組(S505、S502),重復同樣的處理。當沒有ID一致的情況下,結(jié)束ID的比較時(S505:Y),生成對應于重新登記的聽眾的專用線程(S506),向表追加取得的應用ID和生成的專用線程以及重新登記的聽眾組,并保持(S507)。
      由此,在保持在表中的應用進行多次聽眾登記的情況下,能夠由表指定對應于應用的專用線程,能夠?qū)谥付ǖ囊粋€專用線程來將由應用登記的多個聽眾集中在表中以保持。之后,因為能夠從一個專用線程呼叫對應的多個聽眾,所以不必每次從應用中生成聽眾登記的專用線程,因而能夠減少生成的線程的數(shù)量。
      圖19是分類庫部保持的表的實例。圖19-(1)表示應用ID“1”的應用登記聽眾“L1”和聽眾“L4”,生成對應于這些聽眾的專用線程“thread10”。圖19-(2)表示登記圖19-(1)的表中的聽眾“L6”,更新表。具體而言,聽眾登記聽眾“L6”時,分類庫部呼叫應用管理部33b,取得已進行聽眾登記的應用的應用ID(這里規(guī)定取得ID“2”),判定是否與保持在圖19-(1)的表的應用ID“1”一致,當判定為不一致時,重新生成專用線程,使生成的專用線程“thread20”和應用ID“2”以及聽眾“L6”相對應以保持在表中。圖19-(3)表示結(jié)束應用ID“1”的應用,從表中消除與保持在表中的應用ID“1”對應的專用線程“thread10”、聽眾“L1”和聽眾“L4”。
      下面說明從發(fā)生事件到呼叫分類庫部從專用線程呼叫登記的聽眾所進行的處理。該處理由兩個處理構(gòu)成。首先進行的處理為通知事件發(fā)生的處理,該處理通過由OS部34生成的線程來執(zhí)行。圖20為表示通知事件發(fā)生的處理的流程圖。分類庫部從包含于OS部34的程序庫存儲部34b的程序庫部來通知發(fā)生事件時,從保持應用ID和專用線程以及登記的聽眾的組的表中取出一組(S601),將聽眾呼叫所必需的信息保持在取出的組的專用線程的隊列(queue)中(S602)。這里,隊列進行線程間的信息傳送,能夠進行所謂的“保持一個信息”、“取出一個信息”的兩個操作。對保持在表中的全部組進行同樣的處理(S601-603)。
      下面進行的處理是呼叫登記的聽眾的處理,該處理通過分類庫部生成的專用線程來執(zhí)行。圖21是表示分類庫部進行的聽眾呼叫的處理的流程圖。分類庫部通過執(zhí)行專用線程來監(jiān)視呼叫的信息是否保持在隊列中(S701),呼叫的信息如果在隊列中(S701:Y),則取出該信息(S702),指定對應于來自表的專用線程的聽眾(S703),呼叫聽眾(S704)。當對應于專用線程的聽眾為多個時,對于對應的全部聽眾進行該聽眾呼叫處理(S703、S704)(S703-S705)。
      圖22是將使用隊列從專用線程中呼叫聽眾的順序的實例模式化的圖。
      根據(jù)圖22,411、412分別表示對于圖19的專用線程“thread10”和專用線程“thread20”所準備的隊列。另外,401、402分別表示專用線程“thread10”和專用線程“thread20”,403為由從存儲在OS部34的程序庫存儲部34b中的程序庫部通知事件發(fā)生的OS部34生成的線程,虛線程421、422表示保持信息,黑點431、432表示保持的信息,虛線程441、442表示取出保持的信息。
      當從程序庫部通過線程403來通知事件發(fā)生時,分類庫部將聽眾呼叫所必需的信息(431、432)保持在隊列411、412中(421、422)。專用線程401、402監(jiān)視信息是否保持在隊列411、412中,當信息被保持時,取出該信息并呼叫對應的聽眾。即,專用線程401呼叫聽眾“L1”和聽眾“L4”,專用線程402呼叫聽眾“L6”。
      OS部34由核心程序34a和程序庫存儲部34b構(gòu)成,通過使Java中間設(shè)備33動作來使應用間接地動作。
      核心程序34a以對應于應用的對象單位來管理提供給應用的資源。具體而言,核心程序34a通過來自應用管理部34b的指示生成對應于應用的對象和屬于對象的最初的線程,在最初的線程中確保VM部33a的動作所必需的資源。另外,生成應用請求的線程,以生成的線程來提供應用請求的資源,對應于線程所屬的對象ID來保持提供的資源的資源名。從應用管理部33a接收對應于結(jié)束的應用的對象ID的通知時,對應于通知的對象ID回收全部保持的資源名的資源。
      程序庫存儲部34b由控制作為資源的裝置的多個程序庫部34b1-34bn構(gòu)成。各程序庫部控制硬盤35的對應的裝置(例如,程序庫部34b1控制裝置35b1,程序庫部34b2控制裝置35b2)。實際上,程序庫存儲部34b由ROM或硬盤構(gòu)成,在各程序庫部中,通過向分類庫呼叫記錄裝置控制用的函數(shù)組的程序并執(zhí)行來實現(xiàn)裝置的控制。
      硬件部35由使OS部34和Java中間設(shè)備部33動作的CPU35a和裝置35b1-35bn構(gòu)成。
      CPU35a通過執(zhí)核心程序34a生成的線程來執(zhí)行應用的程序。裝置35b1-35bn包含存儲裝置、顯示裝置、輸入裝置(鍵盤、遙控等)、文件系統(tǒng)、網(wǎng)絡(luò)裝置等,各裝置對應于來自通過分類庫和程序庫所構(gòu)成的應用的控制來進行動作。
      指示通知部36向應用管理部33b指示應用的開始和結(jié)束。具體而言,向應用管理部33b指示應用的開始,當從外部接受應用結(jié)束的指示時,向應用管理部33b指示應用的結(jié)束。
      上面雖然對本發(fā)明的實施例作了說明,但本發(fā)明不限于該實施例。
      另外,在圖21的流程圖中,分類庫執(zhí)行專用線程,雖然總在監(jiān)視呼叫的信息是否被保持在隊列中(S701),但也可以在S701中,使專用線程處于等待狀態(tài),當在隊列中保持了呼叫的信息時,解除專用線程的等待狀態(tài),執(zhí)行專用線程,而進行S702-S705的處理。由此,可高效地利用資源。
      另外,也可將圖17的S801和S802的順序顛倒。另外,每次應用生成的線程的數(shù)量不限于圖16的實例。可比該實例多,或比該實例少。
      另外,在本實施例中,雖然資源的管理是核心程序34a進行的,但也可是包含在程序庫存儲部34b中的各程序庫部來進行。此時,對在資源供給時向核心程序34a供給資源的對象進行詢問,當由核心程序34a接受該對象的ID通知時,將接受通知的對象ID和供給的資源的資源名分組后保持,當具有由核心程序34a指定的對象ID的資源回收指示時,從保持的組中指定對應于指示的對象ID的資源名并回收指定的資源名的資源。
      另外,在本實施例中,VM部33a雖然由包含于執(zhí)行應用的對象中的最初的線程在VM部33a中確保了必要的資源,但也可以在分類庫部中從執(zhí)行應用的線程中生成獨立的系統(tǒng)專用線程,由生成的系統(tǒng)專用線程來確保必要的資源。用圖23來說明此時的分類庫部所進行的處理。圖23是表示VM部33a獲得系統(tǒng)專用線程的處理的流程圖。分類庫部由執(zhí)行應用的線程來進行應執(zhí)行的處理(例如提供應用所請求的資源)(S5401),接著生成系統(tǒng)專用的線程(S5402),由生成的系統(tǒng)專用線程來執(zhí)行應執(zhí)行的處理(例如向VM部33a提供必要的資源的處理)(S5403),結(jié)束處理時向應用通知處理結(jié)果(S5404)。執(zhí)行應用的線程和系統(tǒng)專用的線程的處理可以任意次數(shù)交互重復執(zhí)行,也可并列執(zhí)行。另外,S5404的通知也可不要。
      由此,因為VM部33a所必需的資源被確保在系統(tǒng)專用的線程中,所以即使應用結(jié)束,VM部33a自己也不必再取得必要的資源,就能夠執(zhí)行下面的應用。另外,分類庫部也可由上述系統(tǒng)專用線程來確保自己必要的資源。例如,為了保持如圖19的實例所示的表示應用ID和線程實例和聽眾接口的對應關(guān)系,也可用上述系統(tǒng)專用線程來確保必要的存儲器。
      另外,根據(jù)本實施例,雖然分類庫部生成專用的線程,但也可在從提供應用執(zhí)行中描繪畫面的功能的Component類中生成Component實例時生成呼叫存儲在生成的實例中的Paint方法用的呼叫用線程。之后,也可在應用啟動時結(jié)束由應用聽眾登記用的分類庫部專用線程的生成。
      由此,不必要確認有無分類庫部每次進行聽眾登記的專用線程,從而能夠以短時間結(jié)束聽眾登記的處理。
      (實施例4)根據(jù)本實施例中的應用執(zhí)行裝置,各程序庫部進行回收向應用提供的資源,回收每次應用結(jié)束等時應用使用的資源。
      具體而言,進行以下處理。各程序庫部通過各分類庫部,當由應用提出請求提供資源時,便提供被請求的資源,在各分類庫部中取得請求資源的應用的ID,將取得的應用ID和提供的資源的資源名分組后保持在表中。程序庫部接到由核心程序44a發(fā)出的結(jié)束的應用ID的通知時,從保持的表中指定對應于通知的應用ID的資源名,并回收全部指定的資源名的資源。
      下面利用附圖來說明本應用執(zhí)行裝置的實施例。圖24是表示應用執(zhí)行裝置40的結(jié)構(gòu)的框圖。應用執(zhí)行裝置40由應用輸入部11、程序存儲部12、Java中間設(shè)備部43、OS部44、硬件部45、指示通知部46構(gòu)成。
      應用輸入部11、程序存儲部12與包含于實施例1的執(zhí)行裝置10中的相同,故省略其說明。
      Java中間設(shè)備部43由VM部43a、應用管理部43b、分類庫部43c構(gòu)成,執(zhí)行應用存儲部42存儲的應用。
      VM部43a從應用存儲部12下載應用,依次解析應用的字節(jié)代碼,執(zhí)行應用。
      應用管理部43b進行VM部43b執(zhí)行的應用的啟動處理、執(zhí)行中的應用的管理、應用結(jié)束的處理。
      首先說明應用啟動的處理。應用管理部43b在每個應用中生成類加載器的實例,使用類加載器的實例來下載構(gòu)成應用的全部類文件。這里,類加載器(class loader)是向存儲器讀入在Java程序中使用的類文件的級別。
      下面說明執(zhí)行中的應用的管理。應用管理部43b將下載構(gòu)成啟動應用的類文件的類加載器的實例和分配給該應用的ID保持在分成組表中。另外,對于ID而言,分別向每個由OS部44的核心程序44a啟動的應用分配不同的ID。圖25表示將與應用管理部43b保持的類加載器的實例對應的應用ID分成組的表的實例。
      下面說明應用結(jié)束的處理。應用管理部43b從控制部46接收應用結(jié)束的指示,向核心程序44a和分類庫部43c存儲的分類庫部通知結(jié)束的應用ID。
      之后,應用管理部43b從向應用提供資源的分類庫部呼叫,當有該應用的應用ID通知請求時,進行以下處理來指定該應用ID,通知給分類庫。
      應用管理部43b參照存儲類呼叫信息的迭式存儲器,取得下載應用的類加載器的實例,指定對應于從保持的表中取得的類加載器的實例的應用ID,向該分類庫部通知指定的應用ID。這里,迭式存儲器為作為類方法的作業(yè)區(qū)域所分配的存儲區(qū)域,每當由方法呼叫來進行類的呼叫時,將呼叫的類作業(yè)區(qū)域分配給迭式存儲器中,順序存儲保持在迭式存儲器中的呼叫信息的類。在呼叫信息中存儲指定方法的呼叫來源的信息。
      下面例舉具體實例來詳細說明指定應用ID的處理。圖26是表示應用管理部43b生成的類加載器的實例與迭式存儲器的關(guān)系的模式圖。這里,使用利用類加載器的實例6301呼叫構(gòu)成應用的類A的方法、呼叫的類A呼叫構(gòu)成應用的其它類B的方法、接著、類B呼叫構(gòu)成應用的其它類C、最后、類C呼叫構(gòu)成存儲在分類庫部中的類D的方法、等,請求資源確保時的實例進行說明。此時,在迭式存儲器中,每當進行呼叫時,都分配呼叫的類的作業(yè)區(qū)域,在分配的作業(yè)區(qū)域中存儲呼叫的信息。6300表示應用管理部43b管理的類加載器的存儲區(qū)域,這里存儲了兩個類加載器6301和6302。5310表示迭式存儲器,6311-5314保持在存儲于迭式存儲器6310中的類A-D中的呼叫信息。當具有從分類庫部呼叫給類D的應用ID的指定請求時,應用管理部43b通過順序參照存儲在迭式存儲器6310中的呼叫信息6314-6311來取得下載應用的類加載器的實例6310。應用管理部43b參照保持的表來指定對應于取得的類加載器的實例的應用ID。
      分類庫存儲部43c由多個分類庫部43c1-43cn構(gòu)成,各分類庫部通過包含于程序庫存儲部44b中的對應的各程序庫部,控制作為包含于硬件部45中的資源的各裝置。
      實際上,分類庫存儲部43c由ROM或硬盤等構(gòu)成,在各分類庫部中,記錄在作為各裝置控制用的程序的類組中的程序通過向應用呼叫后執(zhí)行來實現(xiàn)各裝置的控制。
      各分類庫部從應用中呼叫、請求提供作為資源的裝置時,呼叫對應于包含于程序庫存儲部44b中的該裝置的程序庫部,向該應用提供請求的資源。之后,分類庫部從應用管理部43b取得該應用的應用ID,向該程序庫部通知取得的應用ID。
      核心程序44a從應用管理部43b接收應用結(jié)束的通知和結(jié)束的應用的應用ID的通知,向各程序庫部通知接收的應用ID,指示資源的回收。
      程序庫存儲部44b由控制裝置的多個程序庫部44b1-44bn構(gòu)成。各程序庫部控制硬件部45的對應裝置(例如,程序庫部44b1控制裝置45b1,程序庫部44b2控制裝置45b2)。
      實際上,程序庫存儲部44b由ROM或硬盤構(gòu)成,在各程序庫部中,通過記錄裝置控制用函數(shù)組的程序呼叫到各分類庫部的類中后被執(zhí)行來實現(xiàn)作為資源的裝置的控制。
      具體而言,各程序庫部對應于從分類庫部的呼叫,向應用提供資源,從分類庫部接收該應用的應用ID的通知,將提供的資源的資源名和接收的應用ID分組后保持在表中。當由核心程序44a接收結(jié)束的應用的應用ID的通知時,從保持的表指定對應于接收通知的應用ID的資源名,回收指定的資源名的資源。圖27為將提供的資源的資源名和應用ID分成組后的表的一個實施。這里表示程序庫部向兩個應用提供資源(文件)。
      另外,根據(jù)本實施例,雖然保持將各程序庫部提供的資源的資源名和應用ID分組的表,但核心程序44a也可保持表。
      另外,根據(jù)本實施例,因為核心程序44a生成應用ID,所以即使在同時動作多個中間設(shè)備的情況下,也能防止由兩個中間設(shè)備分別生成ID而產(chǎn)生的ID重復,從而核心程序44a能夠正確管理資源。
      (實施例5)圖28是表示本發(fā)明的實施例中的應用執(zhí)行裝置100的結(jié)構(gòu)的框圖。應用執(zhí)行裝置100具有應用/分類庫存儲部101、應用管理部102、VM(虛擬計算機)部103、存儲器堆管理部104、存儲器105。這里,存儲器堆管理部104具有對象區(qū)域獲得部104a、分離堆區(qū)域獲得部104b、分離堆區(qū)域釋放部104c、GC部104d、鎖定部104e、存儲器堆區(qū)域管理表104f。
      存儲器105具有包含多個分離堆區(qū)域105a-105n的存儲器堆區(qū)域。各分離堆區(qū)域?qū)谝粋€應用來設(shè)置,是用于保持與對應的應用相關(guān)聯(lián)的對象的區(qū)域。分別向應用設(shè)置分離堆區(qū)域,是為了將一次的回收的對象區(qū)域不是以存儲器堆區(qū)域的整體作為單位,而是以分離堆區(qū)域作為單位。另外,在應用結(jié)束時以分離堆區(qū)域為單位來釋放存儲器堆區(qū)域。
      應用/分類庫存儲部101存儲多個應用和已有的分類庫。
      應用管理部102從外部接收應用的啟動和結(jié)束的指示,向VM部103指示該應用的啟動和結(jié)束。另外,應用管理部102在應用結(jié)束時,指示釋放在分離堆區(qū)域釋放部104c中配置與該應用相關(guān)的對象的分離堆區(qū)域。
      VM部103在從應用管理部102接收應用的啟動指示時,在存儲器堆管理部104中進行該應用用的分離堆區(qū)域的分配,從分配的分離堆區(qū)域中的應用/分類庫存儲部101中下載該應用的同時執(zhí)行下載的應用。
      如果更詳細地說明,應用的下載可分為第一,類加載器對象的下載,第二,與應用相關(guān)的各個對象的下載。
      首先說明類加載器對象的下載。VM部103接收來自應用管理部102的作為上述應用啟動指示的用于該應用的類加載器對象的生成指示,向?qū)ο髤^(qū)域獲得部104a輸出該類加載器對象用的對象區(qū)域的獲得指示(下面稱為第一獲得指示)。這里,所謂類加載器對象是指用于從應用/分類庫存儲部101將與對應的應用相關(guān)的對象下載到分離堆區(qū)域中的目標。
      VM部103對于第一獲得指示從對象區(qū)域獲得部104a接收分離堆區(qū)域的分配和對象區(qū)域的分配時,從應用/分類庫存儲部101將類加載器對象下載到該對象區(qū)域中后執(zhí)行該類加載器對象。
      下面說明與應用相關(guān)的各個對象的下載。
      VM部103通過執(zhí)行該類加載器對象,從應用/分類庫存儲部101將與對應的應用相關(guān)的各個對象下載到通過對象區(qū)域獲得部104a分配的對象區(qū)域中。即,VM部103根據(jù)與對應的應用相關(guān)的對象向?qū)ο髤^(qū)域獲得部104a輸出對象區(qū)域的獲得指示(下面稱為第二獲得指示),作為對第二獲得指示的響應,從對象區(qū)域獲得部104a接收對象區(qū)域的分配時,從應用/分類庫存儲部101向該對象區(qū)域下載對象后執(zhí)行該對象。上述第二獲得指示為與類加載器對象以外的對象相對的對象區(qū)域的獲得指示,如果有來自執(zhí)行中的應用的其它對象的生成請求時從VM部103輸出。
      對象區(qū)域獲得部104a接收來自VM部103的第一獲得指示時,向分離堆區(qū)域獲得部104b指示分離堆領(lǐng)域的獲得,當接收分離堆區(qū)域的分配時,在該分離堆區(qū)域內(nèi)獲得類加載器對象區(qū)域,向VM部103通知該類加載器對象區(qū)域。
      存儲器堆管理表104f由分離堆區(qū)域獲得部104b獲得的分離堆區(qū)域相關(guān)的信息(下面稱為分離堆區(qū)域信息)構(gòu)成。如圖29所示,各分離堆區(qū)域信息由分離堆區(qū)域ID、下載于分離堆區(qū)域中的類加載器對象ID、分離堆區(qū)域的首部地址、分離堆區(qū)域整體的大小、表示分離堆區(qū)域中的未使用區(qū)域的自由區(qū)域的首部地址、該分離堆區(qū)域中的自由區(qū)域的大小構(gòu)成。當分離堆區(qū)域獲得部104b接收來自對象區(qū)域獲得部104a的分離堆區(qū)域的獲得指示后獲得分離堆區(qū)域時,通過分離堆區(qū)域獲得部104b來進行向存儲器堆管理表104f的分離堆區(qū)域信息的重新登記。與上述分離堆區(qū)域信息中的自由區(qū)域的首部地址和分離堆區(qū)域中的自由區(qū)域的大小相關(guān)的信息通過來自VM部103的第一或第二獲得指示、在每次對象區(qū)域獲得部104a獲得對象區(qū)域時被更新?;蛘咴趹媒Y(jié)束后,對應于應用管理部102的指示來釋放分配給分離堆區(qū)域釋放部104c結(jié)束的應用的分離堆區(qū)域時,從存儲器堆管理表104f中消除與該分離堆區(qū)域相關(guān)的分離堆區(qū)域信息。
      另外,對象區(qū)域獲得部104b接收來自VM部103的第二獲得指示時,指定下載該第二獲得指示請求元應用的類加載器對象,參照存儲器堆區(qū)域管理表104f來指定對應于指定的類加載器對象的分離堆區(qū)域(例如指定的對象為CL2的情況下,指定分離堆區(qū)域b),在指定的分離堆區(qū)域內(nèi)試驗對象區(qū)域的獲得。在對象區(qū)域獲得部104a可從指定的分離堆區(qū)域獲得對象區(qū)域的情況下,通知VM部103該對象區(qū)域,更新存儲器堆管理表104f的該分離堆區(qū)域的信息(該分離堆區(qū)域中的自由區(qū)域的首部地址、該分離堆區(qū)域中的自由區(qū)域的大小)。
      另一方面,對象領(lǐng)域獲得部104a不能從該分離堆區(qū)域中獲得對象區(qū)域時,對于GC部104d指示該分離堆區(qū)域的回收,回收結(jié)束后再次試驗對象區(qū)域的獲得。
      分離堆區(qū)域獲得部104b接收來自對象區(qū)域獲得部104a的分離堆區(qū)域獲得指示時,從存儲器堆區(qū)域中獲得分離堆區(qū)域。分離堆區(qū)域獲得部104b將獲得的分離堆區(qū)域105a的信息和類加載器對象的ID分組后登記在堆存儲器區(qū)域管理表104f中。
      分離堆區(qū)域釋放部104c由應用管理部102指示應用的結(jié)束時,對應于來自應用管理部102的分離堆區(qū)域的釋放指示,從存儲器堆區(qū)域管理表104f來指定對應于下載結(jié)束應用的類加載器對象的分離堆區(qū)域,釋放指定的分離堆區(qū)域,從存儲器堆區(qū)域管理表104f中消除釋放的分離堆區(qū)域的信息(釋放的分離堆區(qū)域的ID、對應于該分離堆區(qū)域的類加載器對象的ID、分別對應于該分離堆區(qū)域的首部地址、該分離堆區(qū)域整體的大小、該分離堆區(qū)域中的自由區(qū)域的首部地址、該分離堆區(qū)域中的自由區(qū)域的大小的類加載器對象的ID)。
      GC部104d對應于對象區(qū)域獲得部104a的指示來進行分離堆區(qū)域的回收。
      鎖定部104e在GC部104d進行分離堆區(qū)域的回收期間停止使用該分離堆區(qū)域的應用的執(zhí)行。
      圖30表示通過由VM部103接收對象區(qū)域獲得指示(第一獲得指示或第二獲得指示)后的應用執(zhí)行裝置100的對象區(qū)域獲得動作的流程圖。對象區(qū)域獲得部104a判定來自VM部的對象區(qū)域獲得指示是第一(類加載器對象)獲得指示還是第二(類加載器以外的對象)獲得指示(S1301)。
      當為第一獲得指示時(S1301:Y),對象區(qū)域獲得部104a向分離堆區(qū)域獲得部104b請求對應于該類加載器對象的分離堆區(qū)域的獲得,分離堆區(qū)域獲得部104b從存儲器105獲得分離堆區(qū)域(S1302)。分離堆區(qū)域獲得部104b,如圖29的實例所示,將該類加載器對象的ID和獲得的分離堆區(qū)域的信息分組后登記在存儲器堆區(qū)域管理表104f中(S1303)。接著,對象區(qū)域獲得部104a在獲得的分離堆區(qū)域內(nèi)獲得該類加載器對象的對象區(qū)域(S1306、S1307),更新對應于該分離堆區(qū)域的存儲器堆區(qū)域管理表104f的信息(S1309)。
      當為第二獲得指示的情況下(S1301:N),對象區(qū)域獲得部104a從VM部103取得該對象保有的類加載器ID(S1304),從存儲器堆區(qū)域管理表104來指定對應于上述類加載器ID的分離堆區(qū)域(S1305)。接著,對象區(qū)域獲得部104a獲得指定的分離堆區(qū)域內(nèi)的對象區(qū)域(S1306)。對象區(qū)域獲得部104a判定是否成功獲得對象區(qū)域(S1307)。
      對象區(qū)域獲得部104a在成功獲得對象區(qū)域的情況下(S1307:Y),更新對應于該分離堆區(qū)域的存儲器堆區(qū)域管理表104f的信息(S1309)。
      對象區(qū)域獲得部104a在獲得對象區(qū)域失敗的情況下(S1307:N),指示進行GC部104d中獲得失敗的分離堆區(qū)域內(nèi)的回收。GC部104d對應于指示進行該分離堆區(qū)域的回收處理(S1308)。在GC部104d進行回收處理期間,鎖定部104e停止使用該分離堆區(qū)域的應用的執(zhí)行。對象區(qū)域獲得部104a在回收處理后,再次從該分離堆區(qū)域獲得對象區(qū)域(S306),在成功獲得對象區(qū)域的情況下(S1307:Y),更新對應于該分離堆區(qū)域的存儲器堆區(qū)域管理表104f的信息(S1309)。
      由此,對于應用管理裝置100而言,因為將用于配置生成的對象的對象區(qū)域作為每個應用分配的存儲器中規(guī)模小的分離堆區(qū)域來分配,所以能夠減輕GC部104d一次回收處理的負荷。另外,當VM部103執(zhí)行多個應用的情況下,因為鎖定部104f在分離堆區(qū)域的回收處理的執(zhí)行中,僅停止了使用該分離堆區(qū)域的應用,所以VM部103能夠繼續(xù)執(zhí)行使用其它分離堆區(qū)域的應用。
      圖31是表示應用結(jié)束時的應用執(zhí)行裝置100的分離堆區(qū)域釋放動作的流程圖。當應用結(jié)束時,應用管理部102向分離堆區(qū)域釋放部104c指示對應于下載結(jié)束應用的類加載器對象的分離堆區(qū)域的釋放(S1401)。分離堆區(qū)域釋放部104c指定對應于從存儲器堆區(qū)域管理表104f下載的該應用的類加載器對象的分離堆區(qū)域(S1402),基于該信息來釋放該分離堆區(qū)域(S1403)。分離堆區(qū)域釋放部104c從存儲器堆區(qū)域管理表104f消除與釋放的分離堆區(qū)域的信息對應的類加載器對象的ID(S1404)。
      由此,對于應用執(zhí)行裝置100而言,每次應用結(jié)束時,能夠?qū)姆蛛x堆區(qū)域一起在短時間內(nèi)釋放。
      另外,根據(jù)本實施例,分離堆區(qū)域獲得部104b沒有意識到系統(tǒng)類加載器對象,將分離堆區(qū)域作為系統(tǒng)類加載器對象用的分離堆區(qū)域來分配,如圖32所示,當將存儲器105整體作為系統(tǒng)類加載器用存儲器區(qū)域(系統(tǒng)堆區(qū)域105-1)來分配,在該區(qū)域內(nèi)分離堆區(qū)域獲得部104b也可獲得對應于其它類加載器對象的分離堆區(qū)域(圖32)。此時,對象區(qū)域獲得部104a在系統(tǒng)啟動時在系統(tǒng)堆區(qū)域105-1中獲得系統(tǒng)類加載器對象的對象區(qū)域,將系統(tǒng)類加載器對象的ID和獲得的區(qū)域(為了方便說明而稱為分離堆區(qū)域105a0)的信息(分離堆區(qū)域ID(a0)、類裝入ID(SCL)、區(qū)域首部地址(MA-O)、全部區(qū)域大小(MS-O)、自由區(qū)域首部地址(FA-O)、自由區(qū)域大小(FS-O))分組后登記在存儲器堆區(qū)域管理表105f中。下面與本實施例的情況一樣,分離堆區(qū)域獲得部104b每次從系統(tǒng)堆區(qū)域105-1獲得類加載器對象區(qū)域用的分離堆區(qū)域時,分離堆區(qū)域獲得部104b如圖32所示當該類加載器對象的ID和獲得的分離堆區(qū)域的信息分組后追加到存儲器堆區(qū)域管理表104f中,對象區(qū)域獲得部根據(jù)圖30的流程圖在由分離堆區(qū)域獲得部104b獲得的分離堆區(qū)域內(nèi)獲得對象區(qū)域(S1306),在獲得對象區(qū)域失敗的情況下(S1307),對象區(qū)域獲得部104b指示進行GC部104d中獲得失敗的分離堆區(qū)域內(nèi)的回收,GC部104d對應于指示進行該分離堆區(qū)域內(nèi)的回收(S1308)。另外,當應用結(jié)束時,應用管理部102指示對就于下載于分離堆區(qū)域釋放部104c中的結(jié)束應用的類加載器對象的分離堆區(qū)域,分離堆區(qū)域釋放部104c對應于指示,根據(jù)圖31的流程圖來進行該分離堆區(qū)域的釋放。另外,GC部104d以系統(tǒng)堆區(qū)域105-1的全部作為回收對象,將單位釋放分離堆區(qū)域的分離堆總括在一起,所以可高效地使用系統(tǒng)堆區(qū)域105-1。
      另外,本實施例中的圖28的應用執(zhí)行裝置100的結(jié)構(gòu)以功能框圖表示,但實際上可通過執(zhí)行包含CPU、存儲器、與外部進行輸入輸出的輸入輸出裝置的硬件和軟件來實現(xiàn)。設(shè)計該軟件以管理圖28所示的各塊的功能。另外,上述軟件在從CD-ROM下載的情況下也可使用CD-ROM讀出接口。存儲器由RAM、ROM、硬盤和CD驅(qū)動器、軟盤、存儲卡等可拆卸媒體構(gòu)成。
      根據(jù)本實施例,在應用中,分配的分離堆區(qū)域的數(shù)量不限于一個,也可是多個。例如,在應用自己保有類加載器的情況下,即使對于該類加載器也可分配分離堆區(qū)域。
      另外,根據(jù)本實施例,由分離堆區(qū)域獲得部104b獲得的分離堆區(qū)域的大小可由向分離堆區(qū)域獲得部104b的程序指示變化。
      權(quán)利要求
      1.一種應用執(zhí)行裝置,具有向應用提供資源的至少一個以上的程序庫部和核心程序部,其特征在于,所述核心程序部包括通知裝置,當應用結(jié)束時,向提供資源的各程序庫部通知結(jié)束的應用為哪個;各程序庫部包括回收裝置,當由通知裝置通知時,回收提供給結(jié)束應用的資源。
      2.如權(quán)利要求1的應用執(zhí)行裝置,其特征在于所述回收裝置包括表保持裝置,保持應用和向應用提供的資源的對應關(guān)系的表;資源指定裝置,由所述表保持裝置來指定提供給由所述通知裝置通知的應用的資源。
      3.如權(quán)利要求2的應用執(zhí)行裝置,其特征在于各程序庫部包括提供裝置,對應于來自應用的請求提供資源;登記裝置,從所述核心程序部接收提供資源的應用為哪個的通知,將提供資源的應用和提供的資源對應地分組后登記在所述表中;消除裝置,當由所述回收裝置回收登記的資源時,從所述表中消除表示回收的資源和對應的應用的對應關(guān)系的組。
      4.如權(quán)利要求1的應用執(zhí)行裝置,其特征在于各程序庫部包括提供裝置,對應于來自應用的請求提供資源;委托裝置,當所述提供裝置向應用開始提供新的資源時,委托其以在應用結(jié)束時向該程序庫部發(fā)出前述通知。
      5.如權(quán)利要求4的應用執(zhí)行裝置,其特征在于所述委托裝置,將回收函數(shù)的呼叫委托于所述核心程序部;所述核心程序部,通過在應用結(jié)束時執(zhí)行被委托的回收函數(shù)的呼叫,作為所述通知裝置進行的所述通知。
      6.如權(quán)利要求1的應用執(zhí)行裝置,其特征在于所述通知裝置具有對每個應用進行所述通知的多個通知部,各程序庫部包括提供裝置,對應于來自應用的請求提供資源;委托裝置,當所述提供裝置向應用開始提供新的資源時,委托對應于該應用的通知部在該應用結(jié)束時向該程序庫部進行所述通知。
      7.如權(quán)利要求6的應用執(zhí)行裝置,其特征在于所述委托裝置委托所述通知部通過資源回收實例的方法的呼叫來進行所述通知,所述資源回收實例的方法是由所述程序庫部為了接受所述通知而生成的被委托的所述通知部在所述該應用結(jié)束時,通過呼叫資源回收實例的方法來進行所述通知。
      8.如權(quán)利要求1的應用執(zhí)行裝置,其特征在于所述回收裝置包括表保持裝置,保持應用和向應用提供的資源的對應關(guān)系的表;資源指定裝置,由所述表保持裝置來指定提供給由所述通知裝置通知的應用的資源;所述通知裝置在多個應用同時結(jié)束的情況下,向提供資源的程序庫部通知結(jié)束的多個應用為哪些;所述資源指定裝置通過所述表保持裝置來指定對應于被通知的多個應用的多個資源;所述回收裝置回收指定的多個資源。
      9.如權(quán)利要求1的應用執(zhí)行裝置,其特征在于所述各程序庫部向應用提供作為所述資源的調(diào)諧器、MPEG解碼器、遙控、文件系統(tǒng)、存儲器、調(diào)制解調(diào)器的任一個。
      10.如權(quán)利要求9的應用執(zhí)行裝置,其特征在于所述回收裝置包括表保持裝置,保持應用和向應用提供的資源的對應關(guān)系的表;資源指定裝置,由所述表保持裝置來指定提供給由所述通知裝置通知的應用的資源。
      11.如權(quán)利要求10的應用執(zhí)行裝置,其特征在于各程序庫部進一步包括提供裝置,對應于來自應用的請求提供資源;登記裝置,從所述核心程序部接收提供資源的應用為哪個的通知,將提供資源的應用和提供的資源對應地分組后登記在所述表中;消除裝置,當由所述回收裝置回收登記的資源時,從所述表中消除與回收的資源相對應的應用。
      12.如權(quán)利要求9的應用執(zhí)行裝置,其特征在于各程序庫部進一步包括提供裝置,對應于來自應用的請求提供資源;委托裝置,當所述提供裝置向應用開始提供新的資源時,委托該程序庫部在應用結(jié)束時發(fā)出所述通知。
      13.如權(quán)利要求12的應用執(zhí)行裝置,其特征在于所述依賴裝置將回收函數(shù)的呼叫委托于所述核心程序部;所述核心程序部通過在應用結(jié)束時執(zhí)行被委托的回收函數(shù)的呼叫,作為所述通知裝置進行的所述通知。
      14.如權(quán)利要求9的應用執(zhí)行裝置,其特征在于所述通知裝置具有每個應用進行所述通知的多個通知部,各程序庫部包括提供裝置,對應于來自應用的請求提供資源;委托裝置,當所述提供裝置向應用開始提供新的資源時,委托對應于該應用的通知部在該應用結(jié)束時向該程序庫部進行所述通知。
      15.如權(quán)利要求14的應用執(zhí)行裝置,其特征在于所述委托裝置委托所述通知部通過資源回收實例的方法的呼叫來進行所述通知,所述資源回收實例的方法是由所述程序庫部為了接受所述通知而生成的,被委托的所述通知部在所述該應用結(jié)束時,通過呼叫資源回收實例的方法來進行所述通知。
      16.如權(quán)利要求9的應用執(zhí)行裝置,其特征在于所述回收裝置包括表保持裝置,保持表示應用和向應用提供的資源的對應關(guān)系的表;資源指定裝置,由所述表保持裝置來指定提供給由所述通知裝置通知的應用的資源;所述通知裝置在多個應用同時結(jié)束的情況下,向提供資源的程序庫部通知結(jié)束的多個應用為哪些;所述資源指定裝置通過所述表保持裝置來指定對應于被通知的多個應用的多個資源;所述回收裝置回收指定的多個資源。
      17.如權(quán)利要求1的應用執(zhí)行裝置,其特征在于所述通知裝置在應用結(jié)束時和中斷時的任一時刻向各程序庫部進行通知;各程序庫部進一步包括判定裝置,對應于通知的應用是結(jié)束還是中斷來判定是否回收提供給該應用的資源;所述回收裝置在判定為回收資源的情況下回收提供給被通知的應用的資源。
      18.如權(quán)利要求17的應用執(zhí)行裝置,其特征在于所述通知裝置具有對每個應用進行所述通知的多個通知部,各程序庫部包括提供裝置,對應于來自應用的請求來提供資源;委托裝置,當所述提供裝置開始向應用提供新的資源時,委托對應于該應用的通知部在該程序庫部中該應用結(jié)束或中斷時的任一時刻進行所述通知。
      19.如權(quán)利要求18的應用執(zhí)行裝置,其特征在于所述委托裝置委托所述通知部通過資源回收實例的方法的呼叫來進行所述通知,所述資源回收實例的方法是由所述程序庫部為了接受所述通知而生成的;被委托的所述通知部在所述該應用結(jié)束或中斷的任一時刻,通過呼叫所述資源回收實例的方法來進行所述通知;所述判定裝置在接收所述通知時,取得應用結(jié)束或中斷的信息,對應于所述信息來判定是否回收提供給該應用的資源。
      20.一種應用執(zhí)行裝置,具有向應用提供資源的OS部和Java中間設(shè)備部,所述Java中間設(shè)備部包括第一表保持裝置,保持表示應用和對應于應用的任務(wù)以及構(gòu)成任務(wù)的線程的對應關(guān)系的表;通知裝置,當接收應用結(jié)束的指示時,參照所述第一表保持裝置來通知對應于結(jié)束的應用的任務(wù)為哪個;所述OS部包括任務(wù)生成裝置,對每個應用生成執(zhí)行應用的任務(wù);線程生成裝置,生成多個構(gòu)成所述任務(wù)的應用用線程;管理裝置,通過執(zhí)行所述應用用線程來執(zhí)行應用的程序代碼,提供應用請求的資源,保持表示提供的資源和所述線程所屬的任務(wù)的對應關(guān)系的表;回收裝置,由管理裝置來指定對應于由所述通知裝置通知的任務(wù)的資源,回收提供給應用的資源。
      21.如權(quán)利要求20的應用執(zhí)行裝置,其特征在于所述Java中間設(shè)備部進一步包括委托裝置,委托其向執(zhí)行中的應用通知裝置的狀態(tài)變化;狀態(tài)變化通知裝置,對應于所述委托,當檢查到所述變化時,向所述應用通知發(fā)生所述變化。
      22.如權(quán)利要求21的應用執(zhí)行裝置,其特征在于所述委托裝置委托所述狀態(tài)變化通知裝置來呼叫等待關(guān)于發(fā)生所述變化的連絡(luò)的聽眾;所述狀態(tài)變化通知裝置當檢查到發(fā)生所述變化時,通過進行委托的所述聽眾的呼叫來進行所述通知。
      23.如權(quán)利要求22的應用執(zhí)行裝置,其特征在于所述狀態(tài)變化通知裝置造成執(zhí)行所述聽眾呼叫的專用線程,通過執(zhí)行該專用線程來進行所述聽眾的呼叫,所述Java中間設(shè)備部包括第二表保持裝置,保持表示所述聽眾和所述專用線程以及所述應用的對應關(guān)系的表;表更新裝置,所述委托裝置在每次委托所述狀態(tài)變化通知裝置呼叫聽眾時,參照所述表來判定與所述聽眾有對應關(guān)系的應用是否保持在所述表中,在被保持的情況下,對應于該應用來向所述表追加該聽眾;所述狀態(tài)變化通知裝置,通過所述表更新裝置來判定該應用是否被保持的情況下,不重新生成所述專用線程,在判定未被保持的情況下,重新生成專用線程。
      24.如權(quán)利要求23的應用執(zhí)行裝置,其特征在于所述專用線程監(jiān)視進行線程間信息傳送的隊列中表示發(fā)生所述變化的信息是否被保持,在信息被保持的情況下進行對應的所述聽眾的呼叫。
      25.如權(quán)利要求23的應用執(zhí)行裝置,其特征在于所述專用線程在進行線程間信息傳送的隊列中表示發(fā)生所述變化的信息被保持前的等待狀態(tài)時,向隊列中保持信息的執(zhí)行狀態(tài)移動,進行對應的所述聽眾的呼叫。
      26.如權(quán)利要求20的應用執(zhí)行裝置,其特征在于所述Java中間設(shè)備部包括資源確保用線程生成裝置,生成與構(gòu)成所述任務(wù)的所述應用用線程不同的、確保所述Java中間設(shè)備部所必需的資源的資源確保用線程;資源確保裝置,通過執(zhí)行生成的資源確保用線程來確保Java中間設(shè)備部所必需的資源;所述回收裝置通過所述資源確保裝置不回收確保的所述Java中間設(shè)備部所必需的資源,由所述管理裝置指定對應于所述通知裝置通知的任務(wù),回收提供給應用的資源。
      27.一種應用執(zhí)行裝置,具有向應用提供資源的OS部和中間設(shè)備部,所述中間設(shè)備部包括通知裝置,對應于所述OS部的請求來通知請求資源提供的應用為哪個,當應用結(jié)束時,通知結(jié)束的應用為哪個;所述OS部包括請求裝置,請求請求提供資源的應用為哪個的通知;資源管理表裝置,保持表示通知的應用和資源的對應關(guān)系的表;資源回收裝置,當從通知裝置通知結(jié)束的應用為哪個時,由所述資源管理表來指定對應于結(jié)束應用的資源,回收指定的資源。
      28.如權(quán)利要求27的應用執(zhí)行裝置,其特征在于所述通知裝置包括下載指定裝置,指定下載請求提供資源的應用的類加載器;表裝置,保持表示下載應用的類加載器和應用的對應關(guān)系的表;應用指定裝置,從所述表來指定對應于由所述下載指定裝置指定的類加載器的應用。
      29.如權(quán)利要求28的應用執(zhí)行裝置,其特征在于所述下載指定裝置通過參照存儲構(gòu)成應用的類呼叫源的信息來指定下載請求提供資源的應用的類加載器。
      30.如權(quán)利要求29的應用執(zhí)行裝置,其特征在于所述OS部包括分配裝置,向每個應用分配指定應用的ID;所述通知裝置,通過通知由所述分配裝置分配的ID來通知提供資源的應用為哪個,通知結(jié)束的應用為哪個。
      31.如權(quán)利要求28的應用執(zhí)行裝置,其特征在于所述OS部包括分配裝置,向每個應用分配指定應用的ID;所述通知裝置,通過通知由所述分配裝置分配的ID來通知提供資源的應用為哪個,通知結(jié)束的應用為哪個。
      32.如權(quán)利要求27的應用執(zhí)行裝置,其特征在于所述OS部包括分配裝置,向每個應用分配指定應用的ID;所述通知裝置,通過通知由所述分配裝置分配的ID來通知提供資源的應用為哪個,通知結(jié)束的應用為哪個。
      33.一種記錄媒體,記錄了計算機可讀取的、用于具有向應用提供資源的多個程序庫部和核心程序部的應用執(zhí)行裝置的程序,其特征在于,所述程序在計算機中實施權(quán)利要求1記載的裝置。
      34.一種記錄媒體,記錄了計算機可讀取的、用于具有向應用提供資源的多個程序庫部和核心程序部的應用執(zhí)行裝置的程序,其特征在于,所述程序在計算機中實施權(quán)利要求17記載的裝置。
      35.一種記錄媒體,記錄了計算機可讀取的、用于具有向應用提供資源的OS部和Java中間設(shè)備部的應用執(zhí)行裝置的程序,其特征在于,所述程序在計算機中實施權(quán)利要求20記載的裝置。
      36.一種記錄媒體,記錄了計算機可讀取的、用于具有向應用提供資源的OS部和中間設(shè)備部的應用執(zhí)行裝置的程序,其特征在于,所述程序在計算機中實施權(quán)利要求27記載的裝置。
      37.一種應用執(zhí)行裝置,管理回收所必需的應用用存儲堆區(qū)域,其特征在于,包括分離堆區(qū)域獲得裝置,每次啟動應用時從破例堆中獲得分離堆區(qū)域;分配裝置,在啟動的應用中通過所述分離堆區(qū)域獲得裝置分配獲得的分離堆區(qū)域;存儲器釋放裝置,每次應用結(jié)束時釋放分配給該應用的分離堆區(qū)域。
      38.如權(quán)利要求37的應用執(zhí)行裝置,其特征在于還包括對象區(qū)域獲得裝置,對于與應用相關(guān)的對象,在分配給該應用的分離堆區(qū)域內(nèi)獲得對象區(qū)域;回收裝置,進行以所述分離堆區(qū)域為對象的回收。
      39.如權(quán)利要求38的應用執(zhí)行裝置,其特征在于還包括鎖定裝置,在通過所述回收裝置進行對象為分離堆區(qū)域的回收期間,停止使用該分離堆區(qū)域的應用的執(zhí)行,繼續(xù)執(zhí)行使用其它分離堆區(qū)域的應用。
      40.如權(quán)利要求37的應用執(zhí)行裝置,其特征在于還包括表裝置,保持表示啟動中的應用和分離堆區(qū)域的對應關(guān)系的表;所述存儲器釋放裝置由所述表裝置指定對應于結(jié)束的應用的分離堆區(qū)域后釋放。
      41.如權(quán)利要求37的應用執(zhí)行裝置,其特征在于還包括表裝置,保持表示啟動中的應用和分離堆區(qū)域的對應關(guān)系的表;所述分配裝置在每次應用啟動時向表追加該應用和分配區(qū)域的新的對應關(guān)系。
      42.一種應用執(zhí)行裝置,管理回收所必需的應用用存儲堆區(qū)域,其特征在于,包括系統(tǒng)堆區(qū)域分配裝置,將存儲器堆全部作為系統(tǒng)堆區(qū)域來分配;對象區(qū)域獲得裝置,在系統(tǒng)堆區(qū)域內(nèi)獲得系統(tǒng)相關(guān)的對象區(qū)域;分離堆區(qū)域獲得裝置,每次應用啟動時,從系統(tǒng)堆區(qū)域中獲得分離堆區(qū)域;分配裝置,向啟動的應用分配獲得的分離堆區(qū)域;存儲器釋放裝置,當應用結(jié)束時,釋放分配給該應用的分離堆區(qū)域。
      43.如權(quán)利要求42的應用執(zhí)行裝置,其特征在于還包括回收裝置,以系統(tǒng)堆區(qū)域內(nèi)部為對象,以分離堆區(qū)域為單位進行回收。
      44.一種存儲器堆管理方法,管理回收所必需的應用用存儲器堆區(qū)域,其特征在于,包括以下步驟分離堆區(qū)域獲得步驟,每次應用啟動時,從系統(tǒng)堆區(qū)域中獲得分離堆區(qū)域;分配步驟,通過所述分離堆區(qū)域獲得步驟來向啟動的應用分配獲得的分離堆區(qū)域;存儲器釋放步驟,當應用結(jié)束時,釋放分配給該應用的分離堆區(qū)域。
      45.如權(quán)利要求44的存儲器堆管理方法,還包括對象區(qū)域獲得步驟,對于與應用相關(guān)的對象,在分配給該應用的分離堆區(qū)域內(nèi)獲得對象區(qū)域;回收步驟,當由對象區(qū)域獲得步驟獲得對象區(qū)域失敗時,以各個分離堆區(qū)域為對象進行回收。
      46.如權(quán)利要求45的存儲器堆管理方法,還包括鎖定步驟,在通過所述回收步驟進行對象為分離堆區(qū)域的回收期間,停止使用該分離堆區(qū)域的應用的執(zhí)行,繼續(xù)執(zhí)行使用其它分離堆區(qū)域的應用。
      47.如權(quán)利要求44的存儲器堆管理方法,還包括表保持步驟,保持表示啟動中的應用和分離堆區(qū)域的對應關(guān)系的表;所述存儲器釋放步驟,由所述表裝置指定對應于結(jié)束的應用的分離堆區(qū)域后釋放。
      48.如權(quán)利要求44的存儲器堆管理方法,還包括表保持步驟,保持表示啟動中的應用和分離堆區(qū)域的對應關(guān)系的表;所述分配步驟,在每次應用啟動時向表追加該應用和分配區(qū)域的新的對應關(guān)系。
      49.一種存儲器堆管理方法,管理回收所必需的應用用存儲堆區(qū)域,其特征在于,包括以下步驟系統(tǒng)堆區(qū)域分配步驟,將存儲器堆全部作為系統(tǒng)堆區(qū)域來分配;對象區(qū)域獲得步驟,在系統(tǒng)堆區(qū)域內(nèi)獲得系統(tǒng)相關(guān)的對象區(qū)域;分離堆區(qū)域獲得步驟,每次應用啟動時,從系統(tǒng)堆區(qū)域中獲得分離堆區(qū)域;分配步驟,向啟動的應用分配獲得的分離堆區(qū)域;存儲器釋放步驟,當應用結(jié)束時,釋放分配給該應用的分離堆區(qū)域。
      50.如權(quán)利要求49的存儲器堆管理方法,還包括回收步驟,當分離堆區(qū)域獲得步驟獲得分離堆區(qū)域失敗時,以系統(tǒng)堆區(qū)域內(nèi)部為對象,以分離堆區(qū)域為單位進行回收。
      51.一種記錄媒體,記錄了計算機可讀取的、用于執(zhí)行回收所必需的應用的裝置的程序,其特征在于,所述程序在計算機中執(zhí)行權(quán)利要求44記載的步驟。
      52.如權(quán)利要求51的記錄媒體,其特征在于所述程序在計算機中執(zhí)行權(quán)利要求45記載的步驟。
      53.如權(quán)利要求52的記錄媒體,其特征在于所述程序在計算機中執(zhí)行權(quán)利要求46記載的步驟。
      54.如權(quán)利要求51的記錄媒體,其特征在于所述程序在計算機中執(zhí)行權(quán)利要求47記載的步驟。
      55.如權(quán)利要求51的記錄媒體,其特征在于所述程序在計算機中執(zhí)行權(quán)利要求48記載的步驟。
      56.一種記錄媒體,記錄了計算機可讀取的、用于執(zhí)行回收所必需的應用的裝置的程序,其特征在于所述程序在計算機中執(zhí)行權(quán)利要求49記載的步驟。
      57.如權(quán)利要求56的記錄媒體,其特征在于所述程序在計算機中執(zhí)行權(quán)利要求50記載的步驟。
      全文摘要
      程序庫部對應于來自應用的資源提供請求提供資源時,取得識別請求資源提供的應用的標識符,將提供的資源和取得的應用標識符分組后保持在表中。因此,當應用結(jié)束時,取得結(jié)束的應用的應用標識符,從表指定對應于取得的標識符的資源,釋放指定的資源。
      文檔編號G06F9/50GK1325069SQ0112169
      公開日2001年12月5日 申請日期2001年5月14日 優(yōu)先權(quán)日2000年5月15日
      發(fā)明者鹽見隆一, 葉山悟, 平本建志, 久保岡祐子, 土井繁則 申請人:松下電器產(chǎn)業(yè)株式會社
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1