説明

タスクおよびリソースのスケジューリング装置及びその方法並びに制御装置

【課題】タスクの実行周期の遅延を低減させることを目的とする。
【解決手段】実行中のタスクK1において、入出力部24へ転送すべきデータが発生した場合に、スケジュール部21は、入出力部24への共有資源のアクセス権を取得し、入出力部24へ転送すべきデータを複数のデータブロックに分割し、データブロックの転送完了毎に、タスクK1に割り当てられたCPU実行時間の終了を通知する情報が発生したか否かを判定する。該情報が発生していない場合には、スケジュール部21は、次に転送すべきデータブロックの転送処理を実行し、該情報が発生していた場合には、タスクK1の入出力部24のアクセス権を返却するとともに、未転送のデータブロックを次回の当該タスクK1のCPU実行時間まで保留する。また、データブロックは、当該タスクK1の次に実行されるタスクK2の実行周期の遅延の許容範囲内で転送可能なデータ量とされている。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、タスクおよびリソースのスケジューリング装置及びその方法並びに制御装置に関するものである。
【背景技術】
【0002】
従来、複数のタスクを動作させるマルチタスクの実行方法として、ラウンドロビンスケジューリングや優先度に基づくスケジューリング等が知られている(例えば、特許文献1、特許文献2参照)。
このようなマルチタスクのスケジューリング方式では、共有資源アクセスを行う際の排他制御を実現する方法として、例えば、セマフォやミューテックス等のシステムコールによって、オペレーティングシステム(OS)から共有資源へのアクセス権を取得し、該共有資源を利用した処理が終了した時点でアクセス権をOSに返却する方法がとられている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開平11−24946号公報
【特許文献2】特開2000−20323号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上記方法では、実行中のタスクによる共有資源を利用した処理が終了するまで、同共有資源へのアクセスを必要とする次のタスクの実行が待たされる。したがって、例えば、大量のデータを通信するようなタスクが実行された場合には、実行中のタスクによる共有資源の占有が長期化することとなり、後続のタスクの遅延時間が大きくなってしまう。
【0005】
また、実行中のタスクへ割り当てられるCPU実行時間の終了時において、実行中のタスクによる共有資源のアクセスを中断させ、該共有資源のアクセス権を強制的にOSに返却させる制御も考えられるが、途中でアクセスを中断できないような共有資源の場合には、このような対応ができず、後続のタスクの遅延時間は免れない。
【0006】
本発明は、このような事情に鑑みてなされたものであって、タスクの実行周期の遅延を低減させることのできるタスクおよびリソースのスケジューリング装置及びその方法並びに制御装置を提供することを目的とする。
【課題を解決するための手段】
【0007】
上記課題を解決するために、本発明は以下の手段を採用する。
本発明は、CPU時間を一定時間毎に区切ったタイムスロットを複数に分割したタイムスライスをCPU実行時間として複数のタスクのそれぞれに割り当てることにより、複数のタスクの時分割処理を可能とするオペレーションシステムのタスクおよびリソースのスケジューリング装置であって、実行中のタスクにおいて、共有資源へ転送すべきデータが発生した場合に、前記共有資源のアクセス権を取得する手段と、前記共有資源へ転送すべき該データを複数のデータブロックに分割する手段と、前記データブロックの転送完了毎に、当該タスクに割り当てられた前記CPU実行時間の終了を通知する情報が発生したか否かを判定する手段と、該情報が発生していない場合には、次に転送すべきデータブロックの転送処理を実行し、該情報が発生していた場合には、前記共有資源のアクセス権を返却するとともに、未転送の前記データブロックを次回の当該タスクのCPU実行時間まで保留する手段とを有し、前記データブロックは、当該タスクの次に実行されるタスクの実行周期の遅延の許容範囲内で転送可能なデータ量とされるタスクおよびリソースのスケジューリング装置を提供する。
【0008】
上記構成によれば、実行中のタスクにおいて共有資源へ転送すべきデータが発生した場合には、そのデータが複数のデータブロックに分割され、該データブロック単位で転送処理が行われるとともに、各データブロックの転送完了において、当該タスクに割り当てられたCPU実行時間の終了を通知する割り込みが発生したか否かが判断される。これにより、データ転送中に次のタスクの開始時間が訪れることにより、タスクの切替が行われたとしても、今まで実行されていたタスクの共有資源の占有による次のタスクへの影響を1つのデータブロックの転送時間以下とすることができる。ここで、データブロックは、次に実行されるタスクの実行周期の遅延の許容範囲内で転送可能なデータ量とされているので、共有資源の占有に起因する次のタスクの遅延を許容範囲以下とすることができ、複数のタスクを確定的に周期動作させることが可能となる。
【0009】
本発明は、CPU時間を一定時間毎に区切ったタイムスロットを複数に分割したタイムスライスをCPU実行時間として複数のタスクのそれぞれに割り当てることにより、複数のタスクの時分割処理を可能とするオペレーションシステムのタスクおよびリソースのスケジューリング装置であって、実行中のタスクにおいて、共有資源へ転送すべきデータが発生した場合に、前記共有資源のアクセス権を取得する手段と、前記共有資源へ転送すべき該データを複数のデータブロックに分割する手段と、前記データブロックの転送完了毎に、他のタスクから前記共有資源へのアクセス要求が発生したか否かを判定する手段と、該アクセス要求が発生していない場合には、次に転送すべきデータブロックの転送処理を実行し、該アクセス要求が発生していた場合には、前記共有資源のアクセス権を返却するとともに、未転送の前記データブロックを次回の当該タスクのCPU実行時間まで保留する手段とを有し、前記データブロックは、全ての前記タスクの実行周期の遅延の許容範囲のうち、最も短い許容範囲内で転送可能なデータ量とされるタスクおよびリソースのスケジューリング装置を提供する。
【0010】
このような構成によれば、実行中のタスクにおいて共有資源へ転送すべきデータが発生した場合に、そのデータが複数のデータブロックに分割され、該データブロック単位で転送処理が行われるとともに、該データブロックの転送完了毎に、他のタスクによる共有資源へのアクセス要求が発生されたか否かが判断される。これにより、他のタスクによる共有資源へのアクセス要求がない限りは、現在アクセス権を占有しているタスクにおいて発生したデータ転送を継続して行うことが可能となる。この結果、共有資源を必要とするタスクに効率的に共有資源を利用させることが可能となる。
更に、他のタスクによるアクセス要求が発生した場合には、この他のタスクに対して速やかにアクセス権を明け渡すことが可能となる。これにより、タスクの実行周期の遅延時間を低減させることができる。この場合において、上記データブロックは、全てのタスクの実行周期の遅延の許容範囲のうち、最も短い許容範囲内で転送可能なデータ量とされているので、共有資源の占有に起因する各タスクの実行周期の遅延を許容範囲以下とすることができる。
【0011】
上記いずれかのタスクおよびリソースのスケジューリング装置において、前記タイムスロットには、タスクの割り当てが行われない空き時間が含まれていてもよい。
【0012】
このように、上記タイムスロットにタスクの割り当てが行われない空き時間を含ませることで、各タスクの実行遅延を該空き時間で吸収することができる。この結果、各タスクを略一定の周期で実行させることが可能となる。
【0013】
本発明は、上記いずれかのタスクおよびリソースのスケジューリング装置を備える制御装置を提供する。
【0014】
本発明は、CPU時間を一定時間毎に区切ったタイムスロットを複数に分割したタイムスライスをCPU実行時間として複数のタスクのそれぞれに割り当てることにより、複数のタスクの時分割処理を可能とするオペレーションシステムのタスクおよびリソースのスケジューリング方法であって、実行中のタスクにおいて、共有資源へ転送すべきデータが発生した場合に、前記共有資源のアクセス権を取得し、前記共有資源へ転送すべき該データを複数のデータブロックに分割し、前記データブロックの転送完了毎に、当該タスクに割り当てられた前記CPU実行時間の終了を通知する情報が発生したか否かを判定し、該情報が発生していない場合には、次に転送すべきデータブロックの転送処理を実行し、該情報が発生していた場合には、前記共有資源のアクセス権を返却するとともに、未転送の前記データブロックを次回の当該タスクのCPU実行時間まで保留し、前記データブロックが、当該タスクの次に実行されるタスクの実行周期の遅延の許容範囲内で転送可能なデータ量とされるタスクおよびリソースのスケジューリング方法を提供する。
【0015】
本発明は、CPU時間を一定時間毎に区切ったタイムスロットを複数に分割したタイムスライスをCPU実行時間として複数のタスクのそれぞれに割り当てることにより、複数のタスクの時分割処理を可能とするオペレーションシステムのタスクおよびリソースのスケジューリング方法であって、実行中のタスクにおいて、共有資源へ転送すべきデータが発生した場合に、前記共有資源のアクセス権を取得し、前記共有資源へ転送すべき該データを複数のデータブロックに分割し、前記データブロックの転送完了毎に、他のタスクから前記共有資源へのアクセス要求が発生したか否かを判定し、該アクセス要求が発生していない場合には、次に転送すべきデータブロックの転送処理を実行し、該アクセス要求が発生していた場合には、前記共有資源のアクセス権を返却するとともに、未転送の前記データブロックを次回の当該タスクのCPU実行時間まで保留し、前記データブロックが、全ての前記タスクの実行周期の遅延の許容範囲のうち、最も短い許容範囲内で転送可能なデータ量とされるタスクおよびリソースのスケジューリング方法を提供する。
【発明の効果】
【0016】
本発明によれば、複数のタスクの実行周期の遅延を低減させることができるという効果を奏する。
【図面の簡単な説明】
【0017】
【図1】本発明の第1実施形態に係るタスクおよびリソースのスケジューリング装置が適用された制御装置のハードウェア構成を示したブロック図である。
【図2】本発明の第1実施形態に係る制御装置の機能ブロック図を示した図である。
【図3】本発明の第1実施形態に係るタスクおよびリソースのスケジューリング装置によって実施されるタスクおよびリソースのスケジューリング方法のタイミングチャートを示した図である。
【図4】本発明の第2実施形態に係るタスクおよびリソースのスケジューリング装置によって実施されるタスクおよびリソースのスケジューリング方法のタイミングチャートを示した図である。
【図5】本発明の第3実施形態に係るタイムスロットの構成を示した図である。
【発明を実施するための形態】
【0018】
〔第1実施形態〕
以下に、本発明の第1実施形態に係るタスクおよびリソースのスケジューリング装置及びその方法並びに制御装置について図面を参照して説明する。
本発明のタスクおよびリソースのスケジューリング装置及びその方法は、情報処理装置や制御装置等に対して広く適用可能であるが、以下においては、火力発電システムの制御に利用される制御装置に適用される場合を例示して説明する。
【0019】
図1は、本実施形態に係るタスクおよびリソースのスケジューリング装置が適用された制御装置1のハードウェア構成を示したブロック図である。図1に示すように、制御装置1は、CPU11、CPU11が実行するプログラム等を記憶するためのROM(Read Only Memory)12、各プログラム実行時のワーク領域として機能するRAM(Random Access Memory)13、タイマ14、および入出力デバイス(I/Oデバイス)15を主な構成として備えている。これら各部は、バス18を介して接続されている。
また、入出力デバイス15を介して、制御装置1には、入力装置2や出力装置3が接続されている。
【0020】
上記ROM12には、ボイラを制御するための制御アプリケーションや、タービンを制御するためのタービン制御アプリケーションなどの複数の制御アプリケーションが記録されており、これらの制御アプリケーションをCPU11がRAM13に読み出して実行することにより、ボイラ制御やタービン制御等が実現される。
また、ボイラ制御やタービン制御に必要となる各種データは、入力装置2から入出力デバイス15を介して入力される。入力された各種データはそれぞれの制御アプリケーションにおいて用いられ、演算結果としての制御指令などが出力装置3へ出力される。
【0021】
図2は、制御装置1の機能ブロック図を示した図である。図2に示すように、制御装置1は、複数のタスクK1〜Kn、スケジューラ部(タスクおよびリソースのスケジューリング装置)21、タイマ部22、ハンドラ部23、及び入出力部24を主な構成として備えている。
【0022】
上記複数のタスクK1〜Knは、それぞれ入力部、演算部、および出力部を備えている。これらタスクは、例えば、上述したボイラを制御するための制御アプリケーションや、タービンを制御するためのタービン制御アプリケーションなどを実行する。
【0023】
スケジューラ部21は、オペレーションシステム(OS)により実行される機能の一つであり、例えば、図3に示すように、CPU時間を所定時間毎に区切ったタイムスロットを分割したタイムスライスA1〜AnをCPU実行時間としてタスクK1〜Knのそれぞれに割り当てることにより、複数のタスクK1〜Knの時分割処理を可能とする。なお、各タイムスライスに対するタスクの割り当てについては、この例に限定されない。例えば、1つのタイムスライスに複数のタスクをグループとして割り当てることも可能である。
本実施形態において、各タイムスロットは1msecに設定されており、これにより、各タスクのCPU実行時間の割り当ては1msec周期とされている。
【0024】
タイマ部22は、スケジューラ部21によってセットされた時間を計時し、セットされた時間が経過したときに、ハンドラ部23に対してその旨を通知する。ハンドラ部23は、タイマ22から通知を受けると、スケジューラ部21に対して割り込みを発生させる。
これにより、図3に示したタイムスライスA1〜Anのそれぞれの時間が終了したときに、割り込みが発生し、これを受けたスケジューラ部21によって各タスクの切り替えが周期的に行われる。
入出力部24は、複数のタスクによりアクセスされる共有資源である。入出力部24の具体例としては、例えば、DMAコントローラ、SDメモリカード等のメモリにデータを書き込むインターフェースなどが挙げられる。
【0025】
次に、上記スケジューラ部21によって実施されるタスクおよびリソースのスケジューリング方法について図2及び図3を参照して説明する。
まず、図3の時刻t0において、タイムスロット#NのタイムスライスA1の開始時期が訪れると、タスクK1が実行される。このタスクK1の実行中である時刻t1において、共有資源である入出力部24に対して転送すべきデータが発生した場合、タスクK1はスケジューラ部21に対して入出力部24へ転送すべきデータが発生したことを通知する。スケジューラ部21は、この通知を受け付けると、入出力部24へのアクセス権を取得する(図3の時刻t1参照)。
また、スケジューラ部21は、転送対象となるデータを取得し、このデータを複数のデータブロックに分割し、該データブロック単位によるデータ転送を開始する。
ここで、上記データブロックは、次に実行されるタスクK2の実行周期の遅延(レイテンシ)の許容範囲内の時間で転送可能なデータ量とされる。
【0026】
続いて、時刻t2において、ハンドラ部23による割り込みが発生し、タスクK1に割り当てられたタイムスライスA1が終了した旨がハンドラ部23からスケジューラ部21に通知されると、スケジューラ部21は、タスクK1の実行を中断し、タスクK2の実行に切り替える。これにより、時刻t2においてタスクK2の実行が開始される。
また、スケジューラ部21は、時刻t2の時点で転送中であったデータブロックの転送処理が終了した時点で(図3の時刻t3参照)、タスクK1が保有していたアクセス権を返却する。これにより、他のタスクによる入出力部24のアクセス権の取得が可能な状態とされる。
【0027】
また、スケジューラ部21は、タスクK1が占有していたアクセス権を返却することに伴い、未転送となったデータブロックについては、次のタイムスロット#N+1におけるタスクK1のCPU実行時間、すなわち、タイムスライスA1まで保留する。
【0028】
このように、本実施形態においては、スケジューラ部21は、データブロックの転送が完了する毎に、当該タスクK1に割り当てられたタイムスライスA1の終了を通知する情報が発生したか否かを判定する。すなわち、ハンドラ部23からタイムスライスA1の終了を通知する割り込みが発生したか否かを判定する。
この結果、ハンドラ部23による割り込みが発生していない場合には、次に転送すべきデータブロックの転送処理が実行され、他方、ハンドラ部23による割り込みが発生していた場合には、共有資源のアクセス権が返却されるとともに、未転送のデータブロックについては当該タスクK1の次のタイムスライスA1まで保留される。
このような処理がスケジュール部21により実行されることにより、図3に示すようなタスクの切り替えおよびアクセス権の明け渡しが実現される。
【0029】
次に、タスクK2の実行中である図3の時刻t4において、入出力部24に対して転送すべきデータが発生したことが、タスクK2からスケジューラ部21に通知されると、スケジューラ部21は、入出力部24へのアクセス権を取得する(図3の時刻t4参照)。そして、スケジューラ部21は、転送対象となるデータを取得し、このデータを複数のデータブロックに分割し、該データブロック単位によるデータ転送を開始する。このとき、データブロックは、次に実行されるタスクK3の実行周期の遅延の許容範囲内の時間で転送可能なデータ量とされる。
【0030】
スケジュール部21は、データブロックの転送完了毎に、当該タスクK2に割り当てられたタイムスライスA2の終了を通知する情報が発生したか否かを判定する。したがって、例えば、図3の時刻t5においてタイムスライスA2の終了を通知する割り込みが発生した場合には、転送中であるデータブロックを転送し終えた時点(時刻t6参照)で、入出力部24へのアクセス権を返却するとともに、未転送であるデータブロックについては、次のタイムスロット#N+1における当該タスクK2のCPU実行時間、すなわち、タイムスライスA2まで保留する。
【0031】
そして、同様の手順に従って、タスクK3以降のタスクが実行され、タスクKnのCPU実行時間であるタイムスライスAnが終了すると、新たなタイムスロット#N+1が訪れ、時刻t7において、タスクK1が実行される。タスクK1では、タイムスロット#NのタイムスライスA1で保留されていたデータの転送処理が再開される。すなわち、時刻t7において、タスクK1による入出力部24のアクセス権が取得され、データブロック単位でのデータ転送が再開される。そして、タスクK1の実行中である時刻t8において、全てのデータの転送が終了すると、タスクK1は入出力部24のアクセス権を返却し、後続の処理を実行する。
【0032】
そして、時刻t9においてタイムスライスA1の終了を通知する割り込みが発生すると、スケジューラ部21は実行するタスクをタスクK1からタスクK2に切り替える。これにより、タスクK1と同様に、タスクK2においてタイムスロット#Nで保留されていたデータブロックの転送処理が再開される。
【0033】
以上説明してきたように、本実施形態に係るタスクおよびリソースのスケジューリング装置及びその方法並びに制御装置によれば、実行中のタスクにおいて共有資源へ転送すべきデータが発生した場合には、そのデータが複数のデータブロックに分割され、該データブロック単位で転送処理が行われるとともに、各データブロックの転送完了において、当該タスクに割り当てられたCPU実行時間(タイムスライス)の終了を通知する割り込みが発生したか否かが判断される。これにより、データ転送中に次のタスクの開始時間が訪れることにより、タスクの切替が行われたとしても、今まで実行されていたタスクの共有資源の占有による次のタスクへの影響を1つのデータブロックの転送時間以下とすることができる。ここで、データブロックは、次に実行されるタスクの遅延許容範囲内で転送可能なデータ量とされているので、共有資源の占有に起因する次のタスクの遅延を許容範囲以下とすることができ、複数のタスクを確定的に周期動作させることが可能となる。更に、各タスクを確定的に周期動作させることにより、アプリケーションの制御周期の遅延も低減することが可能となる。
【0034】
〔第2実施形態〕
次に、本発明の第2実施形態に係るタスクおよびリソースのスケジューリング装置及びその方法並びに制御装置について図4を参照して説明する。
上述した第1実施形態においては、タスクの切り替えの割り込みが発生したか否かにより、共有資源のアクセス権を返却するか否かを決定していたが、本実施形態は、他のタスクによる同共有資源へのアクセス要求があるか否かにより、共有資源のアクセス権を返却するか否かを決定する。
以下、上記第1実施形態と共有する点については説明を省略し、異なる点について主に説明する。
【0035】
図4は、本実施形態に係るタスクおよびリソースのスケジューリング装置によって実施されるタスクスケジューリング方法のタイミングチャートを示した図である。
まず、上記第1実施形態と同様に、図4の時刻t0において、タイムスロット#NのタイムスライスA1の開始時期が訪れると、タスクK1が実行される。続いて、時刻t1において共有資源である入出力部24に対して転送すべきデータが発生すると、スケジューラ部21により入出力部24のアクセス権が取得され、データブロック単位での転送処理が開始される。
【0036】
続いて、図4の時刻t2において、ハンドラ部23による割り込みが発生し、タスクK1に割り当てられたタイムスライスA1が終了した旨がハンドラ部23からスケジューラ部21に通知されると、スケジューラ部21は、タスクK1の実行を中断し、タスクK2の実行に切り替える。これにより、図4の時刻t2においてタスクK2の実行が開始される。一方、このようなタスクの切り替えが行われても、タスクK2から入出力部24へのアクセス要求が発生しない限り、タスクK1が入出力部24のアクセス権を保有する。この結果、タスクK1で発生したデータの転送処理が継続して実行される。
【0037】
続いて、図4の時刻t3において、タスクK2からの入出力部24へのアクセス要求が発生すると、スケジュール部21は、現在転送中のデータブロックの転送が終了した時点(図4の時刻t4参照)で、タスクK1が保有していたアクセス権を返却し、タスクK2にアクセス権を渡す。また、タスクK1による残りの転送データについては、次のタイムスロット#N+1におけるタスクK1のCPU実行時間、すなわち、タイムスライスA1まで保留する。
【0038】
すなわち、本実施形態によれば、データブロックの転送が完了する毎に、他のタスクによる入出力部24へのアクセス要求が発生したか否かが判定され、アクセス要求が発生していない場合には、入出力部24へのデータ転送処理が継続して行われ、他のタスクによるアクセス要求が発生していた場合には、入出力部24へのアクセス権を返却して、アクセス要求を行った他のタスクにアクセス権を渡すという処理がスケジューラ部21にて行われる。
そして、このようにしてアクセス権を取得したタスクK2では、入出力部24へのデータブロック単位のデータ転送が同様に開始される。
【0039】
以上、説明したように、本実施形態に係るタスクおよびリソースのスケジューリング装置及びその方法並びに制御装置によれば、実行中のタスクにおいて共有資源へ転送すべきデータが発生した場合に、そのデータが複数のデータブロックに分割され、該データブロック単位で転送処理が行われるとともに、該データブロックの転送完了毎に、他のタスクによる共有資源へのアクセス要求が発生されたか否かが判断される。これにより、他のタスクによる共有資源へのアクセス要求がない限りは、現在アクセス権を占有しているタスクにおいて発生したデータ転送を継続して行うことが可能となる。この結果、共有資源を必要とするタスクに効率的に共有資源を利用させることが可能となる。
【0040】
更に、本実施形態によれば、他のタスクによるアクセス要求が発生した場合には、この他のタスクに対して速やかにアクセス権を明け渡すことが可能となる。これにより、タスクの実行周期の遅延時間を低減させることができる。この場合において、上記データブロックは、全てのタスクK1〜Knの実行周期の遅延の許容範囲のうち、最も短い許容範囲内で転送可能なデータ量とされているので、共有資源の占有に起因する各タスクの遅延を許容範囲以下とすることができる。
【0041】
〔第3実施形態〕
次に、本発明の第3実施形態に係るタスクおよびリソースのスケジューリング装置及びその方法並びに制御装置について図5を参照して説明する。
上述した第1実施形態または第2実施形態においては、タイムスロットをN分割してN個のタイムスライスA1〜Anを生成し、各タイムスライスA1〜Anを各タスクK1〜Knにそれぞれ割り当てていたが、本実施形態では、図5に示すように、タスクの割り当てが行われない空き時間Gが各タイムスロットに含まれている点で上述した各実施形態と異なる。
【0042】
例えば、本実施形態においては、タスクK1〜Knに割り当てる各タイムスライスの時間が予め定められており、タイムスロットの周期ΔTはタスクK1〜Knに割り当てられる各タイムスライスA1〜Anの合計時間よりも長めに設定されている。これにより、各タイムスロットには必ずタスクが割り当てられない時間帯Gが存在することとなる。また、このとき、タスクが割り当てられない時間帯Gは、上述した1つのデータブロックを転送する時間に比べて十分長い時間となるように設定されている。
【0043】
ここで、タスクが割り当てられない時間帯Gは、以下のように設定される。
例えば、各タイムスロットにおいて、全てのタスクK1〜Knに割り当てられたタイムスライスA1〜Anが終了した時点で、次のタイムスロットが開始されるまでの時間ΔTgがスケジューラ部21で算出され、この時間ΔTgが時間帯Gとしてタイマ部22にセットされる。これにより、時間ΔTgが経過した時点で、タイマ部22からハンドラ部23にその旨が通知され、ハンドラ部23による割り込み処理が発生することにより、次のタイムスロットが開始される。
【0044】
ここで、上記時間帯Gは、各タイムスロットにおいて全てのタスクが終了した後に設定されるので、各タスクの実行遅延の状態に応じて調整されることとなる。すなわち、そのタイムスロットにおけるタスクの実行遅延量が大きければ時間帯Gは短く調整され、実行遅延量が小さければ時間帯Gは長く調整される。
【0045】
このように、各タイムスロットにタスクが割り当てられない時間帯Gを含ませることで、各タスクの実行遅延を該時間帯Gで吸収することができ、各タイムスロットを確実に一定周期とすることができる。
【符号の説明】
【0046】
1 制御装置
2 入力装置
3 出力装置
11 CPU
12 ROM
13 RAM
14 タイマ
15 入出力デバイス
21 スケジューラ部
22 タイマ部
23 ハンドラ部
24 入出力部
K1〜Kn タスク
A1〜An タイムスライス


【特許請求の範囲】
【請求項1】
CPU時間を一定時間毎に区切ったタイムスロットを複数に分割したタイムスライスをCPU実行時間として複数のタスクのそれぞれに割り当てることにより、複数のタスクの時分割処理を可能とするオペレーションシステムのタスクおよびリソースのスケジューリング装置であって、
実行中のタスクにおいて、共有資源へ転送すべきデータが発生した場合に、前記共有資源のアクセス権を取得する手段と、
前記共有資源へ転送すべき該データを複数のデータブロックに分割する手段と、
前記データブロックの転送完了毎に、当該タスクに割り当てられた前記CPU実行時間の終了を通知する情報が発生したか否かを判定する手段と、
該情報が発生していない場合には、次に転送すべきデータブロックの転送処理を実行し、該情報が発生していた場合には、前記共有資源のアクセス権を返却するとともに、未転送の前記データブロックを次回の当該タスクのCPU実行時間まで保留する手段と
を有し、
前記データブロックは、当該タスクの次に実行されるタスクの実行周期の遅延の許容範囲内で転送可能なデータ量とされるタスクおよびリソースのスケジューリング装置。
【請求項2】
CPU時間を一定時間毎に区切ったタイムスロットを複数に分割したタイムスライスをCPU実行時間として複数のタスクのそれぞれに割り当てることにより、複数のタスクの時分割処理を可能とするオペレーションシステムのタスクおよびリソースのスケジューリング装置であって、
実行中のタスクにおいて、共有資源へ転送すべきデータが発生した場合に、前記共有資源のアクセス権を取得する手段と、
前記共有資源へ転送すべき該データを複数のデータブロックに分割する手段と、
前記データブロックの転送完了毎に、他のタスクから前記共有資源へのアクセス要求が発生したか否かを判定する手段と、
該アクセス要求が発生していない場合には、次に転送すべきデータブロックの転送処理を実行し、該アクセス要求が発生していた場合には、前記共有資源のアクセス権を返却するとともに、未転送の前記データブロックを次回の当該タスクのCPU実行時間まで保留する手段と
を有し、
前記データブロックは、全ての前記タスクの実行周期の遅延の許容範囲のうち、最も短い許容範囲内で転送可能なデータ量とされるタスクおよびリソースのスケジューリング装置。
【請求項3】
前記タイムスロットには、タスクの割り当てが行われない空き時間が含まれている請求項1または請求項2に記載のタスクおよびリソースのスケジューリング装置。
【請求項4】
請求項1から請求項3のいずれかに記載のタスクおよびリソースのスケジューリング装置を備える制御装置。
【請求項5】
CPU時間を一定時間毎に区切ったタイムスロットを複数に分割したタイムスライスをCPU実行時間として複数のタスクのそれぞれに割り当てることにより、複数のタスクの時分割処理を可能とするオペレーションシステムのタスクおよびリソースのスケジューリング方法であって、
実行中のタスクにおいて、共有資源へ転送すべきデータが発生した場合に、前記共有資源のアクセス権を取得し、
前記共有資源へ転送すべき該データを複数のデータブロックに分割し、
前記データブロックの転送完了毎に、当該タスクに割り当てられた前記CPU実行時間の終了を通知する情報が発生したか否かを判定し、
該情報が発生していない場合には、次に転送すべきデータブロックの転送処理を実行し、該情報が発生していた場合には、前記共有資源のアクセス権を返却するとともに、未転送の前記データブロックを次回の当該タスクのCPU実行時間まで保留し、
前記データブロックが、当該タスクの次に実行されるタスクの実行周期の遅延の許容範囲内で転送可能なデータ量とされるタスクおよびリソースのスケジューリング方法。
【請求項6】
CPU時間を一定時間毎に区切ったタイムスロットを複数に分割したタイムスライスをCPU実行時間として複数のタスクのそれぞれに割り当てることにより、複数のタスクの時分割処理を可能とするオペレーションシステムのタスクスケジューリング方法であって、
実行中のタスクにおいて、共有資源へ転送すべきデータが発生した場合に、前記共有資源のアクセス権を取得し、
前記共有資源へ転送すべき該データを複数のデータブロックに分割し、
前記データブロックの転送完了毎に、他のタスクから前記共有資源へのアクセス要求が発生したか否かを判定し、
該アクセス要求が発生していない場合には、次に転送すべきデータブロックの転送処理を実行し、該アクセス要求が発生していた場合には、前記共有資源のアクセス権を返却するとともに、未転送の前記データブロックを次回の当該タスクのCPU実行時間まで保留し、
前記データブロックが、全ての前記タスクの実行周期の遅延の許容範囲のうち、最も短い許容範囲内で転送可能なデータ量とされるタスクおよびリソースのスケジューリング方法。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2013−29873(P2013−29873A)
【公開日】平成25年2月7日(2013.2.7)
【国際特許分類】
【出願番号】特願2011−163389(P2011−163389)
【出願日】平成23年7月26日(2011.7.26)
【出願人】(000006208)三菱重工業株式会社 (10,378)