JP2006039879A - クラスファイル実行方法およびJava(R)実行環境プログラム - Google Patents

クラスファイル実行方法およびJava(R)実行環境プログラム Download PDF

Info

Publication number
JP2006039879A
JP2006039879A JP2004217859A JP2004217859A JP2006039879A JP 2006039879 A JP2006039879 A JP 2006039879A JP 2004217859 A JP2004217859 A JP 2004217859A JP 2004217859 A JP2004217859 A JP 2004217859A JP 2006039879 A JP2006039879 A JP 2006039879A
Authority
JP
Japan
Prior art keywords
java
class file
event
execution environment
compiler
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
JP2004217859A
Other languages
English (en)
Inventor
Tetsuyuki Kobayashi
哲之 小林
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.)
Aplix Corp
Original Assignee
Aplix 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 Aplix Corp filed Critical Aplix Corp
Priority to JP2004217859A priority Critical patent/JP2006039879A/ja
Publication of JP2006039879A publication Critical patent/JP2006039879A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

【課題】JITコンパイラによるイベント応答性の劣化を回避する。
【解決手段】このJITコンパイラによるイベント応答性の劣化を回避する方法は、システムプログラムとは独立してノンプリエンプティブなマルチタスク環境を実現するための機能を備え、実行するクラスファイルの情報を取得するためのネイティブメソッドと、Java(R)言語で作成され、当該ネイティブメソッドを利用してクラスファイルのコンパイルを動的に行うJITコンパイラとを有するJava(R)実行環境で、実行するクラスファイルとJITコンパイラとをJava(R)実行環境上で並行的に動作させ、クラスファイルをJITコンパイラで動的にコンパイルしながら実行する。
【選択図】 図1

Description

本発明は、クラスファイル実行方法およびJava(R)実行環境プログラムに関する。
Java(R)は、1995年に米サン・マイクロシステムズ社により発表されたプログラム言語であり、Java(R)で作成されたプログラムは、Java(R)実行環境を備えていればコンピュータのプロセッサやオペレーティングシステム(以下、OSという)に関わらず実行することができるという特徴を持っている。そして、近時では、Java(R)実行環境はパーソナルコンピュータやサーバといったコンピュータシステムのみならず、携帯電話機や家電製品等の様々な機器に搭載されるようになってきている。
ここで、Java(R)実行環境を例えば携帯電話や家電製品の組み込みシステムにおいて使用するためには、組み込みシステムのマルチタスク環境にJava(R)実行環境を対応させる必要がある。例えばシステムリソースに比較的余裕を持つ組み込みシステムの場合には、OSのイベント応答機構をそのまま利用して、OSのマルチタスク環境をJava(R)実行環境に適用することができる。しかしながら、この方法では、Java(R)プログラム実行中のイベントに対する応答性はネイティブプログラムと同様に確保されるものの、CPUの処理能力やメモリ容量といったシステムリソースの消費量が多くなってしまうため、これらの制限が厳しい組み込みシステムでは利用することができない。
そこで、システムリソースの制限が厳しい組み込みシステムでは、例えば以下に示す機構をJava(R)実行環境に導入することで、ノンプリエンプティブなマルチタスクを実現している。すなわち、インタープリタでバイトコード命令を解釈・実行中に、所定間隔でイベント発生の有無をチェックする。或いは、JIT(Just In Time)コンパイラでバイトコードをネイティブコードにコンパイルする際にイベント発生の有無をチェックする為の命令をネイティブコード中に所定間隔で埋め込む。このようにすることでJava(R)アプリケーションを実行している間は、所定間隔でイベント発生の有無がチェックされ、イベントが発生していれば必要に応じてJava(R)アプリケーションの実行を停止し、所定の応答がなされる。
以下、従来法における処理およびイベント応答性の遷移を図4の例を参照しながら説明する。
この処理では、先ずインタープリタがクラスファイルを解釈・実行する(ステップS11)。このとき、インタープリタはクラスファイルからバイトコード命令を一つずつ取り出して解釈・実行するとともに、周期的にイベントフラグの値をチェックするポーリング処理を行い、イベントフラグの値がセットされていれば所定のイベント処理を行う。次いで、JITコンパイラがクラスファイルをコンパイルし(ステップS12)、コンパイラの生成したコードが実行される(ステップS13)。ここで、生成されたコードにはポーリング処理のための命令が埋め込まれていて、ステップS11と同様にイベントフラグの値に応じて所定のイベント処理が実行される。コンパイラの生成したコードの実行が終了すると、再びインタープリタがクラスファイルを解釈・実行する(ステップS14)。このときインタープリタが行うポーリング処理や、コンパイラの生成したコードに埋め込まれた命令によるポーリング処理により、OSの機能に依存することなくイベント応答が実現される。すなわち、イベントが発生した場合にはイベントフラグがセットされ、各ポーリング処理によりイベントフラグの状態が検出され、当該イベントに応じた処理が実行されて所定のイベント応答がなされる(以下、図4の例を従来例1と称する)。
Java(R)実行環境に含まれているクラスローダ(classloader)、ネイティブメソッド(nativemethod)、ガーベジコレクタ(garbage collector)、JITコンパイラといったプログラムは、通常ネイティブコードで作成されているためJITコンパイラやインタープリタを利用することなく実行される。このため、Java(R)実行環境においてこれらのプログラムを実行している間はイベント発生の有無がチェックされず、イベント応答性が劣化してしまうという問題が生じている。そして、これらのうち、クラスローダ、ネイティブメソッド、ガーベジコレクタは、いずれも特異的なタイミング(クラスローダはクラスファイルをロードする時点、ネイティブメソッドはプラットフォーム固有機能等を利用する時点、ガーベジコレクタはメモリが不足した時点)で実行されるものであることから、これらによるイベント応答性の劣化は比較的限定される。
これに対してJITコンパイラについては、不特定のタイミングで必要なだけのコンパイルを繰り返す方式を採った場合には、コンパイルを行う度にイベント応答性が劣化することから、イベント応答性の劣化する頻度は相応に高いものとなってしまう。Java(R)プログラムの実行速度を高めるためには、より多くコンパイルすることが望ましいだけに、それがコンパイル中におけるイベント応答性の劣化とトレードオフの関係にあることは改善されるべき問題であるといえる。
より具体的に説明すれば、上記従来例1(図4)のステップS12におけるコンパイル中は、ポーリング処理を行う有効な手段がないことから、第1にコンパイル完了までイベント処置しない、第2にJITコンパイラにポーリング処理を行う命令を埋め込む、といった対策を施すことになるが、前者ではコンパイル中のイベント応答が不可能なり、後者ではポーリング間隔の短縮に限界があるばかりかJITコンパイラのコードの可読性やメンテナンス性も悪くなる。このため、どちらの対策も適切であるとは言い難い。また、別の問題点としては、Java(R)スレッドはJava(R)実行環境によりスケジューリングされ、コンテキストスイッチにより切り替えられるが、非Java(R)スレッドはJava(R)実行環境によりコンテキストが保存されないので、中断されると途中結果は破棄されてしまう。
本発明の目的とするところは、イベント応答性を劣化させることなく、JITコンパイラを利用してクラスファイルを実行することができるクラスファイル実行方法およびJava(R)実行環境プログラムを提供することにある。
上記目的を達成するために、本発明の第1の態様では、Java(R)実行環境でクラスファイルを実行する方法であって、
インタープリタが前記クラスファイルを解釈・実行する第1のステップと、
前記インタープリタがJava(R)で作成されたコンパイラを実行して前記クラスファイルを動的にコンパイルしてネィティブコードを生成する第2のステップと、
前記コンパイラが前記クラスファイルをコンパイルすることにより生成されたネィティブコードを実行する第3のステップとを有し、
前記第1および第2のステップでは前記インタープリタがイベントフラグを周期的にチェックするポーリング処理を行い、前記第2のステップでは前記第3のステップで前記ポーリング処理が周期的に行われるように所定の命令を前記ネィティブコードに埋め込む処理を行うことを特徴とするクラスファイルの実行方法が提供される。
また、本発明の第2の態様では、プロセッサ上で実行することにより、
イベントフラグを周期的にチェックするポーリング処理を行いながらクラスファイルを解釈実行し、イベントフラグがセットされている場合には所定のイベント応答を呼び出す機能を実現するインタープリタプログラムと、
Java(R)言語で作成され、クラスファイルをコンパイルして前記プロセッサのネイティブコードを生成し、当該生成されたコードには前記ポーリング処理を周期的に実行するための命令が埋め込まれるコンパイラプログラムと
を含むことを特徴とするJava(R)実行環境プログラムが提供される。
上記第2の態様にかかるJava(R)実行環境プログラムにおいては、前記Java(R)実行環境は、実行するクラスファイルの情報を取得するネィティブメソッドを有し、前記コンパイラプログラムは当該ネィティブメソッドを利用してクラスファイルのコンパイルを行うことが好適である。
本発明によれば、ノンプリエンプティブなマルチタスクを実現したJava(R)実行環境において、Java(R)で作成されたJITコンパイラを利用することで、JITコンパイラがコンパイルを行っている間におけるイベント応答性の劣化を回避することが可能なクラスファイルの実行方法およびJava(R)実行環境プログラムを提供することができる。
以下、図面を参照して本発明の実施の形態について説明する。
図1は本発明の一実施の形態にかかるクラスファイルの実行方法を実施するためのハードウェア構成図であり、図2は同方法を実施するソフトウェアの構成図である。図1のハードウェア構成図は、例えば組込み機器等にて適用可能なものであり、全体の制御を司るCPU1とメモリ2、表示部3、入出力部4からなる。
CPU1は、不図示のALU(arithmetic logic unit)やCU(control unit)、各種レジスタやバス等を有する。メモリ2は、不図示ではあるがRAMとROM等からなる。
RAMは、CPUによる処理を実行する際にヒープ領域等として使用される。 ROMには、CPU1で実行することによりJava(R)実行環境をなすJava(R)VM13およびクラスライブラリ14、OS、Java(R)アプリケーション15、各種ネイティブアプリケーション16,17が格納されており、それらの一部は各プログラムの実行時に必要に応じてRAMに展開されて使用される。
Java(R)VM13は、クラスファイルに含まれるバイトコード命令を逐次的に解釈・実行するインタープリタと、バイトコード命令を所定の単位(例えばメソッド単位)で動的にCPU1のネイティブコードにコンパイルするJITコンパイラとを含んでいる。このJava(R)実行環境は、インタープリタとJITコンパイラとを適宜使い分けてクラスファイルを実行する。例えば、どの部分をコンパイルするべきかを動的に判断するスケジューラをJava(R)実行環境に設け、スケジューラの判断によってインタープリタとJITコンパイラとを使い分けるようにしてもよい。
また、JITコンパイラがバイトコード命令をネイティブコードに変換して実行されたプログラム部分については、コンパイル後のネイティブコードを保存しておき、次回以降は直接ネイティブコードを実行するようにしてもよい。
クラスライブラリ14には、様々な機能をもったメソッドや変数を含むクラスファイルのセットが含まれている。
OSとしては、複数のタスクを並列処理することが可能なマルチタスクOSを使用することができる。そのようなOSとしては、例えばITRON仕様に準拠したものを挙げることができるが、その他のマルチタスクOSであっても利用することが可能である。
以上の構成により、図2に示されるように、プラットフォーム(OS、ハードウェア)11上でJava(R)アプリケーション15および各種ネイティブアプリケーション16,17が実行される。
ここで、上記OSはJava(R)側にイベントの発生を通知するためのイベントフラグを持っており、Java(R)側で応答するべきイベントが発生した場合には当該イベントフラグに値をセットする。また、上記Java(R)VM13はOSのマルチタスク環境に対応するためにノンプリエンプティブなマルチタスク機能を実装している。すなわち、インタープリタはバイトコード命令を解釈・実行中に所定間隔でイベントフラグの状態をチェックする機能を持っており、かつ、JITコンパイラはイベントフラグの状態をチェックする為の命令を所定間隔で埋め込んだネイティブコードを生成する機能を持っている。
さらに、この実施の形態では、Java(R)VM13が内部的に持っているクラスファイルの情報に関するデータ構造の読み書きができるネイティブメソッドをJava(R)VM13に追加し、当該ネイティブメソッドを利用するJava(R)で作成されたJITコンパイラを使用することが特徴的である。したがって、本実施形態におけるクラスファイルのコンパイルは、Java(R)で書かれたJITコンパイラをインタープリタで解釈・実行するか、あるいは、JITコンパイラをJITコンパイラ自身でコンパイルして得られたネイティブコードを実行するかのいずれかにより行われる。
このため、本実施形態のJava(R)実行環境においては、クラスファイルをインタープリタで実行している間やJITコンパイラの生成したコードを実行している間ばかりでなく、JITコンパイラをインタープリタで実行してクラスファイルをコンパイルしている間もイベントフラグをチェックするポーリング処理が実行される。したがって、JITコンパイラがコンパイルを行っている間もイベント応答性が劣化することはない。
また、本実施形態のJava(R)実行環境はマルチスレッドに対応しており、Java(R)で作成されたプログラムは複数のJava(R)スレッドで並行的に実行することができる。各Java(R)スレッドはシステムリソースを共有しておりコンテキストが保存されるためスレッドの中断/再開が可能であり、また、そのスケジューリングはJava(R)実行環境で制御することが可能である。ただし、Java(R)実行環境に含まれるネィティブコードで実装されたプログラムは、Java(R)スレッドでは実行されず、コンテキストが保存されないため一時停止/再開することはできない。
ここで、本実施形態におけるJITコンパイラはJava(R)で作成されているので、Java(R)スレッド上で動作する。このため、JITコンパイラによるクラスファイルのコンパイル中も通常のJava(R)アプリケーションの実行中と同じようにして、スレッドスケジューリングを受け、一時停止/再開し、入力イベントに応答することが可能である。すなわち、本実施の形態では、JITコンパイラの一時停止/再開も可能となり、その利便性は極めて高いものとなる。
このように、本実施形態では、システムプログラムとは独立してノンプリエンプティブなマルチタスク環境を実現するための機能を備え、実行するクラスファイルの情報を取得するためのネイティブメソッドと、Java(R)言語で作成され当該ネイティブメソッドを利用してクラスファイルのコンパイルを動的に行うJITコンパイラとを有するJava(R)実行環境で、実行するクラスファイルとJITコンパイラとをJava(R)実行環境上で並行的に動作させ、クラスファイルをJITコンパイラで動的にコンパイルしながら実行する。
以下、本実施形態にかかるクラスファイル実行方法における処理およびイベントの応答性の遷移を図3を参照しながら説明する。ここでは、従来技術の項で説明した図2と同様の場合を示す。
まずインタープリタがJava(R)スレッド上でクラスファイルを解釈・実行する(ステップS1)。このとき、インタープリタは、周期的にイベントフラグの値をチェックするポーリング処理を行う。すなわち周期的にイベントフラグとして利用されるアドレスの値をチェックし、イベントが発生して値がセットされている場合には当該イベントに応答するための処理が行われる。したがって、この段階では、正しいイベント応答が可能である。
次いで、インタープリタがJITコンパイラを実行してクラスファイルをコンパイルする(ステップS2)。このJITコンパイラによるコンパイル中においてもインタープリタがポーリング処理を行うので、コンパイル中であってもイベント応答性は劣化しない。
ステップS2におけるコンパイルが終了すると、次にJITコンパイラの生成したコードが実行される(ステップS3)。ここで、コンパイラの生成したネィティブコードには、周期的にポーリング処理を行うように所定の命令が埋め込まれているので、ステップS3においてもイベント応答性が劣化することはない。その後、再度インタープリタがJava(R)スレッドのクラスファイルを解釈・実行する(ステップS4)。ここでもインタープリタはポーリング処理を行うので、正しくイベント応答が可能である。
以上のように、本実施形態によれば、JITコンパイラを利用してJava(R)クラスファイルを実行する場合であっても、コンパイル中にイベント応答性が劣化せず、シームレスに正しくイベント応答することが可能である。また、図3に示したように主要な処理の全てがJava(R)スレッド上で実行されるので、JITコンパイラを実行するJava(R)スレッドから、Java(R)アプリケーションを実行するJava(R)スレッド等へコンテキストを保存しつつスレッドディスパッチすることができ、生成途中のコードを破棄することなくコンパイルの中断・再開が可能となる。
以上詳述したように、本発明の一実施の形態に係るJITコンパイラによるイベント応答性の劣化を回避する方法によれば、実行するクラスファイルとJITコンパイラとが、いずれもJava(R)実行環境のノンプリエンプティブなマルチタスク環境で実行されるのでコンパイル中もクラスファイル実行中と同等のイベント応答性が確保される。
さらに、副次的な効果としては、コンパイルによるイベント応答性の劣化を気にすることなく、ユーザ入力待ちの時間などの細かい空き時間を利用する等、時間をかけてよりよいコードを生成することができる。また、従来技術ではコンパイルを中断して別のJava(R)スレッドにディスパッチする場合、途中結果を破棄しなければならず、後で最初からやり直さなければならなかったが、本実施の形態の方法によれば、Java(R)実行環境のスレッドディスパッチ機構が利用できるので、途中結果を破棄することなく、コンパイルの中断・再開が可能である。また、本実施の形態では、JITコンパイラ自身がJava(R)で記述されているため、JITコンパイラをバージョンアップしたり、何種類かのものを用意して、JITコンパイラを差し替えて使用したりすることも容易になる。
以上、本発明の一実施の形態について説明したが、本発明はこれに限定されることはなく、その趣旨を逸脱しない範囲で種々の改良・変更が可能である。
本発明の一実施の形態に係るJITコンパイラによるイベント応答性の劣化を回避する方法を実施するためのハードウェア構成図である。 本発明の一実施の形態に係るJITコンパイラによるイベント応答性の劣化を回避する方法を実施するソフトウェアの構成図である。 本発明の一実施の形態に係るJITコンパイラによるイベント応答性の劣化を回避する方法よる処理およびイベントの応答性の遷移を示す図である。 従来法における処理およびイベントの応答性の遷移を示す図である。
符号の説明
1・・・CPU、2・・・メモリ、3・・・表示部、4・・・入出力部、11・・・プラットフォーム、13・・・VM、14・・・クラスライブラリ、15・・・Java(R)アプリケーション、16,17・・・ネイティブアプリケーション。

Claims (3)

  1. Java(R)実行環境でクラスファイルを実行する方法であって、
    インタープリタが前記クラスファイルを解釈・実行する第1のステップと、
    前記インタープリタがJava(R)で作成されたコンパイラを実行して前記クラスファイルを動的にコンパイルしてネィティブコードを生成する第2のステップと、
    前記コンパイラが前記クラスファイルをコンパイルすることにより生成されたネィティブコードを実行する第3のステップとを有し、
    前記第1および第2のステップでは前記インタープリタがイベントフラグを周期的にチェックするポーリング処理を行い、前記第2のステップでは前記第3のステップで前記ポーリング処理が周期的に行われるように所定の命令を前記ネィティブコードに埋め込む処理を行うことを特徴とするクラスファイルの実行方法。
  2. プロセッサ上で実行することにより、
    イベントフラグを周期的にチェックするポーリング処理を行いながらクラスファイルを解釈実行し、イベントフラグがセットされている場合には所定のイベント応答を呼び出す機能を実現するインタープリタプログラムと、
    Java(R)言語で作成され、クラスファイルをコンパイルして前記プロセッサのネイティブコードを生成し、当該生成されたコードには前記ポーリング処理を周期的に実行するための命令が埋め込まれるコンパイラプログラムと
    を含むことを特徴とするJava(R)実行環境プログラム。
  3. 前記Java(R)実行環境は、実行するクラスファイルの情報を取得するネィティブメソッドを有し、前記コンパイラプログラムは当該ネィティブメソッドを利用してクラスファイルのコンパイルを行うことを特徴とする請求項2に記載のJava(R)実行環境プログラム。
JP2004217859A 2004-07-26 2004-07-26 クラスファイル実行方法およびJava(R)実行環境プログラム Pending JP2006039879A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004217859A JP2006039879A (ja) 2004-07-26 2004-07-26 クラスファイル実行方法およびJava(R)実行環境プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004217859A JP2006039879A (ja) 2004-07-26 2004-07-26 クラスファイル実行方法およびJava(R)実行環境プログラム

Publications (1)

Publication Number Publication Date
JP2006039879A true JP2006039879A (ja) 2006-02-09

Family

ID=35904824

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004217859A Pending JP2006039879A (ja) 2004-07-26 2004-07-26 クラスファイル実行方法およびJava(R)実行環境プログラム

Country Status (1)

Country Link
JP (1) JP2006039879A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007272893A (ja) * 2006-03-30 2007-10-18 Sun Microsyst Inc 動的コンパイルにより発生される動的出力における検知可能なポーズを減少させるメカニズム
JP2010191734A (ja) * 2009-02-19 2010-09-02 Hitachi Software Eng Co Ltd 画像再生装置及び中間語プログラム実行方法
JP2014174998A (ja) * 2013-03-12 2014-09-22 Intel Corp 協調設計されたプロセッサへの、隔離された実行環境の作成

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0398143A (ja) * 1989-09-11 1991-04-23 Nec Corp 非同期端末監視

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0398143A (ja) * 1989-09-11 1991-04-23 Nec Corp 非同期端末監視

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007272893A (ja) * 2006-03-30 2007-10-18 Sun Microsyst Inc 動的コンパイルにより発生される動的出力における検知可能なポーズを減少させるメカニズム
JP2010191734A (ja) * 2009-02-19 2010-09-02 Hitachi Software Eng Co Ltd 画像再生装置及び中間語プログラム実行方法
JP2014174998A (ja) * 2013-03-12 2014-09-22 Intel Corp 協調設計されたプロセッサへの、隔離された実行環境の作成

Similar Documents

Publication Publication Date Title
US7743384B2 (en) Method and system for implementing an interrupt handler
Dunkels et al. Contiki-a lightweight and flexible operating system for tiny networked sensors
Truyen et al. Portable support for transparent thread migration in Java
US7406699B2 (en) Enhanced runtime hosting
US8161453B2 (en) Method and apparatus for implementing task management of computer operations
US7895597B2 (en) Method, apparatus and computer program product enabling full pre-emptive scheduling of green threads on a virtual machine
US20070033592A1 (en) Method, apparatus, and computer program product for adaptive process dispatch in a computer system having a plurality of processors
Kreuzinger et al. Real-time event-handling and scheduling on a multithreaded Java microcontroller
WO2013192231A1 (en) Managing use of a field programmable gate array by multiple processes in an operating system
Puschner et al. A profile for high-integrity real-time Java programs
WO2015032311A1 (zh) 一种代码生成方法、编译器、调度方法、装置及调度系统
Kirsch et al. A programmable microkernel for real-time systems
JP2012098972A (ja) コンピュータを短時間で起動する方法およびコンピュータ
US7350193B2 (en) Procedure invocation in an integrated computing environment having both compiled and interpreted code segments
Bi et al. Research of key technologies for embedded Linux based on ARM
CN107526622B (zh) Linux的快速异常处理方法及装置
Nitta et al. Y-threads: Supporting concurrency in wireless sensor networks
McCartney et al. Stackless preemptive multi-threading for TinyOS
JP2005129001A (ja) プログラム実行装置、マイクロプロセッサ及びプログラム実行方法
US8336031B2 (en) Method and system of performing thread scheduling
JP2006039879A (ja) クラスファイル実行方法およびJava(R)実行環境プログラム
US7043725B1 (en) Two tier arrangement for threads support in a virtual machine
Pinto et al. Porting SLOTH system to FreeRTOS running on ARM Cortex-M3
JP5678347B2 (ja) Itシステムの構成方法、そのコンピュータプログラムおよびitシステム
US11435989B2 (en) Thread-local return structure for asynchronous state machine

Legal Events

Date Code Title Description
A621 Written request for application examination

Effective date: 20061020

Free format text: JAPANESE INTERMEDIATE CODE: A621

A977 Report on retrieval

Effective date: 20090223

Free format text: JAPANESE INTERMEDIATE CODE: A971007

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091208

A521 Written amendment

Effective date: 20100203

Free format text: JAPANESE INTERMEDIATE CODE: A523

A02 Decision of refusal

Effective date: 20101124

Free format text: JAPANESE INTERMEDIATE CODE: A02