JP4611397B2 - 排他実行制御装置及び排他実行制御プログラム - Google Patents

排他実行制御装置及び排他実行制御プログラム Download PDF

Info

Publication number
JP4611397B2
JP4611397B2 JP2008089386A JP2008089386A JP4611397B2 JP 4611397 B2 JP4611397 B2 JP 4611397B2 JP 2008089386 A JP2008089386 A JP 2008089386A JP 2008089386 A JP2008089386 A JP 2008089386A JP 4611397 B2 JP4611397 B2 JP 4611397B2
Authority
JP
Japan
Prior art keywords
execution control
task
exclusive execution
exclusive
executed
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.)
Expired - Fee Related
Application number
JP2008089386A
Other languages
English (en)
Other versions
JP2009245055A (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 Information Systems Corp
Original Assignee
Mitsubishi Electric Information Systems 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 Information Systems Corp filed Critical Mitsubishi Electric Information Systems Corp
Priority to JP2008089386A priority Critical patent/JP4611397B2/ja
Publication of JP2009245055A publication Critical patent/JP2009245055A/ja
Application granted granted Critical
Publication of JP4611397B2 publication Critical patent/JP4611397B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、排他実行制御装置及び排他実行制御プログラムに関するものである。本発明は、特に、マルチタスクOS(オペレーティングシステム)での相互並行実行ができないプロセスを含む複数のプロセスが分離不可能な形式で組み合わされたタスクが複数存在する場合における、異なるタスク内の、相互並行実行ができないプロセス同士の排他制御機能に関するものである。
従来、複数のプログラムを直列的に実行するように構成しているスクリプトを解析し、並列的に実行可能なプログラムを検出し、検出したプログラムについては並列的に実行するように当該スクリプトを再構成する技術があった(例えば、特許文献1、2参照)。
特表2003−529808号公報 特開2001−125872号公報
マルチタスクOS(オペレーティングシステム)は、複数のプロセスを所定の順序で実行するタスクを2個以上同時に実行可能なOSである。ここで、タスクの一例を図1(i)に示す。また、マルチタスクOSが備える既存のジョブスケジューラ(「タスクスケジューラ」ともいう)が、図1(i)に示したタスクを実行制御した場合の各プロセスの実行タイミングを図2に示す。
図1(i)において、タスクαはプロセスA1、B1、C1を含み、タスクβはプロセスA2、B2、C2を含み、タスクγはプロセスA3、B3、C3を含む。タスクαでは各プロセスがA1、B1、C1の順番に実行される。プロセスA1、B1、C1を別々のタスクに分離したり、順番を入れ替えたりすることはできないものとする。つまり、プロセスA1、B1、C1は分離不可能なプロセスである。タスクβでも分離不可能なプロセスがA2、B2、C2の順番に実行され、タスクγでも分離不可能なプロセスがA3、B3、C3の順番に実行されるものとする。図中、プロセスを示すブロックの幅はプロセスの実行時間を示している。また、ブロック内の文字列(例えば「A1」)はプロセス名称を示している。プロセス名称を白抜きで表しているものがあるが(例えば「B1」)、これは、当該プロセスが同時に実行できないものであること、即ち、相互に排他制御の必要なプロセスであることを示している。
例えば、プロセスA1とB1が、あるデータを第1のシステムから第2のシステムへ移行する際に、共通の変数を利用して当該データの形式の変換処理を行うプロセスである場合、これらは分離不可能なプロセスである。同様に、プロセスA2とB2が、あるデータを第3のシステムから第4のシステムへ移行する際に、共通の変数を利用して当該データの形式の変換処理を行うプロセスである場合、これらは分離不可能なプロセスである。このとき、プロセスB1とB2が、それぞれの変換処理を行う際に、メモリ内の同じ領域を利用してデータの書き込みなどを行う場合、これらは相互に排他制御の必要なプロセスに該当する。
図2において、ジョブスケジューラは、同時並行稼働が不可能なプロセスB1、B2、B3について排他実行制御を行うのにあわせて、同時並行稼働が可能なプロセスA1、A2、A3、C1、C2、C3も含むタスクα1、β1、γ1全体について排他実行制御を行っている(なお、タスクαが複数回実行されるとき、1番目に実行されたタスクαをα1、2番目に実行されたタスクαをα2、・・・とする。タスクβ、γについても同様である)。具体的には、ジョブスケジューラは、タスクα1、β1、γ1が直列的に実行されるように実行制御を行っている。この場合、排他実行制御の必要なプロセスが含まれるタスクの数が多いと、全てのタスクを実行するのにかかる時間が増大し、システム性能が劣化する。
前述した従来の技術は、スクリプトで直列的に実行するように構成された複数のプログラムのうち、並列的に実行可能なものについては並列的に実行するように当該スクリプトを再構成するものであったが、分離不可能なプロセス、及び、分離不可能なプロセスを含むタスクについて利用できるものではなかった。一方、分離不可能なプロセス(例えばプロセスA1とB1)を変更して独立プロセス化し、タスクの構成を変更することにより、既存のジョブスケジューラを用いた実行制御のみでも一部のプロセスが並列的に実行されるように構成することは可能である。しかしながら、この場合、各プロセスを独立プロセス化するためのプロセス自体の修正、タスクの組み直し、ジョブスケジューラ上でのタスクの再登録など、煩雑な作業が必要になるという課題があった。
本発明は、例えば、相互並行実行ができないプロセスを含む複数のプロセスが分離不可能な形式で組み合わされたタスクが複数存在する場合に、異なるタスク内の、相互並行実行ができないプロセス同士の排他制御を行って、プロセスの修正、タスクの組み直しなどを行うことなく、一部のプロセスを並列的に実行し、全てのタスクを実行するのにかかる時間を短縮することを目的とする。
本発明の一の態様に係る排他実行制御装置は、
複数のプロセスを所定の順序で実行するタスクをn個(nはn>1となる整数)同時に実行可能なマルチタスクOS(オペレーティングシステム)に対し、プロセス間の排他実行制御を行う排他実行制御装置であって、
排他実行制御用のデータをタスクごとに格納可能な記憶領域を記憶装置内に設定する記憶領域設定部と、
n個のタスクのそれぞれに追加される第1の排他実行制御用のプロセスP1であって、タスクTに追加されたプロセスP1が起動されると当該起動時刻を示すデータを当該タスクTの排他実行制御用のデータとして前記記憶領域に格納し、前記記憶領域に格納されている排他実行制御用のデータのうち、当該タスクTの排他実行制御用のデータが最先の時刻を示すデータに該当するまで待機した後に終了するプロセスP1を生成する第1の排他実行制御用プロセス生成部と、
n個のタスクのそれぞれに追加される第2の排他実行制御用のプロセスP2であって、タスクTに追加されたプロセスP2が起動されると当該タスクTの排他実行制御用のデータを前記記憶領域から削除した後に終了するプロセスP2を生成する第2の排他実行制御用プロセス生成部と、
n個のタスクのそれぞれにて排他実行制御の対象となるプロセスの前に、前記第1の排他実行制御用プロセス生成部が生成したプロセスP1を追加し、当該排他実行制御の対象となるプロセスの後に、前記第2の排他実行制御用プロセス生成部が生成したプロセスP2を追加することで、前記マルチタスクOSにより同時に実行されるタスクにてプロセスP1の終了後に排他実行制御の対象となるプロセスが起動され、当該排他実行制御の対象となるプロセスの終了後にプロセスP2が起動されるように制御する排他実行制御部とを備えることを特徴とする。
前記排他実行制御装置は、さらに、
実行中のタスクを示すタスクリストを記憶装置内で管理するタスクリスト管理部と、
一定の時間ごとに、前記タスクリスト管理部が管理しているタスクリストを参照し、前記記憶領域に格納されている排他実行制御用のデータのうち、最先の時刻を示すデータが当該タスクリストにて実行中のタスクとして示されていないタスクの排他実行制御用のデータである場合には、当該タスクが異常終了したと判断し、当該タスクの排他実行制御用のデータを前記記憶領域から削除するタスク監視部とを備えることを特徴とする。
前記排他実行制御部は、n個のタスクのそれぞれにて排他実行制御の対象となるプロセスの直前にプロセスP1を追加し、当該排他実行制御の対象となるプロセスの直後にプロセスP2を追加することを特徴とする。
前記記憶領域は、複数のファイルを格納可能なフォルダであり、
プロセスP1は、タスクTに追加されたプロセスP1が起動されると当該起動時刻と当該タスクTの識別子とを組み合わせた名前をもつファイルを当該タスクTの排他実行制御用のデータとして前記フォルダに格納するものであることを特徴とする。
本発明の一の態様に係る排他実行制御プログラムは、
複数のプロセスを所定の順序で実行するタスクをn個(nはn>1となる整数)同時に実行可能なマルチタスクOS(オペレーティングシステム)に対し、プロセス間の排他実行制御を行う排他実行制御プログラムであって、
排他実行制御用のデータをタスクごとに格納可能な記憶領域を記憶装置内に設定する記憶領域設定処理と、
n個のタスクのそれぞれに追加される第1の排他実行制御用のプロセスP1であって、タスクTに追加されたプロセスP1が起動されると当該起動時刻を示すデータを当該タスクTの排他実行制御用のデータとして前記記憶領域に格納し、前記記憶領域に格納されている排他実行制御用のデータのうち、当該タスクTの排他実行制御用のデータが最先の時刻を示すデータに該当するまで待機した後に終了するプロセスP1を生成する第1の排他実行制御用プロセス生成処理と、
n個のタスクのそれぞれに追加される第2の排他実行制御用のプロセスP2であって、タスクTに追加されたプロセスP2が起動されると当該タスクTの排他実行制御用のデータを前記記憶領域から削除した後に終了するプロセスP2を生成する第2の排他実行制御用プロセス生成処理と、
n個のタスクのそれぞれにて排他実行制御の対象となるプロセスの前に、前記第1の排他実行制御用プロセス生成処理が生成したプロセスP1を追加し、当該排他実行制御の対象となるプロセスの後に、前記第2の排他実行制御用プロセス生成処理が生成したプロセスP2を追加することで、前記マルチタスクOSにより同時に実行されるタスクにてプロセスP1の終了後に排他実行制御の対象となるプロセスが起動され、当該排他実行制御の対象となるプロセスの終了後にプロセスP2が起動されるように制御する排他実行制御処理とをコンピュータに実行させることを特徴とする。
本発明の一の態様によれば、例えば、相互並行実行ができないプロセスを含む複数のプロセスが分離不可能な形式で組み合わされたタスクが複数存在する場合に、異なるタスク内の、相互並行実行ができないプロセス同士の排他制御を行って、プロセスの修正、タスクの組み直しなどを行うことなく、一部のプロセスを並列的に実行し、全てのタスクを実行するのにかかる時間を短縮することが可能となる。
以下、本発明の実施の形態について、図を用いて説明する。
実施の形態1.
図3は、本実施の形態に係る排他実行制御装置100の構成を示すブロック図である。
図3において、排他実行制御装置100は、記憶領域設定部101、第1の排他実行制御用プロセス生成部102、第2の排他実行制御用プロセス生成部103、排他実行制御部104を備える。排他実行制御装置100の各部の動作については後述する。
また、排他実行制御装置100は、処理装置151、記憶装置152、入力装置153、出力装置154などのハードウェアを備える。ハードウェアは排他実行制御装置100の各部によって利用される。例えば、処理装置151は、排他実行制御装置100の各部でデータや情報の演算、加工、読み取り、書き込みなどを行うために利用される。記憶装置152は、そのデータや情報を記憶するために利用される。入力装置153は、そのデータや情報を入力するために、出力装置154は、そのデータや情報を出力するために利用される。
図4は、排他実行制御装置100のハードウェア構成の一例を示す図である。
図4において、排他実行制御装置100は、コンピュータであり、CRT(Cathode・Ray・Tube)やLCD(液晶ディスプレイ)の表示画面を有する表示装置901、キーボード902(K/B)、マウス903、FDD904(Flexible・Disk・Drive)、CDD905(Compact・Disc・Drive)、プリンタ装置906などのハードウェアを備え、これらはケーブルや信号線で接続されている。
排他実行制御装置100は、プログラムを実行するCPU911(Central・Processing・Unit)を備えている。CPU911は、処理装置151の一例である。CPU911は、バス912を介してROM913(Read・Only・Memory)、RAM914(Random・Access・Memory)、通信ボード915、表示装置901、キーボード902、マウス903、FDD904、CDD905、プリンタ装置906、磁気ディスク装置920と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置920の代わりに、光ディスク装置、メモリカードリーダライタなどの記憶媒体が用いられてもよい。
RAM914は、揮発性メモリの一例である。ROM913、FDD904、CDD905、磁気ディスク装置920の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置152の一例である。通信ボード915、キーボード902、マウス903、FDD904、CDD905などは、入力装置153の一例である。また、通信ボード915、表示装置901、プリンタ装置906などは、出力装置154の一例である。
通信ボード915は、LAN(ローカルエリアネットワーク)などに接続されている。通信ボード915は、LANに限らず、インターネット、あるいは、IP−VPN(Internet・Protocol・Virtual・Private・Network)、広域LAN、ATM(Asynchronous・Transfer・Mode)ネットワークなどのWAN(ワイドエリアネットワーク)などに接続されていても構わない。LAN、インターネット、WANは、ネットワークの一例である。
磁気ディスク装置920には、オペレーティングシステム921(OS)、ウィンドウシステム922、プログラム群923、ファイル群924が記憶されている。プログラム群923のプログラムは、CPU911、オペレーティングシステム921、ウィンドウシステム922により実行される。オペレーティングシステム921は、複数のプロセスを所定の順序で実行するタスクをn個(nはn>1となる整数)同時に実行可能なマルチタスクOSである。プログラム群923には、本実施の形態の説明において「〜部」として説明する機能を実行するプログラムが記憶されている。プログラムは、CPU911により読み出され実行される。また、ファイル群924には、本実施の形態の説明において、「〜データ」、「〜情報」、「〜ID(識別子)」、「〜フラグ」、「〜結果」として説明するデータや情報や信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」や「〜テーブル」の各項目として記憶されている。「〜ファイル」や「〜データベース」や「〜テーブル」は、ディスクやメモリなどの記憶媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶されたデータや情報や信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・制御・出力・印刷・表示などのCPU911の処理(動作)に用いられる。抽出・検索・参照・比較・演算・計算・制御・出力・印刷・表示などのCPU911の処理中、データや情報や信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
また、本実施の形態の説明において用いるブロック図やフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号は、RAM914などのメモリ、FDD904のフレキシブルディスク(FD)、CDD905のコンパクトディスク(CD)、磁気ディスク装置920の磁気ディスク、その他光ディスク、ミニディスク(MD)、DVD(Digital・Versatile・Disc)などの記録媒体に記録される。また、データや信号は、バス912や信号線やケーブルその他の伝送媒体により伝送される。
また、本実施の形態の説明において「〜部」として説明するものは、「〜回路」、「〜装置」、「〜機器」であってもよく、また、「〜ステップ」、「〜工程」、「〜手順」、「〜処理」であってもよい。即ち、「〜部」として説明するものは、ROM913に記憶されたファームウェアで実現されていても構わない。あるいは、ソフトウェアのみ、あるいは、素子・デバイス・基板・配線などのハードウェアのみ、あるいは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実現されていても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVDなどの記録媒体に記憶される。このプログラムはCPU911により読み出され、CPU911により実行される。即ち、プログラムは、本実施の形態の説明で述べる「〜部」としてコンピュータを機能させるものである。あるいは、本実施の形態の説明で述べる「〜部」の手順や方法をコンピュータに実行させるものである。
以下では、排他実行制御装置100の動作について説明する。
排他実行制御装置100は、マルチタスクOSであるオペレーティングシステム921に対し、プロセス間の排他実行制御を行う。以下の説明では、オペレーティングシステム921が同時に実行可能なn個のタスクをタスクJ1、・・・、Jnと表記する。
図5及び図6は、排他実行制御装置100の動作(本実施の形態に係る排他実行制御プログラムの処理手順)を示すフローチャートである。
ステップS101(記憶領域設定処理)において、記憶領域設定部101は、排他実行制御用のデータをタスクごとに格納可能な記憶領域を記憶装置152(例えば、RAM914や磁気ディスク装置920)内に設定する。ここでは、記憶領域設定部101は、記憶領域の一例として、複数のファイルを格納可能な固定フォルダFを作成し、記憶装置152内に保存するものとする。フォルダFは初期状態では空であるが、後述するように、フォルダFには、タスクJ1、・・・、Jnのうち、1個又は2個以上のタスクの排他実行制御用のデータが、それぞれ1つのファイルとして格納されることになる。
ステップS102において、オペレーティングシステム921が備えるジョブスケジューラは、タスクJ1、・・・、Jnの実行スケジュールSを設定する。
ステップS103〜S118(排他実行制御処理)において、排他実行制御部104は、タスクJ1、・・・、Jnのそれぞれにて排他実行制御の対象となるプロセスの前に、第1の排他実行制御用のプロセスP1を追加し、当該排他実行制御の対象となるプロセスの後に、第2の排他実行制御用のプロセスP2を追加する。これにより、排他実行制御部104は、タスクJ1、・・・、Jnのうち、2個以上のタスクがオペレーティングシステム921により同時に実行される場合に、それぞれのタスクにてプロセスP1の終了後に排他実行制御の対象となるプロセスが起動され、当該排他実行制御の対象となるプロセスの終了後にプロセスP2が起動されるように制御することができる。ここで、図1(i)に示したタスクα、β、γに排他実行制御部104がプロセスP1、P2を追加した例を図1(ii)に示す。また、オペレーティングシステム921が備えるジョブスケジューラが、図1(ii)に示したタスクを実行制御した場合の各プロセスの実行タイミングを図7に示す。
図1(ii)において、タスクα内では、プロセスA1とB1の間にプロセスP1が追加され、プロセスB1とC1の間にプロセスP2が追加されている。同様に、タスクβ内では、プロセスA2とB2の間にプロセスP1が追加され、プロセスB2とC2の間にプロセスP2が追加され、タスクγ内では、プロセスA3とB3の間にプロセスP1が追加され、プロセスB3とC3の間にプロセスP2が追加されている。排他実行制御を行うためには、プロセスP1は、排他実行制御の対象となるプロセスの前に追加されていればよいため、例えば、タスクα内ではプロセスA1の前に追加されてもよいが、図1(ii)に示したように、排他実行制御の対象となるプロセスの直前に追加されることが望ましい。同様に、プロセスP2は、排他実行制御の対象となるプロセスの後に追加されていればよいため、例えば、タスクα内ではプロセスC1の後に追加されてもよいが、図1(ii)に示したように、排他実行制御の対象となるプロセスの直後に追加されることが望ましい。
以下、図5から図7までを用いて、排他実行制御処理の詳細について説明する。排他実行制御処理はタスクJ1、・・・、Jn全体に対して実行される処理であるが、説明の便宜上、1つのタスクJi(iは1≦i≦nとなる整数)に対して実行される処理のみについて説明する。よって、実際の排他実行制御処理では、以下で説明する処理と同様の処理が他のn−1個のタスクに対しても実行されることになる。
ステップS103において、タスクJi内で次に実行されるプロセスがない場合(タスクJiの実行が終了した場合)、排他実行制御処理は終了する。一方、タスクJi内で次に実行されるプロセスXjがある場合、ステップS104へ進む。
ステップS104において、排他実行制御部104は、タスクJi内のプロセスXjが排他実行制御の対象であるか否かを処理装置151(例えばCPU911)により判定する。具体的な判定方法としては、例えばプロセスXjが他のプロセスと同時に実行可能なものかどうかを示す変数を予め記憶装置152に記憶しておき、排他実行制御部104が、この変数を参照することにより当該判定を行うという方法をとることができる。プロセスXjが排他実行制御の対象ではない場合、ステップS105へ進む。一方、プロセスXjが排他実行制御の対象である場合、ステップS106へ進む。
ステップS105において、オペレーティングシステム921によりタスクJi内のプロセスXjが実行された後(図7では例えばタスクα1内のプロセスA1が時刻ts00〜ts04で実行されている)、ステップS103へ戻る。
ステップS106(第1の排他実行制御用プロセス生成処理)において、第1の排他実行制御用プロセス生成部102は、第1の排他実行制御用のプロセスP1を生成する。
ステップS107において、排他実行制御部104は、タスクJi内のプロセスXjの直前に、ステップS106で第1の排他実行制御用プロセス生成部102が生成したプロセスP1を処理装置151により追加する(図7では例えばタスクα1内のプロセスB1の直前にプロセスP1が追加されている)。具体的なプロセスP1の追加方法としては、例えば排他実行制御部104が、プロセスXjの起動前にオペレーティングシステム921によりプロセスP1を起動させるという方法をとることができる。あるいは、例えばタスクJiがどのプロセスをどのような順番で実行するものかを定義するデータを予め記憶装置152に記憶しておき、排他実行制御部104が、このデータに対してプロセスXjの直前にプロセスP1を実行するという定義を追記するという方法をとることができる。
ステップS108において、オペレーティングシステム921によりタスクJi内のプロセスP1が起動されると(図7では例えばタスクα1内のプロセスP1が時刻ts05で起動されている)、ステップS109へ進む。
ステップS109において、タスクJi内のプロセスP1は、タスクJiの排他実行制御用のデータとして、プロセスP1の起動時刻を示す時刻情報Tkとタスク名称Ji(タスクJiの識別子)を組み合わせたTk−Jiをファイル名とするファイルを処理装置151により生成する(図7ではタスクα1のファイルとして「ts05−α」という文字列をファイル名とするファイルが生成される)。そして、プロセスP1は、そのファイルを、ステップS101で記憶領域設定部101が作成したフォルダFに格納する。タスクJiの排他実行制御用のデータはファイル以外の形式としてもよいが、ファイル形式とすることでシステム管理者がファイル名を目視で確認して排他実行制御処理を監視することが可能になり、利便性が向上する。ここで、排他実行制御用のデータとして生成されるファイルの一例を図8に示す。
図8において、フォルダFには、タスクβの排他実行制御用のデータとして、「20080101_101520000_β」というファイル名(タスクβ内のプロセスP1の起動時刻が2008年1月1日10時15分20秒であることを示している)をもつファイルが格納されている。また、フォルダFには、タスクαの排他実行制御用のデータとして、「20080101_101555000_α」というファイル名(タスクα内のプロセスP1の起動時刻が2008年1月1日10時15分55秒であることを示している)をもつファイルが格納されている。また、フォルダFには、タスクγの排他実行制御用のデータとして、「20080101_101615000_γ」というファイル名(タスクγ内のプロセスP1の起動時刻が2008年1月1日10時16分15秒であることを示している)をもつファイルが格納されている。
ステップS110において、タスクJi内のプロセスP1は、一定の時間間隔H(例えば数秒間隔)でフォルダFのファイルリストLをファイル名にて昇順にソートして内容を処理装置151により確認する(図7では例えばタスクα1内のプロセスP1が1単位時間tsごとにファイルリストLを昇順にソートして内容を確認しており、例えば時刻ts06のとき、ファイルリストL内で1番目のファイルは「ts04−β」をファイル名とするタスクβ1のファイル、2番目のファイルは「ts05−α」をファイル名とするタスクα1のファイルとなっている)。なお、ファイルリストLとしては、オペレーティングシステム921が備えるファイルシステムにより管理されているものを利用することができる。
ステップS111において、ファイル名Tk−JiのファイルがファイルリストL内で1番目のファイルでない場合(図7では例えば時刻ts06のとき、「ts05−α」をファイル名とするタスクα1のファイルではなく、「ts04−β」をファイル名とするタスクβ1のファイルが1番目のファイルとなっている)、タスクJi内のプロセスP1は待機する。一方、ファイル名Tk−JiのファイルがファイルリストL内で1番目のファイルである場合(図7では、明示していないが、例えば時刻ts08のとき、「ts04−β」をファイル名とするタスクβ1のファイルがタスクβ1内のプロセスP2によって削除されるため、「ts05−α」をファイル名とするタスクα1のファイルが1番目のファイルとなる)、ステップS112へ進む。
ステップS112において、タスクJi内のプロセスP1は終了し(図7では例えばタスクα1内のプロセスP1が時刻ts08で終了している)、ステップS113へ進む。
このように、ステップS110〜S112において、タスクJi内のプロセスP1は、タスクJiの排他実行制御用のデータとしてフォルダFに格納されたファイルがフォルダF内で最先の時刻を示すファイルに該当するまで待機した後に終了する。
ステップS113において、オペレーティングシステム921によりタスクJi内のプロセスXjが実行されると(図7では例えばタスクα1内のプロセスB1が時刻ts09〜ts11で実行されている)、ステップS114へ進む。
ステップS114(第2の排他実行制御用プロセス生成処理)において、第2の排他実行制御用プロセス生成部103は、第2の排他実行制御用のプロセスP2を生成する。
ステップS115において、排他実行制御部104は、タスクJi内のプロセスXjの直後に、ステップS114で第2の排他実行制御用プロセス生成部103が生成したプロセスP2を処理装置151により追加する(図7では例えばタスクα1内のプロセスB1の直後にプロセスP2が追加されている)。具体的なプロセスP2の追加方法としては、前述したプロセスP1の追加方法と同様の方法をとることができる。
ステップS116において、オペレーティングシステム921によりタスクJi内のプロセスP2が起動されると(図7では例えばタスクα1内のプロセスP2が時刻ts12で起動されている)、ステップS117へ進む。
ステップS117において、タスクJi内のプロセスP2は、ファイル名Tk−JiのファイルをフォルダFから処理装置151により削除する(図7では例えばタスクα1内のプロセスP2が時刻ts12で「ts05−α」をファイル名とするタスクα1のファイルをフォルダFから削除する)。
ステップS118において、タスクJi内のプロセスP2は終了し(図7では例えばタスクα1内のプロセスP2が時刻ts12で終了している)、ステップS103へ戻る。
このように、ステップS117、S118において、タスクJi内のプロセスP2は、タスクJiの排他実行制御用のデータとしてフォルダFに格納されたファイルをフォルダFから削除した後に終了する。
図5及び図6のフローチャートに示した処理は、必ずしも図示された通りの順序で実行されなければならないわけではない。例えば、ステップS106、S114にて排他実行制御用のプロセスP1、P2を生成する処理やステップS107、S115にて排他実行制御用のプロセスP1、P2をタスクに追加する処理は、当該タスクの実行の開始前に予め実行しておいてもよいものである。
以上のように、本実施の形態によれば、同時並行実行可能なプロセスと排他実行制御を行う必要のあるプロセスを組み合わせたタスクが複数存在し、個々のプロセスを独立してタスク化することができない場合に、これを既存のジョブスケジューラを利用して、マルチタスクOSにて並列的に実行することが可能となる。そのために、本実施の形態では、排他実行制御を行うプロセスの直前・直後に、自らファイルを利用した排他実行制御を行うプロセスを対象タスク全てに一律に組み入れることで、同時並行実行可能なプロセスは同時並行実行し、排他実行制御が必要なプロセスのみ排他実行制御する。本実施の形態では、タスクの実行順には関係なく、同時並行実行可能なプロセスについては、その到着順に実行することができるため、タスク群全体のスループットが向上し、全てのタスクを実行するのにかかる時間を短縮することができる。
実施の形態2.
本実施の形態について、主に実施の形態1との差異を説明する。
図9は、本実施の形態に係る排他実行制御装置100の構成を示すブロック図である。
図9において、排他実行制御装置100は、実施の形態1と同様に、図3に示した記憶領域設定部101、第1の排他実行制御用プロセス生成部102、第2の排他実行制御用プロセス生成部103、排他実行制御部104を備えるほか、さらに、タスクリスト管理部105、タスク監視部106を備える。排他実行制御装置100の各部の動作については後述する。
ここで、実施の形態1の説明で図7に示した例において、タスクα1内のプロセスB1が異常終了した場合の各プロセスの実行タイミングを図10に示す。
図10において、タスクα1内のプロセスB1は時刻ts11で異常終了している。そのため、本来、タスクα1内でプロセスB1の終了後に起動されるべきプロセスP2が起動されず、時刻ts12以降もフォルダFのファイルリストLの1番目には「ts05−α」をファイル名とするタスクα1のファイルが残ったままとなる。
タスクγ1内では、プロセスP1が時刻ts09で起動されている。このプロセスP1は、1単位時間tsごとにフォルダFのファイルリストLをファイル名にて昇順にソートして内容を確認しており、時刻ts10のとき、ファイルリストL内で1番目のファイルは「ts05−α」をファイル名とするタスクα1のファイル、2番目のファイルは「ts09−γ」をファイル名とするタスクγ1のファイルとなっている。時刻ts14のとき、実際にはタスクα1内のプロセスB1は既に終了しているため、ファイルリストL内で「ts09−γ」をファイル名とするタスクγ1のファイルが1番目になっていなければならないが、「ts05−α」をファイル名とするタスクα1のファイルが1番目に残ったままである。そのため、タスクγ1内のプロセスP1は待機し続け、いつまでも終了することができない。同様に、タスクβ2内では、プロセスP1が時刻ts19で起動されているが、このプロセスP1も待機し続け、いつまでも終了することができない。その結果、システムが停止状態に陥ってしまう。
以下では、排他実行制御装置100の動作について説明する。
排他実行制御装置100は、実施の形態1と同様に、図5及び図6に示した動作を行う。図10を用いて説明したような状態の発生を防ぐために、本実施の形態では、排他実行制御装置100は、さらに、タスクの監視・制御を繰り返し実行することで、安定稼働を図っている。
図11は、排他実行制御装置100の動作(本実施の形態に係る排他実行制御プログラムの処理手順)を示すフローチャートである。
ステップS201〜S208(タスク監視処理)において、タスク監視部106は、一定の時間ごとに、タスクリスト管理部105が管理しているタスクリストを参照し、フォルダFに格納されているファイルのうち、1番目のファイルが当該タスクリストにて実行中のタスクとして示されていないタスクのファイルである場合には、当該タスクが異常終了したと判断し、当該タスクのファイルをフォルダFから削除する。実施の形態1の説明で図7に示した例において、タスクα1内のプロセスB1が異常終了した場合の本実施の形態における各プロセスの実行タイミングを図12に示す。なお、本実施の形態では、同じタスクが同時に2つ以上実行されないようにジョブスケジューラにて制御されているものとする。図12では例えばタスクβ1とβ2は同時に実行されないようにジョブスケジューラにて制御されている。これは、タスクβ1とβ2をタスクリスト内で区別できないからであるが、区別可能な形態をとるのであれば、このような制御は不要である。
以下、図11及び図12を用いて、タスク監視処理の詳細について説明する。タスク監視処理は、排他実行制御処理と並行して実行される処理である。
ステップS201において、タスク監視部106は、一定の時間間隔H´(実施の形態1におけるHと同じであってもよいが、Hより長い時間間隔であることが望ましい)でフォルダFのファイルリストLをファイル名にて昇順にソートして内容を処理装置151により確認する(図12では例えば時刻ts02からタスク監視部106が4単位時間ごとにファイルリストLを昇順にソートして内容を確認しており、例えば時刻ts14のとき、ファイルリストL内で1番目のファイルは「ts05−α」をファイル名とするタスクα1のファイル、2番目のファイルは「ts09−γ」をファイル名とするタスクγ1のファイルとなっている)。
ステップS202において、タスク監視部106は、フォルダFのファイルリストLから1番目のファイルのファイル名N1を取得する(図12では例えば時刻ts14でタスク監視部106がファイル名N1として「ts05−α」を取得する)。
ステップS203において、タスク監視部106は、タスクリスト管理部105が管理しているタスクリストを参照し、ファイル名N1にタスク名称が含まれるタスクが当該タスクリストに存在するか否かを処理装置151により判定する。ファイル名N1にタスク名称が含まれるタスクが当該タスクリストに存在する場合には(図12では例えば時刻ts10でファイル名N1は「ts05−α」であり、タスクリストにはタスクαが含まれている)、ステップS201へ戻る。一方、ファイル名N1にタスク名称が含まれるタスクが当該タスクリストに存在しない場合には(図12では例えば時刻ts14でファイル名N1は「ts05−α」であるが、はタスクαが含まれていない)、ステップS204へ進む。なお、タスクリストとしては、オペレーティングシステム921により管理されているものがあれば、それを利用してもよいし、それとは別のタスクリストを予め生成しておき、これを独自に管理し、利用してもよい。
ステップS204において、タスク監視部106は、再度フォルダFのファイルリストLをファイル名にて昇順にソートして内容を処理装置151により確認する(図12では例えば時刻ts14のとき、ファイルリストL内で1番目のファイルは「ts05−α」をファイル名とするタスクα1のファイル、2番目のファイルは「ts09−γ」をファイル名とするタスクγ1のファイルとなっている)。
ステップS205において、タスク監視部106は、フォルダFのファイルリストLから1番目のファイルのファイル名N2を取得する(図12では例えば時刻ts14でタスク監視部106がファイル名N2として「ts05−α」を取得する)。
ステップS206において、タスク監視部106がステップS202で取得したファイル名N1とステップS205で取得したファイル名N2が同じでない場合、ステップS201へ戻る。一方、タスク監視部106がステップS202で取得したファイル名N1とステップS205で取得したファイル名N2が同じである場合、タスク監視部106は、ファイル名N1にタスク名称が含まれるタスクが異常終了したと処理装置151により判断し、ステップS207へ進む。
ステップS207において、タスク監視部106は、運用系アラームを出力装置154(例えば表示装置901)により発信し、システム管理者に異常があったことを通報する。
ステップS208において、タスク監視部106は、ファイル名N1(N2も同じ)のファイルをフォルダFから処理装置151により削除する。
なお、ステップS204〜S206の処理は、ステップS202でファイルリストLからファイル名N1を取得した後、ステップS203でタスクリストを参照するまでの間に、ファイル名N1にタスク名称が含まれるタスクが正常終了した場合に、誤って運用系アラームを発信しないようにするためのものである。したがって、ステップS201、S202でファイルリストLを取得するのと同時又は直前にタスクリストを参照し、実行中のタスクのタスク名称を全て事前に特定しておくのであれば、ステップS203でファイル名N1に含まれるタスク名称が事前に特定しておいたタスク名称に含まれるか否かを判定するだけで、ステップS204〜S206の処理は省略してもよい。
以上のように、本実施の形態によれば、タスクリストを利用して、排他実行制御処理を常時監視することで、円滑かつ安定的にプロセス及びタスクを動作させることが可能となる。
以上、本発明の実施の形態について説明したが、これらのうち、2つ以上の実施の形態を組み合わせて実施しても構わない。あるいは、これらのうち、1つの実施の形態を部分的に実施しても構わない。あるいは、これらのうち、2つ以上の実施の形態を部分的に組み合わせて実施しても構わない。
プロセスの一例を示す図である。 プロセスの実行タイミングの一例を示す図である。 実施の形態1に係る排他実行制御装置の構成を示すブロック図である。 実施の形態1に係る排他実行制御装置のハードウェア構成の一例を示す図である。 実施の形態1に係る排他実行制御装置の動作を示すフローチャートである。 実施の形態1に係る排他実行制御装置の動作を示すフローチャートである。 実施の形態1におけるプロセスの実行タイミングの一例を示す図である。 実施の形態1における排他実行制御用のデータの一例を示す図である。 実施の形態2に係る排他実行制御装置の構成を示すブロック図である。 プロセスの実行タイミングの一例を示す図である。 実施の形態2に係る排他実行制御装置の動作を示すフローチャートである。 実施の形態2におけるプロセスの実行タイミングの一例を示す図である。
符号の説明
100 排他実行制御装置、101 記憶領域設定部、102 第1の排他実行制御用プロセス生成部、103 第2の排他実行制御用プロセス生成部、104 排他実行制御部、105 タスクリスト管理部、106 タスク監視部、151 処理装置、152 記憶装置、153 入力装置、154 出力装置、901 表示装置、902 キーボード、903 マウス、904 FDD、905 CDD、906 プリンタ装置、911 CPU、912 バス、913 ROM、914 RAM、915 通信ボード、920 磁気ディスク装置、921 オペレーティングシステム、922 ウィンドウシステム、923 プログラム群、924 ファイル群。

Claims (5)

  1. 複数のプロセスを所定の順序で実行するタスクをn個(nはn>1となる整数)同時に実行可能なマルチタスクOS(オペレーティングシステム)に対し、プロセス間の排他実行制御を行う排他実行制御装置であって、
    排他実行制御用のデータをタスクごとに格納可能な記憶領域を記憶装置内に設定する記憶領域設定部と、
    n個のタスクのそれぞれで実行される第1の排他実行制御用のプロセスP1を生成する第1の排他実行制御用プロセス生成部であって、タスクT起動されると当該起動時刻を示すデータを当該タスクTの排他実行制御用のデータとして前記記憶領域に格納するプロセスP1であり、前記記憶領域に格納されている排他実行制御用のデータのうち、当該タスクTの排他実行制御用のデータが最先の時刻を示すデータになった後に終了するプロセスP1を生成する第1の排他実行制御用プロセス生成部と、
    n個のタスクのそれぞれで実行される第2の排他実行制御用のプロセスP2を生成する第2の排他実行制御用プロセス生成部であって、タスクT起動されると当該タスクTの排他実行制御用のデータを前記記憶領域から削除した後に終了するプロセスP2を生成する第2の排他実行制御用プロセス生成部と、
    n個のタスクのそれぞれにて排他実行制御の対象となるプロセスの前に、前記第1の排他実行制御用プロセス生成部が生成したプロセスP1を前記マルチタスクOSに実行させ、当該排他実行制御の対象となるプロセスの後に、前記第2の排他実行制御用プロセス生成部が生成したプロセスP2を前記マルチタスクOSに実行させることで、前記マルチタスクOSにより同時に実行されるタスクにてプロセスP1の終了後に排他実行制御の対象となるプロセスが起動され、当該排他実行制御の対象となるプロセスの終了後にプロセスP2が起動されるように制御する排他実行制御部とを備えることを特徴とする排他実行制御装置。
  2. 前記排他実行制御装置は、さらに、
    実行中のタスクを示すタスクリストを記憶装置内で管理するタスクリスト管理部と、
    一定の時間ごとに、前記タスクリスト管理部が管理しているタスクリストを参照し、前記記憶領域に格納されている排他実行制御用のデータのうち、最先の時刻を示すデータが当該タスクリストにて実行中のタスクとして示されていないタスクの排他実行制御用のデータである場合には、当該タスクが異常終了したと判断し、当該タスクの排他実行制御用のデータを前記記憶領域から削除するタスク監視部とを備えることを特徴とする請求項1に記載の排他実行制御装置。
  3. 前記排他実行制御部は、n個のタスクのそれぞれにて排他実行制御の対象となるプロセスの直前にプロセスP1を前記マルチタスクOSに実行させ、当該排他実行制御の対象となるプロセスの直後にプロセスP2を前記マルチタスクOSに実行させることを特徴とする請求項1又は2に記載の排他実行制御装置。
  4. 前記記憶領域は、複数のファイルを格納可能なフォルダであり、
    プロセスP1は、タスクT起動されると当該起動時刻と当該タスクTの識別子とを組み合わせた名前をもつファイルを当該タスクTの排他実行制御用のデータとして前記フォルダに格納するプロセスであることを特徴とする請求項1から3までのいずれかに記載の排他実行制御装置。
  5. 複数のプロセスを所定の順序で実行するタスクをn個(nはn>1となる整数)同時に実行可能なマルチタスクOS(オペレーティングシステム)に対し、プロセス間の排他実行制御を行う排他実行制御プログラムであって、
    排他実行制御用のデータをタスクごとに格納可能な記憶領域を記憶装置内に設定する記憶領域設定処理と、
    n個のタスクのそれぞれで実行される第1の排他実行制御用のプロセスP1を生成する第1の排他実行制御用プロセス生成処理であって、タスクT起動されると当該起動時刻を示すデータを当該タスクTの排他実行制御用のデータとして前記記憶領域に格納するプロセスP1であり、前記記憶領域に格納されている排他実行制御用のデータのうち、当該タスクTの排他実行制御用のデータが最先の時刻を示すデータになった後に終了するプロセスP1を生成する第1の排他実行制御用プロセス生成処理と、
    n個のタスクのそれぞれで実行される第2の排他実行制御用のプロセスP2を生成する第2の排他実行制御用プロセス生成処理であって、タスクT起動されると当該タスクTの排他実行制御用のデータを前記記憶領域から削除した後に終了するプロセスP2を生成する第2の排他実行制御用プロセス生成処理と、
    n個のタスクのそれぞれにて排他実行制御の対象となるプロセスの前に、前記第1の排他実行制御用プロセス生成処理が生成したプロセスP1を前記マルチタスクOSに実行させ、当該排他実行制御の対象となるプロセスの後に、前記第2の排他実行制御用プロセス生成処理が生成したプロセスP2を前記マルチタスクOSに実行させることで、前記マルチタスクOSにより同時に実行されるタスクにてプロセスP1の終了後に排他実行制御の対象となるプロセスが起動され、当該排他実行制御の対象となるプロセスの終了後にプロセスP2が起動されるように制御する排他実行制御処理とをコンピュータに実行させることを特徴とする排他実行制御プログラム。
JP2008089386A 2008-03-31 2008-03-31 排他実行制御装置及び排他実行制御プログラム Expired - Fee Related JP4611397B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008089386A JP4611397B2 (ja) 2008-03-31 2008-03-31 排他実行制御装置及び排他実行制御プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008089386A JP4611397B2 (ja) 2008-03-31 2008-03-31 排他実行制御装置及び排他実行制御プログラム

Publications (2)

Publication Number Publication Date
JP2009245055A JP2009245055A (ja) 2009-10-22
JP4611397B2 true JP4611397B2 (ja) 2011-01-12

Family

ID=41306883

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008089386A Expired - Fee Related JP4611397B2 (ja) 2008-03-31 2008-03-31 排他実行制御装置及び排他実行制御プログラム

Country Status (1)

Country Link
JP (1) JP4611397B2 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03113642A (ja) * 1989-09-28 1991-05-15 Nec Corp タスクスケジューリング方式
JPH05233336A (ja) * 1992-02-18 1993-09-10 Fujitsu Ltd オンラインシステムにおける排他制御方式
JPH1063516A (ja) * 1996-08-20 1998-03-06 Nec Corp ボトルネック検出方法及びボトルネック検出装置
JP2000029723A (ja) * 1998-07-10 2000-01-28 Nec Corp バッチjobにおけるタスク制御システム及び方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03113642A (ja) * 1989-09-28 1991-05-15 Nec Corp タスクスケジューリング方式
JPH05233336A (ja) * 1992-02-18 1993-09-10 Fujitsu Ltd オンラインシステムにおける排他制御方式
JPH1063516A (ja) * 1996-08-20 1998-03-06 Nec Corp ボトルネック検出方法及びボトルネック検出装置
JP2000029723A (ja) * 1998-07-10 2000-01-28 Nec Corp バッチjobにおけるタスク制御システム及び方法

Also Published As

Publication number Publication date
JP2009245055A (ja) 2009-10-22

Similar Documents

Publication Publication Date Title
US9946582B2 (en) Distributed processing device and distributed processing system
US8930906B2 (en) Selectively allowing changes to a system
JP5619179B2 (ja) 計算機システム、ジョブ実行管理方法、及びプログラム
US20090187707A1 (en) System and method of maximization of storage capacity in a configuration limited system
US9160867B2 (en) Information processing system for preventing job process from being redundantly performed, information processing apparatus, and program
JP5891881B2 (ja) 情報処理装置及び情報処理プログラム
US20140108839A1 (en) Log record writing system, device, method, and program
JP4246620B2 (ja) 情報処理装置、情報処理システム、情報処理方法、プログラム及び記録媒体
JP4611397B2 (ja) 排他実行制御装置及び排他実行制御プログラム
JP5086820B2 (ja) サービス管理方法とシステムおよびプログラム
JP5380895B2 (ja) 管理プログラム、管理方法及び管理装置
JP2009266113A (ja) メモリ管理方法およびシステム
JP5853978B2 (ja) 情報処理装置及び情報処理プログラム
JP2021530073A (ja) 分散コンピューティングデバイスの自動制御
JP2010152435A (ja) 情報処理装置及び情報処理方法及びプログラム
US8321484B2 (en) Minimizing bandwidth in file path-centric protocol message
JP5341604B2 (ja) ユーザログ収集装置、及びユーザログ管理システム
US20150186085A1 (en) Information processing apparatus, information processing method, and computer-readable storage medium
CH717528A2 (it) Sistemi e metodi per la migrazione software senza soluzione di continuità.
JP2012146207A (ja) 制御用計算機および情報処理システムおよび制御方法およびプログラム
JP5222171B2 (ja) データベース管理方法およびデータベース管理システム
JP2016071725A (ja) ワークフロー制御プログラム、ワークフロー制御方法及び情報処理装置
JP5136200B2 (ja) ログ記録システム
JP2009176039A (ja) ファイル管理システム及びファイル管理サーバ及びファイル管理プログラム
JP6221305B2 (ja) 情報処理装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100421

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100427

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100614

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

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

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

Free format text: PAYMENT UNTIL: 20131022

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4611397

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

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