两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

圖像處理裝置及其控制方法

文檔序號(hào):7805629閱讀:171來(lái)源:國(guó)知局
圖像處理裝置及其控制方法
【專(zhuān)利摘要】本發(fā)明提供一種圖像處理裝置及其控制方法。該圖像處理裝置響應(yīng)于應(yīng)用的啟動(dòng)請(qǐng)求,讀取所述應(yīng)用的類(lèi)的類(lèi)文件,在所讀取的類(lèi)文件中包括的方法的開(kāi)頭將用于記錄表示所述應(yīng)用的應(yīng)用信息的代碼添加到線程,并加載所述類(lèi)。此外,所述圖像處理裝置在執(zhí)行所讀取的類(lèi)文件中包括的所述方法期間,分配要用于待生成的對(duì)象的內(nèi)存,并將所述線程記錄中的應(yīng)用信息記錄到所分配的內(nèi)存或文件大小,同時(shí)生成所述對(duì)象并與內(nèi)存大小或盤(pán)使用量相關(guān)聯(lián)地管理所生成的對(duì)象的應(yīng)用信息。
【專(zhuān)利說(shuō)明】圖像處理裝置及其控制方法

【技術(shù)領(lǐng)域】
[0001]本說(shuō)明書(shū)涉及一種操作多個(gè)應(yīng)用的圖像處理裝置及其控制方法。

【背景技術(shù)】
[0002]當(dāng)前越來(lái)越多的多功能外圍設(shè)備(MFP)具有執(zhí)行除了內(nèi)置在MFP中功能(例如文檔的復(fù)印、掃描和打印)以外的應(yīng)用的功能。許多MFP具有Java執(zhí)行環(huán)境作為應(yīng)用執(zhí)行環(huán)境,并且能夠執(zhí)行以Java (注冊(cè)商標(biāo))記述的應(yīng)用。示例性應(yīng)用執(zhí)行環(huán)境包括佳能(注冊(cè)商標(biāo))開(kāi)發(fā)的MEAP (注冊(cè)商標(biāo))。
[0003]雖然在PC上的Java的情況下,按照每個(gè)應(yīng)用一個(gè)處理的方式執(zhí)行應(yīng)用,但是許多MFP由于CPU或者內(nèi)存限制,通過(guò)使用OSGi框架等,經(jīng)由一個(gè)Java處理執(zhí)行多個(gè)應(yīng)用。因此,當(dāng)MFP上正在執(zhí)行的應(yīng)用中的一個(gè)應(yīng)用的錯(cuò)誤(bug)導(dǎo)致內(nèi)存溢出時(shí),可能發(fā)生OutOfMemoryError (內(nèi)存溢出錯(cuò)誤),從而造成所有應(yīng)用停止。此外,在當(dāng)應(yīng)用請(qǐng)求內(nèi)存時(shí)沒(méi)有要分配的內(nèi)存的情況下,發(fā)生OutOfMemoryEiror,因此在正常運(yùn)行的應(yīng)用的執(zhí)行期間,也可能發(fā)生OutOfMemoryError。因此,難以指定造成內(nèi)存溢出的應(yīng)用。
[0004]日本特開(kāi)第2005-269439號(hào)公報(bào)提出用于逐線程測(cè)量?jī)?nèi)存的技術(shù)。然而,在例如如稍后討論的、如圖13所示的一個(gè)線程執(zhí)行多個(gè)應(yīng)用的代碼的情況下,無(wú)法測(cè)量各應(yīng)用使用的內(nèi)存。
[0005]目前,為了發(fā)現(xiàn)內(nèi)存溢出,可想到以下兩種方法。一種方法涉及使用稱(chēng)為分析器(profiler)的工具來(lái)監(jiān)視由應(yīng)用生成的對(duì)象的狀態(tài)。另一方法涉及將由Java VM使用的堆內(nèi)存的內(nèi)容轉(zhuǎn)存(dumping)(下文中,“堆轉(zhuǎn)存(heap dumping)”)并分析由應(yīng)用生成的對(duì)象。
[0006]在這些方法中,由于使用分析器監(jiān)視對(duì)象的狀態(tài)極大地降低了應(yīng)用的執(zhí)行速度,因此在CPU或內(nèi)存非常有限的MFP上的應(yīng)用是成問(wèn)題的。因此,使用了執(zhí)行堆轉(zhuǎn)存并分析由應(yīng)用生成的對(duì)象的技術(shù)。同樣,在一些情況下,預(yù)先確定用作應(yīng)用執(zhí)行環(huán)境的可用盤(pán)容量。在盤(pán)滿(disk full)的情況下,與內(nèi)存溢出不同,即使當(dāng)重啟MFP時(shí),狀況也不會(huì)被自動(dòng)恢復(fù)。因此,在“iR-ADV手冊(cè)”(佳能,“安裝應(yīng)用”頁(yè),“使用應(yīng)用”頁(yè)(2013年5月17日檢索),互聯(lián)網(wǎng)〈URL:http://cweb.canon, jp/manual/ir-adv/>)中公開(kāi)了如下技術(shù):應(yīng)用預(yù)先聲明使用量并且實(shí)施安裝限制以不超過(guò)該使用量。
[0007]然而,在上述傳統(tǒng)技術(shù)中存在以下問(wèn)題。使用傳統(tǒng)堆轉(zhuǎn)存,從設(shè)備中提取所獲取的堆轉(zhuǎn)存信息并對(duì)其進(jìn)行分析以定位造成內(nèi)存溢出的應(yīng)用,并且對(duì)由應(yīng)用使用的內(nèi)存量進(jìn)行累計(jì)。因此,無(wú)法實(shí)時(shí)獲知各應(yīng)用的內(nèi)存使用量。另一方面,由于應(yīng)用的執(zhí)行速度極大地降低,因此實(shí)際上,使用分析器難以實(shí)時(shí)測(cè)量各應(yīng)用使用的內(nèi)存量。
[0008]即使在應(yīng)用預(yù)先聲明盤(pán)使用量并且實(shí)施安裝限制以不超過(guò)該使用量的情況下,MFP上正在執(zhí)行的應(yīng)用中的一個(gè)也可能具有錯(cuò)誤并且整個(gè)應(yīng)用執(zhí)行環(huán)境可能處于盤(pán)滿狀態(tài)。在該情況下,即使在無(wú)錯(cuò)誤的應(yīng)用中也發(fā)生寫(xiě)入錯(cuò)誤,并且不再能夠進(jìn)行正常操作。


【發(fā)明內(nèi)容】

[0009]本發(fā)明使得能夠?qū)崿F(xiàn)在維持性能的同時(shí)實(shí)時(shí)測(cè)量各應(yīng)用使用的內(nèi)存或者盤(pán)的使用量的機(jī)制。
[0010]本發(fā)明的一個(gè)方面提供一種用于執(zhí)行多個(gè)應(yīng)用的圖像處理裝置,該圖像處理裝置包括:控制單元,其被配置為響應(yīng)于應(yīng)用的啟動(dòng)請(qǐng)求,讀取所述應(yīng)用的類(lèi)的類(lèi)文件,在所讀取的類(lèi)文件中包括的方法中添加用于將表示所述應(yīng)用的應(yīng)用信息記錄到線程的代碼,并加載所述類(lèi);對(duì)象生成單元,其被配置為在執(zhí)行所讀取的類(lèi)文件中包括的所述方法期間,分配要用于待生成的對(duì)象的內(nèi)存,并將所述線程記錄中的應(yīng)用信息記錄到所分配的內(nèi)存,并生成所述對(duì)象;以及內(nèi)存管理單元,其被配置為與內(nèi)存大小相關(guān)聯(lián)地管理由所述對(duì)象生成單元生成的所述對(duì)象的應(yīng)用信息。
[0011]本發(fā)明的另一方面提供一種用于執(zhí)行多個(gè)應(yīng)用的圖像處理裝置,該圖像處理裝置包括:控制單元,其被配置為響應(yīng)于應(yīng)用的啟動(dòng)請(qǐng)求,讀取所述應(yīng)用的類(lèi)的類(lèi)文件,在所讀取的類(lèi)文件中包括的方法中添加用于將表示所述應(yīng)用的應(yīng)用信息記錄到線程的代碼,并加載所述類(lèi);對(duì)象生成單元,其被配置為在執(zhí)行所讀取的類(lèi)文件中包括的方法期間,分配要用于待生成的對(duì)象的文件大小,并且使用所分配的文件大小作為盤(pán)使用量來(lái)記錄所述線程中記錄的應(yīng)用信息,并生成所述對(duì)象;以及盤(pán)管理單元,其被配置為將由所述對(duì)象生成單元生成的所述對(duì)象的應(yīng)用信息與盤(pán)使用量被有聯(lián)系地管理。
[0012]本發(fā)明的又一方面提供一種圖像處理裝置的控制方法,該圖像處理裝置執(zhí)行多個(gè)應(yīng)用,所述控制方法包括如下步驟:響應(yīng)于應(yīng)用的啟動(dòng)請(qǐng)求,通過(guò)控制單元讀取所述應(yīng)用的類(lèi)的類(lèi)文件,在所讀取的類(lèi)文件中包括的方法中添加用于將表示所述應(yīng)用的應(yīng)用信息添加到線程的代碼,并加載所述類(lèi);在執(zhí)行所讀取的類(lèi)文件中包括的所述方法期間,通過(guò)對(duì)象生成單元,分配要用于待生成的對(duì)象的內(nèi)存,將所述線程中記錄的應(yīng)用信息記錄到所分配的內(nèi)存,并生成所述對(duì)象;以及通過(guò)內(nèi)存管理單元,與內(nèi)存大小相關(guān)聯(lián)地管理由所述對(duì)象生成單元生成的所述對(duì)象的應(yīng)用信息。
[0013]本發(fā)明的再一方面提供一種圖像處理裝置的控制方法,該圖像處理裝置執(zhí)行多個(gè)應(yīng)用,所述控制方法包括如下步驟:響應(yīng)于應(yīng)用的啟動(dòng)請(qǐng)求,通過(guò)控制單元讀取所述應(yīng)用的類(lèi)的類(lèi)文件,在所讀取的類(lèi)文件中包括的方法中添加用于將表示所述應(yīng)用的應(yīng)用信息添加到線程的代碼,并加載所述類(lèi);在執(zhí)行所讀取的類(lèi)文件中包括的所述方法期間,通過(guò)對(duì)象生成單元,分配要用于待生成的對(duì)象的文件大小,并且使用所分配的文件大小作為盤(pán)使用量來(lái)記錄所述線程中記錄的應(yīng)用信息,并生成所述對(duì)象;以及通過(guò)盤(pán)管理單元,與盤(pán)使用量相關(guān)聯(lián)地管理由所述對(duì)象生成單元生成的所述對(duì)象的應(yīng)用信息。
[0014]通過(guò)以下參照附圖對(duì)示例性實(shí)施例的描述,本發(fā)明的其他特征將變得清楚。

【專(zhuān)利附圖】

【附圖說(shuō)明】
[0015]圖1是示出應(yīng)用管理裝置的配置的圖。
[0016]圖2是示出應(yīng)用管理裝置的軟件配置的圖。
[0017]圖3是示出應(yīng)用管理裝置的模塊配置的圖。
[0018]圖4是清單文件。
[0019]圖5是app (應(yīng)用)類(lèi)加載器表以及使用內(nèi)存表。
[0020]圖6是類(lèi)加載處理的流程圖。
[0021]圖7是示出添加了 TASKINF0類(lèi)方法的示例性代碼的圖。
[0022]圖8是根據(jù)第一實(shí)施例的線程結(jié)構(gòu)的圖。
[0023]圖9是根據(jù)第一實(shí)施例的執(zhí)行插入了 TASKINF0命令的方法時(shí)的流程圖。
[0024]圖10是示出對(duì)象結(jié)構(gòu)以及堆內(nèi)存的圖。
[0025]圖11是示出根據(jù)第一實(shí)施例的對(duì)象生成處理的流程圖。
[0026]圖12是GC處理的流程圖。
[0027]圖13是示出多個(gè)應(yīng)用之間的示例性調(diào)用處理的圖。
[0028]圖14是根據(jù)第二實(shí)施例的線程結(jié)構(gòu)的圖。
[0029]圖15是根據(jù)第二實(shí)施例的執(zhí)行插入了 TASKINF0命令的方法時(shí)的流程圖。
[0030]圖16是示出根據(jù)第二實(shí)施例的對(duì)象生成處理的流程圖。
[0031]圖17是示出根據(jù)第三實(shí)施例的應(yīng)用管理裝置的配置的圖。
[0032]圖18是使用內(nèi)存量聲明表。
[0033]圖19是示出根據(jù)第三實(shí)施例的對(duì)象生成處理的流程圖。
[0034]圖20是示出根據(jù)第四實(shí)施例的應(yīng)用管理裝置的配置的圖。
[0035]圖21是示出使用盤(pán)表2002以及使用盤(pán)量聲明表2003的配置的圖。
[0036]圖22是根據(jù)第四實(shí)施例的清單文件的圖。
[0037]圖23是根據(jù)第四實(shí)施例的啟動(dòng)時(shí)的流程圖。
[0038]圖24是FileOutputStream對(duì)象生成時(shí)的流程圖。
[0039]圖25是執(zhí)行FileOutputStream對(duì)象write方法時(shí)的流程圖。
[0040]圖26是執(zhí)行RandomAccessFile對(duì)象setLength方法時(shí)的流程圖。
[0041]圖27是執(zhí)行RandomAccessFile對(duì)象write方法時(shí)的流程圖。
[0042]圖28是執(zhí)行File對(duì)象delete方法時(shí)的流程圖。

【具體實(shí)施方式】
[0043]現(xiàn)在,參照附圖對(duì)本發(fā)明的實(shí)施例進(jìn)行詳細(xì)描述。應(yīng)當(dāng)指出,除非另外具體說(shuō)明,這些實(shí)施例中描述的部件、數(shù)字表示以及數(shù)值的相對(duì)布置不限制本發(fā)明的范圍。
[0044]第一實(shí)施例
[0045]應(yīng)用管理裝置的配置
[0046]下文中,參照?qǐng)D1至圖12描述本發(fā)明的第一實(shí)施例。首先,參照?qǐng)D1描述應(yīng)用管理裝置100的硬件配置。應(yīng)用管理裝置100是圖像處理裝置的示例。應(yīng)用管理裝置100配設(shè)有控制器120、掃描器111、打印機(jī)112以及操作面板113,并且還配設(shè)有可拆卸的IC讀卡器116。控制器120配設(shè)有CPU101、R0M102、RAM103、外部存儲(chǔ)設(shè)備104、USBH I/F控制器105、掃描器I/F控制器106、打印機(jī)I/F控制器107、NVRAM108、面板控制器109以及網(wǎng)絡(luò)I/F控制器110。
[0047]CPUlOl執(zhí)行應(yīng)用管理裝置100的軟件程序并進(jìn)行裝置的整體控制。R0M102為只讀存儲(chǔ)器并且存儲(chǔ)裝置的引導(dǎo)程序、固定參數(shù)等。RAM103是隨機(jī)存取存儲(chǔ)器,并且在CPUlOl控制裝置時(shí)用于臨時(shí)數(shù)據(jù)存儲(chǔ)等。外部存儲(chǔ)裝置104用于各種數(shù)據(jù)的存儲(chǔ),例如所安裝的應(yīng)用、應(yīng)用數(shù)據(jù)以及打印數(shù)據(jù)的存儲(chǔ)。
[0048]USBH I/F控制器105用于控制USB主機(jī)接口,并且控制與各種USB設(shè)備的通信。掃描器I/F控制器106是控制掃描器111的裝置。打印機(jī)I/F控制器107是控制打印機(jī)112的裝置。NVRAM108是非易失性存儲(chǔ)器,并且其中保存應(yīng)用管理裝置100的各種設(shè)定值。
[0049]面板控制器109用于控制操作面板113、顯示各種信息以及接收來(lái)自用戶的指令的輸入。網(wǎng)絡(luò)I/F控制器110控制網(wǎng)絡(luò)115的數(shù)據(jù)發(fā)送和接收。CPU101、R0M102、RAM103、外部存儲(chǔ)設(shè)備104、USBH I/F控制器105、掃描器I/F控制器106、打印機(jī)I/F控制器107、NVRAM108、面板控制器109以及網(wǎng)絡(luò)I/F控制器110與總線114連接。此外,總線114是經(jīng)由其發(fā)送和接收來(lái)自CPUlOl的控制信號(hào)以及不同裝置之間的數(shù)據(jù)信號(hào)的系統(tǒng)總線。IC讀卡器116是用于進(jìn)行驗(yàn)證的USB設(shè)備。
[0050]軟件配置
[0051]接下來(lái),參照?qǐng)D2描述應(yīng)用管理裝置100的軟件200的示例。硬件201執(zhí)行應(yīng)用管理裝置的軟件。0S202執(zhí)行處理的管理、內(nèi)存管理以及輸入輸出管理。本地應(yīng)用203是實(shí)現(xiàn)設(shè)備的基本功能(例如復(fù)印等)的程序。
[0052]應(yīng)用管理裝置100的軟件200由Java VM204和應(yīng)用平臺(tái)205構(gòu)成。Java VM204是執(zhí)行Java程序的虛擬機(jī)。應(yīng)用平臺(tái)205是管理應(yīng)用的生命周期(即至少一個(gè)或者多個(gè)應(yīng)用程序在單個(gè)Java VM上的啟動(dòng)、停止、安裝以及卸載)的程序。app A206和app B207是在應(yīng)用平臺(tái)205上操作的應(yīng)用程序。Java VM204將應(yīng)用平臺(tái)205、app A206和app B207作為單個(gè)Java應(yīng)用208來(lái)處理。
[0053]模塊配置
[0054]接下來(lái),參照?qǐng)D3描述構(gòu)成本發(fā)明的應(yīng)用管理裝置100的軟件200的模塊的示例。Java VM204配設(shè)有字節(jié)代碼執(zhí)行單元301、內(nèi)存管理單元302、堆內(nèi)存305以及系統(tǒng)類(lèi)加載器 306。
[0055]字節(jié)代碼執(zhí)行單元301解釋和執(zhí)行作為Java程序代碼的字節(jié)代碼。堆內(nèi)存305是由Java VM204管理的內(nèi)存區(qū)域,并且保持通過(guò)Java程序的執(zhí)行而生成的Java對(duì)象。內(nèi)存管理單元302管理應(yīng)用使用的內(nèi)存。內(nèi)存管理單元302由對(duì)象生成單元303和GC執(zhí)行單元304構(gòu)成。對(duì)象生成單元303根據(jù)由字節(jié)代碼執(zhí)行單元301執(zhí)行的程序代碼的指令來(lái)生成Java對(duì)象。GC執(zhí)行單元304執(zhí)行用于從保存在堆內(nèi)存305中的Java對(duì)象中刪除不再使用的Java對(duì)象的垃圾收集。系統(tǒng)類(lèi)加載器306加載由JavaVM204管理的類(lèi)。通常,類(lèi)加載器根據(jù)需要(即,當(dāng)執(zhí)行處理時(shí))首先加載Java類(lèi)。
[0056]應(yīng)用平臺(tái)205由應(yīng)用管理單元308、應(yīng)用內(nèi)存管理單元307以及app類(lèi)加載器管理單元309構(gòu)成。應(yīng)用內(nèi)存管理單元307具有用于管理各app使用的內(nèi)存的使用內(nèi)存表313,并針對(duì)各應(yīng)用管理要使用的內(nèi)存。應(yīng)用管理單元308管理應(yīng)用的生命周期,例如應(yīng)用的安裝、啟動(dòng)、停止以及卸載。app類(lèi)加載器管理單元309具有app類(lèi)加載表310,并且針對(duì)各應(yīng)用生成和管理app類(lèi)加載器。app類(lèi)加載器從保存在外部存儲(chǔ)設(shè)備104中的應(yīng)用的程序文件312中加載類(lèi)。
[0057]清單文件
[0058]接下來(lái),將參照?qǐng)D4描述應(yīng)用的清單文件的內(nèi)容。清單文件是應(yīng)用的Jar文件中包括的文件。在清單文件中記載了如下信息。
[0059]Bundle-Name401是應(yīng)用的名稱(chēng)。Applicat1n_Id402是作為用于識(shí)別應(yīng)用的唯一標(biāo)識(shí)符的應(yīng)用ID。MaximumMemoryUsage403是應(yīng)用可用的最大內(nèi)存使用量。這些設(shè)定項(xiàng)目由應(yīng)用平臺(tái)205規(guī)定。請(qǐng)注意,上述設(shè)定項(xiàng)目和設(shè)定值是示例并不旨在不限制本發(fā)明,并且除了上述項(xiàng)目和設(shè)定值以外,在清單文件中還可以記載各種設(shè)定項(xiàng)目和設(shè)定值。
[0060]表
[0061 ] 接下來(lái),將參照?qǐng)D5描述由應(yīng)用平臺(tái)205管理的app類(lèi)加載器表310和使用內(nèi)存表313。app類(lèi)加載器表310是將作為應(yīng)用的標(biāo)識(shí)符的應(yīng)用ID501和應(yīng)用的app類(lèi)加載器502有聯(lián)系(tie together)地管理的表。使用內(nèi)存表313是將作為應(yīng)用的標(biāo)識(shí)符的應(yīng)用ID503和應(yīng)用當(dāng)前正在使用的內(nèi)存量504有聯(lián)系地管理的表。
[0062]加載處理
[0063]接下來(lái),將參照?qǐng)D6描述根據(jù)本實(shí)施例的應(yīng)用平臺(tái)205加載應(yīng)用的類(lèi)時(shí)的處理過(guò)程。通過(guò)CPUlOl將存儲(chǔ)在R0M102或者外部存儲(chǔ)設(shè)備104中的控制程序讀出到RAM103并執(zhí)行該控制程序來(lái)實(shí)現(xiàn)下文中描述的處理。
[0064]當(dāng)執(zhí)行應(yīng)用的啟動(dòng)請(qǐng)求時(shí),CPUlOl向app類(lèi)加載器管理單元309發(fā)出app類(lèi)加載器請(qǐng)求。在S602中,app類(lèi)加載器管理單元309開(kāi)始獲取app類(lèi)加載器。首先,在S603中,app類(lèi)加載器管理單元309確定在類(lèi)加載器表310中是否存在與針對(duì)其進(jìn)行了類(lèi)加載器請(qǐng)求的應(yīng)用的應(yīng)用ID相對(duì)應(yīng)的類(lèi)加載器。如果存在相應(yīng)的類(lèi)加載器,則處理進(jìn)入S607,而如果不存在相應(yīng)的類(lèi)加載器,則處理進(jìn)入S604。
[0065]在S604中,app類(lèi)加載器管理單元309生成app類(lèi)加載器。然后,在S605中,app類(lèi)加載器管理單元309針對(duì)在S604生成的app類(lèi)加載器保存應(yīng)用ID。此外,在S606中,app類(lèi)加載器管理單元309將在S604中生成的app類(lèi)加載器以及針對(duì)其進(jìn)行了類(lèi)加載器請(qǐng)求的應(yīng)用的應(yīng)用ID登記在app類(lèi)加載器表310中。之后,處理進(jìn)入S607,并返回到應(yīng)用。
[0066]如果在S603中確定存在相應(yīng)的類(lèi)加載器或者在S606的處理之后,CPUlOl在S607中使用從app類(lèi)加載器管理單元309獲取的app類(lèi)加載器開(kāi)始應(yīng)用206的啟動(dòng)。然后,在S608中,啟動(dòng)的應(yīng)用206開(kāi)始生成應(yīng)用對(duì)象。此外,為了加載應(yīng)用的類(lèi),應(yīng)用206在S609中向從app類(lèi)加載器管理單元309獲取的app類(lèi)加載器發(fā)出針對(duì)應(yīng)用類(lèi)的類(lèi)加載請(qǐng)求。
[0067]在S610中,應(yīng)用類(lèi)加載器在從應(yīng)用206接收到app類(lèi)的加載請(qǐng)求時(shí),首先請(qǐng)求Java VM中內(nèi)置的系統(tǒng)類(lèi)加載器306加載類(lèi)。在S611中,系統(tǒng)類(lèi)加載器306在接收到類(lèi)加載請(qǐng)求時(shí),讀取所請(qǐng)求的類(lèi)的類(lèi)文件的字節(jié)代碼。然后,在S612中,系統(tǒng)類(lèi)加載器306確定類(lèi)文件的讀取是否完成,并且如果完成,則進(jìn)入S613。另一方面,如果類(lèi)文件的讀取尚未完成,則由于正在加載的應(yīng)用的固有的類(lèi),處理返回到app類(lèi)加載器并進(jìn)入S614。在S613中,系統(tǒng)類(lèi)加載器306基于在S611中讀取的字節(jié)代碼來(lái)加載類(lèi),進(jìn)入S619,并向應(yīng)用206返回類(lèi)對(duì)象。
[0068]另一方面,在S614中,app類(lèi)加載器從app的Jar文件312讀取所請(qǐng)求的類(lèi)的字節(jié)代碼。然后,在S615中,app類(lèi)加載器確定是否類(lèi)文件存在并且讀取成功,如果成功則進(jìn)入S616,如果不成功則進(jìn)入S618。
[0069]在S616中,app類(lèi)加載器向讀取的字節(jié)代碼中插入TASKINF0命令,并在S617中,基于插入了 TASKINF0命令的字節(jié)代碼來(lái)加載類(lèi)。稍后將使用圖7詳細(xì)討論TASKINF0命令。之后,處理進(jìn)入S619,并且類(lèi)對(duì)象被返回到應(yīng)用206。
[0070]另一方面,如果在S615中確定類(lèi)文件不存在,則應(yīng)用206在S618中生成ClassNotFoundExc印t1n,并結(jié)束應(yīng)用的啟動(dòng)。在S619中,應(yīng)用206使用在S617中加載的類(lèi),來(lái)生成應(yīng)用對(duì)象的實(shí)例,并結(jié)束app的啟動(dòng)。
[0071]TASKINF0 命令
[0072]接下來(lái),將參照?qǐng)D7描述根據(jù)本發(fā)明的在S616中在字節(jié)代碼中插入的TASKINF0命令。附圖標(biāo)記701表示插入TASKINF0命令前的代碼。附圖標(biāo)記702表示插入TASKINF0命令后的代碼。
[0073]如附圖標(biāo)記703所示,在方法的開(kāi)頭插入“TASKINF0.set (應(yīng)用ID); ”。這里,給出“11-1111-1111”作為示例性應(yīng)用ID。在S605中保存在類(lèi)加載器中的值被轉(zhuǎn)換為字符串并被插入作為應(yīng)用ID。此外,如附圖標(biāo)記704所示,在方法的末尾,插入“TASKINF0.remove O ; ”。稍后詳細(xì)討論 TASKINF0.set O 方法和 TASKINF0.remove O 方法。
[0074]線程結(jié)構(gòu)
[0075]接下來(lái),將參照?qǐng)D8描述根據(jù)本發(fā)明的第一實(shí)施例的線程的結(jié)構(gòu)。線程的結(jié)構(gòu)801具有用于存儲(chǔ)應(yīng)用ID的字段802。TASKINF0.set O方法和TASKINF0.remove O方法使用字段802。具體地說(shuō),TASKINF0.set O方法設(shè)定應(yīng)用ID,TASKINF0.remove O方法去除應(yīng)用ID0
[0076]方法的處理
[0077]接下來(lái),將參照?qǐng)D9描述根據(jù)本發(fā)明在字節(jié)代碼執(zhí)行單元301中執(zhí)行插入了應(yīng)用的程序中包括的TASKINFO命令的方法時(shí)的處理過(guò)程。通過(guò)CPU101將存儲(chǔ)在R0M102或者外部存儲(chǔ)設(shè)備104中的控制程序讀出到RAM103并執(zhí)行該控制程序來(lái)實(shí)現(xiàn)下文中描述的處理。
[0078]在開(kāi)始執(zhí)行應(yīng)用的方法時(shí),應(yīng)用206調(diào)用位于方法的頭(head)的“TASKINF0.set (應(yīng)用ID) ”。此時(shí),應(yīng)用ID被添加作為參數(shù)。之后,處理轉(zhuǎn)變到TASKINFO類(lèi)的set方法。
[0079]在S903中,TASKINFO類(lèi)的set方法首先獲取正在執(zhí)行處理的當(dāng)前線程。然后,set方法將作為set方法的參數(shù)傳送的應(yīng)用ID的值保存到在S904中獲取的線程結(jié)構(gòu)的應(yīng)用ID字段802中,并將處理返回到應(yīng)用206。
[0080]在S905中,應(yīng)用206執(zhí)行app的方法中的處理,在S906中,調(diào)用位于方法的末尾的“TASKINF0.remove O ; ”。之后,處理轉(zhuǎn)變到TASKINFO類(lèi)的remove方法。
[0081]在S907中,TASKINFO類(lèi)的remove方法首先獲取正在執(zhí)行處理的當(dāng)前線程。在S908中,remove方法將在S907中獲取的線程的線程結(jié)構(gòu)的字段802中設(shè)定的應(yīng)用ID的值去除,并將處理返回到應(yīng)用。應(yīng)用結(jié)束方法的處理。由此在方法的執(zhí)行期間記錄與線程相對(duì)應(yīng)的應(yīng)用信息。使用該信息,根據(jù)本實(shí)施例的圖像處理裝置能夠?qū)崟r(shí)查明內(nèi)存使用量。
[0082]對(duì)象結(jié)構(gòu)以及堆內(nèi)存
[0083]接下來(lái),將參照?qǐng)D10描述本發(fā)明的對(duì)象的結(jié)構(gòu)以及堆內(nèi)存。附圖標(biāo)記1001表示用作比較示例的Java VM的堆內(nèi)存。根據(jù)本實(shí)施例的對(duì)象的結(jié)構(gòu)1002與堆內(nèi)存1001的不同之處在于:除了對(duì)象固有的信息以外,還配設(shè)用于保存應(yīng)用ID(應(yīng)用信息)的字段1003。因此,根據(jù)本實(shí)施例的Java VM204的堆內(nèi)存305如附圖標(biāo)記1004所示。例如,如圖10所示,堆內(nèi)存305分配對(duì)象A至E的結(jié)構(gòu)的區(qū)域。分配的區(qū)域還分別配設(shè)有用于保存結(jié)構(gòu)中包括的應(yīng)用ID的區(qū)域。因此,能夠容易地確認(rèn)與任意對(duì)象相關(guān)的應(yīng)用。在圖10中,未使用的內(nèi)存區(qū)域被表示為空余內(nèi)存。
[0084]對(duì)象生成處理
[0085]接下來(lái),參照?qǐng)D11描述根據(jù)第一實(shí)施例的對(duì)象生成處理的處理過(guò)程。在上述圖9的S905的處理期間執(zhí)行對(duì)象生成處理。通過(guò)CPUlOl將存儲(chǔ)在R0M102或者外部存儲(chǔ)設(shè)備104中的控制程序讀出到RAM103并執(zhí)行該控制程序來(lái)實(shí)現(xiàn)下文中描述的處理。
[0086]在字節(jié)代碼執(zhí)行單元301正在執(zhí)行進(jìn)行對(duì)象生成的應(yīng)用的代碼時(shí),開(kāi)始對(duì)象生成處理,并且Java VM204的對(duì)象生成單元303被調(diào)用。在SI 102中,對(duì)象生成單元303首先獲取當(dāng)前線程。然后,在S1103中,對(duì)象生成單元303讀取在S1102中獲取的線程的結(jié)構(gòu)的應(yīng)用ID字段802,并獲取應(yīng)用ID。
[0087]在S1104中,對(duì)象生成單元303獲取用于對(duì)象生成的內(nèi)存,并生成對(duì)象。此外,在S1105中,對(duì)象生成單元303將在S1103中獲取的應(yīng)用ID記錄在對(duì)象的結(jié)構(gòu)的應(yīng)用ID字段1003中。在S1106中,為了記錄內(nèi)存增加量,對(duì)象生成單元303使用在S1105中記錄的應(yīng)用ID以及在S1104中生成的對(duì)象的大小作為參數(shù),來(lái)調(diào)用應(yīng)用內(nèi)存管理單元307。
[0088]在SI 107中,應(yīng)用內(nèi)存管理單元307使用在SI 106中被指定為參數(shù)的應(yīng)用ID,搜索使用內(nèi)存表313的應(yīng)用ID字段503。這里,如果存在應(yīng)用ID,則處理進(jìn)入S1109,而如果不存在應(yīng)用ID,則進(jìn)入S1108。
[0089]在SI 108中,應(yīng)用管理單元308生成使用內(nèi)存大小為O的新記錄,將所生成的記錄登記在使用內(nèi)存表313中,然后進(jìn)入S1109。在S1109中,應(yīng)用管理單元308更新與使用內(nèi)存表313中的應(yīng)用ID相對(duì)應(yīng)的使用內(nèi)存的值504,并將處理返回到對(duì)象生成單元303。在SlllO中,對(duì)象生成單元303將所生成的對(duì)象返回到應(yīng)用。應(yīng)用206接收所生成的對(duì)象并結(jié)束對(duì)象生成處理。以這種方式,根據(jù)本實(shí)施例的應(yīng)用管理裝置在生成對(duì)象時(shí),通過(guò)應(yīng)用內(nèi)存管理單元307來(lái)管理相應(yīng)的應(yīng)用ID和分配的內(nèi)存大小。
[0090]GC 處理
[0091]接下來(lái),將參照?qǐng)D12描述根據(jù)本發(fā)明的第一實(shí)施例的GC處理的處理過(guò)程。當(dāng)對(duì)象生成沒(méi)有足夠的空余內(nèi)存時(shí),Java VM204通過(guò)釋放不再需要的對(duì)象來(lái)進(jìn)行用于增加空余內(nèi)存的處理。該處理被稱(chēng)為垃圾收集(GC)。通過(guò)CPUlOl將存儲(chǔ)在R0M102或者外部存儲(chǔ)設(shè)備104中的控制程序讀出到RAM103并執(zhí)行該控制程序來(lái)實(shí)現(xiàn)下文中描述的處理。
[0092]當(dāng)對(duì)象生成單元303的對(duì)象生成沒(méi)有足夠空余內(nèi)存時(shí),GC執(zhí)行單元304開(kāi)始GC處理。在S1202中,GC執(zhí)行單元304在堆內(nèi)存305中搜索作為GC目標(biāo)的、任何人未在參照的任意對(duì)象。在S1203中,GC執(zhí)行單元304確定是否找到目標(biāo)對(duì)象。這里,如果存在目標(biāo)對(duì)象,則處理進(jìn)入S1204,而如果不存在目標(biāo)對(duì)象,則處理結(jié)束。
[0093]在S1204中,GC執(zhí)行單元304從堆內(nèi)存305中獲取目標(biāo)對(duì)象的內(nèi)容。然后,GC執(zhí)行單元304獲取在S1204中獲取的對(duì)象的應(yīng)用ID字段的值。此外,在S1206,為了記錄內(nèi)存減少量,GC執(zhí)行單元304使用在S1205中記錄的應(yīng)用ID以及在S1204中獲取的對(duì)象的大小作為參數(shù),來(lái)調(diào)用應(yīng)用內(nèi)存管理單元307。
[0094]在S1207中,應(yīng)用內(nèi)存管理單元307更新與在S1206中被指定為參數(shù)的應(yīng)用ID相對(duì)應(yīng)的使用內(nèi)存表313中的使用內(nèi)存的值504,并將處理返回到GC執(zhí)行單元304。當(dāng)處理從應(yīng)用內(nèi)存管理單元307返回時(shí),GC執(zhí)行單元304在S1208中釋放對(duì)象,并進(jìn)入S1202以找到作為GC目標(biāo)的下一對(duì)象。
[0095]如上所述,根據(jù)本實(shí)施例的圖像處理裝置響應(yīng)于應(yīng)用的啟動(dòng)請(qǐng)求,讀取應(yīng)用的類(lèi)的類(lèi)文件,在所讀取的類(lèi)文件中包括的方法的開(kāi)頭添加用于將表示應(yīng)用的應(yīng)用信息記錄到線程的代碼,并加載該類(lèi)。此外,該圖像處理裝置在方法的執(zhí)行期間,分配要用于待生成的對(duì)象的內(nèi)存,將線程中記錄的應(yīng)用信息記錄到分配的內(nèi)存,同時(shí)生成對(duì)象并將生成的對(duì)象的應(yīng)用信息與內(nèi)存大小有聯(lián)系地管理。因此,通過(guò)該圖像處理裝置,能夠在維持性能的同時(shí)實(shí)時(shí)測(cè)量各應(yīng)用的內(nèi)存使用量或者盤(pán)使用量。
[0096]第二實(shí)施例
[0097]以下,參照?qǐng)D13至圖16描述本發(fā)明的第二實(shí)施例。請(qǐng)注意,將省略與第一實(shí)施例類(lèi)似的配置和控制的描述。與第一實(shí)施例類(lèi)似地執(zhí)行類(lèi)加載處理。首先,將參照?qǐng)D13描述多個(gè)應(yīng)用在應(yīng)用平臺(tái)205上協(xié)同操作的序列。
[0098]用作本發(fā)明的圖像處理裝置的應(yīng)用管理裝置100以及由網(wǎng)絡(luò)連接的設(shè)備操作瀏覽器1301。設(shè)備是PC、智能手機(jī)或者平板。HTTP服務(wù)器appl302是在應(yīng)用平臺(tái)205上操作的HTTP服務(wù)器程序,并且具有應(yīng)用ID “44-4444-4444”。servlet appl303是與HTTP服務(wù)器appl302協(xié)同操作的servlet型應(yīng)用,并且具有應(yīng)用ID “11-1111-1111”。
[0099]在S1304中,瀏覽器1301通過(guò)網(wǎng)絡(luò)向HTTP服務(wù)器app 1302發(fā)送HTTP請(qǐng)求。然后,在S1305中,HTTP服務(wù)器appl302在接收到HTTP請(qǐng)求時(shí),生成用于進(jìn)行HTTP請(qǐng)求響應(yīng)處理的一個(gè)線程,并進(jìn)行HTTP請(qǐng)求分析處理。
[0100]如果HTTP請(qǐng)求針對(duì)servlet appl303,則HTTP服務(wù)器appl302在S1306中將信息附在 HTTP 請(qǐng)求上并調(diào)用 servlet appl303。在 S1307 中,servlet appl303 執(zhí)行由 servlet實(shí)施的固有處理,并且在S1308中,將servlet的處理結(jié)果返回到HTTP服務(wù)器appl302。
[0101]在S1309中,HTTP服務(wù)器app 1302基于接收到的servlet的處理結(jié)果來(lái)生成HTTP響應(yīng),并且在S1310中,將HTTP響應(yīng)通過(guò)網(wǎng)絡(luò)返回到瀏覽器。此時(shí),通過(guò)一個(gè)線程處理S1305至 S1309。
[0102]在應(yīng)用平臺(tái)205上如圖所示的多個(gè)應(yīng)用協(xié)同操作是常見(jiàn)的。通過(guò)HTTP請(qǐng)求處理(S1305)、servlet處理(S1307)或者HTTP響應(yīng)處理(S1309)或者上述全部處理來(lái)進(jìn)行對(duì)象生成。因此,需要區(qū)分對(duì)象是由HTTP服務(wù)器appl302生成還是servlet appl303生成。
[0103]線程結(jié)構(gòu)
[0104]接下來(lái),將參照?qǐng)D14描述根據(jù)本發(fā)明的第二實(shí)施例的線程的結(jié)構(gòu)。線程結(jié)構(gòu)1401具有應(yīng)用ID棧1402作為字段。當(dāng)在圖13的處理中正在執(zhí)行作為servlet固有處理的S1307時(shí),正在執(zhí)行的應(yīng)用的應(yīng)用ID被堆棧。在該情況下,servlet appl303的應(yīng)用ID1403和HTTP服務(wù)器appl302的應(yīng)用ID1404從頂部依次堆棧在應(yīng)用ID棧1402中。
[0105]方法的處理
[0106]接下來(lái),將參照?qǐng)D15描述根據(jù)本發(fā)明的第二實(shí)施例的在字節(jié)代碼執(zhí)行單元301中執(zhí)行插入了應(yīng)用的程序中包括的TASKINFO命令的方法時(shí)的處理過(guò)程。通過(guò)CPUlOl將存儲(chǔ)在R0M102或者外部存儲(chǔ)設(shè)備104中的控制程序讀出到RAM103并執(zhí)行該控制程序來(lái)實(shí)現(xiàn)下文中描述的處理。
[0107]當(dāng)開(kāi)始執(zhí)行應(yīng)用的方法時(shí),應(yīng)用206調(diào)用位于方法的頭的“TASKINF0.set (應(yīng)用ID) ; ”703,處理進(jìn)入TASKINFO類(lèi)的set方法。在S903中,TASKINFO類(lèi)的set方法首先獲取正在執(zhí)行處理的當(dāng)前線程。然后,在S1501中,set方法將作為set方法的參數(shù)傳送的應(yīng)用ID的值添加到獲取的線程結(jié)構(gòu)的應(yīng)用ID棧1402的頭,并將處理返回到應(yīng)用。
[0108]在S905中,應(yīng)用206執(zhí)行應(yīng)用的方法中的處理,調(diào)用位于方法的末尾的“TASKINF0.remove O ; ” 704,并且處理進(jìn)入 TASKINFO 類(lèi)的 remove 方法。在 S907 中,TASKINFO類(lèi)的remove方法首先獲取正在執(zhí)行處理的當(dāng)前線程。然后,在S1502中,remove方法刪除在S907中獲取的線程的線程結(jié)構(gòu)的應(yīng)用ID棧的頭的應(yīng)用ID,并將處理返回到應(yīng)用。之后,應(yīng)用206結(jié)束方法的處理。
[0109]對(duì)象生成處理
[0110]接下來(lái),將參照?qǐng)D16描述根據(jù)本發(fā)明的第二實(shí)施例的對(duì)象生成處理。通過(guò)CPU101將存儲(chǔ)在R0M102或者外部存儲(chǔ)設(shè)備104中的控制程序讀出到RAM103并執(zhí)行該控制程序來(lái)實(shí)現(xiàn)下文中描述的處理。在字節(jié)代碼執(zhí)行單元301正在執(zhí)行進(jìn)行對(duì)象生成的應(yīng)用的代碼時(shí),開(kāi)始對(duì)象生成處理,并且Java VM204的對(duì)象生成單元303被調(diào)用。
[0111]在S1102中,對(duì)象生成單元303首先獲取當(dāng)前線程。然后,在S1601中,對(duì)象生成單元303獲取位于在S1102中獲取的線程的結(jié)構(gòu)的應(yīng)用ID棧的頭的應(yīng)用ID。
[0112]在S1104中,對(duì)象生成單元303獲取用于對(duì)象生成的內(nèi)存,并生成對(duì)象。然后,在S1105中,對(duì)象生成單元303將在S1601中獲取的應(yīng)用ID記錄在對(duì)象的結(jié)構(gòu)的應(yīng)用ID字段1003中。此外,在S1106,為了記錄內(nèi)存增加量,對(duì)象生成單元303使用在S1105中記錄的應(yīng)用ID以及在S1104中生成的對(duì)象的大小作為參數(shù),來(lái)調(diào)用應(yīng)用內(nèi)存管理單元307。
[0113]在S1107中,應(yīng)用內(nèi)存管理單元308使用應(yīng)用ID搜索使用內(nèi)存表313的應(yīng)用ID字段503,并確定是否存在應(yīng)用ID。如果存在應(yīng)用ID,則處理進(jìn)入S1109,而如果不存在應(yīng)用ID,則進(jìn)入S1108。在S1108中,應(yīng)用管理單元308生成使用內(nèi)存大小為O的新記錄,將所生成的記錄登記在使用內(nèi)存表313中,并使處理進(jìn)入S1109。在S1109中,應(yīng)用管理單元308更新與使用內(nèi)存表313的應(yīng)用ID相對(duì)應(yīng)的使用內(nèi)存的值504,并將處理返回到對(duì)象生成單元303。
[0114]在SlllO中,對(duì)象生成單元303將所生成的對(duì)象返回到應(yīng)用。應(yīng)用206接收所生成的對(duì)象并結(jié)束對(duì)象生成處理。由于GC處理與第一實(shí)施例類(lèi)似,因此省略其描述。
[0115]如上所述,根據(jù)本實(shí)施例,在多個(gè)應(yīng)用協(xié)同操作的情況下,在線程中記錄的應(yīng)用信息將具有棧結(jié)構(gòu)。由此,即使在如圖13所示的情況下,與第一實(shí)施例類(lèi)似,也能夠在維持性能的同時(shí)測(cè)量各應(yīng)用的內(nèi)存使用量或者盤(pán)使用量。
[0116]第三實(shí)施例
[0117]下文中,將參照?qǐng)D17至圖19描述本發(fā)明的第三實(shí)施例。請(qǐng)注意,下文中,將省略與第一實(shí)施例和第二實(shí)施例類(lèi)似的配置和控制的描述。首先,參照?qǐng)D17描述本實(shí)施例的應(yīng)用管理裝置的軟件200的模塊的示例性配置。
[0118]如圖17所示,除了圖3所示的配置以外,應(yīng)用內(nèi)存管理單元307還配設(shè)有使用內(nèi)存量聲明表1701。與第一實(shí)施例類(lèi)似地執(zhí)行類(lèi)加載處理。與第一實(shí)施例類(lèi)似地執(zhí)行插入了TASKINFO命令的方法執(zhí)行時(shí)的處理。
[0119]使用內(nèi)存量聲明表
[0120]接下來(lái),將參照?qǐng)D18描述使用內(nèi)存量聲明表1701。使用內(nèi)存量聲明表1701是將應(yīng)用ID1801與示出由應(yīng)用ID識(shí)別的應(yīng)用使用的最大內(nèi)存量的最大使用內(nèi)存1802有聯(lián)系地管理的表。
[0121]在圖4所示的應(yīng)用的清單文件的MaximumMemoryUsage設(shè)定403中記載應(yīng)用的最大內(nèi)存使用量。當(dāng)安裝應(yīng)用時(shí),應(yīng)用管理單元308從應(yīng)用的Jar文件讀取Applicat1n-1d設(shè)定402和MaximumMemoryUsage設(shè)定403。此外,應(yīng)用管理單元308將所讀取的值添加到使用內(nèi)存量聲明表1701中。
[0122]對(duì)象生成處理
[0123]接下來(lái),將參照?qǐng)D19描述根據(jù)本實(shí)施例的對(duì)象生成處理的處理過(guò)程。通過(guò)CPUlOl將存儲(chǔ)在R0M102或者外部存儲(chǔ)設(shè)備104中的控制程序讀出到RAM103并執(zhí)行該控制程序來(lái)實(shí)現(xiàn)下文中描述的處理。
[0124]在字節(jié)代碼執(zhí)行單元301正在執(zhí)行進(jìn)行對(duì)象生成的應(yīng)用的代碼時(shí)開(kāi)始對(duì)象生成處理,并且Java VM204的對(duì)象生成單元303被調(diào)用。在SI 102中,對(duì)象生成單元303首先獲取當(dāng)前線程。然后,在S1601中,對(duì)象生成單元303讀取在S1102中獲取的線程的結(jié)構(gòu)的應(yīng)用ID字段802,并獲取應(yīng)用ID。
[0125]在S1104中,對(duì)象生成單元303獲取用于對(duì)象生成的內(nèi)存,并生成對(duì)象。然后,在S1105中,對(duì)象生成單元303將在S1103中獲取的應(yīng)用ID記錄在對(duì)象結(jié)構(gòu)的應(yīng)用ID字段1003中。此外,在S1106,為了記錄內(nèi)存增加量,對(duì)象生成單元303使用在S1105中記錄的應(yīng)用ID以及在S1104中生成的對(duì)象的大小作為參數(shù),來(lái)調(diào)用應(yīng)用內(nèi)存管理單元307。
[0126]在SI 107中,應(yīng)用內(nèi)存管理單元307使用應(yīng)用ID搜索使用內(nèi)存表313的應(yīng)用ID字段503,并確定是否存在應(yīng)用ID。如果存在應(yīng)用ID,則處理進(jìn)入S1901,而如果不存在應(yīng)用ID,則進(jìn)入S1108。在S1108中,應(yīng)用內(nèi)存管理單元307生成使用內(nèi)存大小為O的新記錄,將所生成的記錄登記在使用內(nèi)存表313中,并使處理進(jìn)入S1901。
[0127]在S1901中,應(yīng)用內(nèi)存管理單元307使用應(yīng)用ID搜索使用內(nèi)存表313的應(yīng)用ID字段503,并獲取當(dāng)前使用內(nèi)存大小。
[0128]接下來(lái),在S1902中,應(yīng)用內(nèi)存管理單元307通過(guò)應(yīng)用ID搜索使用內(nèi)存量聲明表1701,并獲取與應(yīng)用ID相對(duì)應(yīng)的應(yīng)用的使用內(nèi)存聲明量。在S1903中,應(yīng)用內(nèi)存管理單元307確定在S1106中從對(duì)象生成單元303傳送的對(duì)象大小與在S1901中獲取的當(dāng)前使用內(nèi)存大小的總和是否小于或等于在S1902中獲取的最大內(nèi)存使用量。如果總和小于或等于最大內(nèi)存使用量,則處理進(jìn)入S1109,如果總和超過(guò)最大內(nèi)存使用量,則進(jìn)入S1904。
[0129]在SI 109中,應(yīng)用內(nèi)存管理單元307更新與使用內(nèi)存表313的應(yīng)用ID相對(duì)應(yīng)的使用內(nèi)存的值504,并將處理返回到對(duì)象生成單元303。在SlllO中,對(duì)象生成單元303將所生成的對(duì)象返回到應(yīng)用。應(yīng)用接收所生成的對(duì)象并結(jié)束對(duì)象生成處理。
[0130]另一方面,當(dāng)在S1903中確定總和超過(guò)最大內(nèi)存使用量時(shí),應(yīng)用內(nèi)存管理單元307在S1904中產(chǎn)生內(nèi)存錯(cuò)誤。然后,在S1905中,應(yīng)用內(nèi)存管理單元307請(qǐng)求應(yīng)用管理單元308進(jìn)行用于停止與應(yīng)用ID相對(duì)應(yīng)的應(yīng)用的處理,并將處理返回到應(yīng)用。應(yīng)用結(jié)束對(duì)象生成處理。
[0131]如上所述,根據(jù)本實(shí)施例,除了第一實(shí)施例和第二實(shí)施例中的至少一個(gè)的配置以夕卜,還配設(shè)有定義各應(yīng)用的最大內(nèi)存使用量的表。此外,圖像處理裝置能夠根據(jù)對(duì)象生成時(shí)分配的存儲(chǔ)器大小來(lái)進(jìn)行控制,以在當(dāng)前已經(jīng)正在使用的內(nèi)存使用量與分配的內(nèi)存大小的總和超過(guò)最大內(nèi)存使用量的情況下,停止對(duì)象的生成。
[0132]第四實(shí)施例
[0133]下文中,參照?qǐng)D20至圖28描述本發(fā)明的第四實(shí)施例。在本實(shí)施例中,將描述與內(nèi)存類(lèi)似地使用第一至第三實(shí)施例的機(jī)構(gòu)限制外部存儲(chǔ)設(shè)備104的盤(pán)使用量的實(shí)施例。因此,本實(shí)施例能夠分別與第一至第三實(shí)施例組合。請(qǐng)注意,下文中,將省略與第一至第三實(shí)施例類(lèi)似的配置和控制的描述。與第一實(shí)施例類(lèi)似地執(zhí)行類(lèi)加載處理。與第一實(shí)施例類(lèi)似地執(zhí)行插入了 TASKINFO命令的方法執(zhí)行時(shí)的處理。
[0134]在本實(shí)施例中,由應(yīng)用管理單元308安裝的應(yīng)用被存儲(chǔ)在外部存儲(chǔ)設(shè)備104的預(yù)定目錄中。此外,假定應(yīng)用被限制為僅能夠使用安裝了應(yīng)用自身的目錄下的容量。
[0135]模塊配置
[0136]首先,將參照?qǐng)D20描述根據(jù)本實(shí)施例的應(yīng)用管理裝置100的軟件200的模塊的示例性配置。除了圖17的配置以外,應(yīng)用平臺(tái)205配設(shè)有應(yīng)用盤(pán)管理單元2001,Java VM204配設(shè)有文件訪問(wèn)管理單元2004。
[0137]應(yīng)用盤(pán)管理單元2001由稍后描述的使用盤(pán)表2002和使用盤(pán)量聲明表2003構(gòu)成。文件訪問(wèn)管理單元2004由訪問(wèn)控制器2005構(gòu)成,并且通過(guò)應(yīng)用206控制對(duì)外部存儲(chǔ)設(shè)備104的文件訪問(wèn)。
[0138]使用盤(pán)表及使用盤(pán)量聲明表
[0139]圖21示出了使用盤(pán)表2002以及使用盤(pán)量聲明表2003的配置。在使用盤(pán)表2002中,將應(yīng)用ID2101與相應(yīng)的應(yīng)用的當(dāng)前盤(pán)使用量2102有聯(lián)系地管理。在使用盤(pán)量聲明表2003中,將應(yīng)用ID2201與相應(yīng)的應(yīng)用的最大使用量2202有聯(lián)系地管理。使用盤(pán)表2002和使用盤(pán)量聲明表2003可以作為單個(gè)表來(lái)管理,并且不限于本實(shí)施例的配置,只要管理等價(jià)信息即可。
[0140]圖22示出了本實(shí)施例的應(yīng)用的清單文件的內(nèi)容。表示應(yīng)用的最大盤(pán)使用量的MaximumFilespaceUsage2301已經(jīng)被添加到圖4所示的內(nèi)容。請(qǐng)注意,這里,還包括MaximumMemoryUsage設(shè)定403,但是本發(fā)明不限于此,例如可以采用僅包括MaximumFiIespaceUsage2301 的配置。
[0141]初始化處理
[0142]接下來(lái),將參照?qǐng)D23描述當(dāng)本實(shí)施例的應(yīng)用平臺(tái)205啟動(dòng)時(shí)應(yīng)用管理單元308的初始化處理。通過(guò)CPUlOl將存儲(chǔ)在R0M102或者外部存儲(chǔ)設(shè)備104中的控制程序讀出到RAM103并執(zhí)行該控制程序來(lái)實(shí)現(xiàn)下文中描述的處理。
[0143]當(dāng)應(yīng)用平臺(tái)205啟動(dòng)時(shí),應(yīng)用管理單元308在S2401中獲取安裝的應(yīng)用的數(shù)量。應(yīng)用管理單元308在S2402中將變量i初始化為0,在S2403中將變量i與應(yīng)用的數(shù)量j進(jìn)行比較,如果i〈j,則進(jìn)入S2404,并結(jié)束處理,如果不是這種情況,則判定針對(duì)所有應(yīng)用進(jìn)行了稍后討論的處理。在S2404中,應(yīng)用管理單元308獲取應(yīng)用ID,并且在S2405中獲取由應(yīng)用聲明的盤(pán)使用量。然后,調(diào)用應(yīng)用盤(pán)管理單元2001。
[0144]在2406中,應(yīng)用盤(pán)管理單元2001確定在使用盤(pán)量聲明表中是否登記了相應(yīng)的應(yīng)用ID,并且如果未登記,則在S2407中添加記錄,并進(jìn)入S2408。另一方面,如果已登記,則處理直接進(jìn)入S2408。在S2408中,在將處理返回到應(yīng)用管理單元308之前,應(yīng)用盤(pán)管理單元2001將應(yīng)用ID2201的數(shù)據(jù)與最大使用量2202聯(lián)系起來(lái),并將該數(shù)據(jù)添加到使用盤(pán)量聲明表2003。
[0145]接下來(lái),在S2409中,應(yīng)用管理單元308獲取安裝應(yīng)用的文件夾下的容量,并再次調(diào)用應(yīng)用盤(pán)管理單元2001。在2410中,應(yīng)用盤(pán)管理單元2001確定在使用盤(pán)表中是否登記了相應(yīng)的應(yīng)用ID,并且如果未登記,則在S2411中添加記錄,并進(jìn)入S2412。另一方面,如果已登記,則處理直接進(jìn)入S2412。在S2412中,在將處理返回到應(yīng)用管理單元308之前,應(yīng)用盤(pán)管理單元2001將應(yīng)用ID2101的數(shù)據(jù)與最大使用量2102聯(lián)系起來(lái),并將該數(shù)據(jù)添加到使用盤(pán)表2002。在S2413中,應(yīng)用管理單元308將變量i遞增1,并返回到S2403的確定。
[0146]請(qǐng)注意,當(dāng)新安裝應(yīng)用時(shí),應(yīng)用管理單元308將應(yīng)用安裝在外部存儲(chǔ)設(shè)備104的預(yù)定文件夾中。顯然,之后,進(jìn)行與該流程圖類(lèi)似的處理,將該信息添加到使用盤(pán)量聲明表2003和使用盤(pán)表2002。此外,當(dāng)卸載應(yīng)用時(shí),應(yīng)用管理單元308刪除安裝了應(yīng)用的文件夾。顯然,此時(shí)從使用盤(pán)量聲明表2003和使用盤(pán)表2002中刪除與應(yīng)用相關(guān)的信息。
[0147]本流程圖的處理使得在啟動(dòng)用作圖像處理裝置的應(yīng)用管理裝置100時(shí),能夠管理由應(yīng)用管理單元308管理的應(yīng)用的啟動(dòng)初始狀態(tài)下的盤(pán)使用量。
[0148]對(duì)象生成處理
[0149]圖24是生成用于進(jìn)行文件的生成和寫(xiě)入的FileOutputStream對(duì)象的流程圖。通過(guò)CPUlOl將存儲(chǔ)在R0M102或者外部存儲(chǔ)設(shè)備104中的控制程序讀出到RAM103并執(zhí)行該控制程序來(lái)實(shí)現(xiàn)下文中描述的處理。這里,描述與第一實(shí)施例中描述的圖11的控制不同的部分。
[0150]當(dāng)在SI 103中獲取應(yīng)用ID時(shí),對(duì)象生成單元303在S2501中確定要生成的對(duì)象是否為FileOutputStream。如果是FileOutputStream,則處理進(jìn)入S2502,而在生成其他對(duì)象的情況下,處理進(jìn)入SI 104。
[0151]在S2502中,對(duì)象生成單元303獲取用于生成FileOutputStream對(duì)象的參數(shù),并且在S2503中,根據(jù)獲取的參數(shù)獲取操作目標(biāo)的文件大小。然后,在2504中,對(duì)象生成單元303調(diào)用用于生成原始FileOutputStream對(duì)象的處理。然后,在S2505中,對(duì)象生成單元303基于在S2502中獲取的參數(shù)或者生成對(duì)象的方法確定是否正在以Append模式生成FileOutputStream對(duì)象。Java中的FileOutputStream對(duì)象的規(guī)范是:如果為Append模式則操作以將數(shù)據(jù)添加到現(xiàn)有文件的末尾,而如果不是這種情況,則操作以將文件大小返回至O并進(jìn)行重寫(xiě)。如果確定結(jié)果表示Append模式,則處理進(jìn)入S1110。
[0152]另一方面,如果不是Append模式,則判定操作目標(biāo)的文件大小為0,處理進(jìn)入S2506。在S2506中,應(yīng)用盤(pán)管理單元2001從使用盤(pán)表2002中的當(dāng)前應(yīng)用的使用量2102中減去在S2503中獲取的大小,將處理返回到對(duì)象生成單元303并進(jìn)入S1110。
[0153]在SlllO中,對(duì)象生成單元303將處理返回到應(yīng)用,應(yīng)用結(jié)束對(duì)象生成處理。
[0154]FileOutputStream 對(duì)象的 write 方法
[0155]接下來(lái),將參照?qǐng)D25描述應(yīng)用206調(diào)用FileOutputStream對(duì)象的write方法時(shí)的處理過(guò)程。在圖9和圖15中的S905的處理期間執(zhí)行下文中描述的處理。此外,通過(guò)CPU101將存儲(chǔ)在R0M102或者外部存儲(chǔ)設(shè)備104中的控制程序讀出到RAM103并執(zhí)行該控制程序來(lái)實(shí)現(xiàn)下文中描述的處理。在執(zhí)行時(shí),字節(jié)代碼執(zhí)行單元301調(diào)用文件訪問(wèn)管理單元2004的訪問(wèn)控制器2005的處理。
[0156]在S2601中,字節(jié)代碼執(zhí)行單元301確定方法是否是FileOutputStream對(duì)象的write方法。如果方法是FileOutputStream對(duì)象的write方法,則處理進(jìn)入S2602,而如果不是這種情況,則在S2611中調(diào)用其他方法的處理,并結(jié)束當(dāng)前處理。
[0157]在執(zhí)行write方法時(shí),文件訪問(wèn)管理單元2004在S2602中讀取當(dāng)前線程的線程結(jié)構(gòu)的應(yīng)用ID字段802。然后,在S2603中,文件訪問(wèn)管理單元2004獲取被傳送到write方法的寫(xiě)入數(shù)據(jù)的大小(=a),并將處理傳送到應(yīng)用盤(pán)管理單元2001。
[0158]接下來(lái),在S2604中,應(yīng)用盤(pán)管理單元2001使用在S2602中獲取的應(yīng)用ID,并從使用盤(pán)表2002中獲取應(yīng)用的使用量2012( = X)。此外,在S2605中,應(yīng)用盤(pán)管理單元2001從使用盤(pán)量聲明表2003中獲取最大使用量2202 ( = Y),并將處理返回到文件訪問(wèn)管理單元2004。
[0159]在S2606中,文件訪問(wèn)管理單元2004確定通過(guò)將應(yīng)用的使用量X與寫(xiě)入數(shù)據(jù)大小a相加而獲得的大小是否超過(guò)最大使用量Y。如果超過(guò)最大使用量Y,則處理進(jìn)入S2608,文件訪問(wèn)管理單元2004判定要進(jìn)行的寫(xiě)入超過(guò)由應(yīng)用聲明的最大使用量2202,通知預(yù)定錯(cuò)誤(盤(pán)錯(cuò)誤),并結(jié)束當(dāng)前處理。
[0160]如果未超過(guò)最大使用量Y,則處理進(jìn)入S2607,文件訪問(wèn)管理單元2004調(diào)用原始write方法,并執(zhí)行文件的寫(xiě)入。之后,在S2609中,文件訪問(wèn)管理單元2004確定文件的寫(xiě)入是否失敗。如果文件的寫(xiě)入失敗,則處理結(jié)束,并將處理傳送到應(yīng)用盤(pán)管理單元2001,而如果文件的寫(xiě)入成功,則處理進(jìn)入S2610。在S2610中,應(yīng)用盤(pán)管理單元2001將寫(xiě)入數(shù)據(jù)大小(=a)與使用盤(pán)表2002中的應(yīng)用的使用量2102相加,并結(jié)束處理。
[0161]Java具有與FileOutputStream類(lèi)似的FileWriter類(lèi)。由于在使用的情況下通過(guò)采用與FileOutputStream相同的配置能夠支持FileWriter類(lèi),因此在本實(shí)施例中省略其描述。
[0162]RandomAccessFile 對(duì)象的 setLength 方法
[0163]接下來(lái),將參照?qǐng)D26描述應(yīng)用206調(diào)用RandomAccessFile對(duì)象的setLength方法時(shí)的處理過(guò)程。在圖9和圖15中的S905的處理期間執(zhí)行下文中描述的處理。此外,通過(guò)CPUlOl將存儲(chǔ)在R0M102或者外部存儲(chǔ)設(shè)備104中的控制程序讀出到RAM103并執(zhí)行該控制程序來(lái)實(shí)現(xiàn)下文中描述的處理。在執(zhí)行時(shí),字節(jié)代碼執(zhí)行單元301調(diào)用文件訪問(wèn)管理單元2004的訪問(wèn)控制器2005的處理。Java中的RandomAccessFile對(duì)象的setLength規(guī)范是:操作以將操作目標(biāo)的文件大小改變?yōu)橛蓅etLength指定的大小。
[0164]在S2701中,字節(jié)代碼執(zhí)行單元301確定方法是否是RandomAccessFile對(duì)象的setLength方法。如果方法是RandomAccessFile對(duì)象的setLength方法,則處理進(jìn)入S2702,而如果不是這種情況,則處理進(jìn)入S2716并調(diào)用其他方法的處理,之后結(jié)束當(dāng)前處理。
[0165]在執(zhí)行setLength方法時(shí),文件訪問(wèn)管理單元2004在S2702中讀取當(dāng)前線程的線程結(jié)構(gòu)的應(yīng)用ID字段802。然后,在S2703中,文件訪問(wèn)管理單元2004獲取setLength方法的目標(biāo)文件的大小(=a),并在S2704中獲取在setLength方法中指定的大小(=b)。之后,在S2705中,文件訪問(wèn)管理單元2004比較a和b,并且如果b較大,即如果文件大小較大,則進(jìn)入S2709。如果不是這種情況,則文件訪問(wèn)管理單元2004進(jìn)入S2706,調(diào)用原始setLength方法,并在S2707中確定setLength方法的執(zhí)行結(jié)果。如果成功,則處理進(jìn)入S2708,如果未成功,則處理結(jié)束。在S2708中,應(yīng)用盤(pán)管理單元2001從使用盤(pán)表2002中的應(yīng)用的使用量2102中減去通過(guò)a-b得到的值,并結(jié)束處理。
[0166]另一方面,如果在S2705中確定文件大小較大,則應(yīng)用盤(pán)管理單元2001在S2709中獲取在S2701中獲取的應(yīng)用ID的盤(pán)使用量2102( = X)。然后,在S2710中,應(yīng)用盤(pán)管理單元2001獲取最大使用量2202( = Y)。然后,在S2711中,文件訪問(wèn)管理單元2004確定當(dāng)前使用量X中由setLength方法產(chǎn)生的增加是否超過(guò)最大使用量Y (X+(b_a) >Y)。
[0167]如果超過(guò)最大使用量Y,則處理進(jìn)入S2715,并且文件訪問(wèn)管理單元2004判定要進(jìn)行的寫(xiě)入超過(guò)由應(yīng)用206聲明的最大使用量2202,通知預(yù)定錯(cuò)誤,并結(jié)束當(dāng)前處理。另一方面,如果判定未超過(guò)最大使用量Y,則處理進(jìn)入S2712,文件訪問(wèn)管理單元2004調(diào)用原始setLength方法。然后,在S2713中,文件訪問(wèn)管理單元2004確定setLength方法的執(zhí)行結(jié)果,并且如果成功,則進(jìn)入S2714。在S2714中,應(yīng)用盤(pán)管理單元2001將使用盤(pán)表2002中的應(yīng)用的使用量2102與通過(guò)b-a得到的值相加,并結(jié)束處理。另一方面,如果在S2713中確定執(zhí)行結(jié)果錯(cuò)誤,則結(jié)束處理。
[0168]RandomAccessFile 對(duì)象的 write 方法
[0169]接著,將參照?qǐng)D27描述應(yīng)用206調(diào)用RandomAccessFile對(duì)象的write方法時(shí)的處理過(guò)程。在圖9和圖15中的S905的處理期間執(zhí)行下文中描述的處理。此外,通過(guò)CPUlOl將存儲(chǔ)在R0M102或者外部存儲(chǔ)設(shè)備104中的控制程序讀出到RAM103并執(zhí)行該控制程序來(lái)實(shí)現(xiàn)在下文中描述的處理。在執(zhí)行時(shí),字節(jié)代碼執(zhí)行單元301調(diào)用文件訪問(wèn)管理單元2004的訪問(wèn)控制器2005的處理。Java中的RandomAccessFile對(duì)象的write規(guī)范是:操作以從作為操作目標(biāo)的文件的文件指針的位置寫(xiě)入數(shù)據(jù)。此時(shí),write規(guī)范是:在寫(xiě)入大小超過(guò)文件大小的情況下操作,使得文件大小增加。
[0170]在S2801中,字節(jié)代碼執(zhí)行單元301確定方法是否是RandomAccessFile對(duì)象的write方法。如果方法是RandomAccessFile對(duì)象的write方法,則處理進(jìn)入S2802,而如果不是這種情況,則在S2815中調(diào)用其他方法的處理,并結(jié)束當(dāng)前處理。
[0171]在執(zhí)行write方法時(shí),文件訪問(wèn)管理單元2004在S2802中讀取當(dāng)前線程的線程結(jié)構(gòu)的應(yīng)用ID字段802。然后,在S2803中,文件訪問(wèn)管理單元2004獲取被傳送到write方法的寫(xiě)入數(shù)據(jù)的大小(=a),并且在S2804中獲取文件指針的當(dāng)前位置(=b)。此外,在S2805中,文件訪問(wèn)管理單元2004獲取操作目標(biāo)文件的大小(=c)。之后,在S2806中,文件訪問(wèn)管理單元2004將文件指針的位置b與寫(xiě)入大小a相加,并確定文件大小是否增加(a+b>c)。如果文件大小增加,則處理進(jìn)入S2808,而如果不是這種情況,則在S2807中調(diào)用原始write方法,由于文件大小未改變,因此當(dāng)前處理結(jié)束。
[0172]在S2808中,應(yīng)用管理單元2001獲取在S2801中獲取的應(yīng)用ID的盤(pán)使用量2102( = X),在S2809中獲取最大使用量(=Y),并進(jìn)入S2810。在S2810中,文件訪問(wèn)管理單元2004確定當(dāng)前使用量X中由write方法產(chǎn)生的增加是否超過(guò)最大使用量Y((a+b)-c+X>Y)。如果超過(guò)最大使用量Y,則處理進(jìn)入S2814,并且文件訪問(wèn)管理單元2004判定要進(jìn)行的寫(xiě)入超過(guò)由應(yīng)用聲明的最大使用量2202,通知預(yù)定錯(cuò)誤,并結(jié)束當(dāng)前處理。
[0173]另一方面,如果判定未超過(guò)最大使用量Y,則處理進(jìn)入S2811,并且文件訪問(wèn)管理單元2004調(diào)用原始write方法。之后,在S2812中,文件訪問(wèn)管理單元2004確定write方法的執(zhí)行結(jié)果。如果成功,則處理進(jìn)入S2813,應(yīng)用盤(pán)管理單元2001將通過(guò)a+b-c得到的值與使用盤(pán)表2002中的應(yīng)用的使用量2102相加,并結(jié)束處理。另一方面,如果在S2811中確定write方法未被成功執(zhí)行,則結(jié)束該處理。
[0174]File 對(duì)象的 delete 方法
[0175]接下來(lái),將參照?qǐng)D28描述當(dāng)應(yīng)用206調(diào)用File對(duì)象的delete方法時(shí)的處理過(guò)程。在圖9和圖15中的S905的處理期間執(zhí)行下文中描述的處理。此外,通過(guò)CPUlOl將存儲(chǔ)在R0M102或者外部存儲(chǔ)設(shè)備104中的控制程序讀出到RAM103并執(zhí)行該控制程序來(lái)實(shí)現(xiàn)下文中描述的處理。
[0176]在S2901中,字節(jié)代碼執(zhí)行單元301確定方法是否是File對(duì)象的delete方法。如果方法是File對(duì)象的delete方法,則處理進(jìn)入S2902,而如果不是這種情況,則處理進(jìn)入S2907,并調(diào)用其他方法的處理,之后結(jié)束當(dāng)前處理。
[0177]在S2902中,文件訪問(wèn)管理單元2004在執(zhí)行delete方法時(shí),讀取當(dāng)前線程的線程結(jié)構(gòu)的應(yīng)用ID字段802。然后,在S2903中,文件訪問(wèn)管理單元2004獲取delete方法的目標(biāo)文件的大小(=a),并在S2904中調(diào)用原始delete方法。
[0178]在S2905中,文件訪問(wèn)管理單元2004確定delete方法的執(zhí)行結(jié)果,并且如果確定delete方法未被成功執(zhí)行,則結(jié)束當(dāng)前處理。另一方面,如果確定delete方法被成功執(zhí)行,則處理進(jìn)入S2906。在S2906中,應(yīng)用盤(pán)管理單元2001從使用盤(pán)表2002中的應(yīng)用的使用量2102中減去操作目標(biāo)的文件大小,并結(jié)束處理。
[0179]請(qǐng)注意,在本實(shí)施例中,如果超過(guò)應(yīng)用206生成的最大使用量,則通知預(yù)定錯(cuò)誤(S2608、S2715、S2814)。應(yīng)用管理單元308還可以被構(gòu)成為在檢測(cè)到該通知的情況下停止相應(yīng)的應(yīng)用。
[0180]如上所述,根據(jù)本實(shí)施例的圖像處理裝置響應(yīng)于應(yīng)用啟動(dòng)請(qǐng)求,讀取應(yīng)用的類(lèi)的類(lèi)文件,在所讀取的類(lèi)文件中包括的方法的開(kāi)頭添加用于記錄表示應(yīng)用的應(yīng)用信息的代碼,并加載類(lèi)。此外,該圖像處理裝置在方法的執(zhí)行期間,分配要用于待生成的對(duì)象的文件大小,并且使用分配的文件大小作為盤(pán)使用量,記錄在線程中記錄的應(yīng)用信息,同時(shí)生成對(duì)象,并將所生成的對(duì)象的應(yīng)用信息與盤(pán)使用量有聯(lián)系地管理。由此,在本實(shí)施例中,關(guān)于盤(pán)使用量也能夠獲得與第一至第三實(shí)施例類(lèi)似的效果。
[0181]其他實(shí)施例
[0182]本發(fā)明的實(shí)施例還能夠由讀出并執(zhí)行記錄在存儲(chǔ)介質(zhì)(例如非暫時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì))上的用于執(zhí)行本發(fā)明的上述實(shí)施例的一個(gè)或者多個(gè)功能的計(jì)算機(jī)可執(zhí)行指令的系統(tǒng)或裝置的計(jì)算機(jī)來(lái)實(shí)現(xiàn),以及通過(guò)由系統(tǒng)或裝置的計(jì)算機(jī)例如讀出并執(zhí)行來(lái)自存儲(chǔ)介質(zhì)的用于執(zhí)行上述實(shí)施例的一個(gè)或者多個(gè)功能的計(jì)算機(jī)可執(zhí)行指令來(lái)執(zhí)行的方法來(lái)實(shí)現(xiàn)。計(jì)算機(jī)可以包括中央處理單元(CPU)、微處理單元(MPU)或者其他電路中的一個(gè)或者多個(gè),并且可以包括獨(dú)立的計(jì)算機(jī)或者獨(dú)立的計(jì)算機(jī)處理器的網(wǎng)絡(luò)。計(jì)算機(jī)可執(zhí)行指令可以從例如網(wǎng)絡(luò)或者存儲(chǔ)介質(zhì)提供給計(jì)算機(jī)。存儲(chǔ)介質(zhì)可以包括例如硬盤(pán)、隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、分布式計(jì)算機(jī)系統(tǒng)的存儲(chǔ)、光盤(pán)(例如光盤(pán)(⑶)、數(shù)字通用盤(pán)(DVD)或者藍(lán)光盤(pán)(BD)?)、閃存設(shè)備、存儲(chǔ)器卡等中的一個(gè)或者多個(gè)。
[0183]雖然參照示例性實(shí)施例描述了本發(fā)明,但是應(yīng)當(dāng)理解,本發(fā)明不限于所公開(kāi)的示例性實(shí)施例。應(yīng)對(duì)所附權(quán)利要求的范圍給予最寬的解釋?zhuān)允蛊涓采w所有變型例以及等同結(jié)構(gòu)和功能。
【權(quán)利要求】
1.一種用于執(zhí)行多個(gè)應(yīng)用的圖像處理裝置,該圖像處理裝置包括: 控制單元,其被配置為響應(yīng)于應(yīng)用的啟動(dòng)請(qǐng)求,讀取所述應(yīng)用的類(lèi)的類(lèi)文件,在所讀取的類(lèi)文件中包括的方法中添加用于將表示所述應(yīng)用的應(yīng)用信息記錄到線程的代碼,并加載所述類(lèi); 對(duì)象生成單元,其被配置為在執(zhí)行所讀取的類(lèi)文件中包括的所述方法期間,分配要用于待生成的對(duì)象的內(nèi)存,并將所述線程記錄中的應(yīng)用信息記錄到所分配的內(nèi)存,并生成所述對(duì)象;以及 內(nèi)存管理單元,其被配置為與內(nèi)存大小相關(guān)聯(lián)地管理由所述對(duì)象生成單元生成的所述對(duì)象的應(yīng)用信息。
2.根據(jù)權(quán)利要求1所述的圖像處理裝置,其中,所述控制單元還在所讀取的類(lèi)文件中包括的所述方法的末尾,添加用于刪除所述線程中記錄的應(yīng)用信息的代碼。
3.根據(jù)權(quán)利要求1所述的圖像處理裝置,其中,所述內(nèi)存管理單元在釋放所述對(duì)象時(shí),根據(jù)所述對(duì)象的應(yīng)用信息刪除所管理的應(yīng)用信息和內(nèi)存大小。
4.根據(jù)權(quán)利要求1所述的圖像處理裝置,其中,在多個(gè)應(yīng)用協(xié)同操作的情況下,所述線程中記錄的所述應(yīng)用信息具有棧結(jié)構(gòu)。
5.根據(jù)權(quán)利要求1所述的圖像處理裝置,所述圖像處理裝置還包括: 表,其中所述應(yīng)用信息與所述應(yīng)用可用的內(nèi)存大小被有聯(lián)系地定義; 確定單元,其被配置為在所述對(duì)象生成單元分配了用于生成對(duì)象的內(nèi)存的情況下,確定與由所述內(nèi)存管理單元管理的所述應(yīng)用信息相對(duì)應(yīng)的應(yīng)用正在使用的內(nèi)存大小與所分配的內(nèi)存大小的總和是否超過(guò)所述相應(yīng)的可用內(nèi)存大??;以及 限制單元,其被配置為在所述確定單元確定所述總和超過(guò)所述可用內(nèi)存大小的情況下,生成內(nèi)存錯(cuò)誤。
6.一種用于執(zhí)行多個(gè)應(yīng)用的圖像處理裝置,該圖像處理裝置包括: 控制單元,其被配置為響應(yīng)于應(yīng)用的啟動(dòng)請(qǐng)求,讀取所述應(yīng)用的類(lèi)的類(lèi)文件,在所讀取的類(lèi)文件中包括的方法中添加用于將表示所述應(yīng)用的應(yīng)用信息記錄到線程的代碼,并加載所述類(lèi); 對(duì)象生成單元,其被配置為在執(zhí)行所讀取的類(lèi)文件中包括的方法期間,分配要用于待生成的對(duì)象的文件大小,并且使用所分配的文件大小作為盤(pán)使用量來(lái)記錄所述線程中記錄的應(yīng)用信息,并生成所述對(duì)象;以及 盤(pán)管理單元,其被配置為將由所述對(duì)象生成單元生成的所述對(duì)象的應(yīng)用信息與盤(pán)使用量有聯(lián)系地管理。
7.根據(jù)權(quán)利要求6所述的圖像處理裝置,其中,所述控制單元還在所讀取的類(lèi)文件中包括的所述方法的末尾,添加用于刪除所述線程中記錄的應(yīng)用信息的代碼。
8.根據(jù)權(quán)利要求6所述的圖像處理裝置,其中,所述盤(pán)管理單元在釋放所述對(duì)象時(shí),根據(jù)所述對(duì)象的應(yīng)用信息刪除所管理的應(yīng)用信息和盤(pán)使用量。
9.根據(jù)權(quán)利要求6所述的圖像處理裝置,其中,在多個(gè)應(yīng)用協(xié)同操作的情況下,所述線程中記錄的所述應(yīng)用信息具有棧結(jié)構(gòu)。
10.根據(jù)權(quán)利要求6所述的圖像處理裝置,所述圖像處理裝置還包括: 表,其中所述應(yīng)用信息與所述應(yīng)用可用的盤(pán)使用量被有聯(lián)系地定義; 確定單元,其被配置為在所述對(duì)象生成單元分配了用于生成對(duì)象的文件大小的情況下,確定與由所述盤(pán)管理單元管理的所述應(yīng)用信息相對(duì)應(yīng)的應(yīng)用正在使用的盤(pán)使用量與所分配的文件大小的總和是否超過(guò)所述相應(yīng)的可用盤(pán)使用量;以及 限制單元,其被配置為在所述確定單元確定所述總和超過(guò)所述可用盤(pán)使用量的情況下,生成盤(pán)錯(cuò)誤。
11.一種圖像處理裝置的控制方法,該圖像處理裝置執(zhí)行多個(gè)應(yīng)用,所述控制方法包括如下步驟: 響應(yīng)于應(yīng)用的啟動(dòng)請(qǐng)求,通過(guò)控制單元讀取所述應(yīng)用的類(lèi)的類(lèi)文件,在所讀取的類(lèi)文件中包括的方法中添加用于將表示所述應(yīng)用的應(yīng)用信息添加到線程的代碼,并加載所述類(lèi); 在執(zhí)行所讀取的類(lèi)文件中包括的所述方法期間,通過(guò)對(duì)象生成單元分配要用關(guān)于待生成的對(duì)象的內(nèi)存,將所述線程中記錄的應(yīng)用信息記錄到所分配的內(nèi)存,并生成所述對(duì)象;以及 通過(guò)內(nèi)存管理單元,與內(nèi)存大小相關(guān)聯(lián)地管理由所述對(duì)象生成單元生成的所述對(duì)象的應(yīng)用信息。
12.—種圖像處理裝置的控制方法,該圖像處理裝置執(zhí)行多個(gè)應(yīng)用,所述控制方法包括如下步驟: 響應(yīng)于應(yīng)用的啟動(dòng)請(qǐng)求,通過(guò)控制單元讀取所述應(yīng)用的類(lèi)的類(lèi)文件,在所讀取的類(lèi)文件中包括的方法中添加用于將表示所述應(yīng)用的應(yīng)用信息添加到線程的代碼,并加載所述類(lèi); 在執(zhí)行所讀取的類(lèi)文件中包括的所述方法期間,通過(guò)對(duì)象生成單元分配要用于待生成的對(duì)象的文件大小,并且使用所分配的文件大小作為盤(pán)使用量來(lái)記錄所述線程中記錄的應(yīng)用信息,并生成所述對(duì)象;以及 通過(guò)盤(pán)管理單元,將由所述對(duì)象生成單元生成的所述對(duì)象的應(yīng)用信息與盤(pán)使用量相關(guān)聯(lián)地管理。
【文檔編號(hào)】H04N1/00GK104243743SQ201410251275
【公開(kāi)日】2014年12月24日 申請(qǐng)日期:2014年6月6日 優(yōu)先權(quán)日:2013年6月6日
【發(fā)明者】藤澤邦匡, 長(zhǎng)田守 申請(qǐng)人:佳能株式會(huì)社
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
仙桃市| 山东省| 台东县| 鸡泽县| 玉山县| 竹北市| 南华县| 长白| 岳西县| 盐源县| 伊金霍洛旗| 苗栗县| 台州市| 黔西县| 镶黄旗| 余干县| 新野县| 大理市| 交城县| 宜春市| 师宗县| 天气| 射阳县| 东阿县| 蓬安县| 拉萨市| 怀仁县| 广昌县| 枣庄市| 抚顺市| 巴彦淖尔市| 武安市| 左云县| 集安市| 盘锦市| 溧阳市| 正镶白旗| 报价| 尼勒克县| 望谟县| 东乡|