JP2006244293A - タスク実行制御方法及び装置 - Google Patents
タスク実行制御方法及び装置 Download PDFInfo
- Publication number
- JP2006244293A JP2006244293A JP2005061248A JP2005061248A JP2006244293A JP 2006244293 A JP2006244293 A JP 2006244293A JP 2005061248 A JP2005061248 A JP 2005061248A JP 2005061248 A JP2005061248 A JP 2005061248A JP 2006244293 A JP2006244293 A JP 2006244293A
- Authority
- JP
- Japan
- Prior art keywords
- task
- time
- real
- priority
- execution
- 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
Landscapes
- Debugging And Monitoring (AREA)
Abstract
【課題】リアルタイムタスクと時分割多重タスクという異なる性質のタスクが混在する場合であっても、両方のタスクの処理を実行することができるタスク実行制御方法及び装置を提供する。
【解決手段】リアルタイムタスクの実行順序についての優先度を設定する設定部3と、設定部3が設定した優先度のうち最も高い優先度のリアルタイムタスクを実行するタスク実行部7と、タスク実行部7が実行するリアルタイムタスクの次に実行するリアルタイムタスクを決定する制御部4を有する。また、制御部4が決定したリアルタイムタスクの優先度が、タスク実行部7が実行しているリアルタイムタスクの優先度よりも低い場合には、タスク実行部7によるリアルタイムタスクの実行後、リアルタイムタスクの実行を所定時間停止し時分割多重タスクを実行する。また、所定間隔経過後、リアルタイムタスクの実行を再開する。
【選択図】図2
【解決手段】リアルタイムタスクの実行順序についての優先度を設定する設定部3と、設定部3が設定した優先度のうち最も高い優先度のリアルタイムタスクを実行するタスク実行部7と、タスク実行部7が実行するリアルタイムタスクの次に実行するリアルタイムタスクを決定する制御部4を有する。また、制御部4が決定したリアルタイムタスクの優先度が、タスク実行部7が実行しているリアルタイムタスクの優先度よりも低い場合には、タスク実行部7によるリアルタイムタスクの実行後、リアルタイムタスクの実行を所定時間停止し時分割多重タスクを実行する。また、所定間隔経過後、リアルタイムタスクの実行を再開する。
【選択図】図2
Description
本発明は、Linux(登録商標)などの汎用的なオペレーティングシステム(OS:Operating System)上でリアルタイムタスクと時分割多重タスクを実行するためのタスク実行制御方法及び装置に関する。
従来から知られているリアルタイム処理システムでは、オペレーティングシステムがリアルタイム処理に特化したタスクの実行制御を行っている。また、Linux(登録商標)のようなオペレーティングシステムでは、複数のタスクの実行制御を時分割多重処理により実行している。なお、Linux(登録商標)のようなオペレーティングシステムでは、時分割多重によるタスクの処理だけでなく、CPU(Central Processing Unit:中央演算処理装置)の使用権を独占してタスクの処理を行うリアルタイム処理も可能である。
しかし、リアルタイム処理に特化したオペレーティングシステムのように、実行するタスクの順序の制御や、実行するタスク間の優先制御を行うことはできない。そのため、優先度が設定されたタスクのリアルタイム処理を行うには、優先度が最も高いタスクにより他のリアルタイムタスクの実行制御を行う必要がある。また、リアルタイムタスクはCPUの使用権を独占してしまうため、リアルタイムタスクが多数発生する場合には時分割多重タスクにCPUの使用権が与えられず、リアルタイムタスク及び時分割多重タスクを実行するコンピュータ全体としての動作に問題が発生する可能性がある。
島田 禎晉、外1名、"ネットワーク・ノード方式"、オーム社、1994年1月25日(150−158頁)
島田 禎晉、外1名、"ネットワーク・ノード方式"、オーム社、1994年1月25日(150−158頁)
リアルタイム処理が要求されるシステムの場合、優先度の高いリアルタイムタスクから順次CPUを占有して実行していく方法があるが、Linux(登録商標)のようなオペレーティングシステムではリアルタイムタスク以外の時分割多重タスクもシステムに生じる場合があるため、それらのタスクについても考慮する必要がある。
例えば、可用性を向上させるミドルウエアを組み込んだコンピュータ上でリアルタイムタスクの処理を実行する場合、可用性を向上させるミドルウエアの時分割多重タスクに対してもCPUの使用権を適切に割り当てないと、そのミドルウエアの機能を利用できなくなるという問題がある。
また、リアルタイムタスクが時分割多重タスクに依存した処理を行う場合には、リアルタイムタスクが多数発生すると時分割多重タスクが停止してしまい、その結果としてリアルタイムタスクも停止してしまうという問題がある。
例えば、可用性を向上させるミドルウエアを組み込んだコンピュータ上でリアルタイムタスクの処理を実行する場合、可用性を向上させるミドルウエアの時分割多重タスクに対してもCPUの使用権を適切に割り当てないと、そのミドルウエアの機能を利用できなくなるという問題がある。
また、リアルタイムタスクが時分割多重タスクに依存した処理を行う場合には、リアルタイムタスクが多数発生すると時分割多重タスクが停止してしまい、その結果としてリアルタイムタスクも停止してしまうという問題がある。
本発明は、上記事情を考慮してなされたもので、その目的は、リアルタイムタスクと時分割多重タスクという異なる性質のタスクが混在する場合であっても、両方のタスクの処理を実行することができるタスク実行制御方法及び装置を提供することにある。
本発明は、上記課題を解決するためになされたもので、請求項1に記載の発明は、リアルタイム処理を行うリアルタイムタスクと、時分割多重処理を行う時分割多重タスクを制御するためのタスク実行制御方法であって、前記リアルタイムタスクの実行順序についての優先度を設定する第1のステップと、前記第1のステップで設定した優先度のうち最も高い第1の優先度のリアルタイムタスクを実行する第2のステップと、前記第2のステップで実行するリアルタイムタスクの次に実行する第2の優先度のリアルタイムタスクを決定する第3のステップと、前記第2の優先度が前記第1の優先度よりも低い場合には、前記第2のステップで実行するリアルタイムタスクの終了後、第1の時間間隔、リアルタイムタスクの実行を停止し、前記時分割多重タスクを実行する第4のステップと、前記第1の時間間隔の経過後、前記第3のステップで決定したリアルタイムタスクを実行する第5のステップとを有することを特徴とするタスク実行制御方法である。
また、請求項2に記載の発明は、リアルタイム処理を行うリアルタイムタスクと、時分割多重処理を行う時分割多重タスクを制御するためのタスク実行制御方法であって、前記リアルタイムタスクの実行順序についての優先度を設定する第1のステップと、前記第1のステップで設定した優先度が高い順にリアルタイムタスクを実行する第2のステップと、前記第2のステップで実行するリアルタイムタスクの優先度が所定の優先度以下になり、かつ、システムが高負荷状態の場合に、リアルタイムタスクと前記時分割多重タスクを並行して実行する第3のステップとを有することを特徴とするタスク実行制御方法である。
また、請求項3に記載の発明は、第2の時間間隔ごとに前記優先度が最も高いリアルタイムタスクの実行を開始することを特徴とする請求項1又は2に記載のタスク実行制御方法である。
また、請求項4に記載の発明は、リアルタイム処理を行うリアルタイムタスクと、時分割多重処理を行う時分割多重タスクを制御するためのタスク実行制御装置であって、前記リアルタイムタスクの実行順序についての優先度を設定する優先度設定手段と、前記優先度設定手段が設定した優先度のうち最も高い第1の優先度のリアルタイムタスクを実行するリアルタイムタスク実行手段と、前記リアルタイムタスク実行手段が実行するリアルタイムタスクの次に実行する第2の優先度のリアルタイムタスクを決定する第1の制御手段と、前記第2の優先度が前記第1の優先度よりも低い場合には、前記リアルタイムタスク実行手段が実行するリアルタイムタスクの終了後、第1の時間間隔、リアルタイムタスクの実行を停止し、前記時分割多重タスクを実行する時分割多重タスク実行手段と、前記第1の時間間隔の経過後、前記第1の制御手段が決定したリアルタイムタスクを前記リアルタイムタスク実行手段に実行させる第2の制御手段とを有することを特徴とするタスク実行制御装置である。
また、請求項5に記載の発明は、リアルタイム処理を行うリアルタイムタスクと、時分割多重処理を行う時分割多重タスクを制御するためのタスク実行制御装置であって、前記リアルタイムタスクの実行順序についての優先度を設定する優先度設定手段と、前記優先度設定手段が設定した優先度が高い順にリアルタイムタスクを実行するリアルタイムタスク実行手段と、前記リアルタイムタスク実行手段が実行するリアルタイムタスクの優先度が所定の優先度以下になり、かつ、システムが高負荷状態の場合に、リアルタイムタスクと前記時分割多重タスクを並行して実行する時分割多重タスク実行手段とを有することを特徴とするタスク実行制御装置である。
また、請求項6に記載の発明は、前記リアルタイムタスク実行手段は、第2の時間間隔ごとに前記優先度が最も高いリアルタイムタスクの実行を開始することを特徴とする請求項4又は5に記載のタスク実行制御装置である。
本発明では、実行するリアルタイムタスクの優先度が低下する際に、第1の時間間隔、時分割多重タスクを実行し、第1の時間間隔経過後は、リアルタイムタスクの実行を再開することにした。
これにより、リアルタイムタスクだけではなく、時分割多重タスクについても所定の割り合いで実行させることにより、リアルタイムタスクと時分割多重タスク双方を協調動作させることが可能となる。
これにより、リアルタイムタスクだけではなく、時分割多重タスクについても所定の割り合いで実行させることにより、リアルタイムタスクと時分割多重タスク双方を協調動作させることが可能となる。
以下、図面を参照し、本発明の実施形態について説明する。
図1は、本発明の実施形態によるタスク実行制御装置の概略構成図である。ここでは、Linux(登録商標)を利用して本実施形態によるタスク実行制御装置の処理を実行する場合について説明する。
タスク実行制御装置には、ユーザによるキーボードなどの入力部からの操作等により、タスク実行制御装置が処理を行うタスクが生じる。このタスクには、高優先リアルタイムタスク40、低優先リアルタイムタスク50などのリアルタイムタスクと、時分割多重タスク60がある。リアルタイムタスクは、リアルタイムに処理が行われるタスクであり、時分割多重タスクは、所定時刻ごとにCPUが処理を実行するタスクを変化させることにより同時に複数のタスクを実行するタスクをいう。
図1は、本発明の実施形態によるタスク実行制御装置の概略構成図である。ここでは、Linux(登録商標)を利用して本実施形態によるタスク実行制御装置の処理を実行する場合について説明する。
タスク実行制御装置には、ユーザによるキーボードなどの入力部からの操作等により、タスク実行制御装置が処理を行うタスクが生じる。このタスクには、高優先リアルタイムタスク40、低優先リアルタイムタスク50などのリアルタイムタスクと、時分割多重タスク60がある。リアルタイムタスクは、リアルタイムに処理が行われるタスクであり、時分割多重タスクは、所定時刻ごとにCPUが処理を実行するタスクを変化させることにより同時に複数のタスクを実行するタスクをいう。
実行制御タスク20は、リアルタイムタスクを実行するためのタスクであり、リアルタイムタスク情報テーブル30に記録される優先度の高低の情報に応じて、例えば、高優先リアルタイムタスク40、低優先リアルタイムタスク50の順にタスクを実行する。
リアルタイムタスクと時分割多重タスクを同時に処理することはできないため、オペレーティングシステムのスケジューラ10は、いずれのタスクを実行するかによって制御を切り替える。
リアルタイムタスクと時分割多重タスクを同時に処理することはできないため、オペレーティングシステムのスケジューラ10は、いずれのタスクを実行するかによって制御を切り替える。
なお、オペレーティングシステムとしてLinux(登録商標)を使用することにより高可用機能を実現するためには、高可用機能を実現するためのソフトウエアをコンピュータにインストールして利用することが考えられる。この場合、高可用機能を提供するタスクがオペレーティングシステムのスケジューラ10に自らの処理の管理を任せる時分割多重タスク60である可能性がある。
オペレーティングシステムとしてLinux(登録商標)を使用した場合に、高優先リアルタイムタスク40、低優先リアルタイムタスク50の処理が開始されると、自タスクがCPUの使用権を他のタスクに譲らない限り、時分割多重タスクが実行されなくなってしまう。以下に、そのような問題を解決するためのタスク実行制御方法について説明する。
図2は、本実施形態によるタスク実行制御装置1の構成を示すブロック図である。このタスク実行制御装置1は、入力部2、設定部3、制御部4、記録部5、タイマ6、タスク実行部7、表示部8を有する。
入力部2は、キーボードなどの入力機器であり、ユーザの操作情報などを入力する。ユーザによる入力部2の操作等によってリアルタイムタスクや時分割多重タスクが生じる。
設定部3は、入力部2での操作等により生じるリアルタイムタスクについて、そのリアルタイムタスクをどの程度優先して実行するかについての優先度の情報や、システム全体としてリアルタイムタスクを実行するのにどの程度の負荷を要するかについての負荷情報を生成し、制御部4に出力する。例えば、リアルタイムタスクが多数発生して時分割多重タスクが所定の時間実行されていない場合には、システムが高負荷状態であるという負荷情報を生成する。
入力部2は、キーボードなどの入力機器であり、ユーザの操作情報などを入力する。ユーザによる入力部2の操作等によってリアルタイムタスクや時分割多重タスクが生じる。
設定部3は、入力部2での操作等により生じるリアルタイムタスクについて、そのリアルタイムタスクをどの程度優先して実行するかについての優先度の情報や、システム全体としてリアルタイムタスクを実行するのにどの程度の負荷を要するかについての負荷情報を生成し、制御部4に出力する。例えば、リアルタイムタスクが多数発生して時分割多重タスクが所定の時間実行されていない場合には、システムが高負荷状態であるという負荷情報を生成する。
制御部4は、設定部3から出力される優先度の情報や負荷情報を記録部5に記録する。記録部5としてはRAM(Random Access Memory)などが用いられる。なお、記録部5は、図1におけるリアルタイムタスク情報テーブル30に該当する。
図3は、記録部5に記録されるリアルタイムタスク情報テーブル30の一例を示す図である。図に示すように、リアルタイムタスク情報テーブルには、リアルタイムタスク名(タスクA、タスクB、・・・)、優先度(高優先、中優先、低優先)などの情報が、それぞれ対応付けられて記録される。
図3は、記録部5に記録されるリアルタイムタスク情報テーブル30の一例を示す図である。図に示すように、リアルタイムタスク情報テーブルには、リアルタイムタスク名(タスクA、タスクB、・・・)、優先度(高優先、中優先、低優先)などの情報が、それぞれ対応付けられて記録される。
図2に戻り、制御部4は記録部5に記録されている優先度の情報や現在時刻についての情報を出力するタイマ6の情報に基づいて、タスク実行部7に対してリアルタイムタスクや時分割多重タスクの実行命令を出力する。なお、制御部4は図1におけるオペレーティングシステムのスケジューラ10、実行制御タスク20に該当する。
タスク実行部7は、制御部4から出力されるタスクの実行命令に基づいて、リアルタイムタスク又は時分割多重タスクのいずれかを実行する。タスク実行部7により実行されたタスクの処理結果は、例えば、表示画面などの表示部8に出力され表示される。
タスク実行部7は、制御部4から出力されるタスクの実行命令に基づいて、リアルタイムタスク又は時分割多重タスクのいずれかを実行する。タスク実行部7により実行されたタスクの処理結果は、例えば、表示画面などの表示部8に出力され表示される。
次に、制御部4(図2参照)によるリアルタイムタスク、時分割多重タスクの実行制御方法について説明する。
始めに、本発明の第1から第3の実施形態によるタスク実行制御方法を説明する前提として、従来から使用されているタスク実行制御方法を図4を参照して説明する。
図4は、リアルタイムタスク、時分割多重タスクの一般的な実行制御方法を示す図である。ここでは、高優先リアルタイムタスク、中優先リアルタイムタスク、低優先リアルタイムタスク、時分割多重タスクがそれぞれ生じている場合について説明する。
制御部4は、優先度が高いリアルタイムタスクの順番、つまり、高優先リアルタイムタスクの処理p12、中優先リアルタイムタスクの処理p13、低優先リアルタイムタスクの処理p14の順番に従ってリアルタイムタスクを実行し、その後、時分割多重タスクの処理p15を実行する。
始めに、本発明の第1から第3の実施形態によるタスク実行制御方法を説明する前提として、従来から使用されているタスク実行制御方法を図4を参照して説明する。
図4は、リアルタイムタスク、時分割多重タスクの一般的な実行制御方法を示す図である。ここでは、高優先リアルタイムタスク、中優先リアルタイムタスク、低優先リアルタイムタスク、時分割多重タスクがそれぞれ生じている場合について説明する。
制御部4は、優先度が高いリアルタイムタスクの順番、つまり、高優先リアルタイムタスクの処理p12、中優先リアルタイムタスクの処理p13、低優先リアルタイムタスクの処理p14の順番に従ってリアルタイムタスクを実行し、その後、時分割多重タスクの処理p15を実行する。
制御部4には、所定の時間間隔t1(請求項における第2の時間間隔)ごとにタイマ6から割り込み信号11a、11b、・・・が出力される。制御部4はタイマ6から割り込み信号11a、11b、・・・を受信すると、タスク実行部7に実行命令を出力することにより、それまで実行していたタスクの処理(ここでは、時分割多重タスクの処理p15)を停止し、優先度が最も高いリアルタイムタスクの処理(ここでは、高優先リアルタイムタスクの処理p16)を実行し、その後、優先度の高い順にリアルタイムタスクの処理(ここでは、中優先リアルタイムタスクの処理p17、低優先リアルタイムタスクの処理p18、・・・)を実行する。しかし、この実行制御方法を使用すると、リアルタイムタスクが多数発生したような場合に、時分割多重タスクの処理が実行される前に所定の時間間隔t1が経過して、優先度の高いリアルタイムタスクへと処理が移行してしまう可能性がある。このような問題を解決するために、本発明の第1から第3の実施形態によるタスク実行制御方法では、以下に示すような制御を行うようにした。
始めに、本発明の第1の実施形態によるタスク実行制御方法について説明する。
図5は、本実施形態によるリアルタイムタスク、時分割多重タスクの実行制御方法を示す図である。ここでは、高優先リアルタイムタスク、中優先リアルタイムタスク、低優先リアルタイムタスク、時分割多重タスクがそれぞれ生じている場合について説明する。
制御部4は、優先度が高いリアルタイムタスクの順番、つまり、高優先リアルタイムタスクの処理p22、中優先リアルタイムタスクの処理p24、低優先リアルタイムタスクの処理p26の順にリアルタイムタスクを実行する。
図5は、本実施形態によるリアルタイムタスク、時分割多重タスクの実行制御方法を示す図である。ここでは、高優先リアルタイムタスク、中優先リアルタイムタスク、低優先リアルタイムタスク、時分割多重タスクがそれぞれ生じている場合について説明する。
制御部4は、優先度が高いリアルタイムタスクの順番、つまり、高優先リアルタイムタスクの処理p22、中優先リアルタイムタスクの処理p24、低優先リアルタイムタスクの処理p26の順にリアルタイムタスクを実行する。
ただ、高優先リアルタイムタスクの処理p22を終了して中優先リアルタイムタスクの処理p24に移る際(又は、中優先リアルタイムタスクの処理p24を終了して低優先リアルタイムタスクの処理p26に移る際)、つまり、優先度が低いリアルタイムタスクの実行に移行する際に所定の時間間隔t2(請求項における第1の時間間隔)だけリアルタイムタスクの実行を停止し、時分割多重タスクの処理p23(又は、時分割多重タスクの処理p25)を実行する。そして、所定の時間間隔t2経過後、停止していた中優先リアルタイムタスクの処理p24(又は、低優先リアルタイムタスクの処理p26)を実行する。
制御部4には、所定の時間間隔t1ごとにタイマ6から割り込み信号が出力される。制御部4はタイマ6から割り込み信号11a、11b、・・・を受信すると、タスク実行部7を制御することにより、それまで実行していたタスクの処理(ここでは、時分割多重タスクの処理p27)を中止し、優先度が最も高いリアルタイムタスクの処理を開始する。
上述した実施形態によるタスク実行制御方法を使用すれば、タスク実行部7により実行するリアルタイムタスクの優先度が低下するたびに、所定の時間間隔t2だけ時分割多重タスクに対して、CPU等の使用権が割り当てられるため、時分割多重タスクが実行されないという問題を防ぐことができる。
上述した実施形態によるタスク実行制御方法を使用すれば、タスク実行部7により実行するリアルタイムタスクの優先度が低下するたびに、所定の時間間隔t2だけ時分割多重タスクに対して、CPU等の使用権が割り当てられるため、時分割多重タスクが実行されないという問題を防ぐことができる。
次に、本発明の第2の実施形態によるタスク実行制御方法について説明する。
図6は、本実施形態によるリアルタイムタスク、時分割多重タスクの実行制御方法を示す図である。ここでは、高優先リアルタイムタスク、中優先リアルタイムタスク、低優先リアルタイムタスク、時分割多重タスクがそれぞれ生じている場合について説明する。
制御部4は、優先度が高いリアルタイムタスクの順番、つまり、高優先リアルタイムタスクの処理p32、中優先リアルタイムタスクの処理p33、低優先リアルタイムタスクの処理p34の順にリアルタイムタスクを実行する。
図6は、本実施形態によるリアルタイムタスク、時分割多重タスクの実行制御方法を示す図である。ここでは、高優先リアルタイムタスク、中優先リアルタイムタスク、低優先リアルタイムタスク、時分割多重タスクがそれぞれ生じている場合について説明する。
制御部4は、優先度が高いリアルタイムタスクの順番、つまり、高優先リアルタイムタスクの処理p32、中優先リアルタイムタスクの処理p33、低優先リアルタイムタスクの処理p34の順にリアルタイムタスクを実行する。
ただ、本実施形態では、所定の優先度よりも低い優先度のリアルタイムタスクの処理を実行する際には、時分割多重タスクも並行して実行する。ここでは、所定の優先度として「低優先」を設定しており、中優先リアルタイムタスクの処理p33の実行後、低優先リアルタイムタスクの処理p34を実行する際に、時分割多重タスクの処理p35についても同時に実行する。
制御部4には、所定の時間間隔t1ごとにタイマ6から割り込み信号11a、11b、・・・が出力される。制御部4はタイマ6から割り込み信号(ここでは、割り込み信号11b)を受信すると、タスク実行部7を制御することにより、それまで実行していたタスクの処理(ここでは、時分割多重タスクの処理p35)を中止し、優先度が最も高いリアルタイムタスクの処理を開始する。
上述した実施形態によるタスク実行制御方法を使用すれば、タスク実行部7により低優先リアルタイムタスクを実行する代わりに時分割多重タスクに対して、CPU等の使用権が割り当てられるため、時分割多重タスクが実行されないという問題を防ぐことができる。
上述した実施形態によるタスク実行制御方法を使用すれば、タスク実行部7により低優先リアルタイムタスクを実行する代わりに時分割多重タスクに対して、CPU等の使用権が割り当てられるため、時分割多重タスクが実行されないという問題を防ぐことができる。
次に、本発明の第3の実施形態によるタスク実行制御方法について説明する。
図7は、本実施形態によるリアルタイムタスク、時分割多重タスクの実行制御方法を示すフローチャートである。始めに、タスク実行制御装置1で実行中の実行制御タスク20が存在する場合、その実行制御タスク20を中止する(ステップS01)。そして、タスク実行モードをリアルタイム実行モードに設定する(ステップS02)。
次に、設定部3はタスク実行制御装置1が処理の対象とするリアルタイムタスクの優先度についての情報である「カレント優先度」を、最も高い優先度に設定する(ステップS03)。
次に、制御部4はカレント優先度と同じ優先度のリアルタイムタスクが中断中であるか否かについて判定する(ステップS04)。中断中である場合には、ステップS04で「Yes」と判定し、中断中のリアルタイムタスクの実行を再開する(ステップS05)。一方、中断中ではない場合には、ステップS04で「No」と判定し、ステップS06へ進む。
図7は、本実施形態によるリアルタイムタスク、時分割多重タスクの実行制御方法を示すフローチャートである。始めに、タスク実行制御装置1で実行中の実行制御タスク20が存在する場合、その実行制御タスク20を中止する(ステップS01)。そして、タスク実行モードをリアルタイム実行モードに設定する(ステップS02)。
次に、設定部3はタスク実行制御装置1が処理の対象とするリアルタイムタスクの優先度についての情報である「カレント優先度」を、最も高い優先度に設定する(ステップS03)。
次に、制御部4はカレント優先度と同じ優先度のリアルタイムタスクが中断中であるか否かについて判定する(ステップS04)。中断中である場合には、ステップS04で「Yes」と判定し、中断中のリアルタイムタスクの実行を再開する(ステップS05)。一方、中断中ではない場合には、ステップS04で「No」と判定し、ステップS06へ進む。
そして、カレント優先度に設定されている優先度を有する実行待ちのリアルタイムタスクが存在するか否かについて判定する(ステップS06)。実行待ちのリアルタイムタスクが存在する場合には、ステップS06で「Yes」と判定し、実行モードに従って実行待ちタスクを実行し(ステップS07)、実行タスクが終了するまでスリープする(ステップS08)。そして、再度ステップS06へ進む。一方、実行待ちのリアルタイムタスクが存在しない場合には、ステップS06で「No」と判定しステップS09へ進む。
そして、カレント優先度が最低優先度であるか否かについて判定する。カレント優先度が最低優先度である場合、例えば、カレント優先度が「低優先」である場合には、ステップS09で「Yes」と判定し、図7によるフローチャートの処理を終了する。一方、カレント優先度が最低優先ではない場合、例えば、カレント優先度が「高優先」、「中優先」である場合には、ステップS09で「No」と判定し、ステップS10へ進む。
そして、カレント優先度が最低優先度であるか否かについて判定する。カレント優先度が最低優先度である場合、例えば、カレント優先度が「低優先」である場合には、ステップS09で「Yes」と判定し、図7によるフローチャートの処理を終了する。一方、カレント優先度が最低優先ではない場合、例えば、カレント優先度が「高優先」、「中優先」である場合には、ステップS09で「No」と判定し、ステップS10へ進む。
そして、カレント優先度を下げる(ステップS10)。例えば、カレント優先度が「高優先」に設定されている場合には、カレント優先度を「中優先」に再設定する。また、カレント優先度が「中優先」に設定されている場合には、カレント優先度を「低優先」に再設定する。
次に、カレント優先度が低優先、かつ、負荷状態が高負荷であるか否かについて、記録部5に記録されているリアルタイム情報テーブル30を参照することなどにより判定する(ステップS11)。カレント優先度が低優先、かつ、負荷状態が高負荷の条件を満たさない場合には、ステップS11で「No」と判定しステップS13へ進む。一方、カレント優先度が低優先、かつ、負荷状態が高負荷の条件を満たす場合には、ステップS11で「Yes」と判定し、タスク実行モードを時分割多重モードに設定する(ステップS12)。
次に、カレント優先度が低優先、かつ、負荷状態が高負荷であるか否かについて、記録部5に記録されているリアルタイム情報テーブル30を参照することなどにより判定する(ステップS11)。カレント優先度が低優先、かつ、負荷状態が高負荷の条件を満たさない場合には、ステップS11で「No」と判定しステップS13へ進む。一方、カレント優先度が低優先、かつ、負荷状態が高負荷の条件を満たす場合には、ステップS11で「Yes」と判定し、タスク実行モードを時分割多重モードに設定する(ステップS12)。
そして、所定時間t2の間、優先度が低優先のリアルタイムタスクの処理を実行するとともに、時分割多重タスクの処理を実行する。所定時間t2の経過後は、時分割多重タスクの処理を停止し、リアルタイムタスクの処理を実行する。そして、再度ステップS02へ進む。
上述した実施形態によるタスク実行制御方法を使用すれば、リアルタイムタスクだけではなく、時分割多重タスクに対して、CPUの使用権が与えられ、リアルタイムタスクと時分割多重タスク双方の協調動作が可能となる。
上述した実施形態によるタスク実行制御方法を使用すれば、リアルタイムタスクだけではなく、時分割多重タスクに対して、CPUの使用権が与えられ、リアルタイムタスクと時分割多重タスク双方の協調動作が可能となる。
上述した本発明の第1から第3の実施形態によるタスク実行制御方法では、従来のリアルタイム処理システムではリアルタイムタスクのCPU使用権の解放はリアルタイムタスクが自発的に行う必要があったのに対して、制御部4(図1の実行制御タスク20)がリアルタイムタスクの処理に対する所定の割り合いで時分割多重タスクを実行するようにした。これにより、リアルタイムタスクが自発的にCPUの使用権を解放しなくても、時分割多重タスクにCPUの使用権を割り当てることが可能となる。
なお、上述した第1〜第3の実施形態の説明では、優先度が「高優先」、「中優先」、「低優先」の3種類の場合について説明したが、このような構成に限定されるものではない。例えば、優先度として−20から20の整数値を使用することにより、リアルタイムタスクを管理してもよい。
なお、以上説明した実施形態において、図2の設定部3、制御部4、タスク実行部7などの機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによりタスク実行制御装置1の制御を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウエアを含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時刻の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時刻プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
1・・・タスク実行制御装置、2・・・入力部、3・・・設定部、4・・・制御部、5・・・記録部、6・・・タイマ、7・・・タスク実行部、8・・・表示部、10・・・オペレーティングシステムのスケジューラ10、20・・・実行制御タスク、30・・・リアルタイムタスク情報テーブル、40・・・高優先リアルタイムタスク、50・・・低優先リアルタイムタスク、60・・・時分割多重タスク
Claims (6)
- リアルタイム処理を行うリアルタイムタスクと、時分割多重処理を行う時分割多重タスクを制御するためのタスク実行制御方法であって、
前記リアルタイムタスクの実行順序についての優先度を設定する第1のステップと、
前記第1のステップで設定した優先度のうち最も高い第1の優先度のリアルタイムタスクを実行する第2のステップと、
前記第2のステップで実行するリアルタイムタスクの次に実行する第2の優先度のリアルタイムタスクを決定する第3のステップと、
前記第2の優先度が前記第1の優先度よりも低い場合には、前記第2のステップで実行するリアルタイムタスクの終了後、第1の時間間隔、リアルタイムタスクの実行を停止し、前記時分割多重タスクを実行する第4のステップと、
前記第1の時間間隔の経過後、前記第3のステップで決定したリアルタイムタスクを実行する第5のステップと、
を有することを特徴とするタスク実行制御方法。 - リアルタイム処理を行うリアルタイムタスクと、時分割多重処理を行う時分割多重タスクを制御するためのタスク実行制御方法であって、
前記リアルタイムタスクの実行順序についての優先度を設定する第1のステップと、
前記第1のステップで設定した優先度が高い順にリアルタイムタスクを実行する第2のステップと、
前記第2のステップで実行するリアルタイムタスクの優先度が所定の優先度以下になり、かつ、システムが高負荷状態の場合に、リアルタイムタスクと前記時分割多重タスクを並行して実行する第3のステップと、
を有することを特徴とするタスク実行制御方法。 - 第2の時間間隔ごとに前記優先度が最も高いリアルタイムタスクの実行を開始することを特徴とする請求項1又は2に記載のタスク実行制御方法。
- リアルタイム処理を行うリアルタイムタスクと、時分割多重処理を行う時分割多重タスクを制御するためのタスク実行制御装置であって、
前記リアルタイムタスクの実行順序についての優先度を設定する優先度設定手段と、
前記優先度設定手段が設定した優先度のうち最も高い第1の優先度のリアルタイムタスクを実行するリアルタイムタスク実行手段と、
前記リアルタイムタスク実行手段が実行するリアルタイムタスクの次に実行する第2の優先度のリアルタイムタスクを決定する第1の制御手段と、
前記第2の優先度が前記第1の優先度よりも低い場合には、前記リアルタイムタスク実行手段が実行するリアルタイムタスクの終了後、第1の時間間隔、リアルタイムタスクの実行を停止し、前記時分割多重タスクを実行する時分割多重タスク実行手段と、
前記第1の時間間隔の経過後、前記第1の制御手段が決定したリアルタイムタスクを前記リアルタイムタスク実行手段に実行させる第2の制御手段と、
を有することを特徴とするタスク実行制御装置。 - リアルタイム処理を行うリアルタイムタスクと、時分割多重処理を行う時分割多重タスクを制御するためのタスク実行制御装置であって、
前記リアルタイムタスクの実行順序についての優先度を設定する優先度設定手段と、
前記優先度設定手段が設定した優先度が高い順にリアルタイムタスクを実行するリアルタイムタスク実行手段と、
前記リアルタイムタスク実行手段が実行するリアルタイムタスクの優先度が所定の優先度以下になり、かつ、システムが高負荷状態の場合に、リアルタイムタスクと前記時分割多重タスクを並行して実行する時分割多重タスク実行手段と、
を有することを特徴とするタスク実行制御装置。 - 前記リアルタイムタスク実行手段は、第2の時間間隔ごとに前記優先度が最も高いリアルタイムタスクの実行を開始することを特徴とする請求項4又は5に記載のタスク実行制御装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005061248A JP2006244293A (ja) | 2005-03-04 | 2005-03-04 | タスク実行制御方法及び装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005061248A JP2006244293A (ja) | 2005-03-04 | 2005-03-04 | タスク実行制御方法及び装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006244293A true JP2006244293A (ja) | 2006-09-14 |
Family
ID=37050633
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005061248A Pending JP2006244293A (ja) | 2005-03-04 | 2005-03-04 | タスク実行制御方法及び装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006244293A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012248207A (ja) * | 2012-07-27 | 2012-12-13 | Kawai Musical Instr Mfg Co Ltd | 命令処理装置及び命令処理方法。 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS61223950A (ja) * | 1985-03-29 | 1986-10-04 | Toshiba Corp | スケジユ−ラ |
JPH07200315A (ja) * | 1994-01-07 | 1995-08-04 | Fuji Facom Corp | 計算機システムにおけるプロセスのスケジューリング装置 |
JPH10177489A (ja) * | 1996-12-17 | 1998-06-30 | Matsushita Electric Ind Co Ltd | タスクのスケジュール方法 |
JP2001202258A (ja) * | 2000-01-20 | 2001-07-27 | Yaskawa Electric Corp | リアルタイム処理装置 |
-
2005
- 2005-03-04 JP JP2005061248A patent/JP2006244293A/ja active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS61223950A (ja) * | 1985-03-29 | 1986-10-04 | Toshiba Corp | スケジユ−ラ |
JPH07200315A (ja) * | 1994-01-07 | 1995-08-04 | Fuji Facom Corp | 計算機システムにおけるプロセスのスケジューリング装置 |
JPH10177489A (ja) * | 1996-12-17 | 1998-06-30 | Matsushita Electric Ind Co Ltd | タスクのスケジュール方法 |
JP2001202258A (ja) * | 2000-01-20 | 2001-07-27 | Yaskawa Electric Corp | リアルタイム処理装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012248207A (ja) * | 2012-07-27 | 2012-12-13 | Kawai Musical Instr Mfg Co Ltd | 命令処理装置及び命令処理方法。 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4580845B2 (ja) | タスク実行装置 | |
US7581223B2 (en) | Method and a system for executing operating system functions, as well as an electronic device | |
JP3676827B2 (ja) | マルチプロセッサシステム用のスケジューリング方法 | |
US20060010446A1 (en) | Method and system for concurrent execution of multiple kernels | |
US6820155B1 (en) | Interruption managing device and interruption managing method | |
US20060195847A1 (en) | Task scheduling device, method, program, recording medium, and transmission medium for priority-driven periodic process scheduling | |
US7853743B2 (en) | Processor and interrupt controlling method | |
JP2006277062A (ja) | アプリケーション管理装置およびそのソフトウェアを格納した記憶媒体 | |
JP4523910B2 (ja) | 並列処理装置及び並列処理方法及び並列処理プログラム | |
JP2004078322A (ja) | タスク管理システム、プログラム、記録媒体、及び制御方法 | |
JP2005190207A (ja) | 割り込み制御装置、制御方法 | |
JP4675891B2 (ja) | タスクスケジューリング装置、タスクスケジューリング方法、タスクスケジューリングプログラム、記録媒体、及び伝送媒体 | |
JP2001117786A (ja) | プロセススケジューリング装置およびプロセススケジューリング方法 | |
JP2006244293A (ja) | タスク実行制御方法及び装置 | |
US7984446B1 (en) | Method and system for multitasking BIOS initialization tasks | |
JP4682513B2 (ja) | タスク管理システム | |
JP2010113667A (ja) | 情報処理装置 | |
JP2007193744A (ja) | 情報処理装置、プログラム、およびスケジューリング方法 | |
US8694999B2 (en) | Cooperative scheduling of multiple partitions in a single time window | |
JP2005519393A (ja) | 仮想直接メモリ・アクセスのための方法及び装置 | |
JP2005115620A (ja) | タスク管理方法及びタスク管理手段を有する電子機器 | |
JP2003186686A (ja) | リソース制御装置、方法及び記憶媒体 | |
US11936514B2 (en) | Processing apparatus, processing system, processing method and processing program | |
JP2004234643A (ja) | プロセススケジューリング装置、プロセススケジューリング方法、プロセススケジューリングのためのプログラム、及びプロセススケジューリングのためのプログラムを記録した記録媒体 | |
CN117234600A (zh) | 安卓***快速启动方法、***及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070130 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080728 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080812 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20090113 |