JP2007011491A - 情報端末、計算機資源管理方法、および仮想マシンの実行切り替え方法 - Google Patents

情報端末、計算機資源管理方法、および仮想マシンの実行切り替え方法 Download PDF

Info

Publication number
JP2007011491A
JP2007011491A JP2005188474A JP2005188474A JP2007011491A JP 2007011491 A JP2007011491 A JP 2007011491A JP 2005188474 A JP2005188474 A JP 2005188474A JP 2005188474 A JP2005188474 A JP 2005188474A JP 2007011491 A JP2007011491 A JP 2007011491A
Authority
JP
Japan
Prior art keywords
virtual machine
intermediate code
resource
limit value
currently selected
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.)
Granted
Application number
JP2005188474A
Other languages
English (en)
Other versions
JP4955943B2 (ja
Inventor
Shinichiro Kawasaki
進一郎 川▲崎▼
Kiyoshi Ikehara
潔 池原
Masaki Nakano
正樹 中野
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.)
Faurecia Clarion Electronics Co Ltd
Original Assignee
Xanavi Informatics 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 Xanavi Informatics Corp filed Critical Xanavi Informatics Corp
Priority to JP2005188474A priority Critical patent/JP4955943B2/ja
Priority to DE112006000016T priority patent/DE112006000016T5/de
Priority to CNB200680000107XA priority patent/CN100465902C/zh
Priority to PCT/JP2006/312868 priority patent/WO2007001014A1/ja
Priority to US10/593,572 priority patent/US8365180B2/en
Publication of JP2007011491A publication Critical patent/JP2007011491A/ja
Application granted granted Critical
Publication of JP4955943B2 publication Critical patent/JP4955943B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45516Runtime code conversion or optimisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)

Abstract

【課題】仮想マシン1a1または仮想マシン1b1が確保する計算機資源を、対応する仮想マシンに割り当てられている、計算機資源の制限値内に確実に抑えることができる機能、または複数の仮想マシンを適切に実行することができる機能を有する車載端末101を提供する。
【解決手段】車載端末101は、仮想マシン1a1または仮想マシン1b1が計算機資源の確保を要求した場合に、対応する仮想マシンに割り当てられている計算機資源の制限値未満の場合に、その要求に応じた計算機資源の確保をOS143に要求する。また、車載端末101は、所定の時間間隔で、前回選択した仮想マシンの連続選択回数をチェックし、連続選択回数が制限値と等しい場合、あるいは、その仮想マシンが待機中の場合には、異なる仮想マシンを選択して、選択した仮想マシンの実行をOS143に指示する。
【選択図】図1

Description

本発明は、仮想マシン上で中間コードプログラムを実行する情報端末に関する。
今日、多数の組込み情報端末が広い用途に使われている。一例として、自動車などの車両に搭載される情報端末がある。この情報端末によって、地図表示や音声ガイドを通じて目的地への移動をサポートする、いわゆるカーナビゲーション装置が提供されている。
近年の車載情報端末は多機能化を続けており、ナビゲーション機能と合わせ、映像や音楽の視聴、車の状態表示や制御等の機能を有するものもある。このような多機能化に迅速に対応するために、車載情報端末への中間コード技術の適用が進められている。これにより単一のプログラムを、異なるOSや演算装置を持つ複数種類の情報端末において実行することが可能になり、車載情報端末の製造と、車載情報端末向けの中間コードプログラムの作成とを、異なるメーカで分業することができ、生産性が向上する。
しかし、中間コード技術を適用する場合には、中間コードプログラムを外部から取得するため、前もって必要となる計算機資源の量を知ることができず、計算機資源の管理が難しくなるという課題がある。もし、悪意を持った者が作成した中間コードプログラムやバグを含む中間コードプログラムを実行してしまうと、ファイルやメモリ領域を無限に消費し続ける等によって、他のプログラムの資源確保を妨げたり、システム全体の即応性を悪化させたりする場合がある。
これを回避するための技術として、特許文献1には、監視プロセス(タスク)を設けて、各プロセスの資源使用量を定期的にチェックし、監視モニタへ通知したり、使用量に応じてプロセスを停止、終了、または再開したりする技術が開示されている。
また、さらなる車載情報端末の多機能化に対処するため、中間コードプログラムを実行する仮想マシンを同時に複数実行したいという要求が高まっている。例えば、エアコン制御用の中間コードプログラムと、音楽再生用の中間コードプログラムとを同時に実行すること等が挙げられる。しかし、複数の仮想マシンの同時実行は、使用資源の増加や計算機資源の取り合いという問題を引き起こす。使用資源の中には、メモリや入出力デバイスだけでなく、CPUの占有時間等も含まれる。
複数の仮想マシンを同時に実行する場合、通常、実行する複数の仮想マシンを短い時間間隔毎に切り替えることにより、あたかも同時に実行されているように複数の処理を実行する場合が多い。このような処理は、例えば、複数の処理のそれぞれを所定の時間間隔に区切って、その時間間隔毎に、複数の処理を切り替えることにより実現される。
特開平7−311688号公報
ところで、特許文献1に記載の技術は、計算機資源を使用する資源使用プロセスと、資源使用プロセスが使用した資源量を監視する監視プロセスとを別個に設け、資源使用プロセスが計算機資源を確保した後にその旨を監視プロセスに報告するものである。そのため、資源使用プロセスが確保する計算機資源の量によっては、計算機資源が確保された段階で、システム全体がダウンしてしまう場合がある。
また、組み込み機器に用いられるOS(Operating System)の中には、所定の時間間隔に区切られた複数の処理を、所定の時間間隔毎に切り替える仕組みを有さないものがある。例えば、ある優先度を有する処理を実行中には、その処理が終了するまでは、それよりも優先度の低い処理を実行することができない仕組みのOSも存在する。このような場合には、例えば、優先度の等しい2つ処理がOSに実行を要求した場合には、一方のみが常に実行される事態が生ずる場合がある。
本発明は上記事情を鑑みてなされたものであり、本発明の目的は、仮想マシンが確保する計算機資源を、仮想マシンに割り当てられている、計算機資源の制限値内に抑えることにある。また、本発明の他の目的は、複数の仮想マシンを適切に実行することができるようにすることにある。
上記課題を解決するために、本発明の第1の態様における情報端末は、仮想マシンから計算機資源の確保を要求された場合に、当該要求が、当該仮想マシンに対して割り当てられた計算機資源の制限値未満の場合に、当該要求に応じた計算機資源の確保をOSに要求する。
また、本発明の第1の態様は、例えば、中間コードにより表現されたプログラムである中間コードプログラムを、OS上で実行する仮想マシンと、仮想マシンが利用可能な計算機資源の制限値を格納する資源制限値格納手段と、仮想マシンから資源確保の要求を受け付けた場合、資源制限値格納手段に格納された制限値を参照して、当該要求に応じた計算機資源を確保することによって、仮想マシンにとって利用可能となった計算機資源が制限値未満であるときには、当該要求に応じた計算機資源の確保をOSに要求し、当該要求に応じた計算機資源を確保することによって、仮想マシンにとって利用可能となった計算機資源が制限値以上であるときには、当該要求に応じた計算機資源をOSに要求しない資源管理手段とを備えることを特徴とする情報端末を提供する。
また、本発明の第2の態様における情報端末は、所定の時間間隔で、前回選択した仮想マシンの連続選択回数をチェックし、当該連続選択回数が制限値と等しい場合、または、その仮想マシンが待機中の場合には、異なる仮想マシンを選択して、選択した仮想マシンの実行をOSに指示する。
また、本発明の第2の態様は、例えば、中間コードにより表現されたプログラムである中間コードプログラムを、OS上で実行する複数の仮想マシンと、複数の仮想マシンのそれぞれが連続して選択可能な最大回数である連続選択可能回数を、複数の仮想マシンのそれぞれに対応付けて格納する資源制限値格納手段と、資源制限値格納手段に格納されている連続選択可能回数に基づいて、複数の仮想マシンのそれぞれを切り替えて実行させる仮想マシン切り替え手段とを備え、仮想マシン切り替え手段は、予め定められた時間間隔で、現在選択している仮想マシンが待機中か否かを判定し、現在選択している仮想マシンが待機中である場合に、現在選択している仮想マシンとは異なる仮想マシンを選択し、選択した仮想マシンを実行するようOSに指示すると共に、当該選択した仮想マシンの連続選択回数を1とし、現在選択している仮想マシンが実行中である場合に、資源制限値格納手段に格納された連続選択可能回数を参照して、現在選択している仮想マシンの連続選択回数が、現在選択している仮想マシンに対応する連続選択可能回数と等しい場合には、現在選択している仮想マシンとは異なる仮想マシンを選択し、選択した仮想マシンを実行するようOSに指示すると共に、当該選択した仮想マシンの連続選択回数を1とし、現在選択している仮想マシンの連続選択回数が、現在選択している仮想マシンに対応する連続選択可能回数未満の場合には、現在選択している仮想マシンを再び選択し、再選択した仮想マシンを実行するようOSに指示すると共に、当該再選択した仮想マシンの連続選択回数を1増加させる仮想マシン切り替え手段とを備えることを特徴とする情報端末を提供する。
本発明の情報端末によれば、仮想マシンが確保する計算機資源を、仮想マシンに割り当てられている、計算機資源の制限値内に確実に抑えることができる。また、本発明の車載情報端末によれば、複数の仮想マシンを適切に実行することができる。
以下に、本発明の実施の形態について説明する。
図1は、本発明の一実施形態に係る車載通信システム10の構成を示す。車載通信システム10は、車両等の移動体に搭載され、車載端末101を備える。車載端末101は、車内ネットワーク121を通じて空調制御装置111、走行状態監視装置112、ブレーキ状態監視装置113等に接続されており、これらの機器から車両の状態を取得したり、空調機器等を制御したりする。また、車載端末101は、車両の搭乗者によって操作されるリモコン114と有線または無線により通信を行う。搭乗者はリモコン114を介して車載端末101を操作する。
車載端末101は、携帯通信端末115およびインターネットや無線電話通信網等の車外ネットワーク122を介して、中間コードプログラム管理サーバ116と通信を行う。本例において、携帯通信端末115は、例えば携帯電話やPDA等の無線通信機器であり、車載端末101の外部に設けられる。また、他の例として、車載端末101は、携帯通信端末115の機能を内蔵していてもよい。
中間コードプログラム管理サーバ116は、車載端末101上で動作するプログラム等を、車外ネットワーク122および携帯通信端末115を介して車載端末101に供給する。また、中間コードプログラム管理サーバ116は、車載端末101に供給したプログラムの不具合を車載端末101から取得したり、車載端末101においてインストール済みの中間コードプログラムの最新バージョンを通知したりする。
次に、車載端末101について詳細に説明する。車載端末101は、一次記憶装置102、二次記憶装置103、中央演算装置104、表示装置105、音響出力装置106、車内通信装置107、リモコン通信装置108、および車外通信装置109を有する。
二次記憶装置103は、電源の供給が遮断された場合にも記録されたデータを保持する機能を有しており、プログラムや当該プログラムによって使用されるデータ、当該プログラムの設定情報等を格納している。二次記憶装置103は、基本プログラム群151、中間コードプログラム群152、データファイル群153、資源制限データ154、資源違反履歴155、および違反時処理設定156を有する。中央演算装置104は、車載端末101に電源が投入される等の所定のタイミングで、二次記憶装置103に格納されたプログラム等を一次記憶装置102にロードし、ロードしたプログラムを実行する。
表示装置105および音響出力装置106は、映像および音を通じて搭乗者にそれぞれ情報を与える。リモコン通信装置108は、リモコン114を介して搭乗者からの操作情報を取得する。車載端末101の使用者は、リモコン114を通じて車載端末101に情報を入力し、表示装置105、音響出力装置106を通じて車載端末101から情報を受け取る。情報の入出力装置はここに示した装置に限らず、他の装置でもかまわない。例えば車載端末101に設置されたボタンや、タッチパネルを用いて情報が入力されてもよい。車内通信装置107は、車内ネットワーク121を介した空調制御装置111等との通信を受け持つ。車外通信装置109は、携帯通信端末115および走行状態監視装置112を介して中間コードプログラム管理サーバ116等との通信を受け持つ。
複数のタスクおよびオペレーティング・システム143(以下OS143)は、一次記憶装置102上にロードされる。そして、複数のタスクは、OS143の管理のもとで並列実行される。これらのタスクやOS143は、二次記憶装置103内に格納されている基本プログラム群151に含まる。
一次記憶装置102上で実行される複数の仮想マシン(仮想マシン1a1、1b1)のそれぞれは、少なくとも1つの仮想マシンタスクを有する。当該仮想マシンタスクのそれぞれは、OS143が管理するタスクとは異なる。当該仮想マシンタスクのそれぞれは、OS143が管理するタスクのいずれか1つに割り当てられ、割り当てられたタスクを介してOS143によって実行される。
なお、本例では、仮想マシンタスクのそれぞれは、OS143が管理するタスクの1つに割り当てられるが、他の例として、1つの仮想マシンに、OS143が管理するタスクの1つが割り当てられ、割り当てられたタスクを介して実行される仮想マシンタスクを、当該仮想マシン内で切り替えることにより、それぞれの仮想マシンタスクを実行するように構成してもよい。
一次記憶装置102上には、仮想マシン管理タスク131およびその他のタスク142等がロードされ、OS143によって管理および実行される。また、OS143は、内部のスケジューラ機能を用いて、各タスクを並列実行し、車載端末101の外部の他の装置と、車載端末101内の各タスクとのやりとりを仲介する。
安全性検査済み中間コードリスト140は、後述する処理により安全性検査が実行された中間コードプログラムに関する情報を格納している。安全性検査済み中間コードリスト140は、複数の仮想マシン(仮想マシン1a1、仮想マシン1b1)によって参照される。
中間コードプログラム群152は、中間コードプログラムのコード列や当該プログラムの設定情報等を格納している。中間コードプログラム群152に格納される中間コードプログラムは、車載端末101の製造時に予め格納されていてもよく、車外ネットワーク122および携帯通信端末115を介して、中間コードプログラム管理サーバ116から取得して格納されてもよい。
仮想マシン1a1および仮想マシン1b1のそれぞれは、中間コードプログラム群152から中間コード列等を読み込み、例えばJIT(Just In Time)コンパイラ等を用いて、読み込んだ中間コード列を実行に適した形式に変換して実行する。データファイル群153は、これらのタスクや中間コードプログラムの実行に必要なデータ等を格納する。資源制限データ154は、仮想マシン1a1および仮想マシン1b1によって起動時に読み込まれるデータであり、各仮想マシンが中間コードプログラム実行中に利用する資源の制限情報を格納する。
資源違反履歴155は、仮想マシン1a1および仮想マシン1b1のそれぞれが、対応する資源制限に違反した場合に、当該違反に関する情報を履歴として格納する。違反時処理設定156は、仮想マシン1a1および仮想マシン1b1のそれぞれマシンが中間コードプログラムの実行中に資源制限違反を犯した場合の対処処理に関する情報を格納する。
なお、本例では、車載端末101内で動作する仮想マシンが2つの場合を例に説明するが、本発明はこれに限られず、2つ以上であれば、いくつであってもよい。
仮想マシン1a1は、使用資源群1a2、資源管理部1a3、中間コードプログラムロード部1a4、実行中間コードプログラム群1a5、および中間コード実行部1a6を有する。本例では、仮想マシン1a1と仮想マシン1b1とは同様の構成とし、説明を省略する。
使用資源群1a2は、中間コードプログラムの実行に必要な資源を保持する。実行中間コードプログラム群1a5は、実行対象の中間コードプログラムのプログラムコードを保持する。中間コードプログラムロード部1a4は、二次記憶装置103上の中間コードプログラム群152から必要な中間コードプログラムを仮想マシン内に読み込み、読み込んだ中間コードプログラムを実行に適した形式に変換し、変換したプログラムを実行中間コードプログラム群1a5に格納する。
中間コード実行部1a6は、実行中間コードプログラム群1a5に格納されたプログラムを実行する。そして、中間コード実行部1a6は、プログラムの実行中に各種計算機資源の確保、解放または操作が必要になった場合には、対応する計算機資源の確保、解放または操作を資源管理部1a3に要求する。
資源管理部1a3は、使用資源群1a2を管理しており、例えば、仮想マシン起動時に使用資源群1a2を初期化し、中間コード実行部1a6から計算機資源の確保または操作を要求された場合に、二次記憶装置103内の資源制限データ154を参照して、当該要求が仮想マシン1a1に許容されている資源制限値以内のときには、当該要求に応じて資源の確保または操作をOS143に要求する。
仮想マシン管理タスク131は、それぞれの仮想マシンと車載端末101の入出力デバイスとの調整や、それぞれの仮想マシンが実行する中間コードプログラムの削除、それぞれの仮想マシンによる中央演算装置104の占有時間の制御等を実行する。仮想マシン管理タスク131は、資源占有状態リスト132、画面管理部133、音響出力管理部134、イベント管理部135、中間コードプログラム管理部136、および仮想マシン切り替え管理部137を有する。
資源占有状態リスト132は、表示装置105、音響出力装置106、またはリモコン通信装置108を占有している仮想マシンを識別するための状態情報を保持する。画面管理部133は、仮想マシンによる表示装置105の占有権を制御し、現在表示装置105を占有している仮想マシンの識別情報を資源占有状態リスト132に格納する。音響出力管理部134は、仮想マシンによる音響出力装置106の占有権を制御し、現在音響出力装置106を占有している仮想マシンの識別情報を資源占有状態リスト132に格納する。イベント管理部135は、仮想マシンによるリモコン通信装置108の占有権を制御し、現在リモコン通信装置108を占有している仮想マシンの識別情報を資源占有状態リスト132に格納する。
中間コードプログラム管理部136は、二次記憶装置103内の中間コードプログラム群152を管理し、計算機資源の制限違反を多発する中間コードプログラムの削除や、中間コードプログラムの最新バージョンへのアップデート等を行う。仮想マシン切り替え管理部137は、各仮想マシンに割り当てられたタスクであって、OS143が管理するタスク停止および再開をOS143に指示することによって、それぞれの仮想マシンの実行時間を管理し、それぞれの仮想マシンによる中央演算装置104の占有時間を制御する。
図2は、使用資源群1a2および使用資源群1b2の詳細な構成の一例を示す。使用資源群1a2は、仮想マシン1a1によって確保されているそれぞれの資源の情報を、資源の種類を識別する資源種別に対応付けて格納する。なお、使用資源群1a2と使用資源群1b2とは同様の構成を有するため、以下、使用資源群1a2について説明し、使用資源群1b2についての説明は省略する。使用資源群1a2は、タスク情報201、ファイル情報202、セマフォ情報203、および動的メモリ領域情報204を格納する。
タスク情報201は、仮想マシン内の複数の仮想マシンタスクのそれぞれに割り当たられたタスクであって、OS143が管理するタスクの状態、および、タスクの優先度を、それぞれのタスクIDに対応付けて格納する。優先度とは、仮想マシン1a1が実行する中間コードプログラムの設計者によって設定される仮想マシンタスクの優先度であって、OS143によって、OS143が管理するタスクの実行時間割り当てや実行順序を決定する際に用いられる。
中間コード実行部1a6がプログラムの実行に応じて、OS143が管理するタスクの確保が必要であると判定した場合、中間コード実行部1a6は、資源管理部1a3に当該タスクの確保を要求する。そして、資源管理部1a3は、資源制限データ154を参照して、当該要求が制限値を満たしている場合には、当該要求に対応するタスクの確保をOS143に要求すると共に、状態を使用中としてタスク情報201に追加する。また、確保したタスクの終了通知を中間コード実行部1a6から受けた場合、資源管理部1a3は、タスク情報201において、対応するタスクの状態を待機中に変更する。このとき、資源管理部1a3は、状態を待機中に変更したタスクの開放をOS143に指示しない。
ファイル情報202は、二次記憶装置103内に格納されるデータを管理する単位であるファイルの情報である中間コードプログラム名やデータサイズを、ファイル名に対応付けて格納する。
プログラムの実行に応じて、ファイルの作成や書込み、削除が必要であると判定した場合、中間コード実行部1a6は、資源管理部1a3に当該ファイルの作成等を要求する。そして、資源管理部1a3は、資源制限データ154を参照して、当該要求が制限値を満たしている場合には、当該要求に対応するファイルの作成等をOS143に要求すると共に、ファイル情報202を変更する。
セマフォ情報203は、複数のタスクが同一の計算機資源にアクセスする際の同期を取る機能を提供するソフトウェア資源であるセマフォの使用状態を、セマフォIDに対応付けて格納する。それぞれの仮想マシンは、起動時に制限個数分のセマフォをOS143に要求することにより確保し、全てのセマフォの状態を待機中としてセマフォ情報203に格納する。
資源管理部1a3は、中間コード実行部1a6からセマフォ使用の要求を受けると、セマフォ情報203を参照して、待機中のセマフォの中の1つの状態を使用中に変更し、中間コード実行部1a6に当該セマフォの使用許可を通知する。また、資源管理部1a3は、中間コード実行部1a6からセマフォの解放要求を受けると、OS143に対してセマフォの解放を要求せずに、当該セマフォの状態を待機中に変更する。このように、仮想マシン1a1は、プログラム実行中に、セマフォの新規確保や解放を実行せず、予め確保したセマフォを再利用しながらプログラムを実行する。
動的メモリ領域情報204は、中間コード実行部1a6によるプログラムの実行に応じて動的に確保されたメモリに関する情報を、メモリセグメントIDに対応付けて格納する。それぞれの仮想マシンは、起動時に制限サイズ分のメモリをOS143に要求することにより確保し、中間コード実行部1a6からのメモリ確保の要求に応じて、起動時に確保したメモリの範囲内で動的にメモリを確保および開放する。
プログラムの実行に応じて、メモリの確保または開放が必要であると判定した場合、中間コード実行部1a6は、資源管理部1a3に当該メモリの確保等を要求する。そして、資源管理部1a3は、資源制限データ154を参照して、当該要求が制限値を満たしている場合には、当該要求に対応するメモリの確保等を実行する。
なお、使用資源群1a2および使用資源群1b2は、上記の計算機資源以外に、ディスクパーティションのアクセス権やソケット等を格納してもよい。
図3は、資源占有状態リスト132の詳細な構成の一例を示す。資源占有状態リスト132は、計算機資源を現在占有中の仮想マシンID1321を、計算機資源の種類を示す資源種別1320に対応付けて格納する。画面、リモコン、音源、CPU等の計算機資源は、1つの仮想マシンのみから使用可能である。
資源占有状態リスト132を参照することにより、当該資源を現在使用している仮想マシンを判断することができる。
図4は、安全性検査済み中間コードリスト140の詳細な構成の一例を示す。安全性検査済み中間コードリスト140は、中間コードプログラムロード部1a4による安全性検査が完了した安全性検査済み中間コード列名1401、および、当該検査を実行した仮想マシンのIDである検査実施仮想マシンID1402を、中間コードプログラム名1400に対応付けて格納する。安全性検査済み中間コードリスト140を参照することにより、仮想マシン1a1および仮想マシン1b1は、ロード対象の中間コード列の安全性検査が既に終了しているか否かを判定することができる。安全性検査が既に終了している場合、中間コードプログラムロード部1a4による安全性検査を省略して中間コードプログラムをロードすることができる。
図5は、資源制限データ154の詳細な構成の一例を示す。資源制限データ154は、制限値が適用される仮想マシンID1540毎に、計算機資源の制限値1542を資源種別1541に対応付けて格納している。資源制限データ154に設定されるそれぞれの計算機資源の制限値1542は、例えば、車載端末101の出荷時に製造業者等によって予め設定される。
本例において、「aaa」は仮想マシン1a1の仮想マシンIDを示し、「bbb」は仮想マシン1b1の仮想マシンIDを示す。資源制限データ154では、仮想マシン1a1が仮想マシン1b1よりも重要度の高い中間コードプログラムを実行するものとして設定されている例を示している。そのため、仮想マシン1a1に対応する計算機資源の制限値が高く、仮想マシン1b1に対応する計算機資源が低く設定され、仮想マシン1a1に優先的に計算機資源が割り当てられるようにしている。
なお、計算機資源の種類は、図5に示した例に限られず、各仮想マシンによる読み出し、書き込みが許されるパーティションを指定する計算機資源等を含んでもよい。例えば、1番目のパーティションに基本プログラム群151等の最重要データが格納され、2番目のパーティションに車両情報や個人情報等の重要データが格納され、3番目のパーティションに、その他の一般データが格納されている場合、特定の仮想マシンに対してのみ1番目のパーティションへのアクセスを許可するようにしてもよい。
図6は、資源違反履歴155の詳細な構成の一例を示す。資源違反履歴155は、仮想マシンID1551、制限値の違反を犯した中間コードプログラム名1552、違反した制限値1553、および違反量1554を、当該違反を犯した違反日時1550に対応付けて格納する。
資源違反履歴155を参照することにより、中央演算装置104は、発生した制限違反の内容を、携帯通信端末115および車外ネットワーク122を介して中間コードプログラム管理サーバ116に通知することができる。これにより、中間コードプログラムの開発者等は、資源制限違反の原因や予防策の検討を効率よく行うことができる。
図7は、違反時処理設定156の詳細な構成の一例を示す。違反時処理設定156は、図5に示した制限値のそれぞれに違反した場合に行う処理を規定する。違反時処理設定156は、処理を適用する仮想マシンID1560毎に、計算機資源の違反回数1562および制限値の違反が検出された場合に行われる処理である違反時処理1563を、資源種別1561に対応付けて格納している。違反時処理設定156は、例えば、車載端末101の出荷時に製造業者等によって予め設定される。なお、仮想マシン毎に、設定項目数や設定値が異なっていてもよい。
図7に示した例では、仮想マシン1a1において、作成可能タスク数に対する違反が3回発生した時には、仮想マシン1a1は停止および終了させられ、中間コードプログラム管理サーバ116に違反の発生が通知されるが、違反発生時に動作していた中間コードプログラムは削除されない。また、仮想マシン1a1において、作成可能最大ファイルサイズに対する制限違反が1回発生した時、仮想マシン1a1は停止させられないが、違反回数が10回に達すると、仮想マシン1a1は停止させられる。
違反時処理設定156を用いることにより、各仮想マシンにおける資源違反発生時の処理内容を、きめ細かく設定することができる。各仮想マシンの重要度、実行されるアプリケーションの重要度、各資源の量、制限違反頻度、制限違反規模などに応じて、指定処理を変更することで、車載端末101をより安定に動作させることができる。
なお、本例では、違反回数に基づいて処理内容を規定したが、他にも違反規模、違反頻度、違反を犯した中間コードプログラムの開発元等に応じて処理内容を規定してもよい。
次に、車載端末101の動作について図8〜図18を参照しながら説明する。
図8は、車載端末101の動作の一例を示すフローチャートである。電源が投入される等の所定のタイミングで、車載端末101は、本フローチャートに示す処理を開始する。まず、仮想マシン1a1、仮想マシン1b1、仮想マシン管理タスク131を含む複数のタスクが起動される。なお、以下に説明する点において、仮想マシン1a1と仮想マシン1b1とは同様の処理を行うため、仮想マシン1a1および仮想マシン1b1に同様の処理については、仮想マシン1a1についてのみ説明する。
資源管理部1a3は、中間コードプログラムの実行中に使用する計算機資源を制限するための資源制限データ154を読み込む(S100)。このとき、必要に応じて資源管理のための初期化等の処理も実行する。
次に、中間コードプログラムロード部1a4は、実行対象となる中間コードプログラムを中間コードプログラム群152から読み込む(S200)。このとき、中間コードプログラムロード部1a4は、読み込んだ中間コードプログラムを実行可能な形式に変換して、実行中間コードプログラム群1a5に格納する。そして、中間コード実行部1a6は、実行中間コードプログラム群1a5に格納されたプログラムを実行する(S300)。
図9は、資源制限データ読み込み処理(S100)の一例を示すフローチャートである。資源管理部1a3は、資源制限データ154から、作成可能タスク数の制限値を読み込み(S101)、ファイルに関する制限値を読み込み(S102)、作成可能なセマフォ数に関する制限値を読み込み(S103)、確保可能な動的メモリの最大サイズの制限値を読み込む(S104)。
なお、ステップ103では、作成可能なセマフォ数に関する制限値を読み込んだときに、資源管理部1a3は、当該制限値分のセマフォをOS143に要求することにより確保し、確保した制限値分のセマフォの状態を全て待機中として使用資源群1a2に登録する。同様に、ステップ104では、確保可能な動的メモリの最大サイズの制限値を読み込んだときに、資源管理部1a3は、当該制限値分のメモリをOS143に要求することにより確保し、確保した制限値分のメモリの状態を全て未使用として使用資源群1a2に登録する。
図10は、中間コードプログラム読み込み処理(S200)の一例を示すフローチャートである。ます、中間コードプログラムロード部1a4は、読み込むべき中間コードプログラムの識別情報が記述されているリストを中間コードプログラム群152から取得する(S201)。そして、中間コードプログラムロード部1a4は、取得したリストに記述されている中間コードプログラムの1つを選択する(S202)。
そして、中間コードプログラムロード部1a4は、安全性検査済み中間コードリスト140を参照して、選択した中間コードプログラムの安全性検査が終了しているか否かを判定する(S203)。安全性検査が既に終了している場合(S203:Yes)、中間コードプログラムロード部1a4は、ステップ207に示す処理を行う。
このように、既に別の仮想マシンによって安全性の検査が実施されている中間コードプログラムの安全性検査処理を省略することで、中間コードプログラムをロードする際の処理負荷を軽減することができる。
安全性検査が終了していない場合(S203:No)、中間コードプログラムロード部1a4は、選択した中間コードプログラムの安全性検査を行う(S204)。ステップ204では、中間コードプログラムロード部1a4は、中間コードプログラムに不正な命令コードが含まれていないか、命令コード列の整合は取れているか、不正なアドレスにアクセスする命令コード列となっていないか等の検査を行う。
そして、安全性が確認された場合(S205:Yes)、中間コードプログラムロード部1a4は、安全性検査済み中間コードリスト140に検査結果を格納する(S206)。そして、リストに含まれる中間コードを全て読み込んだか否かを判定し(S207)、全て読み込んでいなければ、中間コードプログラムロード部1a4はステップ203に示した処理を実行し、全て読み込んでいれば、本フローチャートに示す処理を終了する。
安全性が確認されなかった場合(S205:No)、中間コードプログラムロード部1a4は、安全性に問題がある旨を105等を介して車載端末101の使用者に通知すると共に、携帯通信端末115および車外ネットワーク122を介して中間コードプログラム管理サーバ116に通知し(S208)、中間コードプログラムの起動または実行の中断を中間コード実行部1a6に指示し、本フローチャートに示す処理を終了する。
図11は、中間コードプログラム実行処理(S300)の一例を示すフローチャートである。まず、中間コード実行部1a6は、中間コード列の命令を一つずつ解釈実行することにより、中間コードプログラムを実行する(S301)。そして、中間コード実行部1a6は、中間コードプログラムでは実行できない、各種資源の確保、解放、操作等のネイティブ機能の呼び出しが必要か否かを判定する(S302)。
ネイティブ機能の呼び出しが不要な場合(S302:No)、中間コード実行部1a6は、中間コードプログラムの実行が終了したか否かを判定する(S308)。中間コードプログラムの実行が終了していない場合(S308:No)、中間コード実行部1a6は、ステップ301において中間コード列の次の命令を実行する。中間コードプログラムの実行が終了した場合(S308:Yes)、中間コード実行部1a6は、本フローチャートに示す処理を終了する。
ネイティブ機能の呼び出しが必要な場合(S302:Yes)、中間コード実行部1a6は、対応するネイティブ機能の処理(S400、S500、S600、S303、S304)を、資源管理部1a3に指示する。ステップ400〜600の処理の詳細は後述する。ステップ303では、資源管理部1a3は、二次記憶装置103内の資源制限データ154を参照して、動的に確保するメモリの総サイズを制限値以内に制限しながら、メモリを動的に確保または解放する。ステップ304では、資源管理部1a3は、上記以外のネイティブ機能(通信ソケットの確保等)の処理を実行する。
上記ネイティブ処理のいずれかを実行中に、計算機資源の制限値違反が発生した場合には(S305:Yes)、資源管理部1a3は、発生したエラーに対応する処理を実行する(S700)。そして、エラーに対応する処理において、仮想マシンが強制終了されていない場合には(S306:No)、資源管理部1a3は、エラーの情報を中間コード実行部1a6に通知することにより、中間コード実行部1a6にエラー処理を実行させ(S307)、ステップ308に示した処理を行う。
図12は、タスク作成/削除処理(S400)の一例を示すフローチャートである。まず、資源管理部1a3は、タスクの作成処理か否かを判定し(S401)、タスクの作成処理である場合には、使用資源群1a2を参照して、未使用タスクがあるか否かを判定する(S402)。未使用タスクがある場合(S402:Yes)、資源管理部1a3は、OS143に対応するタスクの状態を動作状態に変更するよう依頼し(S406)、本フローチャートに示す処理を終了する。
未使用タスクがない場合(S402:No)、資源管理部1a3は、タスクを作成することによって、作成されたタスクの総数が作成可能なタスク数の制限値未満となるか否かを判定する(S403)。制限値以上となる場合(S403:No)、資源管理部1a3は、タスクを作成できない旨のエラーを中間コード実行部1a6に通知し、本フローチャートに示す処理を終了する。
制限値未満の場合(S403:Yes)、資源管理部1a3は、OS143にタスクの作成を依頼する(S404)。そして、資源管理部1a3は、作成されたタスクの状態を使用中として使用資源群1a2に登録し(S405)、本フローチャートに示す処理を終了する。
タスクの削除処理である場合には(S401:No)、資源管理部1a3は、OS143に対応するタスクの状態を待機中に変更するよう依頼することによりタスクを停止させる(S408)。ステップ408において、資源管理部1a3は、停止したタスクの開放をOS143に依頼せず、確保したままにする。そして、資源管理部1a3は、使用資源群1a2内の、停止したタスクの状態を待機中に変更し(S409)、本フローチャートに示す処理を終了する。
図13は、ファイル作成/削除/書込処理(S500)の一例を示すフローチャートである。まず、資源管理部1a3は、中間コード実行部1a6からの要求がファイルの作成処理である場合には(S501:Yes)、資源制限データ154を参照して、中間コード実行部1a6からの要求に応じてファイルを作成したときに、作成したファイル数が、作成可能なファイル数の制限値未満となるか否かを判定する(S502)。制限値以上の場合(S502:No)、資源管理部1a3は、エラーを中間コード実行部1a6に通知し(S506)、本フローチャートに示す処理を終了する。
制限値未満の場合(S502:Yes)、資源管理部1a3は、仮想マシン1a1がファイルを作成するディスク上の領域へのアクセス権があるときには(S503:Yes)、ファイルを作成する(S504)。そして、資源管理部1a3は、作成したファイルの情報を使用資源群1a2に登録し(S505)、本フローチャートに示す処理を終了する。
中間コード実行部1a6からの要求がファイルの作成処理でない場合(S501:No)、資源管理部1a3は、中間コード実行部1a6からの要求がファイルへの書込み処理であるときには、資源制限データ154を参照して、中間コード実行部1a6からの要求に応じて書込みを行ったファイルのサイズが、作成可能な最大ファイルサイズの制限値未満となるか否かを判定する(S508)。制限値以上の場合(S508:No)、資源管理部1a3は、ステップ506に示した処理を行う。
制限値未満の場合(S508:Yes)、資源管理部1a3は、ファイルへの書込みを許可することにより中間コード実行部1a6にファイルにデータを書き込ませ(S509)、使用資源群1a2内の、対応するファイルのサイズを変更し(S510)、本フローチャートに示す処理を終了する。
中間コード実行部1a6からの要求がファイルへの書き込みでない場合(S507:No)、資源管理部1a3は、ファイルを削除し(S511)、対応するファイルの情報を使用資源群1a2から削除し(S512)、本フローチャートに示す処理を終了する。
図14は、セマフォ作成/削除処理(S600)の一例を示すフローチャートである。まず、資源管理部1a3は、セマフォの作成処理か否かを判定し(S601)、セマフォの作成処理である場合には、使用資源群1a2を参照して、未使用のセマフォがあるか否かを判定する(S602)。未使用のセマフォがある場合(S602:Yes)、資源管理部1a3は、セマフォの使用許可を中間コード実行部1a6に通知すると共に、使用資源群1a2内のセマフォの状態を使用中に変更し(S603)、本フローチャートに示す処理を終了する。
未使用のセマフォがない場合(S602:No)、資源管理部1a3は、セマフォを確保できない旨のエラーを中間コード実行部1a6に通知し(S604)、本フローチャートに示す処理を終了する。セマフォ作成処理でない場合(S601:No)、資源管理部1a3は、使用資源群1a2内の、対応するセマフォの状態を待機中に変更し(S605)、本フローチャートに示す処理を終了する。
なお、本例では、仮想マシン1a1起動時に制限値と同数のセマフォが予め確保されている。本フローチャートでは、セマフォの作成が必要な時には、OS143に対してセマフォの新規確保を要求せず、起動時に既に確保されているセマフォの中から未使用のセマフォを割り当てる。また、不要時にもOS143にセマフォの開放を要求せず、セマフォの状態を待機中に変更する。
図12〜図14に示したように、資源の作成と削除の処理にはいくつかの実現方法があるが、いずれも作成、削除に応じて使用する資源量を把握することができ、制限値に違反が発生した時点で即座に検知することが可能である。
図15は、制限違反処理(S700)の一例を示すフローチャートである。まず、資源管理部1a3は、図11に示すステップ400、500、600、303、または304において発生した制限違反の内容を資源違反履歴155に記録し(S701)、資源違反履歴155および違反時処理設定156を参照して、発生した違反に応じて仮想マシンの終了が必要か否かを判定する(S702)。
資源管理部1a3は、仮想マシンの終了の必要がないと判定した場合(S702:No)、資源違反履歴155および違反時処理設定156を参照して、発生した違反に応じて仮想マシンの停止が必要である場合(S703:Yes)には、仮想マシン切り替え管理部137に指示して対応する仮想マシンを停止させ(S704)、ステップ705に示す処理を行い、仮想マシンの停止が必要でない場合(S703:No)には、ステップ705に示す処理を行う。
資源違反履歴155および違反時処理設定156を参照して、発生した違反に応じて仮想マシンの終了が必要であると判定した場合(S702:Yes)、資源管理部1a3は、仮想マシン切り替え管理部137に指示して対応する仮想マシンを終了させる(S720)。
次に、資源違反履歴155および違反時処理設定156を参照して、発生した違反に応じて仮想マシンが実行している中間コードプログラムの削除が必要か否かを判定する(S705)。対応する中間コードプログラムの削除が必要でない場合(S705:No)、ステップ707に示す処理を行う。対応する中間コードプログラムの削除が必要な場合(S705:Yes)、資源管理部1a3は、対応する中間コードプログラムの削除を中間コードプログラム管理部136に依頼することにより、対応する中間コードプログラムを中間コードプログラム管理部136に削除させる(S706)。ステップ706において、中間コードプログラム管理部136は、削除対象の中間コードプログラムをその他のタスク142から削除する。
図16は、仮想マシン終了処理(S720)の一例を示すフローチャートである。まず、資源管理部1a3は、使用資源群1a2を参照して、終了すべき中間コードプログラムが確保した計算機資源を1つ選択し(S721)、OS143に選択した計算機資源の解放を依頼する(S722)。そして。資源管理部1a3は、終了すべき中間コードプログラムが確保した計算機資源を全て選択したか否かを判定する(S723)。資源管理部1a3は、選択していない計算機資源が存在する場合(S723:No)、再びステップ721に示した処理を行い、終了すべき中間コードプログラムが確保した計算機資源の全てを選択した場合(S723:Yes)、本フローチャートに示す処理を終了する。
使用資源群1a2を参照することにより、資源管理部1a3は、終了すべき中間コードプログラムが確保した計算機資源を、確実に解放することができる。
図17は、仮想マシン切り替え管理部137の動作の一例を示すフローチャートである。車載端末101に電源が投入される等の所定のタイミングで、仮想マシン切り替え管理部137は、本フローチャートに示す処理を開始する。まず、仮想マシン切り替え管理部137は、現在実行中の仮想マシンの数が2以上か否かを判定する(S801)。現在実行中の仮想マシン数が1以下である場合(S801:No)、仮想マシン数が2以上になるまで、ステップ801を繰り返す。
現在実行中の仮想マシン数が2以上である場合(S801:Yes)、仮想マシン切り替え管理部137は、複数の仮想マシンのいずれか1つを選択する仮想マシン再選択処理を実行する(S810)。そして、仮想マシン切り替え管理部137は、選択した仮想マシンが現在実行中の仮想マシンと異なるか否かを判定する(S802)。選択した仮想マシンが現在実行中の仮想マシンと同一の場合(S802:No)、ステップ806に示す処理を行う。
選択した仮想マシンが現在実行中の仮想マシンと異なる場合(S802:Yes)、仮想マシン切り替え管理部137は、実行中の仮想マシンに割り当てられている全てのタスクであって、OS143が管理するタスクの一時停止をOS143に依頼する(S803)。そして、仮想マシン切り替え管理部137は、仮想マシンの切り替え準備を行う(S804)。ステップ804では、仮想マシン切り替え管理部137は、資源占有状態リスト132内において、選択した仮想マシンが使用する資源種別に対応する仮想マシンID1321の書き換え、実行中であった仮想マシンに対応するタスクが共有メモリ141内で使用していたグローバル変数領域等の実行環境を、実行中であった仮想マシンの共有メモリ退避領域1a7または共有メモリ退避領域1b7へ退避する処理等を行う。
次に、仮想マシン切り替え管理部137は、ステップ2602において選択した仮想マシンに対応するタスクの実行再開をOS143に依頼する(S805)。そして、仮想マシン切り替え管理部137は、100ms等の所定期間待ってから(S806)、再びステップ801に示した処理を実行する。
図18は、仮想マシン再選択処理(S810)の一例を示すフローチャートである。まず、仮想マシン切り替え管理部137は、OS143に問い合わせて、現在実行中のタスク、すなわち前回選択したタスクの状態を取得する(S811)。そして、仮想マシン切り替え管理部137は、前回選択した仮想マシンに割り当てられた全てのタスクが、入力待ちやタイマ等のイベントを待ち状態であるか否かを判定する(S812)。
いずれかのタスクが待ち状態でない場合(S812:No)、仮想マシン切り替え管理部137は、前回選択した仮想マシンの連続選択回数が、当該仮想マシンに割り当てられた連続選択可能回数を超えているか否かを判定する(S814)。ステップ814において、仮想マシン切り替え管理部137は、選択した仮想マシンの連続選択回数を保持している。また、仮想マシン切り替え管理部137は、図5に示した資源制限データ154内のCPU占有率の制限値に基づいて、仮想マシンのそれぞれの連続選択可能回数を算出する。本例において、仮想マシン切り替え管理部137は、仮想マシン1a1に対応するCPU占有率の制限値が70%、仮想マシン1b1に対応するCPU占有率の制限値が30%であるので、これに比例する値を連続選択可能回数として算出する。例えば、仮想マシン切り替え管理部137は、仮想マシン1a1の連続選択可能回数を7回、仮想マシン1b1の連続選択可能回数を3回と算出する。
前回選択した仮想マシンの連続選択回数が、当該仮想マシンに割り当てられた連続選択可能回数以下の場合(S814:No)、仮想マシン切り替え管理部137は、前回選択した仮想マシンを今回も選択すると共に、選択した仮想マシンの連続選択回数を増やし(S815)、本フローチャートに示す処理を終了する。前回選択した仮想マシンの連続選択回数が、当該仮想マシンに割り当てられた連続選択可能回数を越えている場合(S814:Yes)、仮想マシン切り替え管理部137は、前回選択した仮想マシンとは異なる仮想マシンを選択すると共に、選択した仮想マシンの連続選択回数を1として(S813)、本フローチャートに示す処理を終了する。
このように、予め設定された配分で、実行される仮想マシンを切り替えることにより、設計時に指定されたCPU占有率に近い配分でCPU処理時間を割り当てながら、複数仮想マシンを並列実行することができる。この切り替え処理は、OS143の持つタスク停止機能とタスク再開機能、およびタスクのイベント待機問い合わせ機能を用いるものである。よって、これらの機能を提供するマルチタスクOSであれば、CPU占有率の制御機能を有していなくとも、仮想マシンのCPU占有率を制御することができ、複数の仮想マシンを適切に動作させることができる。
また、上述した仮想マシン切り替え管理部137による仮想マシン切り替え処理は、OSへのタスク操作依頼を通じて実現されており、OS143が有するスケジューラを直接制御するものではない。そのため、当該仮想マシンは、仮想マシン1a1や仮想マシン1b1、仮想マシン管理タスク131に割り当てられているタスク以外のネイティブ処理を行うその他のタスク142のタスク切り替えに影響を与えない。従って、OS143の機能の範囲内で仮想マシン切り替え処理を実現することができ、システムを安定に動作させることができる。
以上、本発明の実施の形態について説明した。
上記説明から明らかなように、本発明の車載端末101によれば、仮想マシン1a1または仮想マシン1b1が確保する計算機資源を、対応する仮想マシンに割り当てられている制限値内に確実に抑えることができる。また、本発明の車載端末101によれば、複数の仮想マシンを適切に実行することができる。
なお、本発明は上記の実施形態に限定されるものではなく、その要旨の範囲内で数々の変形が可能である。
例えば、本実施形態では、仮想マシンが2つの場合を例に説明したが、本発明はこれに限られず、1つの仮想マシンを実行する車載端末101においても本発明を適用することができる。この場合、図1に示した車載端末101において、複数の仮想マシンの存在を前提に処理を行う機能(共有メモリ退避領域1a7、共有メモリ退避領域1b7、資源占有状態リスト132、仮想マシン切り替え管理部137、安全性検査済み中間コードリスト140、および共有メモリ141)を除いたものが、他の実施形態における車載端末101の構成となる。
なお、本発明は、自動車等に搭載される車載端末等、組込み機器の中でも比較的計算機資源が豊富であり、アプリケーションの並列実行が求められる組込み機器に好適である。また、車載端末以外にも、テレビやハードディスクレコーダ等のAV機器、携帯電話やPDA等の携帯端末への中間コード技術の適用の際に、本発明が特に有効である。
本発明の一実施形態に係る車載通信システム10の構成を示す。 使用資源群1a2および使用資源群1b2の詳細な構成の一例を示す。 資源占有状態リスト132の詳細な構成の一例を示す。 安全性検査済み中間コードリスト140の詳細な構成の一例を示す。 資源制限データ154の詳細な構成の一例を示す。 資源違反履歴155の詳細な構成の一例を示す。 違反時処理設定156の詳細な構成の一例を示す。 車載端末101の動作の一例を示すフローチャートである。 資源制限データ読み込み処理の一例を示すフローチャートである。 中間コードプログラム読み込み処理の一例を示すフローチャートである。 中間コードプログラム実行処理の一例を示すフローチャートである。 タスク作成/削除処理の一例を示すフローチャートである。 ファイル作成/削除/書込処理の一例を示すフローチャートである。 セマフォ作成/削除処理の一例を示すフローチャートである。 制限違反処理の一例を示すフローチャートである。 仮想マシン終了処理の一例を示すフローチャートである。 仮想マシン切り替え管理部137の動作の一例を示すフローチャートである。 仮想マシン再選択処理の一例を示すフローチャートである。
符号の説明
10・・・車載通信システム、101・・・車載端末、102・・・一次記憶装置、103・・・二次記憶装置、104・・・中央演算装置、105・・・表示装置、106・・・音響出力装置、107・・・車内通信装置、108・・・リモコン通信装置、109・・・車外通信装置、111・・・空調制御装置、112・・・走行状態監視装置、113・・・ブレーキ状態監視装置、114・・・リモコン、115・・・携帯通信端末、116・・・中間コードプログラム管理サーバ、121・・・車内ネットワーク、122・・・車外ネットワーク、1a1・・・仮想マシン、1a2・・・使用資源群、1a3・・・資源管理部、1a4・・・中間コードプログラムロード部、1a5・・・実行中間コードプログラム群、1a6・・・中間コード実行部、1a7・・・共有メモリ退避領域、1b1・・・仮想マシン、1b2・・・使用資源群、1b3・・・資源管理部、1b4・・・中間コードプログラムロード部、1b5・・・実行中間コードプログラム群、1b6・・・中間コード実行部、1b7・・・共有メモリ退避領域、131・・・仮想マシン管理タスク、132・・・資源占有状態リスト、1320、1541、1561・・・資源種別、1321、1540、1551、1560・・・仮想マシンID、133・・・画面管理部、134・・・音響出力管理部、135・・・イベント管理部、136・・・中間コードプログラム管理部、137・・・仮想マシン切り替え管理部、140・・・安全性検査済み中間コードリスト、141・・・共有メモリ、142・・・その他のタスク、143・・・OS、151・・・基本プログラム群、152・・・中間コードプログラム群、153・・・データファイル群、154・・・資源制限データ、1542・・・制限値、155・・・資源違反履歴、1550・・・違反日時、1552・・・中間コードプログラム名、1553・・・違反した制限値、1554・・・違反量、156・・・違反時処理設定、1562・・・違反回数、1563・・・違反時処理、201・・・タスク情報、202・・・ファイル情報、203・・・セマフォ情報、204・・・動的メモリ領域情報

Claims (4)

  1. 中間コードにより表現されたプログラムである中間コードプログラムを、OS(Operating System)上で実行する仮想マシンと、
    前記仮想マシンが利用可能な計算機資源の制限値を格納する資源制限値格納手段と、
    前記仮想マシンから資源確保の要求を受け付けた場合、前記資源制限値格納手段に格納された制限値を参照して、
    当該要求に応じた計算機資源を確保することによって、前記仮想マシンにとって利用可能となった計算機資源が前記制限値未満であるときには、当該要求に応じた計算機資源の確保を前記OSに要求し、
    当該要求に応じた計算機資源を確保することによって、前記仮想マシンにとって利用可能となった計算機資源が前記制限値以上であるときには、当該要求に応じた計算機資源の確保を前記OSに要求しない資源管理手段と
    を備えることを特徴とする情報端末。
  2. 中間コードにより表現されたプログラムである中間コードプログラムを、OS(Operating System)上で実行する複数の仮想マシンと、
    前記複数の仮想マシンのそれぞれが連続して選択可能な最大回数である連続選択可能回数を、前記複数の仮想マシンのそれぞれに対応付けて格納する資源制限値格納手段と、
    前記資源制限値格納手段に格納されている前記連続選択可能回数に基づいて、前記複数の仮想マシンのそれぞれを切り替えて実行させる仮想マシン切り替え手段と
    を備え、
    前記仮想マシン切り替え手段は、
    予め定められた時間間隔で、現在選択している仮想マシンが待機中か否かを判定し、
    現在選択している仮想マシンが待機中である場合に、現在選択している仮想マシンとは異なる仮想マシンを選択し、選択した仮想マシンを実行するよう前記OSに指示すると共に、当該選択した仮想マシンの連続選択回数を1とし、
    現在選択している仮想マシンが実行中である場合に、前記資源制限値格納手段に格納された連続選択可能回数を参照して、
    現在選択している仮想マシンの連続選択回数が、現在選択している仮想マシンに対応する連続選択可能回数と等しい場合には、現在選択している仮想マシンとは異なる仮想マシンを選択し、選択した仮想マシンを実行するよう前記OSに指示すると共に、当該選択した仮想マシンの連続選択回数を1とし、
    現在選択している仮想マシンの連続選択回数が、現在選択している仮想マシンに対応する連続選択可能回数未満の場合には、現在選択している仮想マシンを再び選択し、再選択した仮想マシンを実行するよう前記OSに指示すると共に、当該再選択した仮想マシンの連続選択回数を1増加させる仮想マシン切り替え手段と
    を備えることを特徴とする情報端末。
  3. 情報端末における計算機資源管理方法であって、
    前記情報端末は、
    中間コードにより表現されたプログラムである中間コードプログラムを、OS(Operating System)上で実行する仮想マシンから資源確保の要求を受け付けた場合、前記仮想マシンが利用可能な計算機資源の制限値を格納する資源制限値格納手段を参照して、
    当該要求に応じた計算機資源を確保することによって、前記仮想マシンにとって利用可能となった計算機資源が前記制限値未満であるときには、当該要求に応じた計算機資源の確保を前記OSに要求し、
    当該要求に応じた計算機資源を確保することによって、前記仮想マシンにとって利用可能となった計算機資源が前記制限値以上であるときには、当該要求に応じた計算機資源の確保を前記OSに要求しないこと
    を特徴とする情報端末における計算機資源管理方法。
  4. 情報端末における仮想マシンの実行切り替え方法であって、
    前記情報端末は、
    中間コードにより表現されたプログラムである中間コードプログラムを、OS(Operating System)上で実行する複数の仮想マシンの中で、現在選択している仮想マシンが待機中か否かを、予め定められた時間間隔で判定し、
    現在選択している仮想マシンが待機中である場合に、現在選択している仮想マシンとは異なる仮想マシンを選択し、選択した仮想マシンを実行するよう前記OSに指示すると共に、当該選択した仮想マシンの連続選択回数を1とし、
    現在選択している仮想マシンが実行中である場合に、前記複数の仮想マシンのそれぞれが連続して選択可能な最大回数である連続選択可能回数を、前記複数の仮想マシンのそれぞれに対応付けて格納する資源制限値格納手段を参照して、
    現在選択している仮想マシンの連続選択回数が、現在選択している仮想マシンに対応する連続選択可能回数と等しい場合には、現在選択している仮想マシンとは異なる仮想マシンを選択し、選択した仮想マシンを実行するよう前記OSに指示すると共に、当該選択した仮想マシンの連続選択回数を1とし、
    現在選択している仮想マシンの連続選択回数が、現在選択している仮想マシンに対応する連続選択可能回数未満の場合には、現在選択している仮想マシンを再び選択すると共に、当該選択した仮想マシンの連続選択回数を1増加させること
    を特徴とする車載情報端末における仮想マシンの実行切り替え方法。
JP2005188474A 2005-06-28 2005-06-28 情報端末および計算機資源管理方法 Expired - Fee Related JP4955943B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2005188474A JP4955943B2 (ja) 2005-06-28 2005-06-28 情報端末および計算機資源管理方法
DE112006000016T DE112006000016T5 (de) 2005-06-28 2006-06-28 Informationsterminal, Computerressourcen-Verwaltungsverfahren sowie Schaltverfahren für die Ausführungsprozedur einer virtuellen Maschine
CNB200680000107XA CN100465902C (zh) 2005-06-28 2006-06-28 信息终端、计算机资源管理方法和虚拟计算机的运行切换方法
PCT/JP2006/312868 WO2007001014A1 (ja) 2005-06-28 2006-06-28 情報端末、計算機資源管理方法、および仮想マシンの実行切り替え方法
US10/593,572 US8365180B2 (en) 2005-06-28 2006-06-28 Information terminal, computer resource managing method, and virtual machine execution switching method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005188474A JP4955943B2 (ja) 2005-06-28 2005-06-28 情報端末および計算機資源管理方法

Publications (2)

Publication Number Publication Date
JP2007011491A true JP2007011491A (ja) 2007-01-18
JP4955943B2 JP4955943B2 (ja) 2012-06-20

Family

ID=37595263

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005188474A Expired - Fee Related JP4955943B2 (ja) 2005-06-28 2005-06-28 情報端末および計算機資源管理方法

Country Status (5)

Country Link
US (1) US8365180B2 (ja)
JP (1) JP4955943B2 (ja)
CN (1) CN100465902C (ja)
DE (1) DE112006000016T5 (ja)
WO (1) WO2007001014A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009181578A (ja) * 2008-01-31 2009-08-13 Internatl Business Mach Corp <Ibm> 複数の仮想マシンに対して動的にリソースを割当てる方法及び装置
JP2012033001A (ja) * 2010-07-30 2012-02-16 Toshiba Corp 情報処理装置および情報処理方法
JP2016038806A (ja) * 2014-08-08 2016-03-22 キヤノン株式会社 画像形成装置およびリソース管理方法
JP2019185749A (ja) * 2018-03-30 2019-10-24 ザ・ボーイング・カンパニーTheBoeing Company 運用環境用の仮想化されたアビオニクスシステム

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140373144A9 (en) 2006-05-22 2014-12-18 Alen Capalik System and method for analyzing unauthorized intrusion into a computer network
US8060883B1 (en) * 2007-02-16 2011-11-15 Vmware, Inc. System for managing and providing expandable resource reservations in a tree hierarchy
US8045828B2 (en) * 2007-07-09 2011-10-25 Kabushiki Kaisha Toshiba Apparatus for processing images, and method and computer program product for detecting image updates
JP4982347B2 (ja) * 2007-12-11 2012-07-25 株式会社東芝 画像情報の更新を検出するプログラム、方法および画像処理装置
JP5010492B2 (ja) * 2008-01-31 2012-08-29 株式会社東芝 通信装置、方法及びプログラム
JP5125659B2 (ja) * 2008-03-24 2013-01-23 富士通株式会社 情報処理装置、情報処理方法及びコンピュータプログラム
US8522237B2 (en) * 2008-04-09 2013-08-27 The Boeing Company Virtualizing embedded systems
US9106697B2 (en) * 2010-06-24 2015-08-11 NeurallQ, Inc. System and method for identifying unauthorized activities on a computer system using a data structure model
US8869167B2 (en) * 2011-05-19 2014-10-21 International Business Machines Corporation Application hibernation
US8533715B2 (en) * 2011-08-09 2013-09-10 International Business Machines Corporation Virtual machine management
GB2506195A (en) * 2012-09-25 2014-03-26 Ibm Managing a virtual computer resource
US20150309503A1 (en) * 2013-01-09 2015-10-29 Mitsubishi Electric Corporation Plant engineering system
US9027098B2 (en) * 2013-03-14 2015-05-05 Genband Us Llc Systems, methods, and computer program products for recording service status of applications
JP6070355B2 (ja) * 2013-03-28 2017-02-01 富士通株式会社 仮想マシン制御プログラム,仮想マシン制御方法,仮想マシン制御装置及びクラウドシステム
US9280385B2 (en) 2013-12-19 2016-03-08 International Business Machines Corporation Optimally provisioning and merging shared resources to maximize resource availability
CN103713957B (zh) * 2014-01-08 2018-12-14 厦门雅迅网络股份有限公司 一种车载终端利用串口实现cpu负担动态平衡的方法
WO2015113752A1 (de) * 2014-01-31 2015-08-06 AgBRAIN - AGRITECHNICAL BASIC RESEARCH FOR ADVANCED INNOVATION GMBH Bedienterminal einer landmaschine mit hypervisor-software
US9582373B2 (en) * 2014-03-31 2017-02-28 Vmware, Inc. Methods and systems to hot-swap a virtual machine
US9690608B2 (en) * 2014-06-12 2017-06-27 Vmware, Inc. Method and system for managing hosts that run virtual machines within a cluster
WO2016077546A1 (en) * 2014-11-12 2016-05-19 Sikorsky Aircraft Corporation Centralized processing for aircraft operations
WO2016112219A1 (en) 2015-01-07 2016-07-14 CounterTack, Inc. System and method for monitoring a computer system using machine interpretable code
DE102015214390A1 (de) * 2015-07-29 2017-02-02 Robert Bosch Gmbh Verfahren und Vorrichtung zum Betreiben wechselnder Gastsysteme unter einem Hypervisor
US9806956B1 (en) * 2016-09-15 2017-10-31 Sas Institute Inc. Managing computing resources by predicting resource usage
US10534646B2 (en) * 2017-05-09 2020-01-14 Sap Se Memory management for applications operating on java virtual machines
CN107729141B (zh) * 2017-09-27 2022-06-10 华为技术有限公司 一种业务分配方法、装置和服务器
EP3700697B1 (de) 2017-10-26 2022-08-24 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Verfahren zur herstellung von gussteilen mit mikrokanälen
US10698668B1 (en) * 2018-05-29 2020-06-30 Amazon Technologies, Inc. Custom code transformations during compilation process
US10884779B2 (en) * 2018-12-07 2021-01-05 Nutanix, Inc. Systems and methods for selecting virtual machines to be migrated
JP7259656B2 (ja) * 2019-09-04 2023-04-18 トヨタ自動車株式会社 車両の制御装置、車両の制御方法及び制御プログラム
JP2021124902A (ja) * 2020-02-04 2021-08-30 トヨタ自動車株式会社 車両制御装置、車両制御方法、及び車両制御プログラム
CN112699458B (zh) * 2020-12-28 2023-03-03 东风汽车集团有限公司 一种车载域控制器算力计算方法及装置

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0566954A (ja) * 1991-09-05 1993-03-19 Kobe Nippon Denki Software Kk タイムスライス最適化方式
JPH07200315A (ja) * 1994-01-07 1995-08-04 Fuji Facom Corp 計算機システムにおけるプロセスのスケジューリング装置
JPH08328880A (ja) * 1995-05-31 1996-12-13 Mitsubishi Electric Corp 複数のアプリケーションプログラムを同時に実行できるオペレーティングシステムにおける計算機運転管理システム
JP2000267869A (ja) * 1999-03-19 2000-09-29 Ntt Communicationware Corp リソース異常制御方法、リソース異常制御装置、コンピュータシステムおよび記録媒体
JP2003330732A (ja) * 2002-05-17 2003-11-21 Canon Inc 画像形成装置、制御方法、制御プログラム
JP2004151809A (ja) * 2002-10-29 2004-05-27 Nec Corp 情報処理装置およびプログラム
JP2006107197A (ja) * 2004-10-06 2006-04-20 Nec Corp メモリ制御方法およびプログラムならびに端末装置
JP2006209735A (ja) * 2004-12-27 2006-08-10 Seiko Epson Corp リソース管理システム、プリンタ、プリンタ用ネットワークカードおよびリソース管理プログラム、並びにリソース管理方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07311688A (ja) 1994-05-19 1995-11-28 Nec Corp システム資源管理方法及び装置
JP2003532948A (ja) * 1999-11-30 2003-11-05 サン・マイクロシステムズ・インコーポレイテッド リソースドメイン間で通信するための装置および方法
US6510448B1 (en) * 2000-01-31 2003-01-21 Networks Associates Technology, Inc. System, method and computer program product for increasing the performance of a proxy server
JP3927027B2 (ja) * 2001-12-21 2007-06-06 株式会社エヌ・ティ・ティ・ドコモ リソース制御システム、リソース制御方法、及びこれらに用いて好適な基地局
US20050125537A1 (en) * 2003-11-26 2005-06-09 Martins Fernando C.M. Method, apparatus and system for resource sharing in grid computing networks
US20050177635A1 (en) * 2003-12-18 2005-08-11 Roland Schmidt System and method for allocating server resources
US7228331B2 (en) * 2004-05-04 2007-06-05 Nokia, Inc. User oriented penalty count random rejection of electronic messages

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0566954A (ja) * 1991-09-05 1993-03-19 Kobe Nippon Denki Software Kk タイムスライス最適化方式
JPH07200315A (ja) * 1994-01-07 1995-08-04 Fuji Facom Corp 計算機システムにおけるプロセスのスケジューリング装置
JPH08328880A (ja) * 1995-05-31 1996-12-13 Mitsubishi Electric Corp 複数のアプリケーションプログラムを同時に実行できるオペレーティングシステムにおける計算機運転管理システム
JP2000267869A (ja) * 1999-03-19 2000-09-29 Ntt Communicationware Corp リソース異常制御方法、リソース異常制御装置、コンピュータシステムおよび記録媒体
JP2003330732A (ja) * 2002-05-17 2003-11-21 Canon Inc 画像形成装置、制御方法、制御プログラム
JP2004151809A (ja) * 2002-10-29 2004-05-27 Nec Corp 情報処理装置およびプログラム
JP2006107197A (ja) * 2004-10-06 2006-04-20 Nec Corp メモリ制御方法およびプログラムならびに端末装置
JP2006209735A (ja) * 2004-12-27 2006-08-10 Seiko Epson Corp リソース管理システム、プリンタ、プリンタ用ネットワークカードおよびリソース管理プログラム、並びにリソース管理方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009181578A (ja) * 2008-01-31 2009-08-13 Internatl Business Mach Corp <Ibm> 複数の仮想マシンに対して動的にリソースを割当てる方法及び装置
JP2012033001A (ja) * 2010-07-30 2012-02-16 Toshiba Corp 情報処理装置および情報処理方法
JP2016038806A (ja) * 2014-08-08 2016-03-22 キヤノン株式会社 画像形成装置およびリソース管理方法
JP2019185749A (ja) * 2018-03-30 2019-10-24 ザ・ボーイング・カンパニーTheBoeing Company 運用環境用の仮想化されたアビオニクスシステム
JP7427366B2 (ja) 2018-03-30 2024-02-05 ザ・ボーイング・カンパニー 運用環境用の仮想化されたアビオニクスシステム

Also Published As

Publication number Publication date
US8365180B2 (en) 2013-01-29
CN1969261A (zh) 2007-05-23
JP4955943B2 (ja) 2012-06-20
CN100465902C (zh) 2009-03-04
US20080301673A1 (en) 2008-12-04
WO2007001014A1 (ja) 2007-01-04
DE112006000016T5 (de) 2008-04-03

Similar Documents

Publication Publication Date Title
JP4955943B2 (ja) 情報端末および計算機資源管理方法
CN109117260B (zh) 一种任务调度方法、装置、设备和介质
JP4984503B2 (ja) 携帯端末装置およびソフトウェアインストール方法
JP2007026094A (ja) 実行装置およびアプリケーションプログラム
US20110029930A1 (en) Distributed processing device and distributed processing method
JP2014194634A (ja) 情報処理装置、情報処理方法、並びに記録媒体
JP5970461B2 (ja) 仮想計算機制御装置、仮想計算機制御方法、仮想計算機制御プログラム、及び集積回路
JP2018063505A (ja) メモリ管理制御装置、メモリ管理制御方法、及びメモリ管理制御プログラム
JP5405663B2 (ja) メモリ管理装置、メモリ管理方法、メモリ管理プログラム、メモリ管理プログラムを記録したコンピュータ読み取り可能な記録媒体及び集積回路
JP6975854B2 (ja) 制御コントローラおよび車両制御システム
JP4719137B2 (ja) 複数プログラムの制御管理方法および制御管理装置
JP4112511B2 (ja) タスク管理プログラムおよびタスク管理装置
JP2006031203A (ja) 車載情報端末
JP2008033877A (ja) 情報処理装置及びos起動方法及びプログラム
JP4594889B2 (ja) 複数の処理装置を備えたシステム上で実行されるプログラムのトレース方法、および、複数の処理装置を備えたシステム
JP2006079463A (ja) 時系列データ記録用バッファ管理方法、装置、システムおよびプログラム
JP3893136B2 (ja) 組込みコンピュータ制御プログラム、そのプログラムを記録した記録媒体、及び組込みシステム
JP7447782B2 (ja) 車載コンピュータ、コンピュータ実行方法及びコンピュータプログラム
JP2008225641A (ja) コンピュータシステム、割り込み制御方法及びプログラム
JP2008191074A (ja) 出力調停プログラム及び装置
JP6166758B2 (ja) 情報処理システム、情報処理方法、および情報処理プログラム
JP4666231B2 (ja) アプリケーション競合管理システム及びその方法並びにそれを用いた情報処理端末
WO2019044226A1 (ja) アクセス制御装置
US20240036941A1 (en) Vehicle-mounted computer, computer execution method, and computer program
JP5577179B2 (ja) 情報処理端末

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080627

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20100212

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111004

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111202

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120110

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120222

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120313

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120316

R150 Certificate of patent or registration of utility model

Ref document number: 4955943

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150323

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees