JP6786010B2 - 情報処理装置、チューニング方法およびチューニングプログラム - Google Patents

情報処理装置、チューニング方法およびチューニングプログラム Download PDF

Info

Publication number
JP6786010B2
JP6786010B2 JP2020517642A JP2020517642A JP6786010B2 JP 6786010 B2 JP6786010 B2 JP 6786010B2 JP 2020517642 A JP2020517642 A JP 2020517642A JP 2020517642 A JP2020517642 A JP 2020517642A JP 6786010 B2 JP6786010 B2 JP 6786010B2
Authority
JP
Japan
Prior art keywords
general
information
hardware
application
real
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.)
Active
Application number
JP2020517642A
Other languages
English (en)
Other versions
JPWO2019215795A1 (ja
Inventor
由梨香 寺田
由梨香 寺田
章雄 出原
章雄 出原
水口 武尚
武尚 水口
亮平 久場
亮平 久場
真一 落合
真一 落合
裕喜 小中
裕喜 小中
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of JPWO2019215795A1 publication Critical patent/JPWO2019215795A1/ja
Application granted granted Critical
Publication of JP6786010B2 publication Critical patent/JP6786010B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3612Software analysis for verifying properties of programs by runtime analysis
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3024Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • 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/45533Hypervisors; Virtual machine monitors
    • 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/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • 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/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)
  • Bus Control (AREA)

Description

本発明は、情報処理装置、チューニング方法およびチューニングプログラムに関するものである。
近年では、CPUの高性能化に伴う仮想化技術の発展により、1台の情報処理システムに複数のOSを搭載することが可能である。そのような複数のOSが搭載された情報処理システムで、各OSの動作を管理するソフトウェアをハイパーバイザと呼ぶ。動作するOSをゲストOSと呼ぶ。ハイパーバイザを用いて、単一ハードウェアプラットフォーム上で複数のOSを動作させる技術は、組み込みシステムでも用いられている。このようなシステムでは、リアルタイム性の高い処理を行うリアルタイムOSと、情報処理を行うWindows(登録商標)等の汎用OSとを同時実行する環境が用いられる。しかし、これらのOSは同じハードウェアを使用している。そのため、汎用OSの処理内容によっては、バスが長時間専有されてしまう場合がある。その結果、リアルタイムOSのリアルタイム応答性能に対するオーバヘッドが発生する可能性がある。「CPU」は、Central Processing Unitの略語である。「OS」は、Operating Systemの略語である。
特許文献1には、優先度の低い仮想サーバのDMA流量があらかじめ設定したしきい値より多い場合に、割り当てるCPU時間を減らすことで、優先度の高い仮想サーバがI/Oへのアクセスを行うことを可能とする技術が記載されている。「DMA」は、Direct Memory Accessの略語である。「I/O」は、Input/Outputの略語である。
特開2008−176482号公報
特許文献1に記載の技術においては、優先度の低い仮想サーバへ割り当てるCPU時間を減らすことで、優先度の低い仮想サーバの、他の仮想サーバの処理に影響しない処理も停止してしまう。
本発明は、リアルタイムOS以外のOSの、リアルタイムOSの処理に影響しない処理を止めることなく、リアルタイムOSが優先的にハードウェアへのアクセスを行うことを可能とすることを目的とする。
本発明の一態様に係る情報処理装置は、
ハードウェアと、
リアルタイムオペレーティングシステムを介して前記ハードウェアを使用して動作するアプリケーションプログラムであるリアルタイムアプリケーションと、それぞれ非リアルタイムオペレーティングシステムを介して前記ハードウェアを使用して動作するアプリケーションプログラムである複数の汎用アプリケーションとが実行される試運転フェーズにおいて、前記複数の汎用アプリケーションのそれぞれによる前記ハードウェアの使用についての情報である汎用OS情報を取得する取得部と、
汎用アプリケーションごとに、前記取得部により取得された汎用OS情報に基づいて、前記ハードウェアの使用を制限するための条件が満たされているかどうかを判定し、前記条件が満たされていると判定した場合、前記リアルタイムアプリケーションと前記複数の汎用アプリケーションとが実行される実運用フェーズにおいて、該当する汎用アプリケーションによる前記ハードウェアの使用を制限する管理部と
を備える。
本発明では、リアルタイムOS以外のOS上で動作するアプリケーションのうち、試運転フェーズで得られた情報に基づいて一定の条件を満たしていると判定されたアプリケーションに対し、実運用フェーズでハードウェアの使用が制限される。条件を満たしていないと判定されたアプリケーションに対して実運用フェーズでハードウェアの使用を制限しないことで、リアルタイムOS以外のOSの、リアルタイムOSの処理に影響しない処理を止めることなく、リアルタイムOSに優先的にハードウェアへのアクセスを行わせることができる。
実施の形態1に係る情報処理装置のソフトウェア構成を示すブロック図。 実施の形態1に係る情報処理装置のハードウェア構成を示すブロック図。 実施の形態1に係る情報処理装置の機能構成を示すブロック図。 実施の形態1に係る情報処理装置のHVメモリ領域内のテーブル群を示すブロック図。 実施の形態1に係る情報処理装置のRTOS情報テーブル例を示す図。 実施の形態1に係る情報処理装置の汎用OS情報テーブル例を示す図。 実施の形態1に係る情報処理装置のしきい値テーブル例を示す図。 実施の形態1に係る情報処理装置のチューニングテーブル例を示す図。 実施の形態1に係る情報処理装置の動作を示すフローチャート。 実施の形態1に係る情報処理装置の動作を示すフローチャート。 実施の形態1に係る情報処理装置の動作を示すフローチャート。 実施の形態1に係る情報処理装置の動作を示すフローチャート。 実施の形態1に係る情報処理装置の動作を示すフローチャート。 実施の形態2に係る情報処理装置の動作を示すフローチャート。 実施の形態2に係る情報処理装置の動作を示すフローチャート。
以下、本発明の実施の形態について、図を用いて説明する。各図中、同一または相当する部分には、同一符号を付している。実施の形態の説明において、同一または相当する部分については、説明を適宜省略または簡略化する。なお、本発明は、以下に説明する実施の形態に限定されるものではなく、必要に応じて種々の変更が可能である。例えば、以下に説明する実施の形態のうち、2つ以上の実施の形態が組み合わせられて実施されても構わない。あるいは、以下に説明する実施の形態のうち、1つの実施の形態または2つ以上の実施の形態の組み合わせが部分的に実施されても構わない。
実施の形態1.
本実施の形態について、図1から図13を用いて説明する。
***構成の説明***
図1から図3を参照して、本実施の形態に係る情報処理装置100の構成を説明する。
情報処理装置100は、複数のOSを動作させるコンピュータである。
図1に示すように、情報処理装置100では、リアルタイムアプリケーション101A、複数の汎用アプリケーション101B、リアルタイムOS102A、汎用OS102Bおよびハイパーバイザ103といったソフトウェアが動作する。リアルタイムアプリケーション101Aは、リアルタイムOS102Aを介してハードウェアを使用して動作するアプリケーションプログラムである。複数の汎用アプリケーション101Bは、それぞれ汎用OS102Bを介してハードウェアを使用して動作するアプリケーションプログラムである。汎用OS102Bは、非リアルタイムOSである。ハイパーバイザ103は、本実施の形態に係るチューニングプログラムに相当する。
図2に示すように、情報処理装置100は、プロセッサ104、メモリ108、I/Oデバイス109、グラフィックスデバイス111およびDMAコントローラ120といった複数種類のハードウェアを備える。プロセッサ104は、バス110を介して、メモリ108、I/Oデバイス109、グラフィックスデバイス111およびDMAコントローラ120といった他のハードウェアと接続され、これら他のハードウェアを制御する。これらのバス110を介して接続されているハードウェアは、プロセッサ104による管理下で相互にデータの送受信等を行うことができる。
図3に示すように、情報処理装置100は、機能要素として、第1取得部200と、第1制御部210と、管理部220と、第2取得部230と、第2制御部240とを備える。第1取得部200は、割り込み検出部201と、周期取得部202とを備える。第1制御部210は、利用率取得部211と、周波数取得部212と、周波数変更部213とを備える。管理部220は、データ読み出し部221と、データ比較部222と、データ更新部223と、テーブル作成部224と、パラメータ値算出部225とを備える。第2取得部230は、要求検出部231と、終了検出部232とを備える。第2制御部240は、命令検出部241と、サイズ取得部242と、サイズ変更部243と、時刻取得部244と、頻度取得部245とを備える。
第1取得部200、第1制御部210、管理部220、第2取得部230および第2制御部240の機能は、ソフトウェアにより実現される。具体的には、第1取得部200、第1制御部210、管理部220、第2取得部230および第2制御部240の機能は、ハイパーバイザ103により実現される。ハイパーバイザ103は、第1取得部200、第1制御部210、管理部220、第2取得部230および第2制御部240により行われる手順をそれぞれ第1取得手順、第1制御手順、管理手順、第2取得手順および第2制御手順としてコンピュータに実行させるプログラムである。ハイパーバイザ103は、コンピュータ読取可能な媒体に記録されて提供されてもよいし、記録媒体に格納されて提供されてもよいし、プログラムプロダクトとして提供されてもよい。
プロセッサ104は、リアルタイムアプリケーション101A、複数の汎用アプリケーション101B、リアルタイムOS102A、汎用OS102Bおよびハイパーバイザ103といったソフトウェアを実行する装置である。プロセッサ104は、具体的には、マルチコアCPUである。
プロセッサ104は、第1コア104Aと、第2コア104Bとを備える。
第1コア104Aは、ハイパーバイザ103、リアルタイムOS102Aおよびリアルタイムアプリケーション101Aを動作させる。第2コア104Bは、汎用OS102Bおよび汎用アプリケーション101Bを動作させる。
プロセッサ104は、ハードウェアとして、周波数変更機構105と、割り込みコントローラ106と、クロックジェネレータ107とをさらに備える。
周波数変更機構105は、クロックジェネレータ107を制御することによって、汎用アプリケーション101Bの使用する第2コア104Bの動作周波数を変更する機構である。割り込みコントローラ106は、I/Oデバイス109からの割り込みを検出して、リアルタイムOS102Aおよび汎用OS102BといったゲストOSへの割り込み信号を発生させる装置である。クロックジェネレータ107は、動作周波数に対応するクロック信号を生成する装置である。
メモリ108は、リアルタイムアプリケーション101A、複数の汎用アプリケーション101B、リアルタイムOS102A、汎用OS102Bおよびハイパーバイザ103といったソフトウェアを記憶する装置である。メモリ108は、例えば、RAM、フラッシュメモリまたはこれらの組み合わせである。「RAM」は、Random Access Memoryの略語である。
メモリ108は、ハイパーバイザ103がデータ管理に要するHVメモリ領域108Cと、その他のメモリ領域108Aとを備える。
I/Oデバイス109は、入力機器またはディスプレイである。入力機器は、リアルタイムアプリケーション101A、複数の汎用アプリケーション101B、リアルタイムOS102A、汎用OS102Bおよびハイパーバイザ103といったソフトウェアへのデータの入力のためにユーザにより操作される機器である。入力機器は、例えば、マウス、キーボード、タッチパネル、または、これらのうちいくつか、もしくは、すべての組み合わせである。ディスプレイは、リアルタイムアプリケーション101A、複数の汎用アプリケーション101B、リアルタイムOS102A、汎用OS102Bおよびハイパーバイザ103といったソフトウェアから出力されるデータを画面に表示する機器である。ディスプレイは、例えば、LCDである。「LCD」は、Liquid Crystal Displayの略語である。
グラフィックスデバイス111は、ディスプレイに画像を出力する装置である。グラフィックスデバイス111は、例えば、グラフィックスカードである。
DMAコントローラ120は、DMA処理を実行する装置である。
リアルタイムアプリケーション101A、複数の汎用アプリケーション101B、リアルタイムOS102A、汎用OS102Bおよびハイパーバイザ103といったソフトウェアは、メモリ108からプロセッサ104に読み込まれ、プロセッサ104によって実行される。
リアルタイムアプリケーション101A、複数の汎用アプリケーション101B、リアルタイムOS102A、汎用OS102Bおよびハイパーバイザ103といったソフトウェアは、補助記憶装置に記憶されていてもよい。補助記憶装置は、例えば、HDD、フラッシュメモリまたはこれらの組み合わせである。「HDD」は、Hard Disk Driveの略語である。ソフトウェアは、補助記憶装置に記憶されている場合、メモリ108にロードされ、プロセッサ104によって実行される。
情報処理装置100は、プロセッサ104を代替する複数のプロセッサを備えていてもよい。これら複数のプロセッサは、ソフトウェアの実行を分担する。それぞれのプロセッサは、具体的には、シングルコアCPUまたはマルチコアCPUである。
リアルタイムアプリケーション101A、複数の汎用アプリケーション101B、リアルタイムOS102A、汎用OS102Bおよびハイパーバイザ103といったソフトウェアにより利用、処理または出力されるデータ、情報、信号値および変数値は、メモリ108、補助記憶装置、または、プロセッサ104内のレジスタまたはキャッシュメモリに記憶される。
図4を参照して、ハイパーバイザ103の使用するHVメモリ領域108Cに格納されるテーブル群について説明する。
HVメモリ領域108Cには、汎用OS102Bの実行するアプリケーションの実行方法に対して、制限をかけるために必要な4つのテーブルが格納される。具体的には、RTOS情報テーブル300と、汎用OS情報テーブル301と、しきい値テーブル302と、チューニングテーブル303とが格納される。「RTOS」は、Real−Time Operating Systemの略語である。
RTOS情報テーブル300、汎用OS情報テーブル301およびしきい値テーブル302は、システムの開発者であるユーザが作成するテーブルである。チューニングテーブル303は、ハイパーバイザ103が作成するテーブルである。
RTOS情報テーブル300は、リアルタイムOS102Aの割り込み周期の情報を収集する対象のアプリケーション名を指定するテーブルである。データ更新部223により収集されたデータがRTOS情報テーブル300に保存される。
汎用OS情報テーブル301は、汎用OS102Bから取得したい情報を指定するテーブルである。対象のアプリケーション名を指定することで、データ更新部223により収集されたデータが汎用OS情報テーブル301に保存される。
しきい値テーブル302は、汎用OS102Bの処理を制限する際に、その処理が制限対象であるか否か、制限対象であった場合にどのように制限するかを判断するためのしきい値を記録するテーブルである。ある処理が制限対象であるか否かは、その処理が実施条件を満たすか否かによって判断される。しきい値テーブル302は、具体的には、汎用OS102Bの処理に制限をかける際の制限を実行する方法と、制限の実施条件とを指定するテーブルである。
チューニングテーブル303は、ハイパーバイザ103が、制限対象の処理に対して、どのようにチューニングを行うかを算出した結果を記録するテーブルである。チューニングテーブル303には、しきい値テーブル302に設定された制限の値が記録される。
図5に、RTOS情報テーブル300の一例を示す。この例では、リアルタイムOS102A上で使用されるリアルタイムアプリケーション101A「ABC.exe」が指定されている。そして、指定されたリアルタイムアプリケーション101Aについて収集された割り込みの周期の情報が保存されている。
図6に、汎用OS情報テーブル301の一例を示す。汎用OS情報テーブル301では、ユーザが任意の項目を指定することが可能である。ただし、収集する項目に対する負荷状態を判断するために、各処理の実行時間が必ず含まれている。この例では、汎用OS102B上で使用される汎用アプリケーション101B「XXXX.exe」が指定されている。指定された汎用アプリケーション101Bには、DMA処理が含まれている。そして、指定された汎用アプリケーション101Bについて収集されたDMA処理開始時刻、DMA処理終了時刻、DMA処理回数およびDMA転送サイズの情報が保存されている。DMA以外の負荷に関連して収集されたCPU利用率等の情報も保存されている。
図7に、しきい値テーブル302の一例を示す。しきい値テーブル302では、汎用OS102Bの処理に対して、実行方法に制限が必要であるかを判断するための実施条件と、その制限をかけるためのチューニング方法とが指定される。この例では、CPU利用率がしきい値「70%」を超えた場合に、どのようにCPU利用率を制限するかが指定されている。DMA転送時間がリアルタイムOS102Aの割り込み周期を超えた場合に、超過時間の比率がしきい値「20%」を超えるかどうかによって、どのようにDMA転送処理の実行を制限するかがさらに指定されている。制限項目および制限値はユーザが任意で決めることができる。
図8に、チューニングテーブル303の一例を示す。チューニングテーブル303では、ハイパーバイザ103の算出した、汎用OS102Bの処理に制限をかけるために使用するパラメータ値が記録される。この例では、汎用OS102B上で使用される汎用アプリケーション101B「XXXX.exe」について、制限をかけるためのチューニング方法と、算出されたパラメータ値「αHz」とが記録されている。
***動作の説明***
図9から図13を参照して、本実施の形態に係る情報処理装置100の動作を説明する。情報処理装置100の動作は、本実施の形態に係るチューニング方法に相当する。
チューニングの実施手順としては、大きく分けて4つのフェーズがある。具体的には、図9に示す、ユーザによる試運転の準備フェーズと、図10に示す、ハイパーバイザ103のシステム試運転フェーズと、図11および図12に示す、ハイパーバイザ103の分析およびチューニングフェーズと、図13に示す実運用フェーズとがある。
図9を参照して、ユーザによる試運転の準備フェーズを説明する。
ステップS11にて、ユーザにより作成されたRTOS情報テーブル300、汎用OS情報テーブル301およびしきい値テーブル302が入力される。
ステップS12にて、ステップS11で入力された3つのテーブルが、ハイパーバイザ103の使用するHVメモリ領域108Cに格納される。
図10を参照して、ハイパーバイザ103のシステム試運転フェーズを説明する。
ユーザが、情報処理装置100の電源を入れ、ハイパーバイザ103のシステム試運転フェーズを開始したとする。
ステップS21にて、管理部220のデータ読み出し部221は、RTOS情報テーブル300および汎用OS情報テーブル301をHVメモリ領域108Cから読み出す。
ステップS22にて、管理部220は、実運用フェーズで実行されるすべてのアプリケーションを実行し、環境を実運用状態と同じ環境にする。実行されるアプリケーションには、例えば、メモリ108にデータをコピーするアプリケーション、センサ情報を取得するアプリケーション、および、データを解析するアプリケーションが含まれる。これらのアプリケーションは、実際のシステム稼働時のI/Oの使用状況に関する情報を取得することを目的として実行される。目的が達成できるのであれば、全アプリケーションを実行する代わりに、一部のアプリケーションのみを実行してもよい。
ステップS23にて、第1取得部200、第1制御部210、第2取得部230および第2制御部240は、RTOS情報テーブル300と汎用OS情報テーブル301とに記録されている項目に対して、試運転時の各種データを収集する。具体的には、並列的に以下の4つの処理が行われる。
第1処理として、第1取得部200は、現在動作中のリアルタイムアプリケーション101Aのアプリケーション名を取得するとともに、リアルタイムOS102Aの割り込み周期の値を取得する。
より具体的には、第1取得部200の割り込み検出部201は、リアルタイムOS102Aに周期的な割り込みが発行されていることを検出する。第1取得部200の周期取得部202は、割り込み検出部201が周期的な割り込みがあることを検出した場合に、その周期の値を取得する。
第2処理として、第1制御部210は、現在動作中の汎用アプリケーション101Bのアプリケーション名を取得するとともに、汎用OS102Bを動作させている第2コア104Bの利用率であるCPU利用率の値を取得する。
より具体的には、第1制御部210の利用率取得部211は、稼働中の汎用OS102Bの使用する第2コア104BのCPU利用率の値を取得する。
第3処理として、第2取得部230は、現在動作中の汎用アプリケーション101Bのアプリケーション名を取得するとともに、その汎用アプリケーション101Bの実行時間の値を取得する。
より具体的には、第2取得部230の要求検出部231は、稼働中の汎用OS102Bに対して、汎用アプリケーション101Bの実行が開始したことを検出し、その汎用アプリケーション101Bの実行開始時刻をメモリ108に記録する。第2取得部230の終了検出部232は、その汎用アプリケーション101Bの実行が終了したことを検出し、その汎用アプリケーション101Bの実行終了時刻をメモリ108に記録する。終了検出部232は、実行開始時刻と実行終了時刻との差である実行時間を算出する。
第4処理として、第2制御部240は、現在動作中の汎用アプリケーション101Bのアプリケーション名を取得するとともに、汎用OS102Bの実施するDMA転送の、1回の転送データサイズ、転送処理開始時刻、転送処理終了時刻および転送要求数の値を取得する。
より具体的には、第2制御部240の命令検出部241は、稼働中の汎用OS102Bが、DMA命令を要求していることを検出し、サイズ取得部242を起動する。第2制御部240のサイズ取得部242は、要求されているDMAのデータサイズの値と現在の1回の転送サイズの値とを取得する。第2制御部240の時刻取得部244は、DMAの処理開始時刻および処理終了時刻の値を取得する。第2制御部240の頻度取得部245は、単位時間当たりにDMA転送が要求された頻度である処理回数の値を取得する。
第1処理から第4処理における各値の取得には、プロセッサ104のレジスタ情報、DMAコントローラ120のレジスタ情報、対応している場合はハイパーバイザコールまたはOSのシステムコールが用いられる。
ステップS24にて、管理部220のデータ更新部223は、ステップS23で収集されたデータを、RTOS情報テーブル300および汎用OS情報テーブル301に保存する。
具体的には、データ更新部223は、第1取得部200から、アプリケーション名と割り込み周期の値とを受け取る。データ更新部223は、RTOS情報テーブル300に、受け取ったアプリケーション名と割り込み周期の値とを保存する。データ更新部223は、第1制御部210から、アプリケーション名とCPU利用率の値とを受け取る。データ更新部223は、第2取得部230から、アプリケーション名と実行時間の値とを受け取る。データ更新部223は、第2制御部240から、アプリケーション名とDMA転送の、1回の転送データサイズ、転送処理開始時刻、転送処理終了時刻および転送要求数の値とを受け取る。データ更新部223は、汎用OS情報テーブル301に、受け取ったアプリケーション名とCPU利用率の値と実行時間の値とDMA転送の、1回の転送データサイズ、転送処理開始時刻、転送処理終了時刻および転送要求数の値とを保存する。
より具体的には、データ更新部223は、周期取得部202により取得された周期の値を、対応するリアルタイムアプリケーション101Aの名前とともにRTOS情報テーブル300に書き込む。データ更新部223は、利用率取得部211により取得されたCPU利用率の値を、対応する汎用アプリケーション101Bの名前とともに汎用OS情報テーブル301に書き込む。データ更新部223は、終了検出部232により算出された実行時間の値を、対応する汎用アプリケーション101Bの名前とともに汎用OS情報テーブル301にさらに書き込む。データ更新部223は、サイズ取得部242により取得された転送サイズの値と、時刻取得部244により取得された処理開始時刻および処理終了時刻の値と、頻度取得部245により取得された処理回数の値とを、対応する汎用アプリケーション101Bの名前とともに汎用OS情報テーブル301にさらに書き込む。
ステップS25にて、RTOS情報テーブル300および汎用OS情報テーブル301のすべての項目について評価が終了していない場合、ステップS23以降の処理が繰り返される。終了している場合、ハイパーバイザ103のシステム試運転フェーズが終了する。
図11および図12を参照して、ハイパーバイザ103の分析およびチューニングフェーズを説明する。
ステップS31にて、管理部220のデータ読み出し部221は、しきい値テーブル302と、ハイパーバイザ103のシステム試運転フェーズで更新されたRTOS情報テーブル300および汎用OS情報テーブル301とを読み出す。
ステップS32にて、管理部220のデータ比較部222は、RTOS情報テーブル300と汎用OS情報テーブル301とを比較して、汎用OS102Bのすべての処理に対して、リアルタイムOS102Aの定周期割り込みが発生する時間に、汎用OS102Bの処理が重なっているか否かを判定する。重なっている処理は、チューニングが必要な処理、すなわち、チューニング対象であると判断される。例えば、リアルタイムOS102Aで割り込みが発行されるときに、ある汎用アプリケーション101Bがメモリコピーを行っている最中であれば、その汎用アプリケーション101Bはチューニング対象と判断される。チューニング対象が検出された場合、ステップS33の処理が行われる。チューニング対象がない場合は、ステップS39の処理が行われる。
ステップS33にて、データ比較部222は、チューニング対象に対して、どの項目がしきい値を超えているかを、しきい値テーブル302と汎用OS情報テーブル301とを比較して判断する。データ比較部222は、しきい値を超えている項目について、しきい値テーブル302に書かれているチューニング方法を識別する。
ステップS34にて、1回目のチューニングの場合は、ステップS35の処理が行われる。2回目以降のチューニングの場合は、ステップS36の処理が行われる。
ステップS35にて、管理部220のテーブル作成部224は、HVメモリ領域108Cにチューニングテーブル303を作成する。その後、ステップS36の処理が行われる。
ステップS36にて、管理部220のパラメータ値算出部225は、RTOS情報テーブル300および汎用OS情報テーブル301の情報に基づき、チューニングテーブル303に設定するパラメータ値を算出する。パラメータ値の算出は、汎用OS102Bの処理のパラメータ値をどのように変更した場合に、その処理がリアルタイムOS102Aの割り込み周期に重ならなくなるかをもとに行われる。
ステップS37にて、管理部220のデータ更新部223は、ステップS36で算出されたパラメータ値を、チューニングテーブル303に反映する。
ステップS38にて、データ比較部222は、すべてのチューニング対象に対して、しきい値テーブル302の実施条件を満たす項目の有無の確認を終えているか、残件があるかを判定する。まだ確認を終えていないチューニング対象が残っている場合には、ステップS33以降の処理が繰り返される。すべてのチューニング対象に対して確認を終えている場合には、ステップS39の処理が行われる。
ステップS39にて、チューニングテーブル303に項目があれば、ステップS40の処理が行われる。チューニングテーブル303に項目がなければ、ハイパーバイザ103の分析およびチューニングフェーズが終了する。
ステップS40にて、第1制御部210および第2制御部240は、チューニングテーブル303の各項目に反映されているパラメータ値に対応する現在値を取得する。管理部220のデータ更新部223は、第1制御部210および第2制御部240により取得された値を初期値として、HVメモリ領域108Cに保存する。初期値の保存後、ハイパーバイザ103の分析およびチューニングフェーズが終了する。
しきい値テーブル302で指定されている実施条件に対して、CPU利用率が超過している例を説明する。制限方法としては、汎用アプリケーション101Bの使用する第2コア104BのCPU周波数を低減する方法が用いられるとする。
ステップS33にて、データ比較部222は、CPU利用率がしきい値テーブル302の値を超過していることを検出する。その後、ステップS36にて、パラメータ値算出部225は、RTOS情報テーブル300および汎用OS情報テーブル301の情報に基づき、第2コア104Bの処理がリアルタイムアプリケーション101Aに影響しないように、CPU周波数をいくつに設定するかを決定する。すなわち、パラメータ値算出部225は、変更後のCPU周波数を算出する。ステップS37にて、データ更新部223は、パラメータ値算出部225の算出の結果をチューニングテーブル303に反映する。
CPU周波数の変更がチューニングテーブル303に設定されているため、ステップS40にて、第1制御部210の周波数取得部212は、現在のCPU周波数の値を取得する。データ更新部223は、周波数取得部212により取得された値を、変更前のCPU周波数の値、すなわち、初期値として、HVメモリ領域108Cに保存する。
このように、CPU周波数の実施条件が満たされていた場合は、CPU周波数のチューニングの設定が行われる。他の動作状態のチューニングの設定も同様に行うことができる。すなわち、本実施の形態では、データ更新部223によって更新された汎用OS情報テーブル301のデータに、ユーザが作成するしきい値テーブル302の「実施条件」を満たす項目があった場合、しきい値テーブル302で指定される制限「チューニング方法」が、汎用OS102Bの該当するアプリケーションに適用される。その制限について、まとめたものがチューニングテーブル303となる。
図6の例では、「XXXX.exe」についてデータ更新部223によって更新された結果がテーブル情報として保持されている。この例では、「XXXX.exe」は、0x10から0x20の時間の間、DMA転送を3回実施している。CPU利用率は80%、ディスクアクセスの時間は1msである。チューニングフェーズにて、この結果と、しきい値テーブル302の実施条件とが比較される。具体的には、CPU利用率が実施条件の70%を超過しているかどうかが判断される。ハイパーバイザ103は、CPU利用率が70%以下になるように、「XXXX.exe」のアプリケーション実行に制限をかける。また、DMA転送が行われる0x10から0x20の時間の間にリアルタイムOS102Aの割り込みが発生するかどうかが判断される。発生する場合、その時間がリアルタイムOS102Aの割り込み周期以上かつ+20%以下であれば、DMA転送が割り込み発生時に被らないように、DMA転送の1回の転送サイズを小さくするというチューニングが設定される。DMA転送の時間がリアルタイムOS102Aの割り込み周期以上かつ+20%以上であれば、DMA転送をすべてPIOに変換するというチューニングが設定される。これらのアプリケーション実施に対する制限をまとめたものがチューニングテーブル303である。「PIO」は、Programmed I/Oの略語である。
図13を参照して、実運用フェーズを説明する。
ステップS41にて、管理部220のデータ読み出し部221は、チューニングテーブル330を読み出す。
ステップS42にて、管理部220のデータ比較部222は、汎用アプリケーション101Bからの処理の実行要求を検出し、その処理に対応する項目が、チューニングテーブル303に登録されているかを確認する。登録されている場合、ステップS46の処理が行われる。登録されていない場合には、ステップS43の処理が行われる。
ステップS43にて、第1制御部210および第2制御部240は、チューニングテーブル303の各項目に反映されているパラメータ値に対応する現在値を取得する。データ比較部222は、第1制御部210および第2制御部240により取得された値を、ステップS40で保存された初期値と比較して、初期値からの変更があるか確認する。変更がある場合には、ステップS44の処理が行われる。変更がない場合には、ステップS45の処理が行われる。
1つの例として、パラメータ値がCPU周波数の値であれば、第1制御部210の周波数取得部212が、現在のCPU周波数の値を取得する。データ比較部222は、周波数取得部212により取得されたCPU周波数の値を、ステップS40で保存された初期値と比較して、CPU周波数が変更されているか確認する。
別の例として、パラメータ値がDMA転送の1回の転送サイズの値であれば、第2制御部240のサイズ取得部242が、現在のDMA転送の1回の転送サイズの値を取得する。データ比較部222は、サイズ取得部242により取得された転送サイズの値を、ステップS40で保存された初期値と比較して、転送サイズが変更されているか確認する。
ステップS44にて、第1制御部210または第2制御部240は、初期値からの変更を元に戻す。その後、ステップS45の処理が行われる。
1つの例として、CPU周波数が変更されていた場合は、第1制御部210の周波数変更部213が、クロックジェネレータ107を使用することで、汎用アプリケーション101Bで使用されるCPU周波数を、ステップS40で保存された変更前のCPU周波数に戻す。
別の例として、DMA転送の1回の転送サイズが変更されていた場合は、第2制御部240のサイズ変更部243が、DMAコントローラ120を使用することで、汎用アプリケーション101Bで使用される、DMA転送の1回の転送サイズを、ステップS40で保存された変更前の転送サイズに戻す。
ステップS45にて、汎用アプリケーション101Bからの要求通りに処理が実行される。
ステップS46にて、データ比較部222は、汎用アプリケーション101Bからの処理の実行要求に対して、その処理を、チューニングテーブル303で指定された方法で、制限をかけて行うように命令を変換する。その後、変換後の方法で処理が実行される。
1つの例として、CPU周波数が変更される場合は、周波数変更部213が、クロックジェネレータ107を使用することで、汎用アプリケーション101Bで使用されるCPU周波数を、チューニングテーブル303で指定されたCPU周波数に変更する。
別の例として、DMA転送の1回の転送サイズが変更される場合は、サイズ変更部243が、DMAコントローラ120を使用することで、汎用アプリケーション101Bで使用される、DMA転送の1回の転送サイズを、チューニングテーブル303で指定された転送サイズに変更する。
その後、すべてのアプリケーションが終了するまでステップS42からステップS46の手順が繰り返し実行される。
***実施の形態の効果の説明***
本実施の形態では、第1取得部200および第2取得部230といった取得部は、リアルタイムアプリケーション101Aと複数の汎用アプリケーション101Bとが実行される試運転フェーズにおいて、汎用OS情報を取得する。汎用OS情報は、試運転フェーズで実行される複数の汎用アプリケーション101Bのそれぞれによるハードウェアの使用についての情報であり、汎用OS情報テーブル301に登録される。各汎用アプリケーション101Bは、汎用OS情報テーブル301では、「アプリケーションの名前」によって識別される。管理部220は、汎用アプリケーション101Bごとに、取得部により取得された汎用OS情報に基づいて、ハードウェアの使用を制限するための条件が満たされているかどうかを判定する。この条件は、「実施条件」として、しきい値テーブル302に定義されている。管理部220は、条件が満たされていると判定した場合、リアルタイムアプリケーション101Aと複数の汎用アプリケーション101Bとが実行される実運用フェーズにおいて、該当する汎用アプリケーション101Bによるハードウェアの使用を制限する。この制限の方法は、「チューニング方法」として、しきい値テーブル302に定義されている。
このように、本実施の形態では、複数の汎用アプリケーション101Bのうち、試運転フェーズで得られた情報に基づいて一定の条件を満たしていると判定された汎用アプリケーション101Bに対し、実運用フェーズでハードウェアの使用が制限される。条件を満たしていないと判定された汎用アプリケーション101Bに対して実運用フェーズでハードウェアの使用を制限しないことで、汎用OS102Bの、リアルタイムOS102Aの処理に影響しない処理を止めることなく、リアルタイムOS102Aに優先的にハードウェアへのアクセスを行わせることができる。
本実施の形態では、取得部は、ハードウェアの種類ごとに、汎用OS情報を取得する。管理部220は、汎用アプリケーション101Bおよびハードウェアの種類の組み合わせごとに、汎用OS情報に基づいて、条件が満たされているかどうかを判定する。ハードウェアの種類は、「カテゴリ」として、しきい値テーブル302に定義されている。管理部220は、条件が満たされていると判定した場合、実運用フェーズにおいて、該当する汎用アプリケーション101Bによる、該当する種類のハードウェアの使用を制限する。
ハードウェアの種類として、プロセッサ104がある場合、取得部は、汎用OS情報として、プロセッサ104の使用率を示す情報を取得する。プロセッサ104の使用率は、汎用OS情報テーブル301では、「CPU利用率」として記録される。管理部220は、汎用アプリケーション101Bごとに、汎用OS情報に示されているプロセッサ104の使用率がしきい値以上であれば、プロセッサ104について条件が満たされていると判定する。プロセッサ104の使用を制限する方法としては、任意の方法が用いられてよいが、本実施の形態では、管理部220は、条件が満たされていると判定した場合、実運用フェーズにおいて、該当する汎用アプリケーション101Bが実行される際に、プロセッサ104の周波数を低くする。
ハードウェアの種類として、メモリ108がある場合、取得部は、汎用OS情報として、メモリ108へのDMA転送の実施期間を示す情報を取得する。メモリ108へのDMA転送の実施期間は、汎用OS情報テーブル301では、「DMA処理開始時刻」および「DMA処理終了時刻」の組み合わせとして記録される。管理部220は、汎用アプリケーション101Bごとに、汎用OS情報に示されているメモリ108へのDMA転送の実施期間がリアルタイムOS102Aの割り込み周期に重なっていれば、条件が満たされていると判定する。リアルタイムOS102Aの割り込み周期は、あらかじめ検出され、RTOS情報テーブル300に記録されている。メモリ108へのDMA転送を制限する方法としては、任意の方法が用いられてよいが、本実施の形態では、管理部220は、条件が満たされていると判定した場合、汎用OS情報に示されているメモリ108へのDMA転送の実施期間とリアルタイムOS102Aの割り込み周期との重なりの度合いに応じて、方法を変える。具体的には、管理部220は、汎用OS情報に示されているメモリ108へのDMA転送の実施期間とリアルタイムOS102Aの割り込み周期との重なりの度合いがしきい値以上であれば、該当する汎用アプリケーション101Bによるメモリ108へのDMA転送の送信サイズを小さくする。管理部220は、汎用OS情報に示されているメモリ108へのDMA転送の実施期間とリアルタイムOS102Aの割り込み周期との重なりの度合いがしきい値未満であれば、該当する汎用アプリケーション101Bによるメモリ108へのDMA転送をPIO転送に変える。
ハードウェアの種類として、前述した補助記憶装置に相当するディスクがある場合、取得部は、汎用OS情報として、ディスクへのアクセスの実施期間を示す情報を取得する。ディスクへのアクセスの実施期間は、汎用OS情報テーブル301では、「ディスクアクセス時間」として記録される。管理部220は、汎用アプリケーション101Bごとに、汎用OS情報に示されているディスクへのアクセスの実施期間がリアルタイムOS102Aの割り込み周期に重なっていれば、条件が満たされていると判定する。リアルタイムOS102Aの割り込み周期は、あらかじめ検出され、RTOS情報テーブル300に記録されている。ディスクへのアクセスを制限する方法としては、任意の方法が用いられてよいが、本実施の形態では、管理部220は、条件が満たされていると判定した場合、該当する汎用アプリケーション101Bによるディスクへのアクセスのブロックサイズを小さくする。
このように、本実施の形態では、複数の汎用アプリケーション101Bのうち、試運転フェーズで得られた情報に基づいて一定の条件を満たしていると判定された汎用アプリケーション101Bに対し、実運用フェーズで条件に対応する種類のハードウェアの使用が制限される。条件に対応するハードウェアの種類がメモリ108であれば、汎用アプリケーション101Bを実行する方法を変更することにより、汎用アプリケーション101Bからのメモリ108へのアクセス頻度を減らすことが可能となる。その結果、汎用アプリケーション101Bによるバス110の占有率が低くなり、汎用アプリケーション101Bの動作も継続する環境下で、バス110を介してリアルタイムアプリケーション101Aの待ち時間が解消され、リアルタイム応答性能遅延を防止可能となる。
CPU周波数、DMAの利用率およびディスクアクセス以外のハードウェアの使用についても、同様の方法でデバイスアクセスの処理時間および処理サイズをもとに、チューニングを行ってもよい。
取得部は、汎用OS情報として、メモリ108へのDMA転送の実施期間とは別の、メモリ108の使用期間を示す情報を取得してもよいし、メモリ108以外の種類のハードウェアの使用期間を示す情報を取得してもよい。その場合、管理部220は、汎用アプリケーション101Bごとに、汎用OS情報に示されているハードウェアの使用期間がリアルタイムOS102Aの割り込み周期に重なっていれば、条件が満たされていると判定する。管理部220は、条件が満たされていると判定した場合、汎用OS情報に示されているハードウェアの使用期間とリアルタイムOS102Aの割り込み周期との重なりの度合いに応じて、該当する汎用アプリケーション101Bによるハードウェアの使用を制限する方法を変えてもよい。
本実施の形態では、特許文献1に記載の技術と異なり、DMA以外の処理負荷により優先度の低いOSがバス110の帯域を専有することで発生し得る、優先度の高いOSの割り込み応答性能の低下にも対応することができる。
本実施の形態では、リアルタイムOS102A以外のOSの処理負荷が高い場合に、優先度の低い汎用OS102Bの処理を止めることなく、ハイパーバイザ103が処理の実行方法を変換することで、リアルタイムOS102Aの処理精度への影響を軽減可能である。
本実施の形態によれば、バス110をリアルタイムOS102Aと汎用OS102Bとで共有する場合に、リアルタイムOS102Aに割り当てられたデバイスが割り込みを発行した際のリアルタイム応答性能の低下を防止することが可能となる。
***他の構成***
本実施の形態では、第1取得部200、第1制御部210、管理部220、第2取得部230および第2制御部240の機能がソフトウェアにより実現されるが、変形例として、第1取得部200、第1制御部210、管理部220、第2取得部230および第2制御部240の機能がソフトウェアとハードウェアとの組み合わせにより実現されてもよい。すなわち、第1取得部200、第1制御部210、管理部220、第2取得部230および第2制御部240の機能の一部が専用のハードウェアにより実現され、残りがソフトウェアにより実現されてもよい。
専用のハードウェアは、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックIC、GA、FPGA、ASIC、または、これらのうちいくつか、もしくは、すべての組み合わせである。「IC」は、Integrated Circuitの略語である。「GA」は、Gate Arrayの略語である。「FPGA」は、Field−Programmable Gate Arrayの略語である。「ASIC」は、Application Specific Integrated Circuitの略語である。
プロセッサ104および専用のハードウェアは、いずれも処理回路である。すなわち、第1取得部200、第1制御部210、管理部220、第2取得部230および第2制御部240の機能がソフトウェアにより実現されるか、ソフトウェアとハードウェアとの組み合わせにより実現されるかに関わらず、第1取得部200、第1制御部210、管理部220、第2取得部230および第2制御部240の動作は、処理回路により行われる。
OSの数は、3つ以上であってもよい。それぞれのOSは、リアルタイムOS102Aと汎用OS102Bとのいずれであってもよいし、その他の種類のOSであってもよい。例えば、同じ種類のOSがあったとして、それぞれを管理用のOSと、非管理用のOSとして区別してもよい。
プロセッサ104のコアの数は、3つ以上であってもよい。
ハイパーバイザ103は、第2コア104Bによって実行されてもよい。
情報処理装置100は、OSを実行するコアとは別に、ハイパーバイザ103を実行するコアを備えてもよい。つまり、ハイパーバイザ103は、OSを実行するコアとは別のコアによって実行されてもよい。
ユーザの作成するRTOS情報テーブル300および汎用OS情報テーブル301は、1つに統合されてもよいし、DMA、メモリアクセスおよびディスクアクセスといったイベントのトリガごとに別々に作成されてもよい。
ハイパーバイザ103は、汎用アプリケーション101Bのみでなく、リアルタイムアプリケーション101Aの処理状態監視を行ったり、リアルタイムアプリケーション101Aに対するしきい値情報を持ったりすることで、汎用OS102Bの処理を制限してもよい。例えば、ハイパーバイザ103は、リアルタイムOS102Aの単位時間当たりのメモリキャッシュミス率またはキャッシュヒット率の情報を取得し、キャッシュミス率が規定のしきい値を超過している場合に、汎用アプリケーション101Bに対し、キャッシュの割り当てを制限してもよい。
実施の形態2.
本実施の形態について、主に実施の形態1との差異を、図14および図15を用いて説明する。
実施の形態1では、ハイパーバイザ103のシステム試運転フェーズと、ハイパーバイザ103の分析およびチューニングフェーズとがそれぞれ1回のみ実施される。本実施の形態では、チューニングテーブル303の設定値を用いて再度試運転が行われ、パラメータが調整される。複数回繰り返しこの試運転が行われても構わない。その場合、試運転の回数を指定する方法は、任意の方法でよく、試運転開始時に、ユーザが引数で回数を設定してもよいし、ハイパーバイザ103の読み出すことのできる、いずれかのテーブル情報に回数が追記されて管理されてもよい。
***構成の説明***
本実施の形態に係る情報処理装置100の構成については、図1から図3に示した実施の形態1のものと同じであるため、説明を省略する。
***動作の説明***
図14および図15を参照して、本実施の形態に係る情報処理装置100の動作を説明する。情報処理装置100の動作は、本実施の形態に係るチューニング方法に相当する。
ユーザによる試運転の準備フェーズと、ハイパーバイザ103の1回目のシステム試運転フェーズと、ハイパーバイザ103の1回目の分析およびチューニングフェーズと、実運用フェーズとについては、図9から図13に示した実施の形態1のものと同じであるため、説明を省略する。
図14および図15を参照して、2回目以降のシステム試運転フェーズと分析およびチューニングフェーズとを説明する。
ステップS51からステップS56の処理については、ステップS41からステップS46の処理と同じであるため、説明を省略する。
ステップS55の処理が行われた後は、ステップS57の処理が行われる。
ステップS56の処理が行われた後も、ステップS57の処理が行われる。
ステップS57およびステップS58の処理については、ステップS23およびステップS24の処理と同じであるため、説明を省略する。
ステップS58の処理が行われた後は、ステップS59の処理が行われる。
ステップS59の処理については、ステップS31の処理と同じであるため、説明を省略する。
ステップS59の処理が行われた後は、ステップS60の処理が行われる。
ステップS60にて、管理部220のデータ比較部222は、RTOS情報テーブル300と汎用OS情報テーブル301とを比較して、汎用OS102Bのすべての処理に対して、リアルタイムOS102Aの定周期割り込みが発生する時間に、汎用OS102Bの処理が重なっているか否かを判定する。重なっている処理は、チューニングが必要な処理、すなわち、チューニング対象であると判断される。チューニング対象が検出された場合、ステップS61の処理が行われる。チューニング対象がない場合は、ステップS65の処理が行われる。
ステップS61にて、データ比較部222は、チューニング対象に対して、どの項目がしきい値を超えているかを、しきい値テーブル302と汎用OS情報テーブル301とを比較して判断する。データ比較部222は、しきい値を超えている項目について、しきい値テーブル302に書かれているチューニング方法を識別する。
ステップS62にて、管理部220のパラメータ値算出部225は、RTOS情報テーブル300および汎用OS情報テーブル301の情報に基づき、チューニングテーブル303に設定するパラメータ値を算出する。パラメータ値の算出は、汎用OS102Bの処理のパラメータ値をどのように変更した場合に、その処理がリアルタイムOS102Aの割り込み周期に重ならなくなるかをもとに行われる。
ステップS63にて、管理部220のデータ更新部223は、チューニングテーブル303に反映されているパラメータ値を、ステップS62で算出されたパラメータ値に更新する。
ステップS64にて、データ比較部222は、すべてのチューニング対象に対して、しきい値テーブル302の実施条件を満たす項目の有無の確認を終えているか、残件があるかを判定する。まだ確認を終えていないチューニング対象が残っている場合には、ステップS61以降の処理が繰り返される。すべてのチューニング対象に対して確認を終えている場合には、ステップS65の処理が行われる。
ステップS65にて、チューニング回数がカウントされる。チューニング回数のカウンタ値は、HVメモリ領域108Cに格納される。
ステップS66にて、データ比較部222は、HVメモリ領域108Cに格納されているチューニング回数のカウンタ値を参照することで、チューニング回数がユーザの指定した回数に達しているかを確認する。達している場合は、2回目以降のシステム試運転フェーズと分析およびチューニングフェーズとが終了する。達していない場合は、ステップS51以降の処理が繰り返される。
2回目以降のシステム試運転フェーズと分析およびチューニングフェーズとが終了した場合、実運用フェーズが実施される。
2回目以降のシステム試運転フェーズと分析およびチューニングフェーズとの具体例を説明する。
この例では、1回目のシステム試運転フェーズと分析およびチューニングフェーズとにおいて、図8の例のように、CPU周波数をαHzに変更するというチューニングの設定がすでに行われているとする。
ステップS52にて、管理部220のデータ比較部222は、汎用アプリケーション101Bからの処理の実行要求を検出し、その処理に対応する項目が、チューニングテーブル303に登録されていることを検出する。
ステップS54にて、第1制御部210の周波数変更部213は、クロックジェネレータ107を使用することで、汎用アプリケーション101Bで使用されるCPU周波数を、ステップS40で保存された変更前のCPU周波数に戻す。
ステップS56にて、データ比較部222は、汎用アプリケーション101Bからの処理の実行要求に対して、その処理を、チューニングテーブル303で指定された方法で、制限をかけて行うようにCPU周波数をαHzに変換する。その後、処理が実行される。
ステップS57にて、第1取得部200、第1制御部210、第2取得部230および第2制御部240は、RTOS情報テーブル300と汎用OS情報テーブル301とに記録されている項目に対して、試運転時の各種データを収集する。
ステップS58にて、管理部220のデータ更新部223は、ステップS57で収集されたデータを、RTOS情報テーブル300および汎用OS情報テーブル301に保存する。
ステップS59にて、管理部220のデータ読み出し部221は、しきい値テーブル302と、ステップS58で更新されたRTOS情報テーブル300および汎用OS情報テーブル301とを読み出す。
ステップS60にて、データ比較部222は、RTOS情報テーブル300と汎用OS情報テーブル301とを比較して、汎用OS102Bのすべての処理に対して、リアルタイムOS102Aの定周期割り込みが発生する時間に、汎用OS102Bの処理が重なっているか否かを判定する。CPU周波数をαHzにしたにも関わらず、チューニング対象が検出された場合、ステップS61からステップS63の処理が行われる。
ステップS62にて、パラメータ値算出部225は、RTOS情報テーブル300および汎用OS情報テーブル301の情報に基づき、チューニングテーブル303に設定するパラメータ値を算出する。
ステップS63にて、データ更新部223は、チューニングテーブル303に反映されているパラメータ値を、ステップS62で算出されたパラメータ値に更新する。
ステップS64にて、すべてのチューニング対象に対して確認を終えている場合には、ステップS65の処理が行われる。
ステップS65にて、チューニング回数のカウンタ値が1インクリメントされる。
ステップS66にて、チューニング回数のカウンタ値がユーザの指定した回数の値に一致していれば、システム試運転フェーズと分析およびチューニングフェーズとが終了する。一致していなければ、ステップS51以降の処理が繰り返される。
***実施の形態の効果の説明***
本実施の形態では、試運転フェーズは、複数回繰り返される。管理部220は、試運転フェーズが1回終了する度に、汎用アプリケーション101Bごとに、終了したフェーズにおいて汎用OS情報として取得部により取得された情報に基づいて、条件が満たされているかどうかを判定する。管理部220は、条件が満たされていると判定した場合、該当する汎用アプリケーション101Bによるハードウェアの使用を制限するためのパラメータを調整する。管理部220は、試運転フェーズがすべて終了した後、実運用フェーズにおいて、そのパラメータを用いて、該当する汎用アプリケーション101Bによるハードウェアの使用を制限する。
本実施の形態では、複数回、状態収集と分析とを行い、チューニングテーブル303を更新することで、リアルタイム応答性能の低下をより精度高く防止し、また、リアルタイム応答性能の低下を防止する際に汎用アプリケーション101Bの処理性能も、より適切なパラメータを使用する処理として実現することが可能となる。最適な動作周波数値を算出することにより、汎用アプリケーション101Bの動作も継続することが可能となる。その結果、汎用アプリケーション101Bによるバス110の占有率が低くなり、バス110を介してリアルタイムアプリケーション101Aの待ち時間が解消され、リアルタイム応答性能遅延が防止可能となる。
100 情報処理装置、101A リアルタイムアプリケーション、101B 汎用アプリケーション、102A リアルタイムOS、102B 汎用OS、103 ハイパーバイザ、104 プロセッサ、104A 第1コア、104B 第2コア、105 周波数変更機構、106 割り込みコントローラ、107 クロックジェネレータ、108 メモリ、108A メモリ領域、108C HVメモリ領域、109 I/Oデバイス、110 バス、111 グラフィックスデバイス、120 DMAコントローラ、200 第1取得部、201 割り込み検出部、202 周期取得部、210 第1制御部、211 利用率取得部、212 周波数取得部、213 周波数変更部、220 管理部、221 データ読み出し部、222 データ比較部、223 データ更新部、224 テーブル作成部、225 パラメータ値算出部、230 第2取得部、231 要求検出部、232 終了検出部、240 第2制御部、241 命令検出部、242 サイズ取得部、243 サイズ変更部、244 時刻取得部、245 頻度取得部、300 RTOS情報テーブル、301 汎用OS情報テーブル、302 しきい値テーブル、303 チューニングテーブル。

Claims (13)

  1. ハードウェアと、
    リアルタイムオペレーティングシステムを介して前記ハードウェアを使用して動作するアプリケーションプログラムであるリアルタイムアプリケーションと、それぞれ非リアルタイムオペレーティングシステムを介して前記ハードウェアを使用して動作するアプリケーションプログラムである複数の汎用アプリケーションとが実行される試運転フェーズにおいて、前記複数の汎用アプリケーションのそれぞれによる前記ハードウェアの使用についての情報である汎用OS情報を取得する取得部と、
    汎用アプリケーションごとに、前記取得部により取得された汎用OS情報に基づいて、前記ハードウェアの使用を制限するための条件が満たされているかどうかを判定し、前記条件が満たされていると判定した場合、前記リアルタイムアプリケーションと前記複数の汎用アプリケーションとが実行される実運用フェーズにおいて、該当する汎用アプリケーションによる前記ハードウェアの使用を制限する管理部と
    を備える情報処理装置。
  2. 前記ハードウェアを複数種類備え、
    前記取得部は、前記ハードウェアの種類ごとに、前記汎用OS情報を取得し、
    前記管理部は、汎用アプリケーションおよび前記ハードウェアの種類の組み合わせごとに、前記汎用OS情報に基づいて、前記条件が満たされているかどうかを判定し、前記条件が満たされていると判定した場合、前記実運用フェーズにおいて、該当する汎用アプリケーションによる、該当する種類の前記ハードウェアの使用を制限する請求項1に記載の情報処理装置。
  3. 前記ハードウェアには、プロセッサが含まれ、
    前記取得部は、前記汎用OS情報として、前記プロセッサの使用率を示す情報を取得し、
    前記管理部は、汎用アプリケーションごとに、前記汎用OS情報に示されている前記プロセッサの使用率がしきい値以上であれば、前記プロセッサについて前記条件が満たされていると判定する請求項1または2に記載の情報処理装置。
  4. 前記管理部は、前記条件が満たされていると判定した場合、前記実運用フェーズにおいて、該当する汎用アプリケーションが実行される際に、前記プロセッサの周波数を低くする請求項3に記載の情報処理装置。
  5. 前記取得部は、前記汎用OS情報として、前記ハードウェアの使用期間を示す情報を取得し、
    前記管理部は、汎用アプリケーションごとに、前記汎用OS情報に示されている前記ハードウェアの使用期間が前記リアルタイムオペレーティングシステムの割り込み周期に重なっていれば、前記条件が満たされていると判定する請求項1または2に記載の情報処理装置。
  6. 前記管理部は、前記条件が満たされていると判定した場合、前記汎用OS情報に示されている前記ハードウェアの使用期間と前記リアルタイムオペレーティングシステムの割り込み周期との重なりの度合いに応じて、該当する汎用アプリケーションによる前記ハードウェアの使用を制限する方法を変える請求項5に記載の情報処理装置。
  7. 前記ハードウェアには、メモリが含まれ、
    前記取得部は、前記汎用OS情報として、前記メモリへのDMA転送の実施期間を示す情報を取得し、
    前記管理部は、汎用アプリケーションごとに、前記汎用OS情報に示されている前記メモリへのDMA転送の実施期間が前記リアルタイムオペレーティングシステムの割り込み周期に重なっていれば、前記条件が満たされていると判定する請求項1または2に記載の情報処理装置。
  8. 前記管理部は、前記条件が満たされていると判定した場合、前記汎用OS情報に示されている前記メモリへのDMA転送の実施期間と前記リアルタイムオペレーティングシステムの割り込み周期との重なりの度合いがしきい値以上であれば、該当する汎用アプリケーションによる前記メモリへのDMA転送の送信サイズを小さくし、そうでなければ、該当する汎用アプリケーションによる前記メモリへのDMA転送をPIO転送に変える請求項7に記載の情報処理装置。
  9. 前記ハードウェアには、ディスクが含まれ、
    前記取得部は、前記汎用OS情報として、前記ディスクへのアクセスの実施期間を示す情報を取得し、
    前記管理部は、汎用アプリケーションごとに、前記汎用OS情報に示されている前記ディスクへのアクセスの実施期間が前記リアルタイムオペレーティングシステムの割り込み周期に重なっていれば、前記条件が満たされていると判定する請求項1または2に記載の情報処理装置。
  10. 前記管理部は、前記条件が満たされていると判定した場合、該当する汎用アプリケーションによる前記ディスクへのアクセスのブロックサイズを小さくする請求項9に記載の情報処理装置。
  11. 前記試運転フェーズは、複数回繰り返され、
    前記管理部は、前記試運転フェーズが1回終了する度に、汎用アプリケーションごとに、終了したフェーズにおいて前記汎用OS情報として前記取得部により取得された情報に基づいて、前記条件が満たされているかどうかを判定し、前記条件が満たされていると判定した場合、該当する汎用アプリケーションによる前記ハードウェアの使用を制限するためのパラメータを調整し、前記試運転フェーズがすべて終了した後、前記実運用フェーズにおいて、前記パラメータを用いて、該当する汎用アプリケーションによる前記ハードウェアの使用を制限する請求項1から10のいずれか1項に記載の情報処理装置。
  12. 取得部が、リアルタイムオペレーティングシステムを介してハードウェアを使用して動作するアプリケーションプログラムであるリアルタイムアプリケーションと、それぞれ非リアルタイムオペレーティングシステムを介して前記ハードウェアを使用して動作するアプリケーションプログラムである複数の汎用アプリケーションとが実行される試運転フェーズにおいて、前記複数の汎用アプリケーションのそれぞれによる前記ハードウェアの使用についての情報である汎用OS情報を取得し、
    管理部が、汎用アプリケーションごとに、前記取得部により取得された汎用OS情報に基づいて、前記ハードウェアの使用を制限するための条件が満たされているかどうかを判定し、前記条件が満たされていると判定した場合、前記リアルタイムアプリケーションと前記複数の汎用アプリケーションとが実行される実運用フェーズにおいて、該当する汎用アプリケーションによる前記ハードウェアの使用を制限するチューニング方法。
  13. ハードウェアを備えるコンピュータに、
    リアルタイムオペレーティングシステムを介して前記ハードウェアを使用して動作するアプリケーションプログラムであるリアルタイムアプリケーションと、それぞれ非リアルタイムオペレーティングシステムを介して前記ハードウェアを使用して動作するアプリケーションプログラムである複数の汎用アプリケーションとが実行される試運転フェーズにおいて、前記複数の汎用アプリケーションのそれぞれによる前記ハードウェアの使用についての情報である汎用OS情報を取得する取得手順と、
    汎用アプリケーションごとに、前記取得手順により取得された汎用OS情報に基づいて、前記ハードウェアの使用を制限するための条件が満たされているかどうかを判定し、前記条件が満たされていると判定した場合、前記リアルタイムアプリケーションと前記複数の汎用アプリケーションとが実行される実運用フェーズにおいて、該当する汎用アプリケーションによる前記ハードウェアの使用を制限する管理手順と
    を実行させるチューニングプログラム。
JP2020517642A 2018-05-07 2018-05-07 情報処理装置、チューニング方法およびチューニングプログラム Active JP6786010B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2018/017667 WO2019215795A1 (ja) 2018-05-07 2018-05-07 情報処理装置、チューニング方法およびチューニングプログラム

Publications (2)

Publication Number Publication Date
JPWO2019215795A1 JPWO2019215795A1 (ja) 2020-09-17
JP6786010B2 true JP6786010B2 (ja) 2020-11-18

Family

ID=68467358

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020517642A Active JP6786010B2 (ja) 2018-05-07 2018-05-07 情報処理装置、チューニング方法およびチューニングプログラム

Country Status (7)

Country Link
US (1) US11467944B2 (ja)
JP (1) JP6786010B2 (ja)
KR (1) KR102251451B1 (ja)
CN (1) CN112136110A (ja)
DE (1) DE112018007428T5 (ja)
TW (1) TW201947396A (ja)
WO (1) WO2019215795A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021157031A1 (ja) * 2020-02-06 2021-08-12 三菱電機株式会社 設定変更装置、設定変更方法及び設定変更プログラム
WO2021220516A1 (ja) * 2020-05-01 2021-11-04 三菱電機株式会社 プログラム実行装置、プログラム実行方法及びコンピュータプログラム
US20230283618A1 (en) * 2022-03-01 2023-09-07 Western Digital Technologies, Inc. Detection of malicious operations for distributed cache

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59178195A (ja) 1983-03-28 1984-10-09 Mitsubishi Metal Corp 球状黒鉛鋳鉄の溶接に使用する自動溶接ワイヤ
US6615166B1 (en) * 1999-05-27 2003-09-02 Accenture Llp Prioritizing components of a network framework required for implementation of technology
JP2001209561A (ja) * 2000-01-27 2001-08-03 Mitsubishi Electric Corp 異常処理方式及び異常処理方法
DE10144987A1 (de) * 2001-09-12 2003-07-24 Rexroth Indramat Gmbh Verfahren zur Steuerung und/oder Regelung von industriellen Prozessen
US7385997B2 (en) * 2002-04-08 2008-06-10 International Business Machines Corporation Priority based bandwidth allocation within real-time and non-real-time traffic streams
ATE409904T1 (de) * 2003-04-09 2008-10-15 Jaluna Sa Betriebssysteme
US7272730B1 (en) * 2003-07-31 2007-09-18 Hewlett-Packard Development Company, L.P. Application-driven method and apparatus for limiting power consumption in a processor-controlled hardware platform
JP2007507779A (ja) * 2003-10-01 2007-03-29 ジャルナ エスアー オペレーティングシステム
US20050251806A1 (en) * 2004-05-10 2005-11-10 Auslander Marc A Enhancement of real-time operating system functionality using a hypervisor
US7500244B2 (en) * 2004-06-30 2009-03-03 Intel Corporation Adaptive algorithm for selecting a virtualization algorithm in virtual machine environments
US8429630B2 (en) * 2005-09-15 2013-04-23 Ca, Inc. Globally distributed utility computing cloud
US8112745B2 (en) * 2006-03-22 2012-02-07 Honeywell International Inc. Apparatus and method for capabilities verification and restriction of managed applications in an execution environment
JP4996929B2 (ja) * 2007-01-17 2012-08-08 株式会社日立製作所 仮想計算機システム
CN101499021A (zh) 2008-01-31 2009-08-05 国际商业机器公司 在多个虚拟机上动态分配资源的方法和装置
JP5109748B2 (ja) 2008-03-26 2012-12-26 日本電気株式会社 仮想計算機システム及びパケット送信制御方法並びにそれに用いるネットワークインターフェースカード
JP2010152513A (ja) * 2008-12-24 2010-07-08 Renesas Electronics Corp ハイブリッドシステムおよび割込制御装置並びに割込制御方法
JP2011192130A (ja) * 2010-03-16 2011-09-29 Fuji Xerox Co Ltd 制御装置、画像形成装置、及び制御プログラム
US8707449B2 (en) * 2010-12-16 2014-04-22 International Business Machines Corporation Acquiring access to a token controlled system resource
EP2833264B1 (en) 2012-03-29 2020-06-24 Hitachi, Ltd. Virtual computer schedule method
JP5725302B2 (ja) * 2012-08-10 2015-05-27 コニカミノルタ株式会社 画像形成装置
US20150363220A1 (en) 2013-02-01 2015-12-17 Hitachi, Ltd. Virtual computer system and data transfer control method for virtual computer system
JP2015041199A (ja) * 2013-08-21 2015-03-02 キヤノン株式会社 情報処理装置
JP6705266B2 (ja) * 2016-04-07 2020-06-03 オムロン株式会社 制御装置、制御方法およびプログラム
US10452440B1 (en) * 2016-06-07 2019-10-22 PC Drivers Headquarters, Inc. Systems and methods of optimized tuning of resources
JP6250233B1 (ja) 2016-11-16 2017-12-20 三菱電機株式会社 情報処理装置、デバイス割り当て方法およびデバイス割り当てプログラム

Also Published As

Publication number Publication date
KR102251451B1 (ko) 2021-05-12
JPWO2019215795A1 (ja) 2020-09-17
US20200409821A1 (en) 2020-12-31
CN112136110A (zh) 2020-12-25
US11467944B2 (en) 2022-10-11
KR20200128589A (ko) 2020-11-13
TW201947396A (zh) 2019-12-16
DE112018007428T5 (de) 2021-01-07
WO2019215795A1 (ja) 2019-11-14

Similar Documents

Publication Publication Date Title
US9092251B2 (en) Method of managing virtual machines using a virtual machine monitor
US9652161B2 (en) System, method, and medium of optimizing load reallocation in an in-memory data management grid
Karlsson et al. Triage: Performance differentiation for storage systems using adaptive control
US8996811B2 (en) Scheduler, multi-core processor system, and scheduling method
CN107015862B (zh) 用于具有不同能力的核心的线程和/或虚拟机调度
US7137115B2 (en) Method for controlling multithreading
JP6786010B2 (ja) 情報処理装置、チューニング方法およびチューニングプログラム
WO1999041668A1 (en) Compression store free-space management
US9164799B2 (en) Multiprocessor system
KR102430934B1 (ko) 서비스 하한 품질에 기초한 메모리 대역폭 스케줄링
US8954969B2 (en) File system object node management
EP1426861A2 (en) Resource management system in user-space
JP2014228946A (ja) 情報処理装置、情報処理システム、情報処理装置の制御方法及び情報処理装置の制御プログラム
CN110795323A (zh) 负载统计方法、装置、存储介质及电子设备
US20220092008A1 (en) Managing input/output-critical tasks and background tasks within a computer device
JP4253796B2 (ja) コンピュータ及び制御方法
US20090320036A1 (en) File System Object Node Management
JP5704176B2 (ja) プロセッサ処理方法、およびプロセッサシステム
KR20230063015A (ko) 가상화 서버에서 가상머신 cpu 자원을 관리하는 장치 및 방법
CN115840635A (zh) 计算资源管理方法、电子设备和程序产品
JP3839259B2 (ja) マルチスレッド制御方法、マルチスレッド制御装置、記録媒体、及びプログラム
JP6379841B2 (ja) 情報処理装置、試験方法および試験制御プログラム
CN114510324B (zh) 一种挂载有ceph卷的KVM虚拟机的磁盘管理方法及系统
JP4407445B2 (ja) 一定の応答時間を保証する計算機システム
EP1588246A4 (en) "CACHE ONLY" WAITING OPTION FOR A CACHE CONTROLLER

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200613

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20200613

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20200819

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: 20200929

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201027

R150 Certificate of patent or registration of utility model

Ref document number: 6786010

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150