JP5791478B2 - 情報処理装置 - Google Patents

情報処理装置 Download PDF

Info

Publication number
JP5791478B2
JP5791478B2 JP2011259664A JP2011259664A JP5791478B2 JP 5791478 B2 JP5791478 B2 JP 5791478B2 JP 2011259664 A JP2011259664 A JP 2011259664A JP 2011259664 A JP2011259664 A JP 2011259664A JP 5791478 B2 JP5791478 B2 JP 5791478B2
Authority
JP
Japan
Prior art keywords
task
execution
time
storage area
read
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
JP2011259664A
Other languages
English (en)
Other versions
JP2013114435A (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
Priority to JP2011259664A priority Critical patent/JP5791478B2/ja
Publication of JP2013114435A publication Critical patent/JP2013114435A/ja
Application granted granted Critical
Publication of JP5791478B2 publication Critical patent/JP5791478B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

この発明は、複数の実行リソースによる周期的及び非周期的タスクの実行スケジュールを制御する技術に関し、例えば、多数の情報源(Webサーバ装置、センサ装置等)からの高頻度なデータ取得のスケジュールを制御する技術に関する。
マルチタスクのコンピュータシステムにおいては、少数のCPU(Central Processing Unit)を時分割により共有し、より多くのタスクの実行を可能にしている。
各タスクへのCPU割当ては、オペレーティングシステムが提供するスケジューリング機能により実現され、実行優先度や実行期限に基づいて適切なタスクを選択することでCPUの利用効率を高める。
CPUが割り当てられていないタスクの情報は優先度付き待ち行列(プライオリティキュー)に格納され、優先度をキーとするタスクの挿入や、最高優先度を持つタスクの取出し操作が行われる。
プライオリティキュー(以下、単にキューと記す)を主記憶装置上で効率的に実現するためのデータ構造として、二分ヒープ(バイナリヒープ)などが知られている(例えば、非特許文献1参照)。
また、特許文献1には、キューを主記憶上に置く従来のスケジューリング装置の例が開示されている。
一方、現在の主要な二次記憶装置は磁気ディスク装置であり、主記憶装置に用いられる半導体メモリと比較して単に低速であるだけでなく、連続するアドレスに対するアクセス(シーケンシャルアクセス)の速度(〜200MB/s)に対し、不連続なアドレスに対するアクセス(ランダムアクセス)の速度(数MB/s)が著しく低いという特性がある。
そのため、主記憶装置上で効率的に動作するデータ構造をそのまま二次記憶装置上で実現しても、十分なアクセス速度が得られないことが通常である。
特開2000−132411号公報 第1頁 図1
ISBN 4764902222 アルゴリズムC++(セジウィック著、野下ほか訳) 第165頁〜第184頁
従来のスケジューリング装置では、扱うタスク数は多くて数百〜数千程度であり、キューを二次記憶装置上に格納することは想定されていなかった(実行頻度が低く、性能がクリティカルでないバッチジョブ等を除く)。
また、マルチプロセッサシステム等、複数の実行リソースを有する場合、各実行リソースの性能は均一であり、タスクと実行リソースの対応に関する強い制約(特定実行リソースでしか実行できないタスク)がないことが前提であった。
一方、センサ装置やWebサーバ装置等の多数の情報源からのデータ取得においては、個々の情報源が実行リソースに、各情報源から取得するデータの項目(測定値の種別、Webページ等)がタスクに相当することになる。
日本のWebサーバ装置全体からのデータ収集においては、情報源の数は数千万に上り、各Webサーバ装置から平均50ページずつ取得すると仮定すると、URL(Uniform Resource Locator)文字列(平均100バイトと仮定)だけで100GBを超えることになり、キューを主記憶上に配置することは現実的でなくなる。
また、個々の情報源はそれぞれ異なる通信速度を有するため、データ取得タスクの進捗には実行リソースごとに差異が生じる。
さらに、取得対象データはそれぞれ固有の情報源から取得する必要があり、データ取得タスクと実行リソースの対応を変更することはできない。
このようなタスクのスケジューリングにおいては、タスクの内容が示されるタスク情報をキューから読み出し、タスク情報に示されるタスクを実行リソースに実行させるが、従来のスケジューリング装置におけるキューを単純に二次記憶装置上に配置しただけでは、キューの操作に伴うオーバヘッドが大幅に増大し、タスクの実行性能が低下してしまう。
例えば、キューを全体で1つとした場合、高速な情報源(実行リソース)に関するタスクのタスク情報を、キューの先頭から探索して任意の位置から取り出す必要があり、二次記憶アクセスの回数が増加してしまう。
一方、情報源(実行リソース)ごとにキューを分離し、複数のキューを用いることにすると、タスク情報の読み出しの際に二次記憶装置に対するランダムアクセスが避けられず、シーク・回転待ちにより入出力性能が低下してしまう。
この発明は、上記の課題を解決することを主な目的としており、タスク情報の読み出しの際のオーバヘッドを最小限にして、タスクのスケジューリングを効率化することを主な目的とする。
本発明に係る情報処理装置は、
複数の記憶領域を有する記憶部と、
タスクの内容が示されるタスク情報を、前記複数の記憶領域の中から選択し、選択した記憶領域にタスク情報を格納するタスク情報格納部と、
繰り返し到来するタスク情報の読み出しタイミングが到来する度に、選択する記憶領域を読み出しタイミングごとに変化させて、前記複数の記憶領域の中からタスク情報の読み出し対象の記憶領域を選択し、選択した記憶領域に格納されているタスク情報を読み出し、読み出したタスク情報に示されるタスクを所定の実行リソースに実行させるタスク管理部とを有することを特徴とする。
本発明では、複数の記憶領域にタスク情報を格納するので、全体で1つのキューとした場合に発生するアクセス回数の増加を回避することができる。
また、読み出しタイミングでは、選択された記憶領域のみからタスク情報を読み出すので、複数の記憶領域からのランダムアクセスを回避することができる。
また、選択される記憶領域が読み出しタイミングごとに変化するため、複数の記憶領域に記憶されている各タスク情報を順次読み出すことができる。
このように、本発明によれば、タスク情報の読み出しの際のオーバヘッドを最小限にして、タスクのスケジューリングを効率化することができる。
実施の形態1に係るスケジューリング装置の構成例を示す図。 実施の形態1に係るタスク要求の例を示す図。 実施の形態1に係るタスク情報の例を示す図。 実施の形態1に係る書込バッファにおけるタスク情報の格納例を示す図。 実施の形態1に係る実行リソース管理情報の例を示す図。 実施の形態1に係るスケジューリング装置の動作例を示すフローチャート図。 実施の形態1に係るスケジューリング装置の動作例を示すフローチャート図。 実施の形態1に係るスケジューリング装置の動作例を示すフローチャート図。 実施の形態1に係るスケジューリング装置の動作例を示すフローチャート図。 実施の形態2に係るスケジューリング装置の構成例を示す図。 実施の形態2に係るタスク要求の例を示す図。 実施の形態2に係るタスク情報の例を示す図。 実施の形態2に係る実行リソース管理情報の例を示す図。 実施の形態3に係るタスク要求の例を示す図。 実施の形態3に係るタスク情報の例を示す図。 実施の形態3に係る実行リソース管理情報の例を示す図。 実施の形態1〜3に係るスケジューリング装置のハードウェア構成例を示す図。
実施の形態1.
本実施の形態及び以降の実施の形態では、処理速度の異なる多数の実行リソースに対する大量タスクのスケジューリングを、大容量の主記憶に依存することなく、効率的に実施することを可能にする構成を説明する。
図1は、本実施の形態に係るスケジューリング装置1の構成例を示す図である。
図1において、スケジューリング装置1は、外部から受け取ったタスク要求2に基づき、適切なタイミングで実行リソース3によるタスクの実行を制御する。
タスク要求2には、実行対象のタスクの内容と、タスクを実行させる実行リソースが示される。
詳細は後述するが、タスク要求2は例えば図2に示す形式をとる。
実行リソース3は、タスクを実行するシステム(ハードウェアとソフトウェアの組合せ)であり、例えば、Webサーバ装置やセンサ装置である。
スケジューリング装置1は、複数の実行リソース3を管理している。
なお、スケジューリング装置1は、情報処理装置の例に相当する。
スケジューリング装置1の構成要素の詳細を説明する前に、ここで、スケジューリング装置1におけるバッファ構成を概説する。
スケジューリング装置1には、複数のバッファが設けられる。
より具体的には、スケジューリング装置1のランダムアクセスメモリ上の複数の記憶領域が、複数のバッファとして機能する。
各バッファには、タスク情報2aが格納される。
タスク情報2aは、タスク要求2に、タスクの実行予定時刻が追加された情報である。
詳細は後述するが、タスク情報2aは例えば図3に示す形式をとる。
そして、複数のバッファは、1つの読込バッファ9と、2つ以上の書込バッファ8に区分される。
読込バッファ9は優先記憶領域の例に相当し、書込バッファ8は通常記憶領域の例に相当する。
2つ以上の書込バッファ8には、タスク情報2aの読み出しの順序として、読み出し順位が指定されている。
第1位の読み出し順位が指定されているバッファが書込バッファ8bとなり、第2位の読み出し順位が指定されているバッファが書込バッファ8cとなり、最下位の読み出し順位が指定されているバッファが書込バッファ8dとなる。
例えば、スケジューリング装置1に、バッファα、バッファβ、バッファγ、バッファδと4つのバッファが存在し、バッファαが読込バッファ9に指定され、バッファβ、バッファγ、バッファδが書込バッファ8に指定されていると仮定する。
バッファβに第1位の読み出し順位が指定され、バッファγに第2位の読み出し順位が指定され、バッファδに第3位の読み出し順位が指定されていれば、バッファβが書込バッファ8bとなり、バッファγが書込バッファ8cとなり、バッファδが書込バッファ8dとなる。
なお、後述するように、読込バッファ9となるバッファは固定されるが、書込バッファ8b〜8dとなるバッファは、読み出しタイミングごとに更新される。
読み出しタイミングとは、タスク情報2aを読み出すタイミングであり、所定の単位時間uごとに繰り返し到来する。
また、各バッファには、単位時間uを共通の時間帯幅にして、それぞれに異なる時間帯が指定されている。
上位の読み出し順位が指定されているバッファほど、現在時刻に近い時間帯が指定されている。
読込バッファ9には、現在時刻から最も近い時間帯、より具体的には次の読み出しタイミングまでの時間帯が指定されている。
書込バッファ8bには、次の読み出しタイミングに単位時間uを加えて得られる時間帯が指定されている。
書込バッファ8c、書込バッファ8dには、1つ上位の読み出し順位のバッファに指定されている時間帯に単位時間uを加えて得られる時間帯が指定されている。
タスク情報2aの格納については、タスクの実行予定時刻を包含する時間帯が指定されているバッファがタスク情報2aの格納先として選択され、選択されたバッファにタスク情報2aが格納される。
タスク情報2aの読み出しは、単位時間uごとの読み出しタイミングが到来した際に行われる。
より具体的には、読込バッファ9と、読み出しタイミングが到来した時点で書込バッファ8bとなっているバッファが読み出し対象として選択され、書込バッファ8bに格納されているタスク情報2aを読込バッファ9に移動させる。
また、書込バッファ8の読み出し順位が更新される。
前出の例でいえば、第1位の読み出し順位であり書込バッファ8bであるバッファβの読み出し順位が第3位となり、新たな書込バッファ8dとなる。
また、第2位の読み出し順位であり書込バッファ8cであるバッファγの読み出し順位が1つ繰り上がり第1位となり、新たな書込バッファ8bとなる。
また、第3位の読み出し順位であり書込バッファ8dであるバッファδの読み出し順位が1つ繰り上がり第2位となり、新たな書込バッファ8cとなる。
次の読み出しタイミングでは、読込バッファ9であるバッファαと書込バッファ8bであるバッファγが読み出し対象として選択され、次の読み出しタイミングでも、同様にして、書込バッファ8の読み出し順位が更新される。
そして、読込バッファ9に格納されているタスク情報2a(書込バッファ8bから移動したタスク情報2aを含む)を読み出して、タスク情報2aに示されているタスクを、対象となる実行リソースに実行させる。
次に、スケジューリング装置1の各構成要素を説明する。
タスク受付部4は、タスク要求2を受信する。
また、タスク受付部4は、受信したタスク要求2に示されるタスクの実行の開始が可能な時刻(実行開始可能時刻)を算出し、算出した時刻を実行予定時刻としてタスク要求2に付加してタスク情報2aを生成する。
更に、タスク受付部4は、実行予定時刻を包含する時間帯が指定されているバッファを選択して、選択したバッファにタスク情報2aを格納する。
なお、タスク受付部4は、タスク情報格納部の例に相当する。
タスク駆動部5は、読み出しタイミングが到来する度に、選択するバッファを読み出しタイミングごとに変化させて、複数のバッファの中からタスク情報2aの読み出し対象のバッファを選択する。
つまり、上述のように、読込バッファ9と、読み出しタイミング時点で書込バッファ8bとなっているバッファをタスク情報2aの読み出し対象として選択する。
そして、タスク駆動部5は、選択したバッファに格納されているタスク情報2aを読み出し、読み出したタスク情報2aに示されるタスクを、読み出したタスク情報2aに示される実行リソースに実行させる。
また、前述のように、読み出しタイミングごとに、書込バッファ8の読み出し順位を更新する。
なお、タスク駆動部5は、タスク管理部の例に相当する。
実行リソース管理テーブル保持部60は、実行リソース管理テーブル6を記憶する。
実行リソース管理テーブル6は、複数の実行リソース管理情報6aで構成される。
詳細は後述するが、実行リソース管理情報6aは、例えば図5に示す形式をとる。
複数の格納領域7a〜7dは、タスク情報2aを格納する。
格納領域7aは、読込バッファ9と対応付けられている。
格納領域7bは、書込バッファ8bと対応付けられている。
格納領域7cは、書込バッファ8cと対応付けられている。
格納領域7dは、書込バッファ8dと対応付けられている。
スケジューリング装置1は一般的なコンピュータを用い、格納領域7a〜7dを磁気ディスク装置で、書込バッファ8b〜8d及び読込バッファ9をランダムアクセスメモリで実現することができる。
書込バッファ8b〜8d及び読込バッファ9を構成するランダムアクセスメモリが、記憶部の例に相当する。
また、実行リソース管理テーブル保持部60をランダムアクセスメモリをキャッシュとして使用する磁気ディスク装置で、タスク受付部4及びタスク駆動部5をランダムアクセスメモリに格納されCPUで実行されるコンピュータプログラムとして、それぞれ実現することができる。
また、格納領域7a〜7dはLinux(登録商標)やWindows(登録商標)等の一般的なオペレーティングシステムが提供するファイルとして、実行リソース管理テーブル6はPostgreSQL(登録商標)等の一般的な関係データベース管理システムが提供する関係表として、それぞれ実現することができる。
さらに、タスク受付部4はLAN(Local Area Network)等の通信回線を介して外部からタスク要求2を受け取ることができる。
図2は、タスク受付部4が受け取るタスク要求2の形式を示したものである。
タスク要求2は、実行リソース3のいずれか1つを指定する実行リソースID21と、実行するタスクの内容であるタスク内容22からなる。
図2ではWebサーバ装置からのWebページデータ取得をタスクの例とし、実行リソースID21を取得対象Webサーバ装置のホスト名で、タスク内容22を通信プロトコルとそのパラメータで表すものとした。
図3は、タスク受付部4が受け取ったタスク要求2に対応して作成され、書込バッファ8b〜8d、格納領域7a〜7d、及び読込バッファ9に格納されるタスク情報2aの形式を示したものである。
タスク情報2aは実行リソースID21a、タスク内容22a、及び実行予定時刻23aからなり、タスク要求2の情報に、実行予定時刻23aを付与した値を持つ。
タスク情報2aが格納される書込バッファ8b〜8dや格納領域7a〜7dは、実行予定時刻23aと現在時刻の差を、所定の単位時間uで除した結果に基づいて決定される。すなわち、除算の結果がt−1以上t未満(ただしtは整数であり、1<t<T)となるタスク情報2aは、書込バッファ(t)または格納領域(t)に存在する。
また、除算の結果が0以上1未満となるタスク情報2aは、読込バッファ9または格納領域(1)に存在し、除算の結果がT−1以上となるタスク情報2aは、書込バッファ(T)または格納領域(T)に存在する。
図4は書込バッファ8b〜8dの形式を示す図である。
書込バッファ8b〜8dは固定長ページ単位で拡張され、先頭からタスク情報2aが順に格納され、末尾は空き領域となっている。
格納領域7a〜7dも同様に先頭からタスク情報2aを順に格納した形式を持つが、領域の拡張はオペレーティングシステムの機能により自動的に行われ、末尾の空き領域も隠蔽される。
読込バッファ9には、書込バッファ8と同様の線形リスト構造、または、タスク情報2aの実行リソースID21aをキーとする探索構造(例えば、非特許文献1等に記載のハッシュ表など)を用いることができる。
図5は実行リソース管理テーブル6に格納される実行リソース管理情報6aの形式を示したものである。
実行リソース管理情報6aは実行リソース3ごとに1エントリ存在し、実行リソースID61、平均タスク実行時間62、実行済みタスク数63、実行待ちタスク数64からなる。
実行待ちタスク数64は、当該実行リソース3に対応するタスクのうち、書込バッファ8b〜8d、読込バッファ9、または格納領域7a〜7dのいずれかに格納されたタスク情報の総数を表す。
また、実行済みタスク数63は、当該実行リソース3に関して過去に実行したタスクの累積数を表す。
また、平均タスク実行時間62はその際のタスク実行時間の平均値、つまり、実行リソースが1つのタスクを実行する際に要する平均時間を表す。
実行リソース管理テーブル保持部60は、実行リソースIDをキーとする実行リソース管理情報6aの検索及び更新と、新たな実行リソース管理情報6aの挿入操作を実現する。
実行リソース管理テーブル6は、データの永続化のため磁気ディスク装置に格納する必要があるが、スケジューリング装置1の動作中はランダムアクセスメモリをキャッシュとして用いることで、頻繁にアクセスされる実行リソース管理情報6aは磁気ディスク装置にアクセスすることなく参照することが可能である。
次に、動作についてフローチャートを用いて説明する。
図6は、タスク受付部4がタスク要求2を受け取った際の動作を示すフローチャートである。
まず、ステップS41で、タスク受付部4は、受け取ったタスク要求2の実行リソースID21により実行リソース管理テーブル6を検索する。
ステップS42で、タスク受付部4は、検索の結果を判定し、実行リソース管理情報6aが得られた場合はステップS43に、得られなかった場合はステップS48に進む。
ステップS43では、タスク受付部4は、実行リソース管理情報6aに基づいて新たなタスクの実行予定時刻を決定し、実行リソースID21aをタスク要求2の実行リソースID21とし、タスク内容22aをタスク要求2のタスク内容22とし、実行予定時刻23aを決定した実行予定時刻とするタスク情報2aを作成する。
ここで、実行予定時刻の値は、以下の式1により算出される。
現在時刻+平均タスク実行時間62×実行待ちタスク数64・・・式1
これは、当該実行リソース3において、受付済みのタスクを順次実行した際の完了時刻、すなわち、当該実行リソース3においてタスク要求2に示されるタスクの実行を開始することが可能な時刻(実行開始可能時刻)に相当する。
続いてステップS44で、タスク受付部4は、実行リソース管理情報6aの実行待ちタスク数64の値に1を加えた結果により、実行リソース管理テーブル保持部60に実行リソース管理テーブル6の更新を行わせる。
ステップS45では、タスク受付部4は、ステップS43で作成したタスク情報2aの格納先バッファを、実行予定時刻23aに基づいて決定する。
すなわち、以下の式2によりtを算出し、算出したtの値により格納先バッファを決定する。
t=1+[(実行予定時刻23a−現在時刻)/u](但し、[x]はxの整数部分)・・・式2
式2においてt=1であればタスク情報2aの格納先を読込バッファ9とし、1<t<Tであれば格納先を書込バッファ(t)とし、t≧Tであれば格納先を書込バッファ(T)とする。
ステップS46では、タスク受付部4は、格納先が読込バッファ9であるかどうかを判定し、読込バッファ9であればステップS50に進み、そうでなければステップS47に進む。
ステップS47では、タスク受付部4は、タスク情報2aを格納先の書込バッファ8に追加し、タスク受付処理を終了する。
ステップS47の動作の詳細は後述する。
ステップS42からステップS48に進んだ場合、タスク受付部4は、実行リソースID21aをタスク要求2の実行リソースID21とし、タスク内容22aをタスク要求2のタスク内容22とし、実行予定時刻23aを現在時刻とするタスク情報2aを作成する。
続いてステップS49で、タスク受付部4は、実行リソースID61をタスク要求2の実行リソースID21とし、平均タスク実行時間62を0とし、実行済みタスク数63を0とし、実行待ちタスク数64を1とする実行リソース管理情報6aを作成し、実行リソース管理テーブル保持部60に実行リソース管理テーブル6への挿入を行わせる。
ステップS50では、タスク受付部4は、ステップS43またはステップS48で作成したタスク情報2aを読込バッファに追加し、タスク受付処理を終了する。
図7は、タスク受付部4のステップS47における動作の詳細を示すフローチャートである。
まず、ステップS471で、タスク受付部4は、格納先の書込バッファ8にタスク情報2aを追加できる空き領域が存在するかどうかを判定し、空き領域が存在すればステップS476へ進み、そうでなければステップS472に進む。
ステップS472では、タスク受付部4は、書込バッファ8を拡張するための1ページ分の空きメモリが割当可能かどうかを判定し、割当可能であればステップS475へ進み、そうでなければステップS473へ進む。
ステップS473では、2≦t≦Tとなる整数tについて順次、書込バッファ(t)に格納されているタスク情報2aを格納領域(t)に追加する。
続いてステップS474では、各書込バッファに割り当てられたメモリを解放する。
ステップS475では、タスク受付部4は、1ページ分の空きメモリを割り当て、格納先の書込バッファ8を拡張する。
ステップS476では、タスク受付部4は、格納先の書込バッファ8の空き領域にタスク情報2aを格納し、タスク受付処理を終了する。
図8は、タスク駆動部5の動作のうち、所定の単位時間uごとに行う動作を示すフローチャートである。
まず、ステップS51で、タスク駆動部5は、格納領域(1)7aに格納されたタスク情報2aを削除して格納領域(1)7aを空にした後に、格納領域(1)7aを新たな格納領域(T)7dに、格納領域(t)を新たな格納領域(t−1)に(tは2≦t≦Tとなる整数)、それぞれ読み替える。
続いてステップS52で、タスク駆動部5は、書込バッファ(2)8bとなっているバッファを読み出し対象として選択し、書込バッファ(2)8bに格納されているタスク情報2aを読込バッファ9に移動させて書込バッファ(2)8bに割り当てられたメモリを解放した後に、書込バッファ(2)8bを新たな書込バッファ(T)8dに、書込バッファ(t)を新たな書込バッファ(t−1)に(tは3≦t≦Tとなる整数)、それぞれ読み替える。
ステップS53で、タスク駆動部5は、新たな格納領域(1)7a(元の格納領域(2)7b)に格納されたタスク情報2aを一括して読み込み、読込バッファ9に空きメモリを必要なだけ割り当てて格納する。
ステップS54では、タスク駆動部5は、読込バッファ9の全てのタスク情報2a(書込バッファ(2)8b及び新たな格納領域(1)7aから移動させたタスク情報2aを含む)に対し、ステップS55〜ステップS59の処理を行ったかどうかを判定し、行っていれば処理を終了し、そうでなければステップS55に進む。
ステップS55では、タスク駆動部5は、読込バッファ9から未処理のタスク情報2aのうち、先頭の要素を取得する(読み出す)。
続いてステップS56で、タスク駆動部5は、取得したタスク情報2aの実行リソースID21aに対応する実行リソース3の状態を調べ、タスク実行中でない空き状態かどうかを判定する。
当該実行リソース3が空き状態であればステップS57に進み、そうでなければステップS54に戻る。
ステップS57で、タスク駆動部5は、ステップS55で取得したタスク情報2aに基づき、実行リソースID21aに対応する実行リソース3で、タスク内容22aに指定されたタスクの実行を起動する。
続いてステップS58で、タスク駆動部5は、取得したタスク情報2aを読込バッファ9から削除する。
ステップS59で、タスク駆動部5は、実行リソース管理テーブル保持部60を用いて、取得したタスク情報2aの実行リソースID21aに基づいて実行リソース管理テーブル6を検索し、得られた実行リソース管理情報6aの実行待ちタスク数64を1減じて実行リソース管理テーブル6を更新し、ステップS54に戻る。
ステップS54で読込バッファ9の末尾に達し、処理を終了した後は、図8の動作開始時刻から単位時間uが経過するか、実行リソース3のいずれか1つからタスクの実行完了通知を受け取るまで、タスク駆動部5は待機状態となる。
図9は、タスク駆動部5が実行リソース3からタスクの実行完了通知を受け取った際に行う動作を示すフローチャートである。
まず、ステップS61で、タスク駆動部5は、完了したタスクの実行時間eを求めるとともに、実行リソース管理テーブル保持部60を用いて、当該実行リソース3の実行リソースIDに基づいて実行リソース管理テーブル6を検索し、実行リソース管理情報6aを取得して次のように更新する。
すなわち、浮動小数点数値dを、以下の式3で算出する。
d=(e−平均タスク実行時間62)/(実行済みタスク数63)・・・式3
更に、タスク駆動部5は、平均タスク実行時間62に浮動小数点数値dを加え、実行済みタスク数63に1を加えた結果を新たな実行リソース管理情報6aとする。
さらに、更新した実行リソース管理情報6aを実行リソース管理テーブル6に反映する。
続いてステップS62で、タスク駆動部5は、読込バッファ9を検索し、当該実行リソース3に対応するタスク情報2aの取得を試みる。
タスク駆動部5は、ステップS63でタスク情報2aが得られたかどうかを判定し、得られた場合はステップS64に進み、そうでなかった場合は処理を終了する。
ステップS64では、タスク駆動部5は、ステップS62で取得したタスク情報2aに基づき、当該実行リソース3で、タスク内容22aに指定されたタスクの実行を起動する。
続いてステップS65で、タスク駆動部5は、取得したタスク情報2aを読込バッファ9から削除する。
ステップS66では、タスク駆動部5は、ステップS61で取得した実行リソース管理情報6aの実行待ちタスク数64を1減じた内容を用いて実行リソース管理テーブル保持部60に実行リソース管理テーブル6を更新させ、処理を終了する。
以上のように、本実施の形態によれば、タスクを起動する時刻を単位時間uで量子化し、量子化された時刻ごとに二次記憶装置上の格納領域7を設けて複数のタスク情報を分割して格納するので、大量のタスク情報を効率的に管理することができる。
また、タスク起動時のタスク情報の二次記憶装置からの読込みは、実行リソース数やタスク数によらず、格納領域(1)7aに対して1度だけ行われるので、二次記憶装置の入出力性能を低下させるランダムアクセスを回避し、高速な動作を実現することができる。
また、実際のタスクの実行時間に基づく平均タスク実行時間と、実行待ちタスク数を保持する実行リソース管理テーブル6を有するので、新たに要求されたタスクの実行時刻を適切に決定し、実行リソースの利用効率低下を防ぐことができる。
また、実行リソース管理テーブル6は、実行リソースごとに実行リソース管理情報6aを保持するので、実行リソースによる処理速度の差異が大きい場合に、低速な実行リソースのタスク情報への不要なアクセスを発生させることなく、高速な動作を維持することができる。
また、格納領域7ごとに主記憶上に書込バッファ8を設け、空きメモリが存在する限り任意のサイズに拡張することを許すことで、時刻ごとのタスク発生頻度が均一でない場合にも主記憶を有効活用し、二次記憶装置への書込みを効率化して高速な動作を実現することができる。
実施の形態2.
図10は、本実施の形態にかかるスケジューリング装置1の構成図である。
実施の形態2では、タスク駆動部5が実行済みタスクのタスク情報2aを読込バッファ9や書込バッファ8を介して格納領域7に再度格納できる点が実施の形態1と異なる。
これにより、実施の形態2のスケジューリング装置は、周期的に繰り返し実行するタスク(周期タスク)と、随時外部から要求される非周期タスクを同時に扱うことが可能になる。
なお、本実施の形態では、タスク駆動部5も周期タスクのタスク情報2aを読込バッファ9、書込バッファ8に格納するため、タスク受付部4に加えて、タスク駆動部5もタスク情報格納部の例に相当する。
図11は、実施の形態2におけるタスク要求2の形式を示したものである。
図2に示した実施の形態1のタスク要求2とは、実行周期24が加わっている点が異なる。
タスク要求元は、周期タスクの実行を要求する際に、タスク要求2の実行周期24に0以外の値を設定するものとする。
つまり、周期タスクは、実行周期24ごとの実行が要求されるタスクである。
非周期タスクの実行を要求する際は、実行周期24に0を設定する。
つまり、非周期タスクは、1回限りの実行が要求されるタスクである。
図12は、実施の形態2におけるタスク情報2aの形式を示したものである。
タスク要求2の実行周期24に対応する実行周期24aが加わっている点が、図3に示した実施の形態1のタスク情報2aと異なる。
また、図13は実施の形態2における実行リソース管理情報6aの形式を示したものである。
図5に示した実施の形態1の実行リソース管理情報6aとは、周期タスク実行頻度65が加わっている点が異なる。
上記以外の構成においては、実施の形態2は実施の形態1と同様である。
次に動作について、実施の形態1との差異に基づいて説明する。
タスク受付部4は、タスク要求2を受け付けた際の図6ステップS43において、実行周期24が0でない場合は、新たに作成するタスク情報2aの実行予定時刻23aを現在時刻に設定する。
実行周期24が0の場合、実行予定時刻23aの値は実行リソース管理情報6aを用いて、以下の式4の値に設定する。
現在時刻+実行待ちタスク数64/(1/平均タスク実行時間62−周期タスク実行頻度65)・・・式4
式4において、平均タスク実行時間62の逆数は単位時間内に実行可能なタスク数であり、この値から周期タスクの実行に必要な分を差し引いたものを非周期タスクの実行可能数として分母に用いている。
これにより、周期タスクの実行頻度が高くなるほど非周期タスクの実行が延期されるが、非周期タスクにより周期タスクの実行が妨げられることはない。
周期タスクの負荷が高過ぎる場合、数式4の分母が負の値となるが、この場合、分母を小定数εで置き換えるものとする。
また、ステップS43及びステップS48では、タスク受付部4は、新たに作成するタスク情報2aの実行周期24aに、タスク要求2の実行周期24の値を設定する。
ステップS44では、タスク受付部4は、タスク要求2の実行周期24の値が0でない場合、実行リソース管理情報6aの周期タスク実行頻度65に実行周期24の逆数を加える。
ステップS49では、タスク受付部4は、タスク要求2の実行周期24の値が0の場合、実行リソース管理情報6aの実行待ちタスク数64を1に、周期タスク実行頻度65を0に、そうでない場合、実行待ちタスク数64を0に、周期タスク実行頻度65を実行周期24の逆数に、それぞれ設定する。
タスク駆動部5は、図8のステップS59及び図9ステップS66において、タスク情報2aの実行周期24aが0でない場合、処理をスキップする。
また、図8のステップS58及び図9ステップS65において、タスク駆動部5は、タスク情報2aを読込バッファ9から削除した後に、実行周期24aが0でない場合、実行予定時刻23aを「現在時刻+実行周期24a」に設定し、タスク受付部の図6ステップS45以降と同様の処理を実行する。
以上のようにこの発明の実施の形態によれば、実行リソース管理テーブル6の実行リソース管理情報6aに周期タスク実行頻度65を設け、周期タスクの実行に必要な時間を除いた空き時間で非周期タスクを実行するようにしたので、周期タスクの実行周期を優先しつつ大量の非周期タスクを扱うことが可能になる。
また、周期タスク及び非周期タスクのいずれのタスク情報2aも、実行予定時刻23aに基づいて共通の書込バッファ8及び格納領域7に格納されるので、周期タスク及び非周期タスクのそれぞれごとに独立した管理を行う必要がなく、記憶容量や入出力における効率を高めることができる。
実施の形態3.
本実施の形態に係るスケジューリング装置は、実施の形態2と同様に図10の構成を取る。
実施の形態3では、タスクに優先度を設けている点が実施の形態2と異なる。
図14は、実施の形態3におけるタスク要求2の形式を示したものである。
図11に示した実施の形態2のタスク要求2とは、優先度25が加わっている点が異なる。
優先度は一定範囲内の整数値を用い、タスク要求元が指定するものとする。また、優先度の値が小さいほど、高い優先度を表すものとする。
図15は、実施の形態3におけるタスク情報2aの形式を示したものである。
タスク要求2の優先度25に対応する優先度25aが加わっている点が、図12に示した実施の形態2のタスク情報2aと異なる。
また、図16は実施の形態3における実行リソース管理情報6aの形式を示したものである。
図13に示した実施の形態2の実行リソース管理情報6aとは、実行待ちタスク数64及び周期タスク実行頻度65が優先度ごとの複数の値を持つ点が異なる。
上記以外の構成においては、実施の形態3は実施の形態2と同様である。
次に動作について、実施の形態2との差異に基づいて説明する。
タスク受付部4は、タスク要求2を受け付けた際の図6ステップS43において、実行周期24が0の場合、実行予定時刻23aの値を実行リソース管理情報6aを用いて、以下の式5の値に設定する。
現在時刻+実行待ちタスク数64[優先度25]/(1/平均タスク実行時間62−周期タスク実行頻度65[優先度25])・・・式5
ただし、X[Y]は優先度1〜Yに対応するXの値の総和を表すものとする。
式5の分母が負の値となる場合は、分母を小定数εで置き換えるものとする。
また、ステップS43及びステップS48では、タスク受付部4は、新たに作成するタスク情報2aの実行周期24aにタスク要求2の実行周期24の値を、優先度25aにタスク要求2の優先度25の値を、それぞれ設定する。
ステップS44では、タスク受付部4は、タスク要求2の実行周期24の値が0でない場合、実行リソース管理情報6aの周期タスク実行頻度65の優先度25に対応する値に実行周期24の逆数を加える。
ステップS49では、タスク受付部4は、実行リソース管理情報6aの実行待ちタスク数64の全ての値を0に、周期タスク実行頻度65の全ての値を0に初期化した上で、タスク要求2の実行周期24の値が0の場合、実行待ちタスク数64の優先度25に対応する値を1に、そうでない場合、周期タスク実行頻度65の優先度25に対応する値を実行周期24の逆数に、それぞれ設定する。
タスク駆動部5は、図8のステップS59及び図9ステップS66において、タスク情報2aの実行周期24aが0でない場合、実施の形態2と同様に処理をスキップする。
一方、実行周期24aが0の場合、実行リソース管理情報6aの実行待ちタスク数64の優先度25aに対応する値を1減じて実行リソース管理テーブル保持部60を用いて、実行リソース管理テーブル6を更新する。
図8のステップS58及び図9ステップS65における動作は、実施の形態2と同様であるが、実行リソース3の負荷を考慮して異なる動作を行うようにしてもよい。
すなわち、実行リソース管理情報6aの周期タスク実行頻度65の全ての優先度に関する値の総和が、平均タスク実行時間62の逆数より大きい場合、当該実行リソース3において全ての周期タスクを実行周期通りに実行することはできない。
このような状況下においても高優先度の周期タスクを実行周期通りに実行するため、低優先度の周期タスクの実行周期をタスク要求2の値より大きくすることが考えられる。
例えば、周期タスク実行頻度65[Y](優先度1〜Yに関する周期タスク実行頻度65の和)が平均タスク実行時間62の逆数より大きくなる優先度Yを持つ周期タスク(実行周期24aが0でないタスク)について、実行予定時刻23aを「現在時刻+実行周期24a×優先度25a」等に設定し、タスク受付部の図6ステップS45以降と同様の処理を実行するようにしてもよい。
以上のように、本実施の形態によれば、実行リソース管理テーブル6の実行リソース管理情報6aにおける実行待ちタスク数64及び周期タスク実行頻度65をタスクの優先度ごとに分離するので、単純な先着順ではなく優先度に基づいて非周期タスクの実行時刻を決定し、重要なタスクの応答時間(要求から実行までの時間)を短縮することができる。
ここで、実施の形態1〜3で説明した内容を以下に記す。
実施の形態1では、
実行リソースに実行させるタスクを受け付ける受付部と、
前記受付部が受け付けた前記タスクの実行内容を格納する記憶部と、
前記記憶部に格納された前記タスクの実行内容を前記実行リソースに実行させる駆動部と、
を備えるスケジューリング装置であって、
前記記憶部は複数の格納領域からなり、
前記受付部は受け付けた前記タスクの実行内容を前記記憶部のいずれか1つの格納領域に記憶させ、
前記駆動部は所定時間ごとに前記記憶部のいずれか1つの格納領域を選択し、
当該格納領域に記憶された前記タスクの実行内容を順次取り出して前記実行リソースに実行させ、
当該格納領域に記憶された前記タスクを全て前記実行リソースに実行させた後に、
当該格納領域から前記タスクの実行内容を全て削除し、
当該格納領域と異なる前記格納領域のいずれか1つを次の所定時間における実行対象とするスケジューリング装置を説明した。
また、実施の形態1では、
前記タスクは、複数の前記実行リソースのいずれか1つに対応付けられ、
前記駆動部は前記記憶部のいずれか1つの格納領域から前記タスクの実行内容を取り出すとともに、
当該タスクに対応付けられた前記実行リソースのいずれか1つに当該タスクの実行内容を実行させる
ことを説明した。
また、実施の形態1では、
実行リソース管理情報を記憶する実行リソース管理テーブルをさらに備える前記スケジューリング装置であって、
前記実行リソース管理情報は前記記憶部に格納された前記タスク数を表す実行待ちタスク数を含み、
前記受付部は、受け付けた前記タスクの実行内容を、前記実行リソース管理情報の前記実行待ちタスク数に基づいて選択した前記記憶部のいずれか1つの格納領域に記憶させるとともに、
前記実行リソース管理情報の前記実行待ちタスク数に1を加え、
前記駆動部は前記格納領域から前記タスクの実行内容を取り出して前記実行リソースに実行させるとともに、
前記実行リソース管理情報の前記実行待ちタスク数から1を減じるスケジューリング装置を説明した。
また、実施の形態1では、
前記タスクは、複数の前記実行リソースのいずれか1つに対応付けられ、
前記実行リソース管理テーブルは、前記実行リソースと1対1に対応して実行リソース管理情報を複数記憶し、
前記受付部及び前記駆動部は、前記タスクに対応付けられた前記実行リソースに対応する前記実行リソース管理情報を参照及び更新の対象とすることを説明した。
また、実施の形態3では、
前記タスクは有限数の優先度のいずれか1つと対応付けられており、
前記実行リソース管理情報の前記実行待ちタスク数は、前記優先度に対応して複数の値を保持し、
前記受付部は、受け付けた前記タスクの実行内容を、前記実行リソース管理情報の前記実行待ちタスク数の複数の値の内、前記タスクの前記優先度に対応する値に基づいて選択した前記記憶部のいずれか1つの格納領域に記憶させるとともに、
前記実行リソース管理情報の前記実行待ちタスク数の複数の値の内、前記タスクの前記優先度に対応する値に1を加え、
前記駆動部は前記格納領域から前記タスクの実行内容を取り出して前記実行リソースに実行させるとともに、
前記実行リソース管理情報の前記実行待ちタスク数の複数の値の内、前記タスクの前記優先度に対応する値から1を減じることを説明した。
また、実施の形態1では、
前記実行リソース管理情報はさらに、
前記実行リソースに実行させたタスク数の累計を表す実行済みタスク数と、
前記実行リソースによるタスク実行時間の実績の平均値を表す平均タスク実行時間と、
を含み、
前記受付部は、受け付けた前記タスクの実行内容を、前記実行リソース管理情報の前記実行待ちタスク数と前記平均タスク実行時間に基づいて選択した前記記憶部のいずれか1つの格納領域に記憶させ、
前記駆動部は前記実行リソースによる前記タスクの実行内容の実行が完了した際に、
当該タスクの実行時間と、
前記実行リソース管理情報の前記実行済みタスク数と、
前記平均タスク実行時間と、
に基づいて前記実行リソース管理情報の前記平均タスク実行時間を更新することを説明した。
実施の形態2では、
前記タスクは固有の実行周期ごとの実行を要求される周期タスクと、
1回限りの実行を要求される非周期タスクと、からなり、
前記実行リソース管理情報はさらに、
前記周期タスクの全てに関する前記実行周期の逆数の和を表す周期タスク実行頻度を含み、
実施の形態1に示した前記受付部は、受け付けた前記タスクが前記周期タスクである場合に、
当該周期タスクの実行内容を、前記駆動部の現在の処理対象である前記格納領域の1つに記憶させるとともに、
前記実行周期を前記実行リソース管理情報の前記周期タスク実行頻度に加え、
前記実行待ちタスク数に1を加えず、
受け付けた前記タスクが前記非周期タスクである場合に、
当該非周期タスクの実行内容を、
前記実行リソース管理情報の前記実行待ちタスク数と、前記平均タスク実行時間と、前記周期タスク実行頻度と、
に基づいて選択した前記記憶部のいずれか1つの格納領域に記憶させるとともに、
前記実行待ちタスク数に1を加え、
実施の形態1に示した前記駆動部は前記実行リソースによる前記周期タスクの実行内容の実行が完了した際に、
前記実行待ちタスク数から1を減じず、
前記周期タスクの実行内容を前記実行周期に基づいて選択した前記記憶部のいずれか1つの格納領域に記憶させるスケジューリング装置を説明した。
また、実施の形態3では、
前記タスクは有限数の優先度のいずれか1つと対応付けられており、
前記実行リソース管理情報の前記周期タスク実行頻度は、前記優先度に対応して複数の値を保持し、
前記受付部は、
受け付けた前記周期タスクの前記実行周期を、前記実行リソース管理情報の前記周期タスク実行頻度の複数の値の内、前記周期タスクの前記優先度に対応する値に加え、
受け付けた前記非周期タスクの実行内容を、
前記実行リソース管理情報の前記実行待ちタスク数の複数の値の内、前記非周期タスクの前記優先度に対応する値と、前記平均タスク実行時間と、前記周期タスク実行頻度の複数の値の内、前記優先度に対応する値と、
に基づいて選択した前記記憶部のいずれか1つの格納領域に記憶させることを説明した。
また、実施の形態1では、
前記記憶部は、所定の整数をTとして、T個の格納領域からなり、
前記受付部は、受け付けた前記タスクの実行内容を記憶させる前記記憶部の前記格納領域のいずれか1つを選択する際に、
前記実行リソース管理情報の前記実行待ちタスク数と前記平均タスク実行時間の積を、
前記駆動部が動作する所定時間で除した値の整数部分に1を加えたものを指標とし、
前記指標が1であれば第1の格納領域を選択し、
前記指標がt(tは2以上T未満の整数)であれば第tの格納領域を選択し、
前記指標がT以上であれば第Tの格納領域を選択することを説明した。
また、実施の形態2では、
前記記憶部は、所定の整数をTとして、T個の格納領域からなり、
前記受付部は、受け付けた前記タスクの実行内容を記憶させる前記記憶部の前記格納領域のいずれか1つを選択する際に、
前記実行リソース管理情報の前記実行待ちタスク数をA、
前記平均タスク実行時間をE、
前記周期タスク実行頻度をP、
前記駆動部が動作する所定時間をUとして、
(A/(1/E−P)/U)の整数部分に1を加えたものを指標とし、
前記指標が1であれば第1の格納領域を選択し、
前記指標がt(tは2以上T未満の整数)であれば第tの格納領域を選択し、
前記指標がT以上であれば第Tの格納領域を選択することを説明した。
また、実施の形態1では、
前記記憶部は、高速に読み書き可能で小容量の第1の記憶部と、低速で大容量の第2の記憶部からなり、
前記第1の記憶部と前記第2の記憶部のそれぞれごとに、複数の格納領域を1対1に対応させて設け、
前記受付部は、受け付けた前記タスクの実行内容を記憶させる際に、
前記第1の記憶部に空きがあれば前記第1の記憶部の前記格納領域のいずれか1つに前記タスクの実行内容を記憶させ、
前記第1の記憶部に空きがなければ前記第1の記憶部の前記格納領域のそれぞれごとに、前記第1の記憶部の前記格納領域の内容を当該格納領域に対応する前記第2の記憶部の前記格納領域の1つに記憶させた後に、
前記第1の記憶部の前記格納領域を全て空にし、
前記第1の記憶部の前記格納領域のいずれか1つに前記タスクの実行内容を記憶させることを説明した。
最後に、実施の形態1〜3に示したスケジューリング装置1のハードウェア構成例について説明する。
図17は、実施の形態1〜3に示すスケジューリング装置1のハードウェア資源の一例を示す図である。
なお、図17の構成は、あくまでもスケジューリング装置1のハードウェア構成の一例を示すものであり、スケジューリング装置1のハードウェア構成は図17に記載の構成に限らず、他の構成であってもよい。
図17において、スケジューリング装置1は、プログラムを実行するCPU911(Central Processing Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう)を備えている。
CPU911は、バス912を介して、例えば、ROM(Read Only Memory)913、RAM(Random Access Memory)914、通信ボード915、表示装置901、キーボード902、マウス903、磁気ディスク装置920と接続され、これらのハードウェアデバイスを制御する。
更に、CPU911は、FDD904(Flexible Disk Drive)、コンパクトディスク装置905(CDD)、プリンタ装置906、スキャナ装置907と接続していてもよい。また、磁気ディスク装置920の代わりに、SSD(Solid State Drive)、光ディスク装置、メモリカード(登録商標)読み書き装置などの記憶装置でもよい。
RAM914は、揮発性メモリの一例である。ROM913、FDD904、CDD905、磁気ディスク装置920の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置の一例である。
実施の形態1で説明したように、格納領域7a〜7dは、例えば磁気ディスク装置920上に構成され、書込バッファ8b〜8d及び読込バッファ9はRAM914上に構成される。
通信ボード915、キーボード902、マウス903、スキャナ装置907などは、入力装置の一例である。
また、通信ボード915、表示装置901、プリンタ装置906などは、出力装置の一例である。
通信ボード915は、LANに接続されている。
また、通信ボード915は、LANを介して、インターネット、WAN(ワイドエリアネットワーク)、SAN(ストレージエリアネットワーク)などに接続可能である。
磁気ディスク装置920には、オペレーティングシステム921(OS)、ウィンドウシステム922、プログラム群923、ファイル群924が記憶されている。
プログラム群923のプログラムは、CPU911がオペレーティングシステム921、ウィンドウシステム922を利用しながら実行する。
また、RAM914には、CPU911に実行させるオペレーティングシステム921のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。
また、RAM914には、CPU911による処理に必要な各種データが格納される。
また、ROM913には、BIOS(Basic Input Output System)プログラムが格納され、磁気ディスク装置920にはブートプログラムが格納されている。
スケジューリング装置1の起動時には、ROM913のBIOSプログラム及び磁気ディスク装置920のブートプログラムが実行され、BIOSプログラム及びブートプログラムによりオペレーティングシステム921が起動される。
上記プログラム群923には、実施の形態1〜3の説明において「〜部」(「記憶部」及び「実行リソース管理テーブル保持部」以外、以下同様)として説明している機能を実行するプログラムが記憶されている。プログラムは、CPU911により読み出され実行される。
ファイル群924には、実施の形態1〜3の説明において、「〜の判断」、「〜の判定」、「〜の選択」、「〜の指定」、「〜の決定」、「〜の設定」、「〜の更新」、「〜の生成」、「〜の作成」、「〜の反映」、「〜の比較」、「〜の登録」、「〜の取得」、「〜の入力」、「〜の出力」等として説明している処理の結果を示す情報やデータや信号値や変数値や暗号鍵・復号鍵や乱数値やパラメータが、「〜ファイル」や「〜データベース」の各項目として記憶されている。
「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。
ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出される。
そして、読み出された情報やデータや信号値や変数値やパラメータは、抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示などのCPUの動作に用いられる。
抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示のCPUの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリ、レジスタ、キャッシュメモリ、バッファメモリ等に一時的に記憶される。
また、実施の形態1〜3で説明しているフローチャートの矢印の部分は主としてデータや信号の入出力を示す。
データや信号値は、RAM914のメモリ、FDD904のフレキシブルディスク、CDD905のコンパクトディスク、磁気ディスク装置920の磁気ディスク、その他光ディスク、ミニディスク、DVD等の記録媒体に記録される。
また、データや信号は、バス912や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
また、実施の形態1〜3の説明において「〜部」として説明しているものは、「〜回路」、「〜装置」、「〜機器」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。
すなわち、実施の形態1〜3で説明したフローチャートに示すステップ、手順、処理により、本発明に係る「情報処理方法」を実現することができる。
また、「〜部」として説明しているものは、ROM913に記憶されたファームウェアで実現されていても構わない。
或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。
ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVD等の記録媒体に記憶される。
プログラムはCPU911により読み出され、CPU911により実行される。
すなわち、プログラムは、実施の形態1〜3の「〜部」としてコンピュータを機能させるものである。あるいは、実施の形態1〜3の「〜部」の手順や方法をコンピュータに実行させるものである。
このように、実施の形態1〜3に示すスケジューリング装置1は、処理装置たるCPU、記憶装置たるメモリ、磁気ディスク等、入力装置たるキーボード、マウス、通信ボード等、出力装置たる表示装置、通信ボード等を備えるコンピュータである。
そして、上記したように「〜部」として示された機能をこれら処理装置、記憶装置、入力装置、出力装置を用いて実現するものである。
1 スケジューリング装置、2 タスク要求、2a タスク情報、3 実行リソース、4 タスク受付部、5 タスク駆動部、6 実行リソース管理テーブル、6a 実行リソース管理情報、7 格納領域、8 書込バッファ、9 読込バッファ、60 実行リソース管理テーブル保持部。

Claims (10)

  1. 複数の記憶領域を有する記憶部と、
    タスクの内容が示されるタスク情報の格納先を、前記複数の記憶領域の中から選択し、選択した記憶領域にタスク情報を格納するタスク情報格納部と、
    単位時間の経過ごとに繰り返し到来するタスク情報の読み出しタイミングが到来する度に、選択する記憶領域を読み出しタイミングごとに変化させて、前記複数の記憶領域の中からタスク情報の読み出し対象の記憶領域を選択し、選択した記憶領域に格納されているタスク情報を読み出し、読み出したタスク情報に示されるタスクを実行リソースに実行させるタスク管理部とを有し、
    前記記憶部は、
    全ての読み出しタイミングにおいて読み出し対象の記憶領域として選択される1つの優先記憶領域と、優先記憶領域以外の2つ以上の通常記憶領域とに区分され、
    それぞれの通常記憶領域には、読み出し対象の記憶領域として選択される順序として、読み出し順位が指定され、
    優先記憶領域には、現在時刻から、次の読み出しタイミングの時刻までの時間帯が指定され、
    第1位の読み出し順位が指定されている記憶領域には、次の読み出しタイミングの時刻から、次の読み出しタイミングの時刻に前記単位時間を加えて得られる時刻までの時間帯が指定され、
    第2位以降の読み出し順位の記憶領域には、1つ上位の読み出し順位の記憶領域に指定されている時間帯の終期に後続する時刻から、当該時刻に前記単位時間を加えて得られる時刻までの時間帯が指定され、
    前記タスク情報格納部は、
    タスクごとに、実行リソースにおいてタスクの実行を開始することが可能な時刻を実行開始可能時刻として予測し、予測した実行開始可能時刻を包含する時間帯が指定されている記憶領域を格納先として選択し、選択した記憶領域にタスク情報を格納し、
    前記タスク管理部は、
    読み出しタイミングが到来する度に、
    優先記憶領域と第1位の読み出し順位が指定されている通常記憶領域を読み出し対象の記憶領域として選択し、第1位の読み出し順位が指定されている通常記憶領域に格納されているタスク情報を優先記憶領域に移動させ、
    最下位の読み出し順位の通常記憶領域に指定されている時間帯の終期に後続する時刻から、当該時刻に前記単位時間を加えて得られる時刻までの時間帯を第1位の読み出し順位の通常記憶領域の新たな時間帯として指定し、第1位の読み出し順位が指定されている通常記憶領域の順位を最下位の読み出し順位にするとともに、第2位以降の読み出し順位の記憶領域の順位をそれぞれ1つずつ繰り上げ、それぞれの通常記憶領域に対して新たな読み出し順位を指定し、
    通常記憶領域から移動させたタスク情報を含む、優先記憶領域に格納されているタスク情報を読み出し、読み出したタスク情報に示されるタスクを実行リソースに実行させることを特徴とする情報処理装置。
  2. 前記タスク情報格納部は、
    タスクを実行させる実行リソースとして複数の実行リソースのうちのいずれかの実行リソースが示されるタスク情報の格納先を、タスク情報に示されている実行リソースと無関係に、前記複数の記憶領域の中から選択し、選択した記憶領域にタスク情報を格納し、
    前記タスク管理部は、
    選択した記憶領域に格納されているタスク情報を順次読み出し、読み出したタスク情報ごとに、タスク情報に示されるタスクを、タスク情報に示される実行リソースに実行させることを特徴とする請求項1に記載の情報処理装置。
  3. 前記タスク情報格納部は、
    早期に実行リソースに実行させるタスクのタスク情報ほど、上位の読み出し順位が指定されている記憶領域に格納することを特徴とする請求項に記載の情報処理装置。
  4. 前記情報処理装置は、更に、
    実行リソースが1つのタスクを実行する際に要する平均時間を平均タスク実行時間として示し、実行リソースにより実行済みのタスクの数を実行済みタスク数として示し、実行リソースによる実行待ちのタスクの数を実行待ちタスク数として示す実行リソース管理テーブルを保持する実行リソース管理テーブル保持部を有し、
    前記タスク情報格納部は、
    実行リソースに実行させるタスクごとに、前記リソース管理テーブルに示される平均タスク実行時間と実行待ちタスク数とを用いて実行開始可能時刻を予測し、予測した実行開始可能時刻を包含する時間帯が指定されている記憶領域をタスク情報の格納先として選択し、
    前記タスク管理部は、
    読み出しタイミングが到来する度に、
    優先記憶領域からタスク情報を読み出し、更に、読み出したタスク情報に示されるタスクを実行リソースに実行させた後に、
    実行リソースに実行させたタスクの実行時間と、前記リソース管理テーブルに示される平均タスク実行時間と実行済みタスク数とに基づき、平均タスク実行時間を更新し、
    更新後の平均タスク実行時間を前記実行リソース管理テーブルに反映させることを特徴とする請求項に記載の情報処理装置。
  5. 前記タスク情報格納部は、
    タスク情報を記憶領域に格納する度に、前記リソース管理テーブルの実行待ちタスク数を増加させ、
    前記タスク管理部は、
    実行リソースにタスクを実行させる度に、前記リソース管理テーブルの実行待ちタスク数を減少させ、実行済みタスク数を増加させることを特徴とする請求項に記載の情報処理装置。
  6. 複数の記憶領域を有する記憶部と、
    実行周期ごとの実行が要求される周期タスクの内容が示される周期タスクのタスク情報の格納先と、1回限りの実行が要求される非周期タスクの内容が示される非周期タスクのタスク情報の格納先とを、前記複数の記憶領域の中から選択し、周期タスクのタスク情報及び非周期タスクのタスク情報の各々を、各々について選択した記憶領域に格納するタスク情報格納部と、
    単位時間の経過ごとに繰り返し到来するタスク情報の読み出しタイミングが到来する度に、選択する記憶領域を読み出しタイミングごとに変化させて、前記複数の記憶領域の中からタスク情報の読み出し対象の記憶領域を選択し、選択した記憶領域に格納されている周期タスクのタスク情報及び非周期タスクのタスク情報の少なくともいずれかを読み出し、読み出したタスク情報に示されるタスクを実行リソースに実行させるタスク管理部とを有し、
    前記記憶部は、
    全ての読み出しタイミングにおいて読み出し対象の記憶領域として選択される1つの優先記憶領域と、優先記憶領域以外の2つ以上の通常記憶領域に区分され、
    それぞれの通常記憶領域には、読み出し対象の記憶領域として選択される順序として、読み出し順位が指定され、
    優先記憶領域には、現在時刻から、次の読み出しタイミングの時刻までの時間帯が指定され、
    第1位の読み出し順位が指定されている記憶領域には、次の読み出しタイミングの時刻から、次の読み出しタイミングの時刻に前記単位時間を加えて得られる時刻までの時間帯が指定され、
    第2位以降の読み出し順位の記憶領域には、1つ上位の読み出し順位の記憶領域に指定されている時間帯の終期に後続する時刻から、当該時刻に前記単位時間を加えて得られる時刻までの時間帯が指定され、
    前記タスク情報格納部は、
    周期タスクに対しては、実行リソースにより周期タスクが実行された直近の時刻に前記実行周期を加算して得られる時刻を包含する時間帯が指定されている記憶領域をタスク情報の格納先として選択し、選択した記憶領域にタスク情報を格納し、
    非周期タスクに対しては、実行リソースにおいて非周期タスクの実行を開始することが可能な時刻を実行開始可能時刻として予測し、予測した実行開始可能時刻を包含する時間帯が指定されている記憶領域をタスク情報の格納先として選択し、選択した記憶領域にタスク情報を格納し、
    前記タスク管理部は、
    読み出しタイミングが到来する度に、
    優先記憶領域と第1位の読み出し順位が指定されている通常記憶領域を読み出し対象の記憶領域として選択し、第1位の読み出し順位が指定されている通常記憶領域に格納されているタスク情報を優先記憶領域に移動させ、
    第1位の読み出し順位が指定されている通常記憶領域の順位を最下位の読み出し順位にするとともに、第2位以降の読み出し順位の記憶領域の順位をそれぞれ1つずつ繰り上げ、それぞれの通常記憶領域に対して新たな読み出し順位を指定し、
    通常記憶領域から移動させたタスク情報を含む、優先記憶領域に格納されているタスク情報を読み出し、読み出したタスク情報に示されるタスクを実行リソースに実行させることを特徴とする情報処理装置。
  7. 前記情報処理装置は、更に、
    実行リソースが1つのタスクを実行する際に要する平均時間を平均タスク実行時間として示し、実行リソースにより実行済みのタスクの数を実行済みタスク数として示し、実行リソースによる実行待ちの非周期タスクの数を実行待ちタスク数として示し、前記単位時間における周期タスクの実行数を周期タスク実行頻度として示す実行リソース管理テーブルを保持する実行リソース管理テーブル保持部を有し、
    前記タスク情報格納部は、
    非周期タスクに対して、前記リソース管理テーブルに示される平均タスク実行時間と実行待ちタスク数と周期タスク実行頻度とを用いて実行開始可能時刻を予測し、予測した実行開始可能時刻を包含する時間帯が指定されている記憶領域をタスク情報の格納先として選択し、
    前記タスク管理部は、
    読み出しタイミングが到来する度に、
    優先記憶領域からタスク情報を読み出し、更に、読み出したタスク情報に示されるタスクを実行リソースに実行させた後に、
    実行リソースに実行させたタスクの実行時間と、前記リソース管理テーブルに示される平均タスク実行時間と実行済みタスク数とに基づき、平均タスク実行時間を更新し、
    更新後の平均タスク実行時間を前記実行リソース管理テーブルに反映させることを特徴とする請求項に記載の情報処理装置。
  8. 前記タスク情報格納部は、
    非周期タスクのタスク情報を記憶領域に格納する度に、前記リソース管理テーブルの実行待ちタスク数を増加させ、
    周期タスクのタスク情報を記憶領域に格納する度に、当該周期タスクの実行周期の逆数を用いて前記リソース管理テーブルの周期タスク実行頻度を更新し、
    前記タスク管理部は、
    実行リソースに非周期タスクを実行させる度に、前記リソース管理テーブルの実行待ちタスク数を減少させ、実行済みタスク数を増加させることを特徴とする請求項に記載の情報処理装置。
  9. 複数の記憶領域を有する記憶部と、
    優先度が指定されているタスクの内容が示されるタスク情報の格納先を、前記複数の記憶領域の中から選択し、選択した記憶領域にタスク情報を格納するタスク情報格納部と、
    単位時間の経過ごとに繰り返し到来するタスク情報の読み出しタイミングが到来する度に、選択する記憶領域を読み出しタイミングごとに変化させて、前記複数の記憶領域の中からタスク情報の読み出し対象の記憶領域を選択し、選択した記憶領域から優先度が指定されているタスクのタスク情報を読み出し、読み出したタスク情報に示されるタスクを実行リソースに実行させるタスク管理部とを有し、
    前記記憶部は、
    全ての読み出しタイミングにおいて読み出し対象の記憶領域として選択される1つの優先記憶領域と、優先記憶領域以外の2つ以上の通常記憶領域に区分され、
    それぞれの通常記憶領域には、読み出し対象の記憶領域として選択される順序として、読み出し順位が指定され、
    優先記憶領域には、現在時刻から、次の読み出しタイミングの時刻から、次の読み出しタイミングの時刻に前記単位時間を加えて得られる時刻までの時間帯が指定され、
    第1位の読み出し順位が指定されている記憶領域には、次の読み出しタイミングの時刻から、次の読み出しタイミングの時刻に前記単位時間を加えて得られる時刻までの時間帯が指定され、
    第2位以降の読み出し順位の記憶領域には、1つ上位の読み出し順位の記憶領域に指定されている時間帯の終期に後続する時刻から、当該時刻に前記単位時間を加えて得られる時刻までの時間帯が指定され、
    更に、
    実行リソースが1つのタスクを実行する際に要する平均時間を平均タスク実行時間として示し、実行リソースにより実行済みのタスクの数を実行済みタスク数として示し、優先度ごとに、実行リソースによる実行待ちのタスクの数を実行待ちタスク数として示す実行リソース管理テーブルを保持する実行リソース管理テーブル保持部を有し、
    前記タスク情報格納部は、
    実行リソースに実行させるタスクに対して、前記リソース管理テーブルに示される平均タスク実行時間と、当該タスクの優先度での実行待ちタスク数と当該タスクの優先度よりも高い優先度での実行待ちタスク数とを用いて、実行リソースにおいて当該タスクの実行を開始することが可能な時刻を実行開始可能時刻として予測し、予測した実行開始可能時刻を包含する時間帯が指定されている記憶領域をタスク情報の格納先として選択し、
    前記タスク管理部は、
    読み出しタイミングが到来する度に、
    優先記憶領域と第1位の読み出し順位が指定されている通常記憶領域を読み出し対象の記憶領域として選択し、第1位の読み出し順位が指定されている通常記憶領域に格納されているタスク情報を優先記憶領域に移動させ、
    第1位の読み出し順位が指定されている通常記憶領域の順位を最下位の読み出し順位にするとともに、第2位以降の読み出し順位の記憶領域の順位をそれぞれ1つずつ繰り上げ、それぞれの通常記憶領域に対して新たな読み出し順位を指定し、
    通常記憶領域から移動させたタスク情報を含む、優先記憶領域に格納されているタスク情報を読み出し、読み出したタスク情報に示されるタスクを実行リソースに実行させ、
    実行リソースに実行させたタスクの実行時間と、前記リソース管理テーブルに示される平均タスク実行時間と実行済みタスク数とに基づき、平均タスク実行時間を更新し、
    更新後の平均タスク実行時間を前記実行リソース管理テーブルに反映させることを特徴とする情報処理装置。
  10. 前記タスク情報格納部は、
    タスク情報を記憶領域に格納する度に、記憶領域に格納したタスク情報が対象とするタスクの優先度の実行待ちタスク数を前記リソース管理テーブルにおいて増加させ、
    前記タスク管理部は、
    実行リソースにタスクを実行させる度に、前記リソース管理テーブルにおいて、当該タスクの優先度の実行待ちタスク数を減少させ、更に、実行済みタスク数を増加させることを特徴とする請求項に記載の情報処理装置。
JP2011259664A 2011-11-29 2011-11-29 情報処理装置 Expired - Fee Related JP5791478B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011259664A JP5791478B2 (ja) 2011-11-29 2011-11-29 情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011259664A JP5791478B2 (ja) 2011-11-29 2011-11-29 情報処理装置

Publications (2)

Publication Number Publication Date
JP2013114435A JP2013114435A (ja) 2013-06-10
JP5791478B2 true JP5791478B2 (ja) 2015-10-07

Family

ID=48709933

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011259664A Expired - Fee Related JP5791478B2 (ja) 2011-11-29 2011-11-29 情報処理装置

Country Status (1)

Country Link
JP (1) JP5791478B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107479943B (zh) * 2017-07-03 2020-02-21 北京东土科技股份有限公司 基于工业互联网操作系统的多操作系统运行方法及装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06282447A (ja) * 1993-03-29 1994-10-07 Mitsubishi Electric Corp 待ち行列管理方式
JP3915672B2 (ja) * 2002-11-18 2007-05-16 株式会社デンソー リアルタイムタスク制御装置
JP5465067B2 (ja) * 2010-04-14 2014-04-09 三菱電機株式会社 スケジューリング装置、スケジューリング方法およびスケジューリングプログラム

Also Published As

Publication number Publication date
JP2013114435A (ja) 2013-06-10

Similar Documents

Publication Publication Date Title
US9959313B2 (en) Database management system and method capable of dynamically issuing inputs/outputs and executing operations in parallel
JP6198226B2 (ja) 順次並んだスワップ・ファイルを使用するワーキング・セットのスワップ
US9280470B2 (en) Cache replacement for shared memory caches
EP2478441B1 (en) Read and write aware cache
JP2008547106A (ja) 検索用バックオフメカニズム
EP2889776B1 (en) Data arrangement control program, data arrangement control method and data arrangment control apparatus
US20080235696A1 (en) Access control apparatus and access control method
US9489295B2 (en) Information processing apparatus and method
US8954969B2 (en) File system object node management
JP5697195B2 (ja) アクセス予測に基づいてテーブルのミラーリングを制御する管理システム、プログラムおよび方法
JP2018194875A (ja) 並列処理装置、ジョブ管理方法、およびジョブ管理プログラム
JP5791478B2 (ja) 情報処理装置
JP6194875B2 (ja) キャッシュ装置、キャッシュシステム、キャッシュ方法、及びキャッシュプログラム
US8356141B2 (en) Identifying replacement memory pages from three page record lists
US8589633B2 (en) Control apparatus
JP2009199367A (ja) 計算機システム、i/oスケジューラ及びi/oスケジューリング方法
An et al. Your read is our priority in flash storage
US20220197555A1 (en) Prefetching container data in a data storage system
JP2015176218A (ja) 演算処理装置、演算処理装置の制御方法、及び演算処理装置の制御プログラム
JP5147296B2 (ja) 計算機システム、データベース管理方法及びプログラム
WO2016001959A1 (ja) ストレージシステム
JP3898369B2 (ja) ページング処理装置および記録媒体
Tatebe et al. System Software for Data-Intensive Science
CN116932196A (zh) 融合系统的数据处理方法、装置、设备和系统
Sanders et al. Real-time integrated prefetching and caching

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141009

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150415

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150428

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150617

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150804

R150 Certificate of patent or registration of utility model

Ref document number: 5791478

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees