JP2007293730A - Execution method of intermediate code program and information terminal - Google Patents

Execution method of intermediate code program and information terminal Download PDF

Info

Publication number
JP2007293730A
JP2007293730A JP2006122802A JP2006122802A JP2007293730A JP 2007293730 A JP2007293730 A JP 2007293730A JP 2006122802 A JP2006122802 A JP 2006122802A JP 2006122802 A JP2006122802 A JP 2006122802A JP 2007293730 A JP2007293730 A JP 2007293730A
Authority
JP
Japan
Prior art keywords
intermediate code
input
execution
data
output
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
JP2006122802A
Other languages
Japanese (ja)
Inventor
Shinichiro Kawasaki
進一郎 川▲崎▼
Akira Ioku
章 井奥
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Renesas Technology Corp
Original Assignee
Renesas Technology Corp
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 Renesas Technology Corp filed Critical Renesas Technology Corp
Priority to JP2006122802A priority Critical patent/JP2007293730A/en
Publication of JP2007293730A publication Critical patent/JP2007293730A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To apply start-up speed-up technique by a memory dump of a virtual machine to an arbitrary application to suppress size of a secondary storage device consumption. <P>SOLUTION: In this information processor 101, improper operation in time of rebooting is avoided by an input/output monitoring part 125 monitoring input/output during application execution. Effect of the dump is estimated by an input/output record 130 recording the input/output, a range of dump data is controlled according to the effect to change over a plurality of dump methods such as the dump of all the pieces of data, or the dump or the like of intermediate code for execution. <P>COPYRIGHT: (C)2008,JPO&INPIT

Description

本発明は、中間コードにより表現されたプログラムの実行技術に関し、特に、中間コード実行プログラムのメモリダンプを用いて、プログラム起動時間を短縮する方法に適用して有効な技術に関する。   The present invention relates to an execution technique for a program expressed by an intermediate code, and more particularly, to a technique effective when applied to a method for shortening a program start time using a memory dump of an intermediate code execution program.

今日、携帯電話を初めとして、多くの組込み機器にJava(登録商標)などの仮想マシン技術が適用されている。仮想マシン技術はハードウェアプラットフォームの多様性問題を解決するなどの利点を持ち、有効に活用されている。組込み機器の中には、携帯電話、PDA、カーナビ、テレビなど、ユーザが直接操作する機器が多数存在する。このような機器では、ユーザによる機能選択指示に合わせ、その機能を実現するアプリケーションをすばやく起動する必要がある。しかし、実際にはアプリケーションの起動には10秒程度かかるものも多く存在している。起動に時間がかかる原因には、組込み機器に搭載されるCPUの計算力不足、見映えを良くするための画像の多用などがある。さらに、仮想マシン技術はプログラムロード時にセキュリティチェック処理や実行前準備のための形式変更処理などを実施しており、これらの処理が起動時間に悪影響を与えている。   Today, virtual machine technology such as Java (registered trademark) is applied to many embedded devices such as mobile phones. Virtual machine technology has advantages such as solving the diversity problem of hardware platforms, and is effectively used. Among embedded devices, there are many devices that are directly operated by the user, such as mobile phones, PDAs, car navigation systems, and televisions. In such a device, it is necessary to quickly start an application that realizes the function in accordance with a function selection instruction by the user. However, there are actually many applications that take about 10 seconds to start an application. Causes that take a long time to start include lack of computational power of a CPU mounted on an embedded device and heavy use of images for improving the appearance. Furthermore, the virtual machine technology performs security check processing and format change processing for pre-execution preparation at the time of program loading, and these processing have an adverse effect on startup time.

解決方法の一つとして、プログラムロード時の処理を省略するアイデアが報告されている。特許文献1は、Java(登録商標)のプログラム形式であるクラスファイルを、仮想マシンがメモリ内に実行可能データとして準備した後、この実行可能データを二次記憶にダンプ(出力)するものである。次回当該クラスファイルを実行するときは、ダンプしたデータを読み込んでそのまま利用することで、ロード処理を省略する。特許文献2も同様にクラスファイルを二次記憶へ出力するものであるが、出力データにセキュリティ情報を付加する、複数のアプリケーション間で同一のクラス出力データを共有するなどの工夫を加えている。   As one of the solutions, an idea of omitting the processing at the time of program loading has been reported. Patent Document 1 dumps (outputs) executable data to secondary storage after a virtual machine prepares a class file that is a program format of Java (registered trademark) as executable data in a memory. . The next time the class file is executed, the loaded data is omitted by reading the dumped data and using it as it is. Similarly, Patent Document 2 outputs a class file to secondary storage. However, it has been devised to add security information to output data and to share the same class output data among a plurality of applications.

しかし、上述の方法により短縮可能な処理はプログラムのロード時間のみであり、画像ロード時間や、プログラムがロード後に実行する初期化処理などは短縮できない。これらの処理も合わせて短縮する手法として、メモリダンプによる方法がある。非特許文献1は、Emacsと呼ばれるエディタの起動高速化手法に言及している。EmacsはLispプログラムを実行する仮想マシンであり、エディタ機能を実現するLispプログラム群を読み込んで実行する構成となっている。起動実行する時間を省略するため、一度Lispプログラム群を読み込んで実行し、エディタの実行を開始できる状態になった時点で、Lisp処理系全体のメモリイメージをダンプする。次回からは、ダンプデータのメモリロード処理のみで、エディタの実行を開始することができる。
特開2004−240965号公報 特開2005−250835号公報 永野 圭一郎、林 芳樹 東京大学,Linux Conference 2002,”portable dumper:アーキテクチャに依存しないEmacsの起動時間”
However, the processing that can be shortened by the above-described method is only the load time of the program, and the image load time and the initialization process that is executed after the program is loaded cannot be shortened. As a technique for shortening these processes, there is a method using a memory dump. Non-Patent Document 1 refers to an editor startup acceleration method called Emacs. Emacs is a virtual machine that executes a Lisp program, and is configured to read and execute a Lisp program group that realizes an editor function. In order to save time for starting and executing, the Lisp program group is once read and executed, and when the editor is ready to be executed, the memory image of the entire Lisp processing system is dumped. From the next time, the execution of the editor can be started only by the dump data memory loading process.
JP 2004-240965 A JP-A-2005-250835 Shinichiro Nagano, Yoshiki Hayashi University of Tokyo, Linux Conference 2002, “portable dumper: architecture-independent startup time of Emacs”

しかし、上記の技術を持ってしても、仮想マシンの起動時間には課題が残されている。   However, even with the above technology, there remains a problem with the startup time of the virtual machine.

まず、特許文献1および特許文献2の示す起動時間短縮方法は、すでに述べたようにプログラムロード時間のみの短縮に留まっており、起動処理中の画像ロード時間や演算時間に対しては効果が無い。   First, the startup time shortening methods shown in Patent Document 1 and Patent Document 2 are limited to reducing only the program load time as described above, and are ineffective for the image load time and calculation time during the startup process. .

また、非特許文献1の示す高速化手法は、ダンプするまでに実行すべきプログラムを明示的に指定するものであり、任意のプログラムに対して適用することができない。例えば、携帯電話向けのJava(登録商標)アプリケーションは、起動処理と起動以外の実行処理は、アプリケーションの開発者によって明確に分離されていないため、ダンプすべきタイミングを適切に判断することができない。   Further, the speed-up method shown in Non-Patent Document 1 explicitly specifies a program to be executed before dumping, and cannot be applied to an arbitrary program. For example, in a Java (registered trademark) application for mobile phones, the activation process and the execution process other than the activation are not clearly separated by the application developer, and therefore it is not possible to appropriately determine the timing to dump.

また、どちらの方法もダンプ対象となるデータ構造はクラスデータ、もしくは処理系全体のどちらか一つに定まっており、ダンプデータ量の多寡と効果に応じてダンプ対象データの範囲を柔軟に選択することができない。   In both methods, the data structure to be dumped is determined as either class data or the entire processing system, and the range of dump target data can be flexibly selected according to the amount of dump data and the effect. I can't.

そこで、本発明の目的は、仮想マシンのメモリダンプによる起動高速化手法を、任意のアプリケーションに対して実現し、効果に応じてダンプデータの範囲を制御することができる中間コードプログラムの実行技術を提供することにある。   Therefore, an object of the present invention is to implement an intermediate code program execution technique that can realize a startup acceleration method using a memory dump of a virtual machine for any application and control the range of dump data according to the effect. It is to provide.

本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。   The above and other objects and novel features of the present invention will be apparent from the description of this specification and the accompanying drawings.

本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。   Of the inventions disclosed in the present application, the outline of typical ones will be briefly described as follows.

本発明は、アプリケーション実行中の入出力を監視する手段により、再起動時の不適切な動作を避ける。また、入出力を記録する手段によりダンプの効果を見積もり、全データのダンプと実行用中間コードのダンプなど、複数のダンプ方式を切り替えることにより、消費する二次記憶装置のサイズを抑えながら高速起動の効果を享受する。   The present invention avoids an inappropriate operation at the time of restarting by means of monitoring input / output during application execution. In addition, the effect of dumping is estimated by means of recording input and output, and switching between multiple dumping methods, such as dumping all data and intermediate code for execution, enables fast startup while suppressing the size of the secondary storage device to be consumed. Enjoy the effects of

具体的には、任意のアプリケーションを実行する仮想マシンを持つ携帯電話などの情報端末に適用して、アプリケーションの実行と同時にアプリケーションのデータ入出力を監視する手段と、入出力の回数や種別および入出力データ量を記録する手段と、一定の入出力記録からメモリダンプの妥当性とメモリダンプ方法を判定する手段と、アプリケーションを実行中の仮想マシンのメモリイメージを全部もしくは一部をダンプする手段とを備える仮想マシンを実行可能な情報端末に用いる。   Specifically, it is applied to an information terminal such as a mobile phone having a virtual machine that executes an arbitrary application, and means for monitoring the data input / output of the application simultaneously with the execution of the application, and the number and type of input / output and input / output. Means for recording the amount of output data, means for determining the validity and memory dump method of the memory dump from a fixed input / output record, means for dumping all or part of the memory image of the virtual machine executing the application, and Is used for an information terminal capable of executing a virtual machine.

前記記録の対象となる計算機資源には、画像ファイルを含むファイル、ネットワーク通信路、キー入力などのユーザからの入力インタフェース、画面や音源などの出力インタフェース、時刻検出装置、乱数発生装置などを含む。   The computer resources to be recorded include files including image files, network communication paths, input interfaces from users such as key inputs, output interfaces such as screens and sound sources, time detection devices, random number generation devices, and the like.

本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。   Among the inventions disclosed in the present application, effects obtained by typical ones will be briefly described as follows.

本発明によれば、上記手段を用いてデータ入出力を記録することで、アプリケーションの起動処理範囲を適切に判定することができる。例えば、アプリケーションが画面出力を開始した場合や、ユーザからのキー入力を受け付けた場合、起動処理は終了したと考えることができる。また、可変ファイルの入力を受け取ると、それ以降のプログラムの状態は起動のたびに異なる状態となる。よって、可変ファイル入力の直前までを起動処理範囲と判定することで、省略可能な起動範囲を正確に判定できる。このような起動処理範囲の特定により、アプリケーションの機能を損なうことなく、任意のアプリケーションの起動をメモリダンプにより短縮できる。   According to the present invention, by recording data input / output using the above-described means, it is possible to appropriately determine the application activation processing range. For example, when the application starts screen output or when a key input from the user is accepted, it can be considered that the activation process has ended. In addition, when the input of the variable file is received, the state of the subsequent program becomes different every time the program is started. Therefore, by determining the area immediately before the input of the variable file as the activation process range, it is possible to accurately determine the activation range that can be omitted. By specifying the activation process range as described above, activation of an arbitrary application can be shortened by a memory dump without impairing the function of the application.

また、データ入力の内容がクラスファイルに限定されていればクラスファイルをダンプし、入力データ量が多い場合は処理系全体をダンプするなど、入出力の記録を元にダンプデータを選択することで、二次記憶装置の消費サイズを抑えながら起動時間短縮の効果を享受できる。   In addition, if the contents of the data input are limited to the class file, the class file is dumped, and if the input data amount is large, the entire processing system is dumped. The effect of shortening the startup time can be enjoyed while suppressing the consumption size of the secondary storage device.

以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。   Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings. Note that components having the same function are denoted by the same reference symbols throughout the drawings for describing the embodiment, and the repetitive description thereof will be omitted.

以下、本発明を実現する一実施の形態を、仮想マシンを持つ携帯電話などの情報端末の一例として情報処理装置を例に、図1から図7を用いて説明する。   Hereinafter, an embodiment for realizing the present invention will be described with reference to FIGS. 1 to 7 by taking an information processing apparatus as an example of an information terminal such as a mobile phone having a virtual machine.

図1に、本発明の一実施の形態における情報処理装置の全体構成例を示す。   FIG. 1 shows an example of the overall configuration of an information processing apparatus according to an embodiment of the present invention.

情報処理装置101は、ネットワーク102を通じてアプリ管理サーバ103や、その他サーバ104などと接続されており、アプリ管理サーバ103から中間コード141や画像ファイル142を取得したり、その他サーバ104との情報交換を通じて情報処理装置101の使用者にサービスを提供したりする。   The information processing apparatus 101 is connected to the application management server 103, the other server 104, and the like through the network 102, acquires the intermediate code 141 and the image file 142 from the application management server 103, and exchanges information with the other server 104. A service is provided to the user of the information processing apparatus 101.

情報処理装置101は、中央演算装置111、一次記憶装置112、二次記憶装置113、キー入力装置114、通信装置115、画面出力装置116などから構成される。中央演算装置111は、情報処理装置101に電源が投入されるとオペレーティング・システム122や中間コード実行プログラム121などのプログラムを一次記憶装置112にロードし、プログラムの実行を開始する。二次記憶装置113は電源切断時にもデータを保持する機能を備えており、一次記憶装置112にロードされるプログラムや、プログラム実行時に必要になるデータを保持している。キー入力装置114は、情報処理装置101の使用者からの入力を受け付ける。通信装置115は、ネットワーク102を介して通信する機能を持つ。画面出力装置116は、情報処理装置101の使用者に、画面表示を通じて情報を提示する機能を持つ。   The information processing apparatus 101 includes a central processing unit 111, a primary storage device 112, a secondary storage device 113, a key input device 114, a communication device 115, a screen output device 116, and the like. When the information processing apparatus 101 is turned on, the central processing unit 111 loads a program such as the operating system 122 and the intermediate code execution program 121 to the primary storage device 112 and starts executing the program. The secondary storage device 113 has a function of retaining data even when the power is turned off, and retains a program loaded into the primary storage device 112 and data necessary for executing the program. The key input device 114 receives input from the user of the information processing apparatus 101. The communication device 115 has a function of communicating via the network 102. The screen output device 116 has a function of presenting information to the user of the information processing apparatus 101 through screen display.

一次記憶装置112には、中間コード実行プログラム121やオペレーティング・システム122などのプログラムがロードされて実行される。中間コード実行プログラム121は、ハードウェア非依存の中間コードとして表現されたプログラムを実行する。オペレーティング・システム122は、二次記憶装置113などのデータ領域の入出力機能や、キー入力装置114、通信装置115、画面出力装置116などを通じた装置外とのデータ入出力機能を管理する。本実施の形態では、中間コード実行プログラムによるデータ入出力も、オペレーティング・システム122を介して実施されるものとする。   Programs such as the intermediate code execution program 121 and the operating system 122 are loaded into the primary storage device 112 and executed. The intermediate code execution program 121 executes a program expressed as a hardware-independent intermediate code. The operating system 122 manages an input / output function of a data area such as the secondary storage device 113 and an external data input / output function through the key input device 114, the communication device 115, the screen output device 116, and the like. In this embodiment, it is assumed that data input / output by the intermediate code execution program is also performed through the operating system 122.

中間コード実行プログラム121は、中間コードロード部123、中間コード実行部124、入出力監視部125、メモリダンプ部126などの機能部と、作業用メモリ127、実行用中間コード128、画像データ129、入出力記録130などのデータ部から構成される。中間コードロード部123は、二次記憶装置113から中間コード141を読み込み、実行に適した形態への変換処理や安全性チェック処理などを実行し、実行用中間コード128を生成する。中間コード実行部124は、実行用中間コード128を解釈して実行する。解釈実行の過程において、中間コードがデータの入出力や、二次記憶装置などの資源を要求した場合、入出力監視部125がオペレーティング・システムへの入出力要求を仲介し、その要求内容を入出力記録130に記録する。また、入出力監視部125は、これらの入出力要求と入出力記録130の内容に応じ、実行中の中間コードプログラムがダンプ可能かどうかをチェックし、ダンプ不可となる資源要求を受け取る場合には、オペレーティング・システムへ入出力要求を仲介する前にメモリダンプ部126にダンプ処理を要求する。メモリダンプ部126は、中間コード実行プログラム121の実行イメージの全体または部分を、そのままの形式で二次記憶装置113に出力し、中間コード実行状態ダンプ145を生成する。プログラムの実行終了後、再度同じプログラムの実行を開始する時には、中間コード実行状態ダンプ145を一次記憶装置112にロードすることで、メモリダンプ時と同じ状態から処理を再開できる。   The intermediate code execution program 121 includes functional units such as an intermediate code load unit 123, an intermediate code execution unit 124, an input / output monitoring unit 125, and a memory dump unit 126, a working memory 127, an execution intermediate code 128, image data 129, It consists of a data part such as an input / output record 130. The intermediate code loading unit 123 reads the intermediate code 141 from the secondary storage device 113, executes conversion processing into a form suitable for execution, safety check processing, and the like, and generates an intermediate code 128 for execution. The intermediate code execution unit 124 interprets and executes the execution intermediate code 128. In the process of interpretation execution, when the intermediate code requests data input / output or resources such as a secondary storage device, the input / output monitoring unit 125 mediates the input / output request to the operating system and inputs the request content. Record in the output record 130. Also, the input / output monitoring unit 125 checks whether the intermediate code program being executed can be dumped according to these input / output requests and the contents of the input / output record 130, and when receiving a resource request that makes dumping impossible. The memory dump unit 126 is requested to perform dump processing before mediating the input / output request to the operating system. The memory dump unit 126 outputs the entire or part of the execution image of the intermediate code execution program 121 to the secondary storage device 113 as it is, and generates an intermediate code execution state dump 145. When the execution of the same program is started again after the execution of the program, the intermediate code execution state dump 145 is loaded into the primary storage device 112, so that the processing can be resumed from the same state as at the time of the memory dump.

二次記憶装置113は、中間コード141、画像ファイル142、可変データ143、中間コード実行プログラムファイル144、中間コード実行状態ダンプ145などを保持している。中間コード141はアプリ管理サーバ103から受け取るなどして得られるプログラムコードであり、中間コード実行プログラム121によって実行される。このプログラムが画像の表示を伴うプログラムであれば、画像ファイル142を読み込み、表示可能な画像データ129に変換して一次記憶装置112内に保持する。また、アプリケーションが電源遮断後もデータを保持したい場合は、可変データ143にデータを書き込んでおき、再度起動時に可変データ143を読み込む。中間コード実行プログラムファイル144は、一次記憶装置112上に読み込まれるプログラムバイナリであり、中央演算装置111により実行される。中間コードロード部123、中間コード実行部124、入出力監視部125、メモリダンプ部126などの機能部は中間コード実行プログラムファイル144に含まれているが、実行開始後に確保、作成される作業用メモリ127、実行用中間コード128、画像データ129、入出力記録130などは中間コード実行プログラムファイル144に含まれない。中間コード実行状態ダンプ145は、前述のとおり一次記憶装置112上の中間コード実行プログラムをダンプしたメモリイメージである。   The secondary storage device 113 holds an intermediate code 141, an image file 142, variable data 143, an intermediate code execution program file 144, an intermediate code execution state dump 145, and the like. The intermediate code 141 is a program code obtained by receiving it from the application management server 103 and is executed by the intermediate code execution program 121. If this program is a program involving image display, the image file 142 is read, converted into displayable image data 129, and stored in the primary storage device 112. If the application wants to retain data even after the power is shut off, the data is written in the variable data 143, and the variable data 143 is read again at the time of activation. The intermediate code execution program file 144 is a program binary read on the primary storage device 112 and is executed by the central processing unit 111. Functional units such as the intermediate code loading unit 123, the intermediate code execution unit 124, the input / output monitoring unit 125, and the memory dump unit 126 are included in the intermediate code execution program file 144. The memory 127, the execution intermediate code 128, the image data 129, the input / output record 130, and the like are not included in the intermediate code execution program file 144. The intermediate code execution state dump 145 is a memory image obtained by dumping the intermediate code execution program on the primary storage device 112 as described above.

図2に、入出力記録130のデータ構成例を示す。中間コードの実行開始時は、入出力記録130の内容は空である。中間コード実行中に入出力が発生すると、入出力ごとに一件のレコードが追加される。各レコードは、入出力、資源、時刻、種別、対象、バイト数などのデータを持つ。例えば、この図の示す先頭のレコードは、プログラムの実行開始後0.5秒経過した時点で、中間コード141を格納しているファイルからデータ入力を受け取ったことを示している。同様に、画像ファイル142の入力、画面出力装置116への出力、可変データ143からの入力なども記録されている。   FIG. 2 shows a data configuration example of the input / output record 130. At the start of execution of the intermediate code, the contents of the input / output record 130 are empty. When input / output occurs during the execution of intermediate code, one record is added for each input / output. Each record has data such as input / output, resource, time, type, target, and number of bytes. For example, the top record shown in this figure indicates that data input has been received from a file storing the intermediate code 141 when 0.5 seconds have elapsed since the start of program execution. Similarly, the input of the image file 142, the output to the screen output device 116, the input from the variable data 143, and the like are also recorded.

図3に、中間コード実行状態ダンプ145の、第一のデータ構成例を示す。本図では、中間コード実行状態ダンプ145が、一次記憶装置112内の中間コード実行プログラム121と、同じデータ構成を持つ例を示した。よって番号123から130に至る要素を全て持つ構造となる。これを再度一次記憶装置112上に復元することで、ダンプ時の状態に復帰することができる。   FIG. 3 shows a first data configuration example of the intermediate code execution state dump 145. In the drawing, an example in which the intermediate code execution state dump 145 has the same data configuration as the intermediate code execution program 121 in the primary storage device 112 is shown. Therefore, it has a structure having all elements from 123 to 130. By restoring this again on the primary storage device 112, the state at the time of dumping can be restored.

図4に、中間コード実行状態ダンプ145の、第二のデータ構成例を示す。本図では、中間コード実行状態ダンプ145は、実行用中間コード128のみをダンプする例を示した。このケースでは、復元可能なデータは実行用中間コード128のみであり、その他のデータは再度構成する必要がある。高速起動の効果は比較的小さいが、図3に示した例と比較して、ダンプされるデータ量が少ないという利点がある。   FIG. 4 shows a second data configuration example of the intermediate code execution state dump 145. In the drawing, the intermediate code execution state dump 145 shows an example in which only the execution intermediate code 128 is dumped. In this case, the only recoverable data is the execution intermediate code 128, and other data needs to be reconfigured. Although the effect of high-speed startup is relatively small, there is an advantage that the amount of data dumped is small compared to the example shown in FIG.

図5〜図8を用いて、本実施の形態における処理フローの一例を示す。情報処理装置101を用いて、アプリ管理サーバ103から取得した中間コード141を実行するにあたり、図5の処理フローの全体を示した手順を踏む。   An example of the processing flow in the present embodiment will be described with reference to FIGS. When the intermediate code 141 acquired from the application management server 103 is executed using the information processing apparatus 101, the procedure showing the entire processing flow of FIG.

処理501:取得した中間コードプログラムを初めて起動するときに実行される処理である。中間コードをロードし、入出力を監視しながら実行を開始する。   Process 501 is a process executed when the acquired intermediate code program is started for the first time. Load intermediate code and start execution while monitoring I / O.

処理502:入出力の監視結果に応じ、適切なタイミングで中間コード実行プログラム121をダンプする。   Process 502: The intermediate code execution program 121 is dumped at an appropriate timing according to the input / output monitoring result.

処理503:再度中間コードプログラムを実行する場合は、中間コード実行状態ダンプ145を一次記憶装置112にロードし、実行を開始する。ダンプデータを活用するため、高速に起動される。   Process 503: When the intermediate code program is executed again, the intermediate code execution state dump 145 is loaded into the primary storage device 112 and the execution is started. In order to utilize dump data, it is started at high speed.

図6に、初回プログラム起動処理501のフローを詳細に示す。   FIG. 6 shows the flow of the initial program start processing 501 in detail.

処理601:中間コードロード部123により、中間コード141をロードする。セキュリティチェック処理、中間コードを実行に適した形式に変換する処理などを実施し、実行用中間コード128を生成する。   Process 601: The intermediate code 141 is loaded by the intermediate code loading unit 123. A security check process, a process of converting the intermediate code into a format suitable for execution, and the like are performed, and the execution intermediate code 128 is generated.

処理602:中間コード実行部124により、実行用中間コード128を実行する。インタプリタによる実装であれば、中間コード命令を一つ取得し、その命令を実行するルーチンへ遷移して実行する処理を繰り返す。入出力を伴う命令を実行する場合、処理603へ進む。   Process 602: The intermediate code execution unit 124 executes the execution intermediate code 128. In the case of implementation by an interpreter, one intermediate code instruction is acquired, and a transition is made to a routine that executes the instruction, and the process to be executed is repeated. If an instruction involving input / output is to be executed, the process proceeds to process 603.

処理603:入出力監視部125により、これから実行しようとする入出力を記録する。   Process 603: The input / output to be executed is recorded by the input / output monitoring unit 125.

処理604:指示された入出力を実施した場合、メモリダンプによる高速化を適用できなくなるかどうかを判定する。判定基準は様々なものが考えられるが、例えば、以下のような判定指針がある。   Process 604: When the instructed input / output is performed, it is determined whether or not the acceleration by the memory dump cannot be applied. Various criteria can be considered. For example, there are the following judgment guidelines.

(1)可変データの入力を受け取った後は、メモリダンプによる高速化を適用できない。可変データの入力前であれば、プログラムの状態は起動の度に毎回同じ状態であるが、可変データの入力後は、プログラムの状態は可変データに依存するためである。   (1) After receiving input of variable data, it is not possible to apply high speed by memory dump. This is because the state of the program is the same every time it is started before the input of variable data, but the state of the program depends on the variable data after the input of variable data.

(2)可変データと同様に、キー入力を受け取る場合や、時刻を入力として取る場合も、状態に不整合が生じるため、以降、メモリダンプによる高速化を適用できない。   (2) Similarly to variable data, when receiving a key input or taking a time as an input, inconsistency occurs in the state, and hence speeding up by a memory dump cannot be applied thereafter.

(3)画面出力を2回以上実施する場合、1回目の描画による画面内容は2回目の描画によって消されてしまうため、再起動時に描画されない。再起動時に使用者に提示すべき1回目の画面内容を提示できないことになるため、画面出力を2回目以降実施するとメモリダンプによる高速化の適用は不適切となる。   (3) When screen output is performed two or more times, the screen contents of the first drawing are erased by the second drawing, and therefore are not drawn at the time of restart. Since the first screen content to be presented to the user at the time of restart cannot be presented, application of high speed by memory dump becomes inappropriate when screen output is performed for the second time and thereafter.

上記のうち(3)は、図2に示した入出力記録130を用いて判定できる。   Of the above, (3) can be determined using the input / output record 130 shown in FIG.

上記のような条件を満たす場合、当該の入出力前にメモリダンプを実施すべきである。その場合は処理501を終了して処理502に進む。そうでない場合は処理605に進む。   If the above conditions are met, a memory dump should be performed before the input / output. In that case, the process 501 is ended and the process proceeds to the process 502. Otherwise, the process proceeds to process 605.

処理605:オペレーティング・システム122に依頼し、入出力処理を実施する。処理602に戻り、中間コードの実行を継続する。   Process 605: Requests the operating system 122 to perform input / output processing. Returning to the process 602, the execution of the intermediate code is continued.

図7に、メモリダンプ処理502のフローを詳細に示す。   FIG. 7 shows the flow of the memory dump process 502 in detail.

処理701:入出力記録130を参照し、これまでにファイルからの入力として受け取ったデータが、画像ファイルを含んでおらず、中間コードのみかどうかを調べる。もし、中間コードのみであれば、処理703に進む。画像ファイルを含む場合には、処理702に進む。   Process 701: Referring to the input / output record 130, it is checked whether the data received as input from the file so far does not include an image file and is only an intermediate code. If there is only an intermediate code, the process proceeds to process 703. If the image file is included, the process proceeds to process 702.

処理702:一次記憶装置112内にある中間コード実行プログラム121のメモリイメージ全体をダンプし、中間コード実行状態ダンプ145を生成する(図3)。   Process 702: The entire memory image of the intermediate code execution program 121 in the primary storage device 112 is dumped to generate an intermediate code execution state dump 145 (FIG. 3).

処理703:一次記憶装置112内にある中間コード実行プログラム121のメモリイメージのうち、実行用中間コード128のみをダンプする(図4)。   Process 703: Only the execution intermediate code 128 is dumped from the memory image of the intermediate code execution program 121 in the primary storage device 112 (FIG. 4).

上記処理701に示したような判定により、画像データを含む大きな効果が期待できる場合にのみメモリイメージ全体をダンプし、画像データを含まない場合は実行用中間コード128にダンプ範囲を限定する。これにより、より小さい二次記憶装置を用いて効率的な起動時間短縮を実現できる。上記に示した判定方法に加え、二次記憶装置の空き領域や、実行用中間コード128のデータサイズを判定条件に加える実施方法も考えられる。   The entire memory image is dumped only when a large effect including image data can be expected by the determination as shown in the processing 701. When the image data is not included, the dump range is limited to the execution intermediate code 128. As a result, efficient startup time reduction can be realized using a smaller secondary storage device. In addition to the determination method described above, an implementation method is also conceivable in which a free area of the secondary storage device or the data size of the execution intermediate code 128 is added to the determination condition.

図8に、高速プログラム起動処理503のフローを詳細に示す。   FIG. 8 shows the flow of the high-speed program start processing 503 in detail.

処理801:メモリダンプ処理502において、ダンプしたデータが実行用中間コード128のみであった場合、処理803に進む。メモリイメージ全体をダンプした場合は処理802に進む。   Process 801: If the dumped data is only the execution intermediate code 128 in the memory dump process 502, the process proceeds to process 803. If the entire memory image is dumped, the process proceeds to step 802.

処理802:中間コード実行状態ダンプ145を一次記憶装置112にロードする。   Process 802: The intermediate code execution state dump 145 is loaded into the primary storage device 112.

処理803:中間コード実行プログラム121を一次記憶装置112にロードし、中間コードプログラムの実行を開始する。   Process 803: The intermediate code execution program 121 is loaded into the primary storage device 112, and the execution of the intermediate code program is started.

処理804:中間コードロード部123により、中間コードプログラムを読み込む。ただし、中間コード141を読み込む代わりに、処理703においてダンプした実行用中間コード128を読み込む。これにより、中間コード141に施す処理が不要となり、起動時間が短縮される。   Process 804: The intermediate code load unit 123 reads the intermediate code program. However, instead of reading the intermediate code 141, the execution intermediate code 128 dumped in the processing 703 is read. As a result, processing applied to the intermediate code 141 becomes unnecessary, and the activation time is shortened.

処理805:中間コードの実行を再開する。   Process 805: The execution of the intermediate code is resumed.

上記の構成と手順により、任意の中間コードアプリケーションに対して、個別の中間コード実行状態ダンプ145を作成することで、起動時間を短縮することが可能である。特に、中間コード実行プログラム121のメモリイメージ全体をダンプする場合には、中間コードのロードのみならず、画像ファイルの読み込み時間も省略できるため、大きな効果がある。また、データの入出力を監視してダンプのタイミングを決定するため、任意のアプリケーションについて、起動の度に同じ状態となることを保証でき、使用者が描画結果を閲覧できない状況も回避できる。   By creating the individual intermediate code execution state dump 145 for any intermediate code application with the above configuration and procedure, it is possible to shorten the startup time. In particular, when the entire memory image of the intermediate code execution program 121 is dumped, not only the loading of the intermediate code but also the reading time of the image file can be omitted. In addition, since the input / output of data is monitored to determine the dump timing, it is possible to ensure that any application is in the same state every time it is started, and the situation where the user cannot view the drawing result can be avoided.

メモリイメージ全体をダンプする方式は、ダンプデータ量が大きいため、二次記憶装置を圧迫する。上述の実施の形態では、実行用中間コードのみをダンプする方式と併用し、状況に応じて使い分けることで、二次記憶装置を効率的に使いながら起動時間短縮の効果を享受することが可能になる。   Since the method of dumping the entire memory image has a large amount of dump data, the secondary storage device is compressed. In the above-mentioned embodiment, it is possible to enjoy the effect of shortening the startup time while using the secondary storage device efficiently by using it together with the method of dumping only the intermediate code for execution and using it properly according to the situation. Become.

以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。   As mentioned above, the invention made by the present inventor has been specifically described based on the embodiment. However, the present invention is not limited to the embodiment, and various modifications can be made without departing from the scope of the invention. Needless to say.

本発明は、携帯電話など、計算機資源の制約が厳しいけれども、画像を多用する中間コードアプリケーションの高速起動が求められる組込み機器において有用である。また、テレビやハードディスクレコーダなどのAV機器への中間コード技術適用が進むと、本発明が適用される可能性が高い。   The present invention is useful in an embedded device such as a mobile phone that requires high-speed activation of an intermediate code application that uses a lot of images, although it has severe restrictions on computer resources. In addition, when application of intermediate code technology to AV equipment such as a television and a hard disk recorder proceeds, the possibility of applying the present invention is high.

本発明の一実施の形態における情報処理装置の全体構成例を示す図である。It is a figure which shows the example of whole structure of the information processing apparatus in one embodiment of this invention. 本発明の一実施の形態において、入出力記録のデータ構成例を示す図である。FIG. 4 is a diagram showing an example data structure of input / output recording in one embodiment of the present invention. 本発明の一実施の形態において、中間コード実行状態ダンプの、第一のデータ構成例を示す図である。In one embodiment of the present invention, it is a diagram showing a first data configuration example of an intermediate code execution state dump. 本発明の一実施の形態において、中間コード実行状態ダンプの、第二のデータ構成例を示す図である。In one embodiment of this invention, it is a figure which shows the 2nd data structural example of intermediate code execution state dump. 本発明の一実施の形態における処理フローの全体を示す図である。It is a figure which shows the whole processing flow in one embodiment of this invention. 本発明の一実施の形態において、初回プログラム起動処理のフローを詳細に示す図である。In one embodiment of the present invention, it is a figure which shows the flow of a first time program starting process in detail. 本発明の一実施の形態において、メモリダンプ処理のフローを詳細に示す図である。FIG. 5 is a diagram showing in detail a memory dump processing flow in one embodiment of the present invention. 本発明の一実施の形態において、高速プログラム起動処理のフローを詳細に示す図である。FIG. 5 is a diagram showing in detail a flow of high-speed program start processing in an embodiment of the present invention.

符号の説明Explanation of symbols

101…情報処理装置、102…ネットワーク、103…アプリ管理サーバ、104…その他サーバ、111…中央演算装置、112…一次記憶装置、113…二次記憶装置、114…キー入力装置、115…通信装置、116…画面出力装置、121…中間コード実行プログラム、122…オペレーティング・システム、123…中間コードロード部、124…中間コード実行部、125…入出力監視部、126…メモリダンプ部、127…作業用メモリ、128…実行用中間コード、129…画像データ、130…入出力記録、141…中間コード、142…画像ファイル、143…可変データ、144…中間コード実行プログラムファイル、145…中間コード実行状態ダンプ。   DESCRIPTION OF SYMBOLS 101 ... Information processing apparatus, 102 ... Network, 103 ... Application management server, 104 ... Other server, 111 ... Central processing unit, 112 ... Primary storage device, 113 ... Secondary storage device, 114 ... Key input device, 115 ... Communication device 116 ... Screen output device 121 ... Intermediate code execution program 122 ... Operating system 123 ... Intermediate code loading unit 124 ... Intermediate code execution unit 125 ... Input / output monitoring unit 126 ... Memory dump unit 127 ... Work Memory: 128 ... Intermediate code for execution, 129 ... Image data, 130 ... Input / output recording, 141 ... Intermediate code, 142 ... Image file, 143 ... Variable data, 144 ... Intermediate code execution program file, 145 ... Intermediate code execution state dump.

Claims (7)

実行中の中間コード実行プログラムのメモリイメージをダンプし、そのメモリイメージを再ロードすることで起動時間の短縮を図る中間コードプログラムの実行方法であって、
中間コードプログラム実行中のデータ入出力を監視する手段と記録する手段を用いて、ダンプタイミングを決定することを特徴とする中間コードプログラムの実行方法。
A method of executing an intermediate code program that dumps a memory image of an executing intermediate code execution program and reduces the startup time by reloading the memory image.
A method for executing an intermediate code program, characterized in that dump timing is determined using means for monitoring and recording data input / output during execution of the intermediate code program.
請求項1記載の中間コードプログラムの実行方法において、
入力として受け取るデータが実行の度に変化するデータであるかどうかを判定し、ダンプタイミングを決定することを特徴とする中間コードプログラムの実行方法。
In the execution method of the intermediate code program according to claim 1,
A method for executing an intermediate code program, comprising: determining whether or not data received as input is data that changes at each execution and determining a dump timing.
請求項1記載の中間コードプログラムの実行方法において、
画面に出力するデータが描画内容を上書きするかどうかを判定し、ダンプタイミングを決定することを特徴とする中間コードプログラムの実行方法。
In the execution method of the intermediate code program according to claim 1,
A method for executing an intermediate code program, characterized by determining whether or not data to be output on a screen overwrites drawing contents and determining a dump timing.
実行中の中間コード実行プログラムのメモリイメージをダンプし、そのメモリイメージを再ロードすることで起動時間の短縮を図る中間コードプログラムの実行方法であって、
中間コードプログラム実行中のデータ入出力を監視する手段と記録する手段を用いて、ダンプするデータの範囲を決定することを特徴とする中間コードプログラムの実行方法。
A method of executing an intermediate code program that dumps a memory image of an executing intermediate code execution program and reduces the startup time by reloading the memory image.
A method for executing an intermediate code program, characterized in that a range of data to be dumped is determined using means for monitoring and recording data input / output during execution of the intermediate code program.
請求項4記載の中間コードプログラムの実行方法において、
入力として受け取るデータを中間コードプログラムのコードとそれ以外に分類し、各々の分量に応じてダンプするデータの範囲を決定することを特徴とする中間コードプログラムの実行方法。
In the execution method of the intermediate code program of Claim 4,
A method for executing an intermediate code program, characterized in that data received as input is classified into an intermediate code program code and other data, and a range of data to be dumped is determined in accordance with each quantity.
アプリケーションを実行する仮想マシンを持つ情報端末であって、
アプリケーションの実行と同時にアプリケーションのデータ入出力を監視する手段と、入出力の回数や種別および入出力データ量を記録する手段と、一定の入出力記録からメモリダンプの妥当性とメモリダンプ方法を判定する手段と、アプリケーションを実行中の仮想マシンのメモリイメージを全部もしくは一部をダンプする手段とを備えることを特徴とする情報端末。
An information terminal having a virtual machine that executes an application,
Means to monitor application data input / output simultaneously with application execution, means to record the number and type of input / output, and the amount of input / output data And a means for dumping all or part of the memory image of the virtual machine that is executing the application.
請求項6記載の情報端末において、
記録の対象となる計算機資源には、画像ファイルを含むファイル、ネットワーク通信路、キー入力のユーザからの入力インタフェース、画面や音源の出力インタフェース、時刻検出装置、乱数発生装置を含むことを特徴とする情報端末。
The information terminal according to claim 6,
Computer resources to be recorded include files including image files, network communication paths, input interfaces from key input users, output interfaces for screens and sound sources, time detection devices, and random number generation devices. Information terminal.
JP2006122802A 2006-04-27 2006-04-27 Execution method of intermediate code program and information terminal Pending JP2007293730A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006122802A JP2007293730A (en) 2006-04-27 2006-04-27 Execution method of intermediate code program and information terminal

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006122802A JP2007293730A (en) 2006-04-27 2006-04-27 Execution method of intermediate code program and information terminal

Publications (1)

Publication Number Publication Date
JP2007293730A true JP2007293730A (en) 2007-11-08

Family

ID=38764288

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006122802A Pending JP2007293730A (en) 2006-04-27 2006-04-27 Execution method of intermediate code program and information terminal

Country Status (1)

Country Link
JP (1) JP2007293730A (en)

Similar Documents

Publication Publication Date Title
JP5038321B2 (en) How to upgrade display drivers without rebooting
US7673131B2 (en) Booting an operating system in discrete stages
US7386859B2 (en) Method and system for effective management of client and server processes
US10547657B2 (en) System and method for video gathering and processing
WO2018028055A1 (en) Method and apparatus for running android application program on windows system
US20120210321A1 (en) Dormant Background Applications on Mobile Devices
US20110054879A1 (en) Accelerated Execution for Emulated Environments
US10394580B2 (en) Dynamic addition and removal of operating system components
US20160072856A1 (en) Cross-Process Media Handling in a Voice-Over-Internet Protocol (VOIP) Application Platform
CN110704161B (en) Virtual machine creation method and device and computer equipment
JP2008524686A (en) Method for maintaining an application in a computer device
US20170346792A1 (en) System and method for kernel level video operations
US20120139929A1 (en) Controlling runtime execution from a host to conserve resources
CN108446146B (en) Game data acquisition method and device
CN107408073B (en) Reducing memory commit overhead using memory compression
KR20120071060A (en) Storage device capable of extending functions dynamicaly and operating method thereof
CN117724852B (en) Cloud computer computing resource allocation method and device
JP2006164266A (en) Improvement in performance of operating system
US9319246B2 (en) Voice-over-internet protocol (VOIP) application platform
JP6059330B2 (en) Application transfer system, application transfer method, terminal, and program
JP5061438B2 (en) Information processing apparatus, activation method, and activation program
CN102214105A (en) Parallel speedy starting method and electronic device having multiple processing units
WO2015184902A1 (en) Concurrent processing method for intelligent split-screen and corresponding intelligent terminal
CN113127089A (en) Starting control method of module of service architecture and computer equipment
JP2007293730A (en) Execution method of intermediate code program and information terminal