JP2016177385A - 情報処理装置、情報処理方法およびプログラム - Google Patents
情報処理装置、情報処理方法およびプログラム Download PDFInfo
- Publication number
- JP2016177385A JP2016177385A JP2015055437A JP2015055437A JP2016177385A JP 2016177385 A JP2016177385 A JP 2016177385A JP 2015055437 A JP2015055437 A JP 2015055437A JP 2015055437 A JP2015055437 A JP 2015055437A JP 2016177385 A JP2016177385 A JP 2016177385A
- Authority
- JP
- Japan
- Prior art keywords
- state
- transition
- information processing
- unit
- processing apparatus
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
【課題】デッドロックの発生を抑制できる情報処理装置、情報処理方法およびプログラムを提供する。【解決手段】情報処理装置で稼働しているシステムの現在状態と、前記システムの遷移先の状態を示す目標状態と、を記憶する第1記憶手段と、イベント通知手段から、特定の状態に遷移する条件が充足した旨を示すイベント通知を受けた場合、前記現在状態と前記目標状態とが一致するか否かを判定する判定手段と、前記判定手段によって、前記システムの前記現在状態と前記目標状態とが不一致であると判定された場合、前記システムを前記特定の状態に遷移させない排他制御を行う制御手段と、を備える。【選択図】図2
Description
本発明は、情報処理装置、情報処理方法およびプログラムに関する。
システムの状態遷移が行われる際に、状態遷移が完了するまでの過渡状態では移行前および移行後のどちらの状態とも取れない状態になる。そのため、状態遷移中のタイミングでの状態遷移要求によって、異常な状態遷移が発生してしまう可能性がある。これを防ぐために状態遷移中は排他制御を行うことで、状態遷移が完了するまでは状態遷移要求を受け付けないようにすることが既に知られている。このような排他制御を行うために、システムの状態遷移の排他の要否を確認する技術が提案されている(特許文献1参照)。
しかしながら、システムが巨大化するに伴い、状態遷移図も複雑になり、排他制御も複雑になるため、新しい状態が追加されるたびに、デッドロックが発生する可能性が増大してしまうという問題がある。特許文献1に記載された技術では、この問題が解消されない。
本発明は、上記に鑑みてなされたものであって、デッドロックの発生を抑制できる情報処理装置、情報処理方法およびプログラムを提供することを目的とする。
上述した課題を解決し、目的を達成するために、本発明は、情報処理装置で稼働しているシステムの現在状態と、前記システムの遷移先の状態を示す目標状態と、を記憶する第1記憶手段と、イベント通知手段から、特定の状態に遷移する条件が充足した旨を示すイベント通知を受けた場合、前記現在状態と前記目標状態とが一致するか否かを判定する判定手段と、前記判定手段によって、前記システムの前記現在状態と前記目標状態とが不一致であると判定された場合、前記システムを前記特定の状態に遷移させない排他制御を行う制御手段と、を備えたことを特徴とする。
本発明によれば、デッドロックの発生を抑制できる。
以下に、図面を参照しながら、本発明に係る情報処理装置、情報処理方法およびプログラムの実施の形態を詳細に説明する。また、以下の実施の形態によって本発明が限定されるものではなく、以下の実施の形態における構成要素には、当業者が容易に想到できるもの、実質的に同一のもの、およびいわゆる均等の範囲のものが含まれる。さらに、以下の実施の形態の要旨を逸脱しない範囲で構成要素の種々の省略、置換、変更および組み合わせを行うことができる。
(情報処理装置のハードウェア構成)
図1は、実施の形態に係る情報処理装置のハードウェア構成の一例を示す図である。図1を参照しながら、本実施の形態の情報処理装置1のハードウェア構成について説明する。
図1は、実施の形態に係る情報処理装置のハードウェア構成の一例を示す図である。図1を参照しながら、本実施の形態の情報処理装置1のハードウェア構成について説明する。
図1に示すように、情報処理装置1は、CPU(Central Processing Unit)10と、ROM(Read Only Memory)11と、RAM(Random Access Memory)12と、補助記憶装置13と、通信I/F14と、入力装置15と、表示装置16と、CD−ROM(Compact Disc Read Only Memory)ドライブ18と、を備えている。上述の各部は、バス19によって接続され、互いにデータの通信が可能となっている。
CPU10は、情報処理装置1の各部の動作を制御する演算装置である。ROM11は、CPU10が各機能を制御するために実行するプログラムを記憶する不揮発性記憶装置である。RAM12は、CPU10のワークメモリ等として機能する揮発性記憶装置である。
補助記憶装置13は、CPU10で実行されるプログラム等の各種データ等を蓄積して記憶する不揮発性記憶装置である。補助記憶装置13は、HDD(Hard Disk Drive)、SSD(Solid State Drive)、フラッシュメモリまたは光ディスク等の電気的、磁気的または光学的に記憶可能な記憶装置である。
通信I/F14は、外部機器とLAN(Local Area Network)等のネットワークまたは無線ネットワーク等を介して通信するインターフェースである。通信I/F14は、例えば、NIC(Network Interface Card)等の通信装置によって実現される。通信I/F14は、例えば、10Base−T、100Base−TXもしくは1000Base−T等のEthernet(登録商標)に対応したインターフェースである。
入力装置15は、ユーザによってCPU10に対して所定の処理を実行させるための操作入力を受け付ける装置である。入力装置15は、例えば、マウス、キーボード、テンキー、タッチパッド、またはタッチパネルにおける操作入力機能によって実現される。
表示装置16は、CPU10により実行されているアプリケーション等の画像を表示する装置である。表示装置16は、例えば、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ、プラズマディスプレイまたは有機EL(Electroluminescence)ディスプレイ等である。
CD−ROMドライブ18は、着脱自在な記憶媒体の一例としてのCD−ROM17に対するデータの読み出しおよび書き込みを制御する装置である。なお、上述の着脱可能な記録媒体の他の例として、CD−R(Compact Disc Recordable)、DVD(Digital Versatile Disk)またはブルーレイディスク等のコンピュータで読み取り可能な記録媒体であってもよい。
なお、上述のCPU10で実行されるプログラムは、インストール可能な形式または実行可能な形式のファイルで、コンピュータで読み取り可能な記録媒体に記録して流通させてもよい。この記録媒体は、CD−ROM(Compact Disc Read Only Memory)またはSDメモリカード(Secure Digital memory card)等である。
(情報処理装置のブロック構成)
図2は、実施の形態に係る情報処理装置の機能ブロック構成の一例を示す図である。図2を参照しながら、情報処理装置1の機能ブロック構成について説明する。
図2は、実施の形態に係る情報処理装置の機能ブロック構成の一例を示す図である。図2を参照しながら、情報処理装置1の機能ブロック構成について説明する。
図2に示すように、情報処理装置1は、イベントハンドラ部100(判定手段)と、状態制御部101(制御手段)と、状態記憶部102(第1記憶手段、第2記憶手段の一例)と、システム部103と、を有する。
イベントハンドラ部100は、外部イベント通知部200(イベント通知手段の一例)から、システム部103が特定の状態に遷移する条件が充足した旨を示すイベント通知を受信した場合、システム部103の現在の状態(以下、「現在状態」と称する場合がある)と、システム部103が遷移しようとしている遷移先の状態(以下、「目標状態」と称する場合がある)とが一致するか否かは判定する機能部である。また、イベントハンドラ部100は、システム部103の現在状態と目標状態とが一致すると判定した場合、状態制御部101に、受信したイベント通知に従って、システム部103が特定の状態に遷移することを要求する状態遷移要求を、状態制御部101に送る。
状態制御部101は、イベントハンドラ部100から状態遷移要求を受け取ると、システム部103の状態を特定の状態に遷移動作させるための遷移命令を、システム部103に送る機能部である。また、状態制御部101は、状態遷移要求を受け取ると、システム部103に記憶された後述する現在状態Cを状態遷移要求が示す特定の状態に更新し、システム部103の特定の状態への遷移動作が終了すると、システム部103に記憶された後述する目標状態Tを特定の状態に更新する。また、状態制御部101は、情報処理装置1が外部イベント通知部200からイベント通知を受信しても、イベントハンドラ部100から状態遷移要求を受け取らなければ、システム部103の状態を遷移させない排他制御を行う。なお、イベントハンドラ部100は、イベント通知に基づいて、状態遷移要求を状態制御部101に送らないと判定した場合、明示的に、状態制御部101に対して、排他制御を行わせるための排他要求を送るものとしてもよい。
状態記憶部102は、図2に示すように、システム部103の現在状態および目標状態の情報を、それぞれ現在状態Cおよび目標状態Tとして記憶する機能部である。状態記憶部102は、例えば、図1に示すRAM12または補助記憶装置13によって実現される。
システム部103は、図1に示すCPU10で実行されるプログラムによって実現される特定の処理を行うためのシステムである。また、システム部103は、後述する状態遷移図等で示すように、ある特定の状態を取り得る。また、システム部103は、状態制御部101から、特定の状態に遷移動作する遷移命令を受けると、特定の状態に遷移動作し、遷移動作が終了すると、遷移動作が完了した旨を示す遷移完了を状態制御部101へ送る。ここで、システム部103が取り得る特定の状態とは、システム部103が、例えば、ある物理量を計測するアプリケーションである場合、「物理量の計測中」、「物理量の計測動作の一時停止中」および「物理量の計測開始の待機中」等の各状態が該当する。
外部イベント通知部200は、システム部103が特定の状態に遷移する条件が充足した旨を示すイベント通知を情報処理装置1に送信する機能部である。なお、外部イベント通知部200は、図2に示すように、情報処理装置1の外部の機能部として示されているが、これに限定されるものではなく、情報処理装置1の内部の機能部であってもよい。また、イベント通知としては、例えば、システム部103であるアプリケーションに対して、特定の状態に遷移(例えば、上述のアプリケーションの例で「物理量の計測開始の待機中」から「物理量の計測中」に遷移)させるためのユーザによる入力装置15に対する操作入力の信号等が、イベント通知としてイベントハンドラ部100に送られる。
なお、図2に示すイベントハンドラ部100、および状態制御部101の一部または全部は、ソフトウェアであるプログラムではなく、ハードウェア回路によって実現されてもよい。
また、イベントハンドラ部100、状態制御部101および状態記憶部102は、機能を概念的に示したものであって、このような構成に限定されるものではない。例えば、図2で独立した機能部として図示した複数の機能部を、1つの機能部として構成してもよい。一方、図2の1つの機能部が有する機能を複数に分割し、複数の機能部として構成するものとしてもよい。
(排他区間の拡張について)
図3は、排他制御区間を拡張する例を説明する図である。図4は、排他制御区間を拡張する前の排他処理の一例を示すフローチャートである。図5は、排他制御区間を拡張した後の排他処理の一例を示すフローチャートである。図3〜5を参照しながら、排他制御の区間が拡張される前後の排他処理について説明する。
図3は、排他制御区間を拡張する例を説明する図である。図4は、排他制御区間を拡張する前の排他処理の一例を示すフローチャートである。図5は、排他制御区間を拡張した後の排他処理の一例を示すフローチャートである。図3〜5を参照しながら、排他制御の区間が拡張される前後の排他処理について説明する。
図3に示すように、排他処理αは、特定の区間で排他制御を行う。すなわち、排他処理αは、所定のタイミングでロックを取得することにより、システムが特定の状態に遷移しないようにロックをかける。そして、排他処理αは、ロックをかけてから特定の区間の終了時に、アンロック、すなわちロックを解放する。この排他処理αを、図4に示すように、上述の現在状態Cおよび目標状態Tを用いて、説明する。特定の区間の前では、現在状態Cおよび目標状態Tは、アンロック状態であるものとする。
<ステップS101>
排他処理αは、所定のタイミング(特定の区間の開始のタイミング)でロックを取得し、システムが特定の状態に遷移しないようにロックをかける。また、排他処理αは、目標状態Tをロック状態Lに更新する(T:L)。また、排他処理αは、現在状態Cと目標状態Tとが一致しないことになるので排他制御を行う。そして、ステップS102へ移行する。
排他処理αは、所定のタイミング(特定の区間の開始のタイミング)でロックを取得し、システムが特定の状態に遷移しないようにロックをかける。また、排他処理αは、目標状態Tをロック状態Lに更新する(T:L)。また、排他処理αは、現在状態Cと目標状態Tとが一致しないことになるので排他制御を行う。そして、ステップS102へ移行する。
<ステップS102>
排他処理αは、システムに対してロックをかけてから特定の区間の終了のタイミングでアンロック、すなわち、ロックを解放する。また、排他処理αは、目標状態Tをアンロック状態Uに更新する(T:U)。
排他処理αは、システムに対してロックをかけてから特定の区間の終了のタイミングでアンロック、すなわち、ロックを解放する。また、排他処理αは、目標状態Tをアンロック状態Uに更新する(T:U)。
次に、図3に示すように、排他処理βによって、排他制御を行う特定の区間を拡張した場合を考える。この場合、排他処理αでのロック処理およびアンロック処理は不要となり、デッドロックを回避するために削除、または、すでにロック状態になっている場合には、ロックを取得しないような処理を追加する必要がある。なお、排他制御を行う区間を縮小する場合も同様である。
このように、排他制御を行う区間を変更するたびに処理を修正することは、手間もかかり、かつ、デッドロックが混入する要因となる。この問題は、上述したように、システムについて現在状態Cおよび目標状態Tの概念を採用することにより回避することができる。すなわち、排他処理βは、現在状態Cと目標状態Tとが一致しない場合、システムに対して排他制御をかける。また、排他処理βは、目標状態Tを変更する場合、既に、目的の状態に設定されている場合は、何も行わないものとする。この排他処理βについて、図5に示すように、現在状態Cおよび目標状態Tを用いて、説明する。拡張された排他制御の区間の前では、現在状態Cおよび目標状態Tは、アンロック状態であるものとする。
<ステップS111>
排他処理βは、所定のタイミング(拡張された排他制御の区間の開始のタイミング)でロックを取得し、システムが特定の状態に遷移しないようにロックをかける。また、排他処理βは、目標状態Tをロック状態Lに更新する(T:L)。そして、ステップS112へ移行する。
排他処理βは、所定のタイミング(拡張された排他制御の区間の開始のタイミング)でロックを取得し、システムが特定の状態に遷移しないようにロックをかける。また、排他処理βは、目標状態Tをロック状態Lに更新する(T:L)。そして、ステップS112へ移行する。
<ステップS112>
排他処理αは、本来であれば、目標状態Tをロック状態Lに更新するが、既に、排他処理βにより目標状態Tがロック状態Lに更新されているので、何もしない。そして、ステップS113へ移行する。
排他処理αは、本来であれば、目標状態Tをロック状態Lに更新するが、既に、排他処理βにより目標状態Tがロック状態Lに更新されているので、何もしない。そして、ステップS113へ移行する。
<ステップS113>
排他処理αは、本来であれば、目標状態Tをアンロック状態Uに更新するが、ステップS112でロックをかける処理をしていないので、何もしない。そして、ステップS114へ移行する。
排他処理αは、本来であれば、目標状態Tをアンロック状態Uに更新するが、ステップS112でロックをかける処理をしていないので、何もしない。そして、ステップS114へ移行する。
<ステップS114>
排他処理βは、システムに対してロックをかけてから、拡張された排他制御の区間の終了のタイミングでアンロック、すなわち、ロックを解放する。また、排他処理βは、目標状態Tをアンロック状態Uに更新する(T:U)。
排他処理βは、システムに対してロックをかけてから、拡張された排他制御の区間の終了のタイミングでアンロック、すなわち、ロックを解放する。また、排他処理βは、目標状態Tをアンロック状態Uに更新する(T:U)。
以上の動作のように、排他処理βでは、排他処理αを意識することなく、排他制御の区間の拡張または縮小を行うことができるので、デッドロックの発生を抑制することができる。
(状態遷移について)
図6は、状態遷移図の例を示す図である。図7は、状態遷移表の例を示す図である。図6および7を参照しながら、システム部103における状態遷移について説明する。
図6は、状態遷移図の例を示す図である。図7は、状態遷移表の例を示す図である。図6および7を参照しながら、システム部103における状態遷移について説明する。
本実施の形態に係る情報処理装置1のシステム部103は、例えば、図6に示す状態遷移図に基づいて、状態が遷移するものとする。すなわち、システム部103は、状態aである場合、状態bおよび状態dに遷移することが可能である。また、システム部103は、状態bである場合、状態aおよび状態cに遷移することが可能である。また、システム部103は、状態cである場合、状態bに遷移することが可能である。そして、システム部103は、状態dである場合、状態aに遷移することが可能である。このようなシステム部103が遷移し得る状態をイベントハンドラ部100が認識できるように、例えば、図7に示すような状態遷移表1000のデータを、状態記憶部102に記憶しておくものとする。
(具体的な排他制御の動作)
図8は、実施の形態に係る情報処理装置での状態遷移動作を説明する図である。図9は、実施の形態に係る情報処理装置での状態遷移中の排他制御の動作の一例を示すシーケンス図である。図10は、実施の形態に係る情報処理装置での状態遷移中に異常な状態遷移要求を受けた場合の動作の一例を示すシーケンス図である。図8〜10を参照しながら、本実施の形態に係る情報処理装置1の具体的な状態制御の動作について説明する。
図8は、実施の形態に係る情報処理装置での状態遷移動作を説明する図である。図9は、実施の形態に係る情報処理装置での状態遷移中の排他制御の動作の一例を示すシーケンス図である。図10は、実施の形態に係る情報処理装置での状態遷移中に異常な状態遷移要求を受けた場合の動作の一例を示すシーケンス図である。図8〜10を参照しながら、本実施の形態に係る情報処理装置1の具体的な状態制御の動作について説明する。
図8に示すように、システム部103は、図6の状態遷移図に示すような状態遷移が可能である。また、外部イベント通知部200は、図8に示すように、システム部103の状態に関わらず、状態aから状態b、dに遷移する条件、状態bから状態a、cに遷移する条件、状態cから状態bに遷移する条件、および状態dから状態aに遷移する条件の各条件が充足した場合に、その旨を示すイベント通知を情報処理装置1のイベントハンドラ部100に送信する。イベントハンドラ部100は、イベント通知を受信した場合、システム部103の現在状態と目標状態とが一致すると判定した場合、状態制御部101に、受信したイベント通知に従って、システム部103が特定の状態に遷移することを要求する状態遷移要求を、状態制御部101に送る。なお、説明を簡潔にするため、図8では状態制御部101の記載を略している。
次に、図9を参照しながら、状態遷移中に外部イベント通知部200からイベント通知が発生した場合として、状態aから状態bに遷移動作中に、状態cに遷移する条件が充足した旨を示すイベント通知が発生した場合の動作を例に説明する。初期状態として、状態記憶部102に記憶されている現在状態Cが状態a(すなわち、システム部103の現在状態が状態a)、目標状態Tが状態aとなっているものとする。
<ステップS11>
外部イベント通知部200は、システム部103の状態について、状態bへ遷移する条件が充足したことを検知し、充足した旨を示すイベント通知を、情報処理装置1のイベントハンドラ部100に送信する。
外部イベント通知部200は、システム部103の状態について、状態bへ遷移する条件が充足したことを検知し、充足した旨を示すイベント通知を、情報処理装置1のイベントハンドラ部100に送信する。
<ステップS12>
イベントハンドラ部100は、状態bへ遷移する条件が充足した旨を示すイベント通知を受信すると、システム部103が状態bに遷移することが可能か否かを判断する。具体的には、イベントハンドラ部100は、現在状態Cと目標状態Tとが共に状態aで一致することを確認し、さらに、状態記憶部102の状態遷移表1000を参照して、システム部103が状態aから状態bへ遷移可能であることを確認することによって、システム部103が状態bに遷移することが可能であると判定する。
イベントハンドラ部100は、状態bへ遷移する条件が充足した旨を示すイベント通知を受信すると、システム部103が状態bに遷移することが可能か否かを判断する。具体的には、イベントハンドラ部100は、現在状態Cと目標状態Tとが共に状態aで一致することを確認し、さらに、状態記憶部102の状態遷移表1000を参照して、システム部103が状態aから状態bへ遷移可能であることを確認することによって、システム部103が状態bに遷移することが可能であると判定する。
<ステップS13>
イベントハンドラ部100は、システム部103の状態を状態bに遷移することを要求する状態遷移要求を、状態制御部101に送る。
イベントハンドラ部100は、システム部103の状態を状態bに遷移することを要求する状態遷移要求を、状態制御部101に送る。
<ステップS14>
状態制御部101は、状態遷移要求を受け取ると、システム部103の目標状態Tを状態遷移要求が示す状態bに更新し、状態bに遷移動作させるための遷移命令を、システム部103に送る。システム部103は、遷移命令に従って、状態aから状態bへの遷移動作を開始する。
状態制御部101は、状態遷移要求を受け取ると、システム部103の目標状態Tを状態遷移要求が示す状態bに更新し、状態bに遷移動作させるための遷移命令を、システム部103に送る。システム部103は、遷移命令に従って、状態aから状態bへの遷移動作を開始する。
<ステップS15>
システム部103が状態bへの遷移動作中に、外部イベント通知部200は、システム部103の状態について、状態cへ遷移する条件が充足したことを検知し、充足した旨を示すイベント通知を、イベントハンドラ部100に送信する。
システム部103が状態bへの遷移動作中に、外部イベント通知部200は、システム部103の状態について、状態cへ遷移する条件が充足したことを検知し、充足した旨を示すイベント通知を、イベントハンドラ部100に送信する。
<ステップS16>
イベントハンドラ部100は、状態cへ遷移する条件が充足した旨を示すイベント通知を受信すると、システム部103が状態cに遷移することが可能か否かを判断する。具体的には、イベントハンドラ部100は、状態記憶部102の状態遷移表1000を参照して、システム部103が状態bから状態cへ遷移可能であることを確認する。ただし、イベントハンドラ部100は、現在状態Cが状態aで、目標状態Tが状態bで不一致であるので、システム部103が状態遷移中であるとみなし、イベント通知を無視する。なお、システム部103によっては必ずしも無視する必要はなく、状態遷移が完了するまで処理を後回しにしてもよい。
イベントハンドラ部100は、状態cへ遷移する条件が充足した旨を示すイベント通知を受信すると、システム部103が状態cに遷移することが可能か否かを判断する。具体的には、イベントハンドラ部100は、状態記憶部102の状態遷移表1000を参照して、システム部103が状態bから状態cへ遷移可能であることを確認する。ただし、イベントハンドラ部100は、現在状態Cが状態aで、目標状態Tが状態bで不一致であるので、システム部103が状態遷移中であるとみなし、イベント通知を無視する。なお、システム部103によっては必ずしも無視する必要はなく、状態遷移が完了するまで処理を後回しにしてもよい。
<ステップS17>
状態制御部101は、システム部103の遷移動作が終了し、システム部103から遷移完了の旨を受けると、システム部103の現在状態Cを状態遷移要求が示す状態bに更新する。
状態制御部101は、システム部103の遷移動作が終了し、システム部103から遷移完了の旨を受けると、システム部103の現在状態Cを状態遷移要求が示す状態bに更新する。
このように、イベントハンドラ部100は、現在状態Cと目標状態Tとの比較で、不一致の場合は、システム部103が状態遷移中とみなして、イベント通知を無視または処理を後回しにすることにより、イベント通知を無視するロジックを追加する必要がなく、状態が追加されるたびにそのロジックを追加する必要もないので、ロジックの誤りおよび漏れによる不具合の発生を抑制することができる。
次に、図10を参照しながら、状態遷移中に外部イベント通知部200からイベント通知が発生した場合として、状態aから状態bに遷移動作中に、状態dに遷移する条件が充足した旨を示すイベント通知が発生した場合の動作を例に説明する。初期状態として、状態記憶部102に記憶されている現在状態Cが状態a(すなわち、システム部103の現在状態が状態a)、目標状態Tが状態aとなっているものとする。
<ステップS21>
外部イベント通知部200は、システム部103の状態について、状態bへ遷移する条件が充足したことを検知し、充足した旨を示すイベント通知を、情報処理装置1のイベントハンドラ部100に送信する。
外部イベント通知部200は、システム部103の状態について、状態bへ遷移する条件が充足したことを検知し、充足した旨を示すイベント通知を、情報処理装置1のイベントハンドラ部100に送信する。
<ステップS22>
イベントハンドラ部100は、状態bへ遷移する条件が充足した旨を示すイベント通知を受信すると、システム部103が状態bに遷移することが可能か否かを判断する。具体的には、イベントハンドラ部100は、現在状態Cと目標状態Tとが共に状態aで一致することを確認し、さらに、状態記憶部102の状態遷移表1000を参照して、システム部103が状態aから状態bへ遷移可能であることを確認することによって、システム部103が状態bに遷移することが可能であると判定する。
イベントハンドラ部100は、状態bへ遷移する条件が充足した旨を示すイベント通知を受信すると、システム部103が状態bに遷移することが可能か否かを判断する。具体的には、イベントハンドラ部100は、現在状態Cと目標状態Tとが共に状態aで一致することを確認し、さらに、状態記憶部102の状態遷移表1000を参照して、システム部103が状態aから状態bへ遷移可能であることを確認することによって、システム部103が状態bに遷移することが可能であると判定する。
<ステップS23>
イベントハンドラ部100は、システム部103の状態を状態bに遷移することを要求する状態遷移要求を、状態制御部101に送る。
イベントハンドラ部100は、システム部103の状態を状態bに遷移することを要求する状態遷移要求を、状態制御部101に送る。
<ステップS24>
状態制御部101は、状態遷移要求を受け取ると、システム部103の目標状態Tを状態遷移要求が示す状態bに更新し、状態bに遷移動作させるための遷移命令を、システム部103に送る。システム部103は、遷移命令に従って、状態aから状態bへの遷移動作を開始する。
状態制御部101は、状態遷移要求を受け取ると、システム部103の目標状態Tを状態遷移要求が示す状態bに更新し、状態bに遷移動作させるための遷移命令を、システム部103に送る。システム部103は、遷移命令に従って、状態aから状態bへの遷移動作を開始する。
<ステップS25>
システム部103が状態bへの遷移動作中に、外部イベント通知部200は、システム部103の状態について、状態dへ遷移する条件が充足したことを検知し、充足した旨を示すイベント通知を、イベントハンドラ部100に送信する。
システム部103が状態bへの遷移動作中に、外部イベント通知部200は、システム部103の状態について、状態dへ遷移する条件が充足したことを検知し、充足した旨を示すイベント通知を、イベントハンドラ部100に送信する。
<ステップS26>
イベントハンドラ部100は、状態dへ遷移する条件が充足した旨を示すイベント通知を受信すると、システム部103が状態dに遷移することが可能か否かを判断する。具体的には、イベントハンドラ部100は、現在状態Cが状態aで、目標状態Tが状態bで不一致であり、かつ、状態記憶部102の状態遷移表1000を参照して、システム部103が状態bから状態dへ遷移することができないことを確認する。したがって、イベントハンドラ部100は、状態dへ遷移する条件が充足した旨を示すイベント通知のように、状態bから状態dへの状態遷移は異常な遷移であることを検知する。この場合、イベントハンドラ部100は、状態制御部101に対して、状態遷移要求を送らない。なお、イベントハンドラ部100は、異常な遷移を求めるイベント通知であるものとして、例えば、表示装置16にその旨を表示させるものとしてもよい。
イベントハンドラ部100は、状態dへ遷移する条件が充足した旨を示すイベント通知を受信すると、システム部103が状態dに遷移することが可能か否かを判断する。具体的には、イベントハンドラ部100は、現在状態Cが状態aで、目標状態Tが状態bで不一致であり、かつ、状態記憶部102の状態遷移表1000を参照して、システム部103が状態bから状態dへ遷移することができないことを確認する。したがって、イベントハンドラ部100は、状態dへ遷移する条件が充足した旨を示すイベント通知のように、状態bから状態dへの状態遷移は異常な遷移であることを検知する。この場合、イベントハンドラ部100は、状態制御部101に対して、状態遷移要求を送らない。なお、イベントハンドラ部100は、異常な遷移を求めるイベント通知であるものとして、例えば、表示装置16にその旨を表示させるものとしてもよい。
このように、イベントハンドラ部100は、現在状態Cと目標状態Tとの比較で、不一致の場合、状態遷移表1000から目標状態Tの状態から、イベント通知の状態へは遷移できないと確認した場合、異常な遷移であるものとして検知することができる。図9および10の例のように、現在状態Cと目標状態Tとを利用し、不一致の場合は、状態遷移中であるものとみなし、状態を遷移させない排他制御を実行することによって、デッドロックの発生を抑制することができる。
なお、イベントハンドラ部100によって、異常な遷移が検知された場合は、システム部103を強制的に特定の状態(例えば、システム部103の初期状態)に遷移させ、初期化処理を行うものとしてもよい。これによって、システム部103をリカバリーすることができる可能性がある。
また、イベントハンドラ部100は、外部イベント通知部200からのイベント通知が示す状態が、現在状態Cまたは目標状態Tと一致する場合に、システム部103の状態を遷移させないようにしてもよい。また、イベントハンドラ部100は、現在状態Cと目標状態Tとが一致する場合であっても、状態遷移表1000の参照により、現在状態Cからイベント通知が示す状態には遷移できない場合、状態遷移要求を送らないようにしてもよい。この場合も、上述と同様に、異常な遷移を検知したとして扱うものとしてもよい。
なお、上述のイベントハンドラ部100、および状態制御部101のうち少なくともいずれかがプログラムで実現される場合、情報処理装置1で実行されるそのプログラムは、インストール可能な形式または実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−RまたはDVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録してコンピュータプログラムプロダクトとして提供される。
また、上述の実施の形態に係る情報処理装置1で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、上述の実施の形態に係る情報処理装置1で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。また、上述のプログラムを、ROM等に予め組み込んで提供するように構成してもよい。
また、上述の実施の形態に係る情報処理装置1で実行されるプログラムは、上述したイベントハンドラ部100、および状態制御部101のうち少なくともいずれかを含むモジュール構成となっていてもよく、実際のハードウェアとしてはCPU10が上述の記憶媒体からプログラムを読み出して実行することにより、上述の各機能部が主記憶装置上にロードされて生成されるようになっている。
1 情報処理装置
10 CPU
11 ROM
12 RAM
13 補助記憶装置
14 通信I/F
15 入力装置
16 表示装置
17 CD−ROM
18 CD−ROMドライブ
19 バス
100 イベントハンドラ部
101 状態制御部
102 状態記憶部
103 システム部
200 外部イベント通知部
1000 状態遷移表
C 現在状態
T 目標状態
10 CPU
11 ROM
12 RAM
13 補助記憶装置
14 通信I/F
15 入力装置
16 表示装置
17 CD−ROM
18 CD−ROMドライブ
19 バス
100 イベントハンドラ部
101 状態制御部
102 状態記憶部
103 システム部
200 外部イベント通知部
1000 状態遷移表
C 現在状態
T 目標状態
Claims (8)
- 情報処理装置で稼働しているシステムの現在状態と、前記システムの遷移先の状態を示す目標状態と、を記憶する第1記憶手段と、
イベント通知手段から、特定の状態に遷移する条件が充足した旨を示すイベント通知を受けた場合、前記現在状態と前記目標状態とが一致するか否かを判定する判定手段と、
前記判定手段によって、前記システムの前記現在状態と前記目標状態とが不一致であると判定された場合、前記システムを前記特定の状態に遷移させない排他制御を行う制御手段と、
を備えた情報処理装置。 - 前記判定手段は、さらに、前記特定の状態が、前記現在状態または前記目標状態と一致するか否かを判定し、
前記制御手段は、前記判定手段によって、前記特定の状態が、前記現在状態または前記目標状態と一致すると判定された場合、前記排他制御を行う請求項1に記載の情報処理装置。 - 前記システムの状態の流れを示す状態遷移情報を記憶する第2記憶手段を、さらに備え、
前記判定手段は、さらに、前記状態遷移情報に基づいて前記システムが前記特定の状態に遷移することが可能であるか否かを判定し、
前記制御手段は、
前記判定手段によって、前記システムの前記現在状態と前記目標状態とが一致していると判定された場合、かつ、前記状態遷移情報に基づいて前記システムが前記特定の状態に遷移することが可能であると判定された場合、前記システムを前記特定の状態に遷移させる遷移動作を行い、
前記遷移動作の開始時に、前記第1記憶手段に記憶された前記目標状態を前記特定の状態で更新し、前記遷移動作の終了時に、前記第1記憶手段に記憶された前記現在状態を前記特定の状態で更新する請求項1または2に記載の情報処理装置。 - 前記制御手段は、前記判定手段によって、前記システムの前記現在状態と前記目標状態とが不一致であると判定され、かつ、前記状態遷移情報に基づいて前記システムが前記目標状態の状態であるとした場合に前記特定の状態に遷移することができないと判定された場合、前記特定の状態への遷移は異常と判断して前記排他制御を行う請求項3に記載の情報処理装置。
- 前記制御手段は、前記判定手段によって、前記システムの前記現在状態と前記目標状態とが一致していると判定され、かつ、前記状態遷移情報に基づいて前記システムが前記現在状態から前記特定の状態に遷移することができないと判定された場合、前記排他制御を行う請求項3に記載の情報処理装置。
- 前記制御手段は、前記排他制御を行うと共に、前記システムを所定の状態に遷移させる請求項4または5に記載の情報処理装置。
- イベント通知手段から、情報処理装置で稼働しているシステムが特定の状態に遷移する条件が充足した旨を示すイベント通知を受けた場合、記憶手段に記憶された前記システムの現在状態と、前記システムの遷移先の状態を示す目標状態とが一致するか否かを判定する判定ステップと、
前記システムの前記現在状態と前記目標状態とが不一致であると判定した場合、前記システムを前記特定の状態に遷移させない排他制御を行う制御ステップと、
を有する情報処理方法。 - イベント通知手段から、コンピュータで稼働しているシステムが特定の状態に遷移する条件が充足した旨を示すイベント通知を受けた場合、記憶手段に記憶された前記システムの現在状態と、前記システムの遷移先の状態を示す目標状態とが一致するか否かを判定する判定手段と、
前記判定手段によって、前記システムの前記現在状態と前記目標状態とが不一致であると判定された場合、前記システムを前記特定の状態に遷移させない排他制御を行う制御手段と、
をコンピュータに実現させるためのプログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015055437A JP2016177385A (ja) | 2015-03-18 | 2015-03-18 | 情報処理装置、情報処理方法およびプログラム |
US15/067,896 US10185602B2 (en) | 2015-03-18 | 2016-03-11 | Information processing apparatus, information processing method, and computer program product |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015055437A JP2016177385A (ja) | 2015-03-18 | 2015-03-18 | 情報処理装置、情報処理方法およびプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2016177385A true JP2016177385A (ja) | 2016-10-06 |
Family
ID=56925237
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015055437A Pending JP2016177385A (ja) | 2015-03-18 | 2015-03-18 | 情報処理装置、情報処理方法およびプログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US10185602B2 (ja) |
JP (1) | JP2016177385A (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9924059B2 (en) * | 2016-01-13 | 2018-03-20 | Ricoh Company, Ltd. | Apparatus having power-saving function, method of processing information, and computer program product |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006081669A (ja) | 2004-09-15 | 2006-03-30 | Olympia:Kk | 遊技機 |
US7877485B2 (en) * | 2005-12-02 | 2011-01-25 | International Business Machines Corporation | Maintaining session states within virtual machine environments |
GB2441351B (en) * | 2006-09-01 | 2010-12-08 | 3Com Corp | Positionally dependent pattern checking in character strings using deterministic finite automata |
WO2008062505A1 (fr) * | 2006-11-20 | 2008-05-29 | Kabushiki Kaisha Miyanaga | Pointe superdure et son procédé de fabrication |
US9524256B2 (en) * | 2007-02-16 | 2016-12-20 | Nxp Usa, Inc. | Request controller, processing unit, arrangement, method for controlling requests and computer program product |
US8161366B2 (en) * | 2007-12-03 | 2012-04-17 | International Business Machines Corporation | Finite state machine error recovery |
JP2009157751A (ja) | 2007-12-27 | 2009-07-16 | Daikin Ind Ltd | ソフトウェア開発支援装置 |
JP2010026575A (ja) | 2008-07-15 | 2010-02-04 | Nec Electronics Corp | スケジューリング方法およびスケジューリング装置並びにマルチプロセッサシステム |
WO2011096163A1 (ja) | 2010-02-03 | 2011-08-11 | 日本電気株式会社 | 情報処理システム、排他制御方法および排他制御用プログラム |
JP5958088B2 (ja) * | 2012-05-29 | 2016-07-27 | 富士通株式会社 | 更新プログラム、更新方法、および更新装置 |
-
2015
- 2015-03-18 JP JP2015055437A patent/JP2016177385A/ja active Pending
-
2016
- 2016-03-11 US US15/067,896 patent/US10185602B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US10185602B2 (en) | 2019-01-22 |
US20160274958A1 (en) | 2016-09-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11606414B2 (en) | System and method for transferring states between electronic devices | |
US9948520B2 (en) | Efficiently determining network topology | |
US9461822B2 (en) | Image forming apparatus, control method, and storage medium | |
JP2015156055A (ja) | 情報処理装置、情報処理方法 | |
JP5751121B2 (ja) | 情報処理装置、情報処理方法およびプログラム | |
US10616326B2 (en) | Controlling sharing of resource among a plurality of nodes | |
JP2016177385A (ja) | 情報処理装置、情報処理方法およびプログラム | |
JP7367471B2 (ja) | 情報処理装置、ファイル保証方法、及びファイル保証プログラム | |
JP6602517B1 (ja) | 通信システム、リスト配信局、通信方法、および通信プログラム | |
JP2017027240A (ja) | ジョブ処理システム、ジョブ処理装置及びジョブ処理プログラム | |
US10367781B2 (en) | Information processing apparatus, method of controlling the same, and storage medium | |
JP2009238113A (ja) | 設計支援システム、設計支援方法、及び設計支援プログラム | |
US20170301574A1 (en) | Recipe id management server, recipe id management system, and terminal device | |
US11514169B2 (en) | Information processing apparatus, method of controlling information processing apparatus, and storage medium | |
JP2014167778A (ja) | 電子機器、及びアプリケーション記憶プログラム | |
US10853003B2 (en) | Method of managing print jobs based on job identification of the print jobs in printing system and apparatus for performing the same | |
JP5673294B2 (ja) | 通信管理装置 | |
EP3070610B1 (en) | Information processing device, control method thereof, and recording medium | |
JP2016178405A (ja) | 情報処理装置、情報処理システム及びプログラム | |
US20080201443A1 (en) | Computer and control method thereof | |
JP2019016987A (ja) | 通信システム、管理装置、端末装置、通信方法、及びプログラム | |
US20200379662A1 (en) | Systems and methods for implementing improved links between paths of one or more file systems | |
JP6455178B2 (ja) | 情報処理装置及び情報処理プログラム | |
US11968220B2 (en) | Systems and methods for performing failover during a cyberattack | |
US20230195902A1 (en) | Systems and methods for protecting data during synchronization |