JP2010146065A - 情報処理装置、割り込み制御方法 - Google Patents

情報処理装置、割り込み制御方法 Download PDF

Info

Publication number
JP2010146065A
JP2010146065A JP2008319498A JP2008319498A JP2010146065A JP 2010146065 A JP2010146065 A JP 2010146065A JP 2008319498 A JP2008319498 A JP 2008319498A JP 2008319498 A JP2008319498 A JP 2008319498A JP 2010146065 A JP2010146065 A JP 2010146065A
Authority
JP
Japan
Prior art keywords
interrupt
load
delay
notification
control unit
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
JP2008319498A
Other languages
English (en)
Other versions
JP4877317B2 (ja
Inventor
Noritaka Tsu
紀孝 津
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2008319498A priority Critical patent/JP4877317B2/ja
Publication of JP2010146065A publication Critical patent/JP2010146065A/ja
Application granted granted Critical
Publication of JP4877317B2 publication Critical patent/JP4877317B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】優先順位の高いOSと優先順位の低いOSがハードウェア資源を共有する場合に、割り込み処理に関して、優先順位の高いOSの負荷を低減可能な情報処理装置及び割り込み制御方法を提供すること。
【解決手段】本発明に係る情報処理装置は、優先順位の高い第1のOS11と、第1のOS11とハードウェア資源を共有する優先順位の低い第2のOS12を備え、ハードウェア資源より第1のOS11が割り込み通知を受けた場合に第1のOS11が処理する割り込みでないときに第2のOS12に対して割込み通知の転送処理を実行する。第1のOS11の負荷制御部70は、第1のOS11の転送処理に伴う負荷を検出し、当該転送処理に伴う負荷の状態を判定する。第2のOS12の遅延処理部42等は、負荷が大きいと判定した場合に、第2のOS12の処理を遅延させる。
【選択図】図2

Description

本発明は、情報処理装置及び割り込み制御方法に関し、特に、ハードウェア共有環境におけるオペレーティングシステム間の割込みを制御する情報処理装置及び割り込み制御方法に関する。
1つの計算機上に複数のオペレーティングシステム(以下、OSと称する。)を備え、これら複数のOSがハードウェア資源を共有するシステムが開発されている。例えば、1つの計算機上にリアルタイムOSと汎用OSという2種類のOSが混在し、ハードウェア資源のうち、中央処理演算装置(以下、CPUと称する。)とメモリを静的に分割して、各OSのそれぞれが占有して使用するシステムがある。ここで、このようなシステムでは、入出力装置(以下、IOデバイスと称する。)などの他のハードウェア資源については、全てのOSが共有して使用するものと、各OSが占有して使用するものがある。
また、関連する技術として、例えば特許文献1に記載の情報処理装置がある。特許文献1に記載の情報処理装置は、主OSと副OSが動作するシステムであり、主OSがすべての割り込み要求を受け取り、副OSが割り込み可能かつ実行可能な状態のときに必要な割り込みを配送する。かかるシステムは、主OSの判断に従って副OSを制御することを目的としたものであるが、例えば、それぞれ独立して動作する主OSと副OSが一部のハードウェア資源を共有している場合に、主OSの負荷を低減させる制御に適用することは困難である。
さらにまた、他の関連する技術として、例えば特許文献2に記載の情報伝送装置がある。特許文献2に記載の情報伝送装置は、一定時間内に発生する割込回数を監視し、その回数に基づきチャネル異常を検出し、また、割込発生元のチャネルを一定時間停止する。かかる情報伝送装置は、複数のOSが混在するシステムを対象とするものではない。
また、他の関連する技術として、例えば特許文献3に記載の計算機システムがある。特許文献3に記載の計算機システムは、IOデバイスを共用するものである。
特開2006−099331号公報 特開平01−258162号公報 特開2007−148621号公報
複数のOSがIOデバイスなどのハードウェア資源を共有して使用する場合に、共有しているIOデバイスなどから発生した割り込みは、リアルタイムOSに対して最初に通知される。これは、汎用OSに比べてより優先順位の高いリアルタイムOSは、IOデバイスに関係する処理においてリアルタイム性が要求され、優先的に割り込みを受け取る必要があるためである。そして、割り込みを受け取ったリアルタイムOSは、受け取った割り込みがどのOS向けの割り込みであったかを判別し、汎用OS向けの割り込みであった場合には、受取った割込みを汎用OSへと転送する。割込みを受取った汎用OSは、割り込みを発生するIO処理を実行する。
ここで、割り込みがリアルタイムOSを経由して汎用OSに通知される場合には、このような割り込みはリアルタイムOS上の処理とは関係がないにも関わらず、汎用OS上の処理によってリアルタイムOSは影響を受けてしまう。すなわち、優先順位が低い汎用OSによって割り込みが大量に発生した場合には、優先順位が高いリアルタイムOSへの割り込みが大量に通知されることになるため、リアルタイムOSにおいては、割り込みを転送するための負荷が高まり、その性能の低下要因となる。例えば、汎用OSにより割り込みを発生させるIO処理を大量に実行した場合には、リアルタイムOSに対して大量の割り込みが通知され、その結果、リアルタイムOS上の処理が阻害されるという問題があった。
従って、本発明の目的は、優先順位の高いOSと優先順位の低いOSがハードウェア資源を共有する場合に、割り込み処理に関して、優先順位の高いOSの負荷を低減可能な情報処理装置及び割り込み制御方法を提供することにある。
本発明の第1の態様に係る情報処理装置は、優先順位の高い第1のOSと、当該第1のOSとハードウェア資源を共有する優先順位の低い第2のOSを備え、当該ハードウェア資源より第1のOSが割り込み通知を受けた場合に当該第1のOSが処理する割り込みでないときに前記第2のOSに対して割込み通知の転送処理を実行する情報処理装置であって、前記第1のOSの転送処理に伴う負荷を検出し、当該転送処理に伴う負荷の状態を判定する負荷制御手段と、前記負荷制御手段が負荷が大きいと判定した場合に、前記ハードウェア資源による割り込み処理を発生させる、前記第2のOSの処理を遅延させる遅延制御手段とを備えたものである。
本発明の第2の態様に係る割込み制御方法は、優先順位の低い第2のOSとハードウェア資源を共有し、優先順位の高い第1のOSに対して当該ハードウェア資源からの割り込み通知を受けた場合に当該第1のOSが処理する割り込みでないときに前記第2のOSに対して割込み通知の転送処理を実行する割り込み制御方法であって、前記第1のOSの転送処理に伴う負荷を検出し、当該転送処理に伴う負荷の状態を判定する負荷状態判定ステップと、前記負荷が大きいと判定した場合に、前記ハードウェア資源による割り込み処理を発生させる、前記第2のOSの処理を遅延させる遅延制御ステップとを備えたものである。
本発明によれば、優先順位の高いOSと優先順位の低いOSがハードウェア資源を共有する場合に、割り込み処理に関して、優先順位の高いOSの負荷を低減可能な情報処理装置及び割り込み制御方法を提供することができる。
以下、本発明を実施するための最良の形態について、図面を参照しながら詳細に説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略及び簡潔化がなされている。各図面において同一の構成又は機能を有する構成要素及び相当部分には、同一の符号を付し、その説明を省略する。
実施の形態1.
図1は、本実施の形態1に係る情報処理装置の全体構成を示す図である。図1に示すように、情報処理装置1は、複数のOS(OS(1)11及びOS(2)12)と、ディスク13と、イーサネット(登録商標)14と、バスコントローラ(Bus Controller)15と、複数のCPU(CPU(1)16、CPU(2)17、CPU(3)18、CPU(4)19)とを備えるシステムである。
OS(1)11及びOS(2)12は、ハードウェア資源のうち、CPU16〜19とメモリ(不図示)については、それぞれ静的に分割して使用する。すなわち、OS(1)11はCPU(1)16とCPU(2)17を使用し、OS(2)12はCPU(3)18とCPU(4)19を使用する。また、メモリ(不図示)は、複数の領域に分割され、OS(1)11及びOS(2)12は、それぞれ対応する領域を使用する。CPU及びメモリを除く他のハードウェア資源については、OS(1)11及びOS(2)12は、いずれかのOSが占有して使用する、或いは、2つのOSにより共有して使用する。このようにシステムを必要最低限のハードウェア資源により構成し、ハードウェア資源を共有して使用することで、各OS用にハードウェア資源を用意せずに済み、コストを抑制することができる。以下では、ディスク13とイーサネット(登録商標)14が、共有するハードウェア資源であるものとして説明する。
本実施の形態では、OS(1)11及びOS(2)12に対して、優先順位が設定されている。優先順位が高いOS上では、高いリアルタイム性が要求されるような、システムとして優先すべきプログラムが実行される。以下では、OS(2)12は汎用OSであり、OS(1)11は汎用OSよりも優先順位の高いリアルタイムOSであるものとして説明する。
バスコントローラ15は、共有しているハードウェア資源の割り込みを管理しており、割込みが発生した場合には、優先順位の高いOS(1)11に対して割込みを通知する。これは、システムは、どのOSにより割り込みを発生させる操作が行われたのかが不明であるため、バスコントローラ15を経由して、優先順位の高いOS(1)11へと割込みを最初に通知するためである。そして、割込みを受取ったOS(1)11は、割り込みが自身により処理すべき割り込みであるか否かを確認し、自身により処理すべき割り込みでない場合には、より優先順位の低いOS(2)12へと割り込みを転送する。
OS(2)12がハードウェア資源を操作することで割り込みを発生させた場合には、バスコントローラ15を介して、OS(1)11に対して割り込みが最初に通知される。OS(2)12の動作に伴いOS(1)11における処理が発生するが、この処理の際にOS(1)11に対して掛かる負荷が、システム設計時の見積もり範囲内に収まる場合であれば問題はない。しかし、OS(2)12による割り込みの発生回数が、見積もり範囲を大幅に超過した場合には、OS(1)11における処理の負荷が増大してしまい、OS(1)11の本来の処理が阻害されるという問題がある。ここで、通知される割り込みがどのOSに対するものであるかは不明であるため、OS(1)11により、割り込みの処理や転送の実行を停止することはできない。そこで、本実施の形態1に係る情報処理装置1は、優先順位の低いOS(2)12により発生した割り込みが、優先順位の高いOS(1)11の動作を妨げないように、OS(1)11とOS(2)12が協調し、OS(1)11の割り込みによる負荷が高くなった場合には、OS(2)12に負荷の情報を通知してOS(2)12における割り込みの発生要因となる処理の頻度を制御することで、OS(2)12による割り込みがOS(1)11に与える影響を抑制するものである。
次に、図2を参照して、本実施の形態1に係る情報処理装置1の構成について、より詳細に説明する。図に示すように、情報処理装置1は、OS(1)11と、OS(2)12と、デバイス60を備える。
OS(2)12は、スレッド31と、ドライバ40と、遅延時間管理部50を備えている。ドライバ40は、入口処理部41と、遅延処理部42と、IO発行処理部43と、出口処理部44を備えている。遅延時間管理部50は、遅延時間データ51を保持している。
遅延時間管理部50は、OS(1)11の負荷制御部70から負荷通知を受けて、遅延時間データ51を設定する。ドライバ40は、IO発行処理部43による処理に先立ち遅延処理部42による遅延処理を実行する。遅延処理部42は、遅延時間管理部50に設定された遅延時間データ51を参照して遅延が必要かどうかを判断し、遅延が必要な場合には遅延処理を実行する。他方で、遅延が終了した場合、或いは、遅延が必要でないと判断した場合には遅延処理を終了する。遅延処理部42による遅延処理が終了した場合には、IO発行処理部43は、IOを発行することでデバイス60を操作する。デバイス60は、命令された処理を実行し、処理が終了した場合には、OS(1)11に対して割り込みを通知する。
OS(1)11は、負荷制御部70を備えている。負荷制御部70は、平均割り込み頻度データ71と、平均タスク待ち時間データ72を保持している。OS(1)11は、割り込みが自分宛のものであるか否かを判断し、自分宛の割り込みでない場合には、OS(2)12に対して割り込みを転送すると共に、割り込みによる負荷の統計情報を負荷制御部70により取得する。ここでは、負荷の統計情報として、平均割り込み頻度データ70と平均タスク待ち時間データ72を取得する。負荷制御部70は、取得した負荷の統計情報を予め定めた閾値と比較して、割り込みによる負荷が高いと判断した場合には、OS(2)12に対して負荷を通知する。負荷の通知を受けたOS(2)12は、割り込みを処理した後、遅延時間管理部50により遅延時間データ51を更新する。なお、本例では、平均割り込み頻度データ71と平均タスク待ち時間データ72の双方を用いて負荷の状態を判定しているが、いずれか一方のデータを用いて判定してもよい。
次に、図3乃至図5に示すフローチャートを参照して、情報処理装置1の動作処理について詳細に説明する。ここでは、図2に示した情報処理装置1において、プログラムの実行単位であるスレッド31が、デバイス60を操作するためにドライバ40を呼び出した場合の動作処理について説明する。
スレッド31から呼び出されたドライバ40は、図3に示すように、遅延処理が必要な場合には、IO発行処理部43によるIO発行処理に先立ち、遅延処理部42による遅延処理を実行する。すなわち、図3に示すように、遅延処理部42は、遅延時間管理部50の遅延時間データ51を参照して、遅延処理を実行するか否かを判断する(ステップS101)。図3に示す例では、遅延時間が0よりも大きな場合には、遅延処理を実行し、遅延時間が0の場合には、遅延処理を実行せずに、遅延処理を終了する。そして、遅延処理を実行する場合には、遅延処理部42は、遅延時間の間だけ処理を待機することで、遅延処理を実行する(ステップS102)。IO発行処理部43は、遅延処理部42による遅延処理が実行された場合には、遅延処理に続いて、IO発行処理を行い、遅延処理が実行されなかった場合には、ステップS101における判定処理に続いて、IO発行処理を実行する。すなわち、IO発行処理部43は、IO発行処理を行い、デバイス60にアクセスする。そして、デバイス60は命令された処理が終了した場合には、新たに割り込みを発生して、発生した割り込みをOS(1)11に対して通知する。
デバイス60から割り込みを通知されたOS(1)11は、発生した割り込みが誰宛のものであるかを確認し、割り込みがOS(2)12宛ての割り込みである場合には、割込みをOS(2)12に対して転送する。また、OS(1)11は、図4に示す負荷制御部70による負荷制御処理を実行する。すなわち、図4に示すように、負荷制御部70は、まず、割り込みによる負荷の統計情報としての平均割り込み頻度と、この割り込みのために掛かったタスクの待ち時間を更新する(ステップS201)。そして、負荷制御部70は、平均割込み頻度が予め定めた閾値を超えたか否かを判定する(ステップS202)。平均割込み頻度が閾値を超えていない場合には、負荷制御部70は、さらに、平均タスクの待ち時間が予め定めた閾値を超えたか否かを判定する(ステップS203)。ステップS202における判定の結果、平均割込み頻度が閾値を超えた場合、又は、ステップS203における判定の結果、平均タスク待ち時間が閾値を超えた場合には、負荷制御部70は、OS(2)12に対して、OS(1)11において割り込みの負荷が上昇したことを示す負荷通知を行い、負荷制御処理を終了する。一方で、ステップS203における判定の結果、平均タスク待ち時間が閾値を超えていない場合には、負荷制御部70は、負荷制御処理を終了する。
OS(1)11から割り込み通知されたOS(2)12は、割り込みを発生したデバイス60に関する処理を実行する。また、OS(2)12は、図5に示す遅延時間管理部50による遅延時間管理処理を実行する。すなわち、図5に示すように、遅延時間管理部50は、まず、OS1(1)11から通知された負荷通知により特定される負荷の値が定めた所定の閾値よりも高いか低いかを確認する(ステップS301)。
S301における判定の結果、負荷の値が閾値よりも高い場合には、遅延時間管理部50は、さらに、遅延時間データ51により特定される現在の遅延時間が予め定めた上限値(以下、MAX値と称する。)よりも小さいか否かを判定する(ステップS302)。遅延時間管理部50は、遅延時間がMAX値よりも小さくない、すなわち、遅延時間が既にMAX値と等しいと判定した場合には、さらに遅延時間を増加させることはできないため、遅延時間管理処理を終了する。一方で、遅延時間管理部50は、遅延時間がMAX値より小さい、すなわち、遅延時間を増加させることができる余地がある場合には、遅延時間の値を大きくする(ステップS303)。
S301における判定の結果、負荷通知が閾値よりも低い場合には、遅延時間管理部50は、さらに、遅延時間データ51により特定される現在の遅延時間が予め定めた下限値よりも大きいか否かを判定する(S304)。図3に示す例では、下限値は0である。遅延時間管理部50は、遅延時間が0よりも大きな場合には、さらに、遅延時間を小さくすることができるため、遅延時間の値を小さくする(ステップS305)。一方で、遅延時間が0である場合には、遅延時間をさらに小さくすることができないため、遅延時間管理部50は、遅延時間管理処理を終了する。
以下、図3乃至図5に示した各動作処理に関して、OS(1)11をリアルタイムOS、OS(2)12を汎用OSとして、これら2つのOSが、デバイス60としてのイーサネット(登録商標)14を共有する場合について具体的に説明する。
まず、図2に示したように、汎用OS上のスレッド31が、ドライバ40に指示を与えることでイーサネット(登録商標)14を使用する。指示を受けたドライバ40は、遅延処理部42により、遅延時間管理部50の遅延時間データ51を参照して、遅延処理を実行する必要があるか否かを判断する。遅延処理を実行する必要がある場合には、遅延処理部42は、遅延処理を実行する。そして、ドライバ40のIO発行処理部43は、イーサネット(登録商標)14に対してIO命令を発行する。IO発行命令を受けたイーサネット(登録商標)14は処理を行い、処理が完了した場合には、イーサネット(登録商標)14から割り込みが発生する。発生した割り込みは、リアルタイムOSに通知される。
次いで、割込みが通知されたリアルタイムOSは、通知された割り込みの要因を調べて、自分宛の割り込みか否かを判別する。自分宛の割り込みでないものと判断した場合には、リアルタイムOSは、割込みを汎用OSに対して転送する。また、図3に示したように、リアルタイムOSの負荷制御部70は、割り込みの平均頻度や、この割り込みのために掛かったタスクの待ち時間などの統計情報を計測し、負荷が掛かりすぎていないかを予め定めた閾値を用いて判定する。判定の結果、負荷が高い場合には、汎用OSに対して負荷通知を行う。そして、リアルタイムOSから割込みが転送された汎用OSは、転送された割り込みを処理する。
ここで、汎用OSによりイーサネット(登録商標)14が大量に使用された場合には、リアルタイムOSは、負荷が掛かっているものと判断して、汎用OS上の遅延時間管理部50に対して、負荷制御部70により負荷通知を行う。図5に示したように、汎用OSは、高い負荷を示す負荷通知を受けた場合には、遅延時間データ51を増加させる。
そして、スレッド31がドライバ40に指示を与えてイーサネット(登録商標)14を操作しようとする場合には、図4に示したように、ドライバ40は、遅延処理部42により遅延時間管理部50の遅延時間データ51を参照して、遅延処理を実行する必要があるか否かを判断する。遅延処理を実行する必要がある場合には、遅延処理部42は、遅延処理を実行する。そして、ドライバ40のIO発行処理部43は、イーサネット(登録商標)14に対してIO命令を発行してイーサネット(登録商標)14を操作する。
これにより、IO発行処理部43によるIO発行処理が、遅延処理部42による遅延時間だけ遅延されることなるため、リアルタイムOSに通知される割り込みの頻度が低下し、そのために発生していた負荷も低下することになる。そして、リアルタイムOSに通知される割り込みの頻度が十分に低下することで、リアルタイムOSは、汎用OSの遅延時間管理部50に対して割り込みの負荷が低下したことを通知する。この負荷通知を受けた汎用OSは、遅延時間管理部50により遅延時間の値を小さくする。
このように、優先順位が高いリアルタイムOSにおいて、より優先順位が低い汎用OSに対して割り込みを転送する処理に掛かった負荷の統計情報を取得し、取得した統計情報が予め定めた閾値を超えた場合には、リアルタイムOSから汎用OSに対して割り込みを減らすように通知を行う。そして、通知を受けた汎用OSにおいて、割り込みが発生するIO発行処理の実行を遅延させ、単位時間当たりのIO発行処理の回数を減少させることで、汎用OSが発生させた割り込みによるリアルタイムOSに対する影響を抑制することができる。
実施の形態2.
続いて、本発明の実施の形態2に係る情報処理装置について説明する。実施の形態2に係る情報処理装置では、IO発行処理を実行するスレッドについて、スレッドをディスパッチキューにつなげる処理に先立って遅延処理を実行するものである。
図6は、本実施の形態2に係る情報処理装置1の構成を示す図である。図に示すように、情報処理装置1は、OS(1)11と、OS(2)12と、デバイス60を備える。OS(2)12は、スケジューラ80と、遅延時間管理部50を備えている。スケジューラ80は、実行可能なスレッドをディスパッチキューにつなげるための処理を行う処理部81(以下、ディスパッチキュー接続処理部81と称する。)と、遅延処理部82と、実行処理部83を備えている。遅延時間管理部50は、遅延時間データ51を備えている。OS(1)11は、負荷制御部70を備えている。負荷制御部70は、平均割り込み頻度データ71と、平均タスク待ち時間データ72を保持している。
図7は、ディスパッチキュー接続処理部81による動作処理を示すフローチャートである。図7に示すように、ディスパッチキュー接続処理部81は、遅延時間管理部50の遅延時間データ51を参照して、遅延処理を実行するか否かを判断する(ステップS401)。図7に示す例では、遅延時間が0よりも大きな場合には、さらに、ディスパッチキュー接続処理部81は、スレッドがIO発行処理を実行しているか否かを調べる(ステップS402)。ステップS401における判断の結果、遅延時間が0である場合、又は、ステップS402における調査の結果、スレッドがIO発行処理を実行していない場合には、ディスパッチキュー接続処理部81は、実行可能なスレッドをディスパッチキューにつなげるための処理を行う(ステップS403)。一方で、ステップS402における調査の結果、スレッドがIO発行処理を実行している場合には、ディスパッチキュー接続処理部81は、遅延時間管理部50の遅延時間データ51をタイマーとして設定し、設定した遅延時間の経過後に、実行可能なスレッドをディスパッチキューにつなげるための処理を行う(ステップS404)。
このように、本実施の形態2に係る情報処理装置1では、実行可能なスレッドをディスパッチキューにつなぐ処理に先立ち、スレッドがIO発行処理を実行するスレッドであるか否かを調べる。そして、IO発行処理を実行するスレッドであった場合には、遅延時間管理部50にアクセスして遅延処理が必要であるか否かを調べ、遅延処理が必要である場合には、ディスパッチキューにつなぐ処理に先立ち、設定する遅延時間の間、待機してから、ディスパッチキューにスレッドをつなぐ。これにより、汎用OSが発生させた割り込みによるリアルタイムOSに対する影響を抑制することができる。
実施の形態3.
続いて、本発明の実施の形態3に係る情報処理装置について説明する。実施の形態3に係る情報処理装置では、汎用OSからリアルタイムOSに対して割込み処理の実行の許可を求め、リアルタイムOSによって許可された場合に割込み処理を実行するものである。
図8は、本実施の形態3に係る情報処理装置1の構成を示す図である。図に示すように、情報処理装置1は、OS(1)11と、OS(2)12と、デバイス60を備える。OS(2)12は、スレッド31と、ドライバ40と、割り込み制御部50を備えている。ドライバ40は、入口処理部41と、割り込み確認呼び出し処理部48と、IO発行処理部43と、出口処理部44を備えている。割り込み制御部50は、割り込み確認処理部52を備えている。OS(1)11は、負荷制御部70を備えている。負荷制御部70は、平均割り込み頻度データ71と、平均タスク待ち時間データ72を保持している。
次に、本実施の形態3に係る情報処理装置1の処理について説明する。本実施の形態3では、割り込み遅延を行うかどうかを判断する処理につき特徴を有するため、かかる処理を中心に説明する。
割り込み確認呼び出し処理部48は、ドライバ40内で割り込みが発生する操作を行う前に、割り込み制御部50の割り込み確認処理部52に対して、割り込み制御を使用し、OS1(11)の負荷制御部70に対して割り込みが発生する処理を行ってよいか許可を求める処理を要求する。
割り込み制御部50の割り込み確認処理部52は、かかる要求に応じて、OS(1)11の負荷制御部70に対して、割り込み通知を発行することにより、OS(1)11の負荷制御部70に対して割り込みが発生する処理を行ってよいか許可を求める。負荷制御部70は、平均割り込み頻度データ71や平均タスク待ち時間データ72等のデータに基づいて、割り込みの平均頻度や、この割り込みのために掛かったタスクの待ち時間などの統計情報を計測し、負荷が掛かりすぎていないかを予め定めた閾値を用いて判定する。
負荷制御部70は、判定の結果、負荷が低いと判定した場合には、OS(2)12の割り込み制御部50(割り込み確認処理部52)に対して、割り込みを許可する許可通知を行う。また、負荷制御部70は、判定の結果、負荷が高いと判定した場合には、OS(2)12の割り込み制御部50(割り込み確認処理部52)に対して、割り込みを許可しない不許可通知を行う。
OS(2)12の割り込み確認処理部52は、負荷制御部70から許可通知を受けた場合には、割込み確認呼び出し処理部48に対して、割込み許可を示す許可通知を出力する。そして、ドライバ40の割込み確認呼び出し処理部48は、許可通知に従って、割込み処理を実行する。
また、当該割り込み確認処理部52は、負荷制御部70から不許可通知を受けた場合には、割込み確認呼び出し処理部48に対して、割込み不許可を示す不許可通知を出力する。そして、ドライバ40の割り込み確認呼び出し処理部48は、不許可通知に応じて、予め定められた時間、待機処理を行う。その後、割り込み確認呼び出し処理部48は、予め定められた時間の経過後に、再度、割り込み制御部50の割り込み確認処理部52に対して、割り込み制御を使用し、OS1(11)の負荷制御部70に対して割り込みが発生する処理を行ってよいか許可を求める処理を要求する。以降は、同様の処理となり、割り込み確認呼び出し処理部48は、負荷制御部70の許可を取得するまで、割込み処理を行わず、負荷制御部70の許可を取得して初めて割り込み処理を実行する。
このように、本実施の形態3にかかる情報処理装置では、リアルタイムOSの許可を得るまで割込み処理を遅延させるため、発明の実施の形態1にかかる情報処理装置と同様に、汎用OSが発生させた割り込みによるリアルタイムOSに対する影響を抑制することができる。
実施の形態4.
続いて、本発明の実施の形態4に係る情報処理装置について説明する。実施の形態4に係る情報処理装置では、共有メモリを用意し、リアルタイムOSはこの共有メモリに汎用OSの割り込み発生処理を許可するか否かのフラグを書き込み、汎用OSは共有メモリを参照して許可が下りているかを判断するものである。その他の構成については、発明の実施の形態3と同等である。
図9は、本実施の形態4に係る情報処理装置1の構成を示す図である。図に示すように、情報処理装置1は、OS(1)11と、OS(2)12と、デバイス60と、共有メモリ90を備える。OS(2)12は、スレッド31と、ドライバ40と、割り込み制御部50を備えている。ドライバ40は、入口処理部41と、割り込み確認呼び出し処理部48と、IO発行処理部43と、出口処理部44を備えている。割り込み制御部50は、割り込み確認処理部53を備えている。OS(1)11は、負荷制御部70を備えている。負荷制御部70は、平均割り込み頻度データ71と、平均タスク待ち時間データ72を保持している。共有メモリ90は、割込み許可フラグ91を保持している。
次に、本実施の形態4に係る情報処理装置1の処理について説明する。本実施の形態4では、割り込み遅延を行うかどうかを判断する処理につき特徴を有するため、かかる処理を中心に説明する。
割り込み確認呼び出し処理部48は、ドライバ40内で割り込みが発生する操作を行う前に、割り込み制御部50の割り込み確認処理部53に対して、割込み確認処理を要求する。
割り込み制御部50の割り込み確認処理部53は、かかる要求に応じて、共有メモリ90の割り込み許可フラグ91を参照する。ここで、共有メモリ90の割り込み許可フラグ91は、OS(1)11の負荷制御部70によって設定される。具体的には、負荷制御部70は、平均割り込み頻度データ71や平均タスク待ち時間データ72等のデータに基づいて、割り込みの平均頻度や、この割り込みのために掛かったタスクの待ち時間などの統計情報を計測し、負荷が掛かりすぎていないかを予め定めた閾値を用いて判定する。負荷制御部70は、判定の結果、負荷が低いと判定した場合には、共有メモリ90に割込み許可を示す割り込み許可フラグ91を設定する。また、負荷制御部70は、判定の結果、負荷が高いと判定した場合には、共有メモリ90に割込み許可フラグ91を設定しない。
OS(2)12の割り込み確認処理部53は、共有メモリ90の割り込み許可フラグを参照した結果、割込み許可フラグ91が設定されている場合には、割込み確認呼び出し処理部48に対して、割込み許可を示す許可通知を出力する。そして、ドライバ40の割込み確認呼び出し処理部48は、許可通知に従って、割込み処理を実行する。
また、当該割り込み確認処理部53は、共有メモリ90の割り込み許可フラグ91を参照した結果、割込み許可フラグ91が設定されていない場合には、割込み確認呼び出し処理部48に対して、割込み不許可を示す不許可通知を出力する。そして、ドライバ40の割り込み確認呼び出し処理部48は、不許可通知に応じて、予め定められた時間、待機処理を行う。その後、割り込み確認呼び出し処理部48は、予め定められた時間の経過後に、再度、割り込み制御部50の割り込み確認処理部53に対して、割込み確認処理を要求する。以降は、同様の処理となる。割り込み確認呼び出し処理部48は、負荷制御部70の許可に応じて共有メモリ90に割込み許可フラグ91が設定されるまで、割込み処理を行わず、負荷制御部70による許可が下り、共有メモリ90に割込み許可フラグ91が設定されて初めて割り込み処理を実行する。
このように、本実施の形態4にかかる情報処理装置では、リアルタイムOSの許可を得るまで割込み処理を遅延させるため、発明の実施の形態1にかかる情報処理装置と同様に、汎用OSが発生させた割り込みによるリアルタイムOSに対する影響を抑制することができる。
実施の形態5.
続いて、本発明の実施の形態5に係る情報処理装置について説明する。実施の形態5に係る情報処理装置では、優先順位が相対的に高い一つのOSと、優先順位が相対的に低い二つのOSを備えている。
図10は、本実施の形態5に係る情報処理装置1の構成を示す図である。図に示すように、情報処理装置1は、OS(1)11と、OS(2)12と、OS(3)21と、デバイス60を備える。OS(2)12とOS(3)21は、共に、スレッドと、ドライバと、遅延時間管理部を備えており、それらの構成及び機能は、発明の実施の形態1と同様である。OS(1)11は、負荷制御部70を備えている。負荷制御部70は、OS(2)12の平均割り込み頻度データと、OS(3)21の平均割り込み頻度データと、平均タスク待ち時間データを保持している。
次に、本実施の形態5に係る情報処理装置1の処理について説明する。OS(1)11は、デバイス60から割り込み通知を受け取ると、発明の実施の形態1と同様にどのOSが通知された割り込みを処理するのかを調査する。そして、OS(1)11は、割り込みを処理すべきOSが、OS(2)12かOS(3)21の場合には、そのOSに割り込みを転送する。かかる転送処理の際に、OS(1)11は、転送する割り込みのために発生したタスクの待ち時間と各OSへの割り込みの発生頻度とを計測する。取得した情報はOSごとに記録し、各OSによる負荷が閾値を超えていないか確認し、超えていたら負荷情報をそのOSごとに通知する。なお、遅延処理の方法については、前述の発明の実施の形態1〜4のいずれかを用いる。
このように本実施の形態5に係る情報処理装置においても、発明の実施の形態1にかかる情報処理装置と同様に、汎用OSが発生させた割り込みによるリアルタイムOSに対する影響を抑制することができる。
尚、本発明は上述した実施の形態のみに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。
本発明は、例えば、1つの計算機上において2つ以上の異なるOSによりハードウェアを共有しており、一方のOSに割り込みが通知される環境において、割り込みが直接通知されないOSによるIO処理によって割り込みが直接通知されるOSの負荷が高くなる場合に、割り込みによる負荷を軽減する用途に適用可能である。
発明の実施の形態1にかかる情報処理装置の概略構成を示すブロック図である。 発明の実施の形態1にかかる情報処理装置の構成を示すブロック図である。 発明の実施の形態1にかかる情報処理装置の処理を示すフローチャートである。 発明の実施の形態1にかかる情報処理装置の処理を示すフローチャートである。 発明の実施の形態1にかかる情報処理装置の処理を示すフローチャートである。 発明の実施の形態2にかかる情報処理装置の構成を示すブロック図である。 発明の実施の形態2にかかる情報処理装置の処理を示すフローチャートである。 発明の実施の形態3にかかる情報処理装置の構成を示すブロック図である。 発明の実施の形態4にかかる情報処理装置の構成を示すブロック図である。 発明の実施の形態5にかかる情報処理装置の構成を示すブロック図である。
符号の説明
1 情報処理装置、11 OS(1)、12 OS(2)、13 ディスク、
14 イーサネット(登録商標)、15 バスコントローラ、16〜19 CPU、
21 OS(3)、31 スレッド、40 ドライバ、50 遅延時間管理部、
60 デバイス、70 負荷制御部、80 スケジューラ、90 共有メモリ

Claims (17)

  1. 優先順位の高い第1のOSと、当該第1のOSとハードウェア資源を共有する優先順位の低い第2のOSを備え、当該ハードウェア資源より第1のOSが割り込み通知を受けた場合に当該第1のOSが処理する割り込みでないときに前記第2のOSに対して割込み通知の転送処理を実行する情報処理装置であって、
    前記第1のOSの転送処理に伴う負荷を検出し、当該転送処理に伴う負荷の状態を判定する負荷制御手段と、
    前記負荷制御手段が負荷が大きいと判定した場合に、前記ハードウェア資源による割り込み処理を発生させる、前記第2のOSの処理を遅延させる遅延制御手段とを備えた情報処理装置。
  2. 前記負荷制御手段は、前記第2のOSによる割込み処理に関する平均割込み頻度、又は、当該割込み処理に要した平均タスク待ち時間、又は当該平均割込み頻度及び平均タスク時間の双方に基づいて当該負荷の状態を判定することを特徴とする請求項1記載の情報処理装置。
  3. 前記負荷制御手段は、当該平均割込み頻度又は平均タスク時間が閾値を超える場合に、負荷が高いと判定することを特徴とする請求項2記載の情報処理装置。
  4. 前記遅延制御手段は、前記負荷制御手段が当該負荷が高いと判定した場合に、遅延時間の値が大きくなるよう更新し、前記負荷制御手段が当該負荷が低いと判定した場合に、遅延時間の値が小さくなるよう更新する請求項1〜3いずれか1項に記載の情報処理装置。
  5. 前記遅延制御手段は、実行スレッドをディスパッチキューにつなげる処理について遅延制御を実行することを特徴とする請求項1〜4いずれか1項に記載の情報処理装置。
  6. 前記負荷制御手段を前記第1のOSに設け、前記遅延制御手段を前記第2のOSに設けたことを特徴とする請求項1〜5いずれか1項に記載の情報処理装置。
  7. 前記負荷制御手段を前記第1のOSに設け、前記遅延制御手段を前記第2のOSに設けた場合に、
    前記遅延制御手段は、前記ハードウェア資源への割り込み処理を行うときに、前記第1のOSに設けられた負荷制御手段に対して割り込み通知を行い、
    当該負荷制御手段は、かかる割り込み通知に応じて第1のOSの転送処理に伴う負荷を検出し、当該転送処理に伴う負荷の状態を判定して、負荷が低いときに許可通知を、負荷が高いときに不許可通知を前記遅延制御手段に送り、
    前記遅延制御手段は、許可通知を受けた場合には前記割り込み処理を実行し、不許可通知を受けた場合には所定時間待機後に再び前記負荷制御手段に対して割り込み通知を実行することを特徴とする請求項1〜5いずれか1項に記載の情報処理装置。
  8. 前記負荷制御手段を前記第1のOSに設け、前記遅延制御手段を前記第2のOSに設けた場合に、
    当該負荷制御手段は、判定した負荷の状態を示す割り込み許可フラグを共有メモリに設定し、
    前記遅延制御手段は、前記ハードウェア資源への割り込み処理を行うときに、前記共有メモリに設定された割り込み許可フラグを参照し、割り込みが許可されている場合には前記割り込み処理を実行し、割り込みが許可されていない場合には所定時間待機後に再び割り込み許可フラグを参照することを特徴とする請求項1〜5いずれか1項に記載の情報処理装置。
  9. 前記情報処理装置が優先順位の低いOSを複数有する場合に、前記負荷制御手段は、当該優先順位の低いOSのそれぞれに設けられた遅延制御手段に対して、個別の負荷状況に応じた負荷通知を行うことを特徴とする請求項1〜8いずれか1項に記載の情報処理装置。
  10. 優先順位の低い第2のOSとハードウェア資源を共有し、優先順位の高い第1のOSに対して当該ハードウェア資源からの割り込み通知を受けた場合に当該第1のOSが処理する割り込みでないときに前記第2のOSに対して割込み通知の転送処理を実行する割り込み制御方法であって、
    前記第1のOSの転送処理に伴う負荷を検出し、当該転送処理に伴う負荷の状態を判定する負荷状態判定ステップと、
    前記負荷が大きいと判定した場合に、前記ハードウェア資源による割り込み処理を発生させる、前記第2のOSの処理を遅延させる遅延制御ステップとを備えた割り込み制御方法。
  11. 前記負荷状態判定ステップでは、前記第2のOSによる割込み処理に関する平均割込み頻度、又は、当該割込み処理に要した平均タスク待ち時間、又は当該平均割込み頻度及び平均タスク時間の双方に基づいて当該負荷の状態を判定することを特徴とする請求項10記載の割り込み制御方法。
  12. 前記負荷状態判定ステップでは、当該平均割込み頻度又は平均タスク時間が閾値を超える場合に、負荷が高いと判定することを特徴とする請求項11記載の割り込み制御方法。
  13. 遅延制御ステップでは、前記負荷状態判定ステップにおいて当該負荷が高いと判定した場合に、遅延時間の値が大きくなるよう更新し、前記負荷制御手段が当該負荷が低いと判定した場合に、遅延時間の値が小さくなるよう更新する請求項10〜12いずれか1項に記載の割り込み制御方法。
  14. 前記遅延制御ステップでは、実行スレッドをディスパッチキューにつなげる処理について遅延制御を実行することを特徴とする請求項10〜13いずれか1項に記載の割り込み制御方法。
  15. 前記負荷状態判定ステップを前記第1のOSが実行し、前記遅延制御ステップを前記第2のOSが実行することを特徴とする請求項10〜14いずれか1項に記載の割り込み制御方法。
  16. 優先順位の低い第2のOSとハードウェア資源を共有し、優先順位の高い第1のOSに対して当該ハードウェア資源からの割り込み通知を受けた場合に当該第1のOSが処理する割り込みでないときに前記第2のOSに対して割込み通知の転送処理を実行する割り込み制御方法であって、
    前記第2のOSは、前記ハードウェア資源への割り込み処理を行うときに、前記第1のOSに対して割り込み通知を実行するステップと、
    前記第1のOSは、かかる割り込み通知に応じて第1のOSの転送処理に伴う負荷を検出し、当該転送処理に伴う負荷の状態を判定して、負荷が低いときに許可通知を、負荷が高いときに不許可通知を前記第2のOSに送るステップ、
    前記第2のOSは、許可通知を受けた場合には前記割り込み処理を実行し、不許可通知を受けた場合には所定時間待機後に再び前記第1のOSに対して割り込み通知を実行するステップとを備えた割り込み制御方法。
  17. 優先順位の低い第2のOSとハードウェア資源を共有し、優先順位の高い第1のOSに対して当該ハードウェア資源からの割り込み通知を受けた場合に当該第1のOSが処理する割り込みでないときに前記第2のOSに対して割込み通知の転送処理を実行する割り込み制御方法であって、
    前記第1のOSが、第1のOSの転送処理に伴う負荷の状態を示す割り込み許可フラグを設定するステップと、
    前記第2のOSが、前記ハードウェア資源への割り込み処理を行うときに、前記割り込み許可フラグを参照し、割り込みが許可されている場合には前記割り込み処理を実行し、割り込みが許可されていない場合には所定時間待機後に再び割り込み許可フラグを参照するステップとを備えた割り込み制御方法。
JP2008319498A 2008-12-16 2008-12-16 情報処理装置、割り込み制御方法 Expired - Fee Related JP4877317B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008319498A JP4877317B2 (ja) 2008-12-16 2008-12-16 情報処理装置、割り込み制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008319498A JP4877317B2 (ja) 2008-12-16 2008-12-16 情報処理装置、割り込み制御方法

Publications (2)

Publication Number Publication Date
JP2010146065A true JP2010146065A (ja) 2010-07-01
JP4877317B2 JP4877317B2 (ja) 2012-02-15

Family

ID=42566491

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008319498A Expired - Fee Related JP4877317B2 (ja) 2008-12-16 2008-12-16 情報処理装置、割り込み制御方法

Country Status (1)

Country Link
JP (1) JP4877317B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012216092A (ja) * 2011-03-31 2012-11-08 Fujitsu Ltd リソース抑制プログラム、リソース監視プログラム、リソース抑制装置、リソース監視装置、リソース抑制方法、リソース監視方法及びリソース抑制システム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03131936A (ja) * 1989-10-18 1991-06-05 Nec Corp 仮想計算機システムのos間入出力装置共用方式
JP2006099331A (ja) * 2004-09-29 2006-04-13 Sony Corp 情報処理装置、割り込み処理制御方法、並びにコンピュータ・プログラム
JP2008065713A (ja) * 2006-09-08 2008-03-21 Canon Inc マルチプロセッサシステム及び割込み制御方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03131936A (ja) * 1989-10-18 1991-06-05 Nec Corp 仮想計算機システムのos間入出力装置共用方式
JP2006099331A (ja) * 2004-09-29 2006-04-13 Sony Corp 情報処理装置、割り込み処理制御方法、並びにコンピュータ・プログラム
JP2008065713A (ja) * 2006-09-08 2008-03-21 Canon Inc マルチプロセッサシステム及び割込み制御方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012216092A (ja) * 2011-03-31 2012-11-08 Fujitsu Ltd リソース抑制プログラム、リソース監視プログラム、リソース抑制装置、リソース監視装置、リソース抑制方法、リソース監視方法及びリソース抑制システム

Also Published As

Publication number Publication date
JP4877317B2 (ja) 2012-02-15

Similar Documents

Publication Publication Date Title
JP4747307B2 (ja) ネットワーク処理制御装置,プログラムおよび方法
US10592298B2 (en) Method for distributing load in a multi-core system
EP3457644B1 (en) Transfer device, transfer method, and computer-readable medium
US8056083B2 (en) Dividing a computer job into micro-jobs for execution
KR101680109B1 (ko) 복수 코어 장치 및 그의 로드 조정 방법
JP5099090B2 (ja) マルチコアシステム、マルチコアシステムの制御方法、及びマルチプロセッサ
WO2009147802A1 (ja) 優先度制御装置及び優先度制御方法
JP2007041720A (ja) ジョブステップ実行プログラムおよびジョブステップ実行方法
US9389921B2 (en) System and method for flexible device driver resource allocation
JP2003298599A (ja) 分散制御方法及び装置
JP2008129846A (ja) データ処理装置、データ処理方法およびプログラム
US9389923B2 (en) Information processing device and method for controlling information processing device
EP3306866B1 (en) Message processing method, device and system
US9367349B2 (en) Multi-core system and scheduling method
US20060184942A1 (en) System, method and medium for using and/or providing operating system information to acquire a hybrid user/operating system lock
JP4811260B2 (ja) プログラマブルコントローラ、及びその支援装置
CN106095548B (zh) 一种多核处理器系统中分发中断的方法和装置
JP2008204243A (ja) ジョブ実行制御方法およびシステム
JP4877317B2 (ja) 情報処理装置、割り込み制御方法
JP4048638B2 (ja) スケジューリング装置及び方法並びに記録媒体
US8095695B2 (en) Control apparatus for process input-output device
KR20160061726A (ko) 인터럽트 핸들링 방법
JP4363417B2 (ja) コンピュータ装置およびコンピュータ制御方法
CN114116203B (zh) 一种资源调用控制方法、资源调用控制装置及存储介质
US8869171B2 (en) Low-latency communications

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111031

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20111101

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

R150 Certificate of patent or registration of utility model

Ref document number: 4877317

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

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees