JP3962370B2 - 資源予約システムおよび資源予約方法および該方法を実行するためのプログラムが記録された記録媒体 - Google Patents

資源予約システムおよび資源予約方法および該方法を実行するためのプログラムが記録された記録媒体 Download PDF

Info

Publication number
JP3962370B2
JP3962370B2 JP2003398823A JP2003398823A JP3962370B2 JP 3962370 B2 JP3962370 B2 JP 3962370B2 JP 2003398823 A JP2003398823 A JP 2003398823A JP 2003398823 A JP2003398823 A JP 2003398823A JP 3962370 B2 JP3962370 B2 JP 3962370B2
Authority
JP
Japan
Prior art keywords
time
calculation
interrupt
amount
real
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
JP2003398823A
Other languages
English (en)
Other versions
JP2005157955A (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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2003398823A priority Critical patent/JP3962370B2/ja
Priority to US10/998,237 priority patent/US20050132038A1/en
Publication of JP2005157955A publication Critical patent/JP2005157955A/ja
Application granted granted Critical
Publication of JP3962370B2 publication Critical patent/JP3962370B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4887Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、同時マルチスレッド(SMT)技術が適用される計算資源において、リアルタイムプロセスへの計算資源の割り当てを保証しつつ、同時にできる限り多くの計算資源を非リアルタイムプロセスに与えて、システム全体のスループットを向上させることを可能にするシステムおよび方法および記録媒体に関する。
ファイル入出力や画面描画処理をする際、その処理が終わるまでに他のイベント、例えば、電源電圧降下やセンサー異常などが発生した場合、そのイベントに対するイベント・ハンドラ(外部割り込みにより起動される割り込み処理ルーチン)が、例えば、数十μsec〜数十msecといった、ある決められた時間以内に確実に起動されることを保証する機能を持つリアルタイム・オペレーティング・システム(リアルタイムOS)が、リアルタイムにイベントの処理を行なわなければならないような用途に用いられている。このリアルタイムOSは、リアルタイム処理能力に重点を置いて作られたプリエンプティブなマルチタスクOSであり、計測機器や制御装置、ロボット制御など、あるイベントが発生するとすぐに、イベント・ハンドラを起動して処理を行なわなければならないような用途に適している。
リアルタイムOSに対する要件の1つに、システム中のプロセスの単位時間あたりの処理量を保証することを挙げることができる。従来、リアルタイムOSを備えるリアルタイムシステムは、組み込み用途への適用が多く、システム内のプロセスが予め固定されていることが多い。このため、プロセス群の優先関係を注意深く設定し、かつ、プロセス間で協調動作させることで、必要な処理性能を確保している。しかしながら、最近では、組み込みシステムとはいえ、実質的には開放型システムになりつつあり、システム上で動作するアプリケーションの種類や挙動を予め把握することは困難になってきている。そこで、資源予約型システムが提案されている。この資源予約型システムは、デッドラインを有するリアルタイムプロセスに対して、要求される処理量を達成するために必要な計算時間の最大値で、計算資源、すなわち中央処理装置(CPU)の実行時間を予約することにより、確実にデッドラインまでに要求を満たすことができる。
しかしながら、1つのCPU上で、複数のスレッドが同時に動作することを可能にするSMT技術では、一定時間内に実行することができるCPUの計算量は、同じCPU上で同時に動作している他のスレッド(以下、裏プロセッサスレッドとする。)の影響を受けて大きく変動してしまうことになる。この結果、SMT技術が適用される環境下では、計算資源の予約によって必要な計算時間が予約されているにもかかわらず、予定した計算量を得ることができないといった問題が生じていた。なお、上記スレッドは、オペレーティング・システム(OS)がCPUの実行時間を割り当てる基本単位であり、OSの基本機能を実現するカーネルがプログラムを管理するための単位であるプロセス内に1つ以上生成される。プロセスの実行において、少なくとも1つのスレッドが起動される。
上述した問題を解決する方法としては、予定した計算量を得るため、リアルタイムプロセスを実行している間、SMT機能を無効にし、1つのCPU上で同時に動作する裏プロセッサスレッドを実行させないようにする方法を挙げることができる。しかしながら、この方法は、プロセスの同時実行によるシステムのスループットを向上させるというSMTの特性を無駄にしてしまうといった問題があった。
また、上述した問題を解決するシステムとして、例えば、TimeSys社のTimeSys Linux/RTを挙げることができる。このリアルタイムOSは、マルチプロセッサ・システムに対応した計算時間の予約機能を提供する。しかしながら、この予約機能は、SMTを考慮したものではなく、SMTを用いるシステム上ではCPUの計算速度が時間的に予測不可能な挙動で変動し、CPUの実行時間を予約することにより、計算性能を保証することができなくなるといった問題があった。
本発明者らは、上記予約機能がSMTを用いる環境において予定した計算量を確保できないことを確認し、この解決方法として、予約されたプロセスが実行される間、同時に実行される裏プロセッサスレッドをアイドルさせるか、または、予約されたプロセスと常に同じ組み合わせとなる他のプロセスを実行するように提案している(非特許文献1参照)。
また、他の解決方法として、リアルタイムタスクを、同時に組み合わせで実行しても影響の少ないプロセスを選んでスケジューリングする、SMTを用いる環境におけるソフトリアルタイムプロセスのスケジューリングが提案されている(非特許文献2参照)。
しかしながら、上述した予約されたプロセスが実行される間、同時に実行される裏プロセッサスレッドをアイドルさせるか、または、常に同じ組み合わせで実行する方法では、アイドルさせるため、SMT機能を充分に活用していないこととなり、また、常に同じ組み合わせで実行しなければならないため、システム内に混在する他のプロセスが未知であるようなシステムには適用することができないといった問題があった。さらに、SMTを用いたシステム上でソフトリアルタイムプロセスのスケジューリングでは、5%以下のデッドラインミスを許容しており、デッドラインまでに確実に計算量を保証することはできないといった問題があった。
井上 拓、「SMT環境下におけるCPU資源予約」、ソフトウェア科学会、第6回プログラミング及び応用のシステムに関するワークショップ、2003年3月12日〜14日 Jain. R., Hughes. C. J., Adve. S. V.,"Soft Real-Time Scheduling on Simultaneous Multithreaded Processors", 23rd IEEE Real-Time Systems Symposium, Dec. 3-5,2002
本発明は、上記問題に鑑みなされたものであり、SMTを用いるCPU上でリアルタイムプロセスのデッドラインを保証しながら、可能な限り、同時に他のプロセスを処理し、システムのスループットを向上させるシステムおよび方法およびその機能を提供するプログラムが記録された記録媒体を提供することを目的とする。
本発明は、予約されたプロセスが計算資源にディスパッチされた時点で、デッドライン時刻までに余裕時間があるか否かを判定し、余裕時間がある場合には、他のプロセスをディスパッチし、適宜、余裕時間があるか否かを確認し、余裕時間がある場合には、他のプロセスを続行することができ、余裕時間がない場合には、他のプロセスをディスパッチすることにより動作する裏プロセッサスレッドをアイドルさせ、予約されたプロセスに計算資源を占有させることでデッドライン時刻までに所定の計算量を保証するものである。
すなわち、本発明によれば、複数のプロセスを同時に処理する計算資源において、所定の計算量を要求するプロセスに対し、前記デッドライン時刻までに前記所定の計算量が得られるように保証する計算資源予約システムであって、
前記計算資源による計算処理により得られる前記プロセスの計算量を計測する計測部と、
前記計算資源による計算処理に割り込みを発生させ、前記計測部から割り込み発生時刻までに得られた前記計算量を取得し、取得した前記計算量を前記計算資源に与えて余裕時間を計算させ、前記余裕時間があるか否かを判定する余裕時間判定部と、
前記余裕時間判定部が、前記余裕時間がないと判定した場合、前記計算資源による他のプロセスの計算処理を中断させる処理中断部と
を含む、システムが提供される。
本発明によれば、前記余裕時間判定部は、所定時間ごとに割り込みを発生させることができる。
本発明によれば、前記余裕時間判定部は、前記余裕時間と前記割り込み発生時刻とを用いて、前記計算資源に次の割り込み発生時刻を計算させ、前記次の割り込み発生時刻に割り込みを発生させるように該次の割り込み発生時刻を設定する割り込み発生時刻設定部を含む。
本発明によれば、前記余裕時間判定部は、前記次の割り込み発生時刻より前に、前記所定の計算量が得られているか否かを判定する計算量判定部をさらに含む。
本発明によれば、前記処理中断部により中断された前記他のプロセスのコンテキストを記憶する記憶部をさらに含む。
本発明によれば、前記余裕時間tは、前記デッドライン時刻tと、前記割り込み発生時刻tと、前記所定の計算量を裏プロセッサスレッドの影響がない場合の計算時間で表した値cと、前記割り込み発生時刻において計測された計算量を裏プロセッサスレッドの影響がない場合の計算時間で表した値cとを用い、下記式により算出することができる。
Figure 0003962370
本発明によれば、前記次の割り込み発生時刻tは、前記デッドライン時刻tと、前記割り込み発生時刻tと、前記所定の計算量を裏プロセッサスレッドの影響がない場合の計算時間で表した値cと、前記割り込み発生時刻において計測された計算量を裏プロセッサスレッドの影響がない場合の計算時間で表した値cとを用い、下記式により算出することができる。
Figure 0003962370
本発明によれば、前記次の割り込み発生時刻tは、前記デッドライン時刻tと、前記割り込み発生時刻tと、前記所定の計算量を裏プロセッサスレッドの影響がない場合の計算時間で表した値cと、前記割り込み発生時刻において計測された計算量を裏プロセッサスレッドの影響がない場合の計算時間で表した値cと、前記計算資源を前記他のプロセスに割り当てた場合でも得られる計算性能の最低保証値α(αは、0以上1未満の数である。)とを用い、下記式により算出することができる。
Figure 0003962370
また、本発明によれば、複数のプロセスを同時に処理する計算資源において、所定の計算量を要求するプロセスに対し、前記デッドライン時刻までに前記所定の計算量が得られるように保証する計算資源予約方法であって、
前記計算資源による計算処理により得られる前記プロセスの計算量を計測するステップと、
前記計算資源による計算処理に割り込みを発生させ、割り込み発生時刻までに得られた前記計算量を取得するステップと、
取得した前記計算量を前記計算資源に与えて余裕時間を計算させ、前記余裕時間があるか否かを判定するステップと、
前記余裕時間があるか否かを判定するステップで、前記余裕時間がないと判定された場合、前記計算資源による他のプロセスの計算処理を中断させるステップと
を含む、方法が提供される。
本発明によれば、前記計算量を取得するステップでは、所定時間ごとに割り込みを発生させることができる。
本発明によれば、前記余裕時間と前記割り込み発生時刻とを用いて、前記計算資源に次の割り込み発生時刻を計算させ、前記次の割り込み発生時刻に割り込みを発生させるように該次の割り込み発生時刻を設定するステップをさらに含む方法が提供される。
本発明によれば、前記次の割り込み発生時刻より前に、前記所定の計算量が得られているか否かを判定するステップをさらに含む方法が提供される。
本発明によれば、中断された前記他のプロセスのコンテキストを記憶するステップをさらに含む方法が提供される。
さらに、本発明によれば、複数のプロセスを同時に処理する計算資源において、所定の計算量を要求するプロセスに対し、前記デッドライン時刻までに前記所定の計算量が得られるように保証するためのプログラムが記録された前記計算資源により可読な記録媒体であって、前記プログラムは、
前記計算資源による計算処理により得られる前記プロセスの計算量を計測するステップと、
前記計算処理に割り込みを発生し、割り込み発生時刻までに得られた前記計算量を取得するステップと、
取得した前記計算量を用いて余裕時間を計算し、前記余裕時間があるか否かを判定するステップと、
前記余裕時間があるか否かを判定するステップで、前記余裕時間がないと判定された場合、他のプロセスの計算処理を中断するステップと
を前記計算資源に実行させる、記録媒体が提供される。
本発明によれば、前記計算量を取得するステップでは、所定時間ごとに割り込みを発生することができる。
本発明によれば、前記余裕時間と前記割り込み発生時刻とを用いて次の割り込み発生時刻を算出し、前記次の割り込み発生時刻に割り込みを発生するように該次の割り込み発生時刻を設定するステップをさらに実行させることができる。
本発明によれば、前記次の割り込み発生時刻より前に、前記所定の計算量が得られているか否かを判定するステップをさらに実行させることができる。
本発明によれば、中断された前記他のプロセスのコンテキストを記憶するステップをさらに実行させることができる。
本発明のシステム、方法および記録媒体を提供することにより、同時マルチスレッド技術(SMT)を用いてCPUといった計算資源上で、その計算資源の予約によるリアルタイムプロセスのデッドラインを保証しつつ、かつスループットを向上させることが可能となる。
以下、本発明を図面に示した具体的な実施の形態に沿って説明するが、本発明は、後述する実施の形態に限定されるものではない。
図1は、本発明の計算資源予約システムを組み込んだシステム10の実施例を示した図である。図1には、テレビアンテナ20と、リモートコントローラ30と、ビデオレコーダ40と、表示装置50とから構成されるシステム10が示されている。図1に示すシステム10では、ビデオレコーダ40に本発明の計算資源予約システム60が組み込まれている。また、ビデオレコーダ40内には、本発明の計算資源予約システム60のほか、計算資源であるプロセッサ41と、各種資源の管理およびアプリケーションがそれら資源を利用できるようにするためのOSおよびアプリケーションが格納され、処理結果を記憶するための記憶装置42と、リモートコントローラ30からの信号を受信する受信部43と、テレビアンテナ20を介して画像データおよび音声データを受信するテレビチューナー44とを備えている。ここで、資源とは、プロセッサ41、記憶装置42、受信部43、テレビチューナー44などをいう。
図1に示す実施の形態では、テレビチューナー44により受信した画像データおよび音声データをプロセッサ41で圧縮処理し、記憶装置に書き込む処理が行われている。これは、録画と呼ばれる処理である。また、録画中に、ユーザによりリモートコントローラ30を使用して他の操作も行われている。この場合、プロセッサ41は、録画のための圧縮処理と同時に、ユーザの操作に対する応答処理も行っている。プロセッサ41は、ユーザの操作に対する応答処理として、例えば、チャンネル変更処理を行い、変更されたチャンネルの画像を表示装置50に表示している。
上記圧縮処理およびチャンネル変更処理は、プロセスを1つの処理単位として実行される。任意の画像および音声の圧縮処理は、次の画像および音声データが受信されるまでに終了する必要があり、次の画像および音声データが受信されるまでに終了しない場合、そのデータは失われてしまう。この処理の場合、データを受信し、圧縮処理し、次のデータを受信するまでが1つのプロセスであり、次のデータを受信するまでに処理を終了しなければならないというデッドラインをもつプロセスである。したがって、このプロセスは、リアルタイムプロセスである。これに対し、チャンネル変更処理は、でき得る限り早く処理することが望ましいが、デッドラインをもたないため、時間を遅らせるなどして処理することができる。この処理の処理単位としてのプロセスは、非リアルタイムプロセスである。
本発明の計算資源予約システムは、上述したリアルタイムプロセスへの計算資源の割り当てを保証しつつ、同時に、できる限り多くの計算資源を上述した非リアルタイムプロセスに与えるようにスケジューリングするためのシステムである。すなわち、プロセスを割り当て、計算資源を予約するためのシステムである。具体的には、リアルタイムプロセスに対して得られた計算量を適宜確認し、その計算量から残りの計算量を得、また、デッドライン時刻までの残り時間を得、その残り時間と残りの計算量とから時間的余裕、すなわち余裕時間があるか否かを判定し、余裕時間がなくなった場合に非リアルタイムプロセス内のスレッドの実行を中断させ、計算資源をすべてリアルタイムプロセスに割り当て、デッドライン時刻までに所定の計算量が確実に得られるようにするシステムである。
図1を参照して説明すると、ユーザが録画を行うと、そのイベントに応答して、プロセッサ41上で実行されているOSは、実行されるべき計算をプロセスという単位で作成して管理する。また、OSは、このプロセスを計算処理させるためにプロセッサ41を割り当てるディスパッチを行う。なお、プロセスは、デッドライン時刻およびそのデッドライン時刻までに得なければならない所定の計算量が予め決められている。また、所定の計算量に対する、裏プロセッサスレッドを実行しない場合、すなわち、プロセッサ41をこのプロセスのみに割り当てた場合の計算時間も決められている。本発明の計算資源予約システム60は、プロセスがディスパッチされた時点で、余裕時間があるか否かを判断し、余裕時間がある場合に、例えば、チャンネル変更処理といった他のプロセスをディスパッチすることができる。
また、本発明の計算資源予約システム60は、適宜、割り込みを発生させ、プロセッサ41による計算処理を中断させ、プロセッサ41に余裕時間を計算させ、その計算結果により、余裕時間があるか否かを判定し、余裕時間がないと判定した場合、上記他のプロセスへの割り当てを開放し、プロセッサ41を上記プロセスのみに割り当て、デッドライン時刻までに計算量が得られるように保証することができる。なお、デッドライン時刻までに得なければならない所定の計算量が得られた場合には、その時刻からデッドライン時刻までの間、他のプロセスにプロセッサ41を割り当てることができる。
本発明の計算資源予約システムの1つの実施の形態を、図2を参照して説明する。図2に示す計算資源予約システム60は、複数のプロセスを同時に処理する計算資源において、デッドライン時刻までに所定の計算量を要求するプロセス(以下、リアルタイムプロセスとする。)に対し、そのデッドライン時刻までに所定の計算量が得られるように保証するものであり、計測部61、余裕時間判定部62、処理中断部63から構成されている。計測部61は、計算資源であるプロセッサ41による計算処理によって得られるリアルタイムプロセスの計算量を計測するものである。余裕時間判定部62は、プロセッサ41による計算処理に割り込みを発生させ、割り込みを発生させた時刻(割り込み発生時刻)において、計測部61から計算量を取得し、取得した計算量をプロセッサ41に与えて余裕時間を計算させ、その結果により、余裕時間があるか否かを判定するものである。なお、割り込みは、割り込み信号をプロセッサ41に送り、プロセッサ41の処理を中断させることにより行われる。また、割り込みは、一定時間間隔で発生させたり、任意の時刻に発生させたりことができる。処理中断部63は、余裕時間判定部62が、余裕時間がないと判定した場合、同時に実行されている他のプロセスの計算処理を中断させるものである。
デッドラインを有するリアルタイムプロセスは、OSによってプロセッサ41に割り当てられ、プロセッサ41による処理が開始される。図2では、リアルタイムプロセスと非リアルタイムプロセスとが同時に処理されている。計測部61は、プロセッサ41がリアルタイムプロセスの処理を開始した時刻からリアルタイムプロセスの計算量を計測し、要求に応じて任意の時間における計算量を提供することができる。図2に示す実施の形態では、一定時間間隔ごとに発生する割り込みにおいて、その割り込み発生時刻までに得られた計算量を提供するように構成されている。本発明においては、例えば、プロセッサ41により実行されるプログラム内でリアルタイムプロセスの処理と同時にその計算量を計測するようにプログラムを構成し、その実行により、計算量を計測することもでき、また、プロセッサ41のパフォーマンスモニタを使用して計算量を計測することもできる。なお、上記プログラムを構成する場合、割り込みの発生に応答して、割り込み発生時刻までに得られた計算量を通知するように構成することができる。
図2に示す実施の形態では、余裕時間判定部62は、一定時間間隔ごとに割り込みを発生させるように設定されている。割り込みは、計算処理中のプロセッサ41に割り込み信号を与えることにより行われる。なお、割り込みが発生すると、プロセッサ41は、計算処理を中断する。この割り込みの間、割り込み発生時刻までに得られた計算量を計測部61から取得する。本発明では、割り込み発生に応答して、計測部61が通知することにより、その時刻までに得られた計算量を取得するようにしてもよい。本発明においては、割り込みは、OSに実装されるシステム・タイマや外部タイマを用いて発生させることができる。なお、システム・タイマを使用する場合、割り込みは、一定時間間隔ごとに発生し、外部タイマを使用する場合には、可変時間間隔ごとに発生させることができる。
また、余裕時間判定部62は、割り込みの間、計測部61から取得した計算量をプロセッサ41に与え、プロセッサ41に余裕時間を計算させ、この結果により、余裕時間があるか否かを判定する。なお、余裕時間tは、以下の式を用いて算出することができる。
Figure 0003962370
上記tは、デッドライン時刻であり、tは、割り込み発生時刻であり、cは、所定の計算量を裏プロセッサスレッドの影響がない場合の計算時間で表した値、すなわち、プロセッサ41上で裏プロセッサスレッドを実行しない場合の所定の計算量を計算時間として表した値であり、cは、時刻tまでに得られた計算量を、cと同様、裏プロセッサスレッドの影響がない場合の計算時間で表した値である。例えば、cは、予め決められた所定の計算量とその所定の計算量に対応する予め決められた計算時間とから計算量/計算時間の値を得、この値と計測した計算量とを用いて得ることができる。この計算時間の単位は、例えば、ms(ミリ秒)である。余裕時間は、上述したデッドライン時刻までの残りの時間から得なければならない残りの計算時間を引いた値である。余裕時間判定部62は、算出された余裕時間が0であるか、0を超えるかを判定する。なお、余裕時間が0である場合、プロセッサ41をリアルタイムプロセスのみに割り当てなければ、デッドライン時刻までに所定の計算量を取得できないことを意味し、余裕時間が0を超える場合、他のプロセス(以下、非リアルタイムプロセスとする。)にもまだ割り当て可能であることを意味する。
余裕時間判定部62が、余裕時間がないと判定した場合、プロセッサ41をリアルタイムプロセスのみに割り当てなければならないため、処理中断部63は、プロセッサ41上で処理されている非リアルタイムプロセスを中断させる。プロセッサ41がさらに別のプロセスの処理も行っている場合には、その別のプロセスも中断させる。これにより、上述したように、プロセッサ41をリアルタイムプロセスのみに割り当てることができ、デッドライン時刻までに得なければならない計算量を確実に取得することができる。実際にプロセッサ41上では、スレッドが実行されているため、非リアルタイムプロセスの裏プロセッサスレッドをアイドルさせることにより中断させることができる。なお、中断された非リアルタイムプロセスは、その中断された時点における状態、すなわちコンテキストがキャッシュなどの図示しない記憶部に記憶される。コンテキストは、実行中のプログラムが処理内容を選択する際の判断の材料となる、プログラムの内部状態や置かれた状況、与えられた条件などを指し、例えば、複数の型の引数を取ることができるようになっている演算子や関数が、引数の型に合わせて返り値の型を選択する場合の、その演算子や関数を呼び出す際の引数の型である。本発明においては、デッドライン時刻までにリアルタイムプロセスが終了した場合、そのリアルタイムプロセスへのプロセッサの割り当てを開放することにより、プロセッサ41が、図示しない記憶部からコンテキストを読み出し、非リアルタイムプロセスを中断された時点の状態から処理することができる。
また、余裕時間判定部62が0を超えると判定した場合、再び、一定時間後に割り込みを発生させ、それまでに得られた計算量を取得し、それをプロセッサ41に与えて余裕時間を計算させ、この結果、余裕時間が0であるか、0を超えるかを判定する。これを繰り返すことにより、リアルタイムプロセスのデッドラインを保証しながら、非リアルタイムプロセスにも計算資源を有効に割り当て、システムのスループットを向上させることができる。なお、余裕時間判定部62による割り込みは1つのプロセスの処理時間に比較し、著しく小さいものである。また、上記計算量の取得、上記余裕時間の計算などは、この割り込み時間内に処理される。
余裕時間判定部62が一定時間間隔ごとに割り込みを発生させる場合、プロセッサ41によって計算される余裕時間が負の値になる可能性がある。余裕時間が負の値になる場合、リアルタイムプロセスのみにプロセッサ41を割り当てたとしても、デッドライン時刻までに得なければならない計算量を取得することができないことを意味する。したがって、本発明では、割り込み発生間隔を短くしたり、余裕時間に閾値を設け、例えば、余裕時間が0.01msを超えるか否かを判定させるようにして、リアルタイムプロセスのデッドラインを保証するようにすることができる。上記余裕時間の算出、余裕時間があるか否かの判断、他のプロセスの中断といった機能は、割り込み時にプロセッサ41に送られる実行コードである割り込みハンドラに含め、このハンドラをプロセッサ41に実行させることにより実現することもできる。
図3は、図2に示す計算資源予約システムを用いて計算資源の予約を行うプロセスを示したフローチャートである。まず、リアルタイムプロセスが計算資源であるプロセッサにディスパッチされることにより開始される(ステップ300)。一定時間経過後に、割り込みを発生させ、割り込み発生時刻までに得られたリアルタイムプロセスの計算量を取得する(ステップ310)。取得した計算量をプロセッサに与え、余裕時間を計算させて、余裕時間があるか否かを判定する(ステップ320)。余裕時間があると判定された場合、ステップ310に戻り、次の一定時間経過後に、割り込みを発生させ、プロセスの開始時刻から次の割り込み発生時刻までに得られた計算量を取得する。ステップ320において、余裕時間がないと判定された場合、プロセッサ上で実行されている裏プロセッサスレッドの実行を中断させる(ステップ330)。これにより、リアルタイムプロセスのみにプロセッサを割り当て、デッドライン時刻までに得なければならない計算量を確実に取得することができる。また、リアルタイムプロセスが終了した場合、非リアルタイムプロセスの処理を再開することができる(ステップ340)。なお、デッドライン時刻に到達した後、リアルタイムプロセスがプロセッサにディスパッチされた場合、再び、ステップ300〜340の処理を行うことができる。リアルタイムプロセスのディスパッチが行われない場合、非リアルタイムプロセスの終了によりプロセッサによる処理を終了する(ステップ350)。
本発明では、ディスパッチされた時点で、プロセッサに余裕時間を計算させて、余裕時間があるか否かを判定し、余裕時間がある場合に非リアルタイムプロセスをディスパッチするステップを含むことができる。この場合、ステップ300とステップ310の間に、上記ディスパッチするステップを含めることができる。
図4は、本発明の計算資源予約システムの別の実施の形態を示した図である。図4に示すシステムは、割り込みを発生させる時刻を計算させ、その時刻に割り込みを発生させ、その時刻における計算量を取得することを可能にするシステムである。図4に示すシステムでは、余裕時間判定部62が、余裕時間があると判定した場合に、余裕時間および割り込み発生時刻を用いて次の割り込み発生時刻をプロセッサに計算させ、算出された次の割り込み発生時刻に割り込みを発生させるように、次の割り込み発生時刻を設定する割り込み発生時刻設定部62aを含む構成とされている。
割り込み発生時刻設定部62aは、デッドライン時刻、デッドライン時刻までに得なければならない計算量、割り込み発生時刻、割り込み発生時刻までに得られた計算量および以下の式を用いて、プロセッサ41に次の割り込み発生時刻tを計算させる。
Figure 0003962370
上記tは、デッドライン時刻であり、tは、割り込み発生時刻であり、cは、所定の計算量を裏プロセッサスレッドの影響がない場合の計算時間で表した値であり、cは、tまでに得られた計算量を裏プロセッサスレッドの影響がない場合の計算時間で表した値である。なお、このtは、tに、余裕時間を加えたものである。tからtの間は、例え計算量が全く得られない場合でも、余裕時間が減少するだけで、この間は余裕時間を有しているため、この間において割り込みを発生させても無駄となる。割り込み発生時刻設定部62aは、上記式5を用いて計算量が全く得られない場合に余裕時間が0となる時刻、すなわちtをプロセッサ41に計算させ、得られた時刻に割り込みを発生させるように余裕時間判定部62に設定し、その間、無駄な割り込みが発生しないようにする。なお、tからtの間に計算量が全く得られない場合、時刻tに裏プロセッサスレッドをアイドルさせ、リアルタイムプロセスのみにプロセッサ41を割り当てることにより、デッドライン時刻までに得るべき所定の計算量を取得することができる。この割り込み発生時刻設定部62aを用いることにより、割り込み回数を減少させることができ、より効率的に処理を行うことができる。この機能も、上述した割り込みハンドラに含め、このハンドラをプロセッサ41に実行させることにより実現することができる。
図5は、図4に示す計算資源予約システムを用いて計算資源の予約を行うプロセスを示したフローチャートである。まず、リアルタイムプロセスが計算資源であるプロセッサにディスパッチされることにより開始される(ステップ500)。ディスパッチされた時点で、プロセッサに余裕時間を計算させ、余裕時間があるか否かを判定する(ステップ510)。この場合の余裕時間は、割り込み発生時刻を0とし、計算量を裏プロセッサスレッドの影響がない場合の計算時間で表した値を0として上記式4により算出することができる。ステップ510で余裕時間があると判定された場合、割り込み発生時刻を計算させ、得られた時刻に割り込み発生時刻を設定する(ステップ520)。割り込み発生時刻において割り込みを発生させ、その割り込み発生時刻までに得られた計算量を取得する(ステップ530)。この取得された計算量に基づき、プロセッサに余裕時間を計算させ、余裕時間があるか否かを判定する(ステップ540)。
ステップ540で余裕時間があると判定された場合、次の割り込み発生時刻を計算させ、得られた時刻に次の割り込み発生時刻を設定する(ステップ550)。ステップ530に戻り、次の割り込みを発生させ、計算量を取得する。ステップ510で余裕時間がないと判定された場合、非リアルタイムプロセスのスレッドの実行を中断させ(ステップ560)、リアルタイムプロセスのみにプロセッサを割り当てる。また、ステップ540で余裕時間がないと判定された場合も、裏プロセッサスレッドの実行を中断させ(ステップ560)、リアルタイムプロセスのみにプロセッサを割り当てる。リアルタイムプロセスが終了した場合、非リアルタイムプロセスの処理を再開することができる(ステップ570)。デッドライン時刻に到達した後、リアルタイムプロセスがプロセッサにディスパッチされた場合、再び、ステップ500〜570の処理を行うことができる。リアルタイムプロセスのディスパッチが行われない場合、非リアルタイムプロセスの終了によりプロセッサによる処理を終了する(ステップ580)。
図6は、本発明の計算資源予約システムのさらに別の実施の形態を示した図である。図6に示すシステムは、割り込み発生時刻を計算させ、その時刻に計算量を取得することを可能にするとともに、割り込み発生時刻より前に所定の計算量が得られたか否かを判定することを可能にするシステムである。図6に示すシステムでは、余裕時間判定部62が、さらに計算量判定部62bを含む構成とされており、この計算量判定部62bにより、所定の計算量を割り込み時間より前に取得できたと判定した場合、それまでリアルタイムプロセスが占有していたプロセッサの割り当てを、非リアルタイムプロセスに割り当て、非リアルタイムプロセスの処理を促進させることができる。このような構成を採用することにより、システムのスループットをさらに向上させることができる。
割り込み発生時刻設定部62aは、余裕時間を確認するために、次の割り込み発生時刻を算出する。計測部61は、リアルタイムプロセスの計算量を計測する。計測部61がリアルタイムプロセスの終了を検知すると、計算量判定部62bは、その検知に応答して、割り込み発生時刻より前に所定の計算量が得られたと判定し、余裕時間判定部62に通知し、割り込みをキャンセルする。この場合、リアルタイムプロセスへの資源割り当てを開放し、非リアルタイムプロセスに資源を割り当て、プロセッサは非リアルタイムプロセスの裏プロセッサスレッドを実行することができる。割り込み発生時刻より前に所定の計算量が得られていないと判定した場合には、余裕時間判定部62への通知はなく、余裕時間判定部62は、割り込み発生時刻設定部62aにより設定された時刻に、割り込みを発生させる。この機能も、上述した割り込みハンドラに含め、このハンドラをプロセッサ41に実行させることにより実現することができる。
図7は、図6に示す計算資源予約システムを用いて計算資源の予約を行うプロセスを示したフローチャートである。まず、リアルタイムプロセスが計算資源であるプロセッサにディスパッチされることにより開始される(ステップ700)。ディスパッチされた時点で、余裕時間を算出し、余裕時間があるか否かを判定する(ステップ710)。余裕時間があると判定された場合、割り込み発生時刻を算出し、その割り込み発生時刻を設定する(ステップ720)。割り込み発生時刻に到達すると、割り込みが発生し、その割り込み発生時刻までに得られた計算量を取得する(ステップ730)。この取得された計算量に基づき、余裕時間を算出し、余裕時間があるか否かを判定する(ステップ740)。ステップ740で余裕時間があると判定された場合、次の割り込み発生時刻を算出する(ステップ750)。算出された次の割り込み発生時刻より前に、得るべき所定の計算量が得られたか否かを判定する(ステップ760)。得られていないと判定された場合、ステップ730に戻り、ステップ750で算出された割り込み発生時刻に基づき、次の割り込みを行う。
ステップ710およびステップ740で余裕時間がないと判定された場合、非リアルタイムプロセスのスレッドの実行を中断させ(ステップ770)、リアルタイムプロセスのみにプロセッサを割り当てる。また、ステップ760で、割り込み発生時刻より前に、所定の計算量が得られたと判定された場合、リアルタイムプロセスへの資源割り当てを開放し、非リアルタイムプロセスに割り当て、非リアルタイムプロセスの処理を再開する(ステップ780)。デッドライン時刻に到達した後、リアルタイムプロセスがプロセッサにディスパッチされた場合には、再び、ステップ700〜780の処理を行うことができる。リアルタイムプロセスのディスパッチが行われない場合、非リアルタイムプロセスの終了によりプロセッサによる処理を終了する(ステップ790)。
本発明においては、リアルタイムプロセスへの計算資源の割り当ての最低保証値を使用して、割り込み回数をさらに減少させることができる。これは、非リアルタイムプロセスを計算資源に割り当てた場合でも、最低限ある保証された計算性能が得られることがわかっている場合に採用することができる。この場合、割り込み発生時刻設定部62aは、以下の式を用いて、次の割り込み発生時刻tを算出することができる。
Figure 0003962370
上記tは、デッドライン時刻であり、tは、割り込み発生時刻であり、cは、所定の計算量を裏プロセッサスレッドの影響がない場合の計算時間で表した値であり、cは、時刻t0において取得した計算量を裏プロセッサスレッドの影響がない場合の計算時間で表した値である。また、αは、最低保証値であり、非リアルタイムプロセスを処理する場合でも得られる計算性能の最低保証量を、非リアルタイムプロセスの処理を行わなかった場合に得られる計算性能との比で表した値であり、0以上1未満の範囲の値をとる。αが1に近い値を示す場合には、非リアルタイムプロセスの処理がほとんど行われておらず、リアルタイムプロセスの処理に対して非リアルタイムプロセスの影響をほとんど受けないことを意味する。それとは反対に、αが0である場合には、非リアルタイムプロセスにプロセッサのすべてを占有され、リアルタイムプロセスがまったく処理されないことを意味する。
本発明の計算資源予約システムを用いた計算資源の予約について詳細に説明する。図8〜図10は、図4または図6に示すシステムを採用した場合に得られるタイミング図である。図8〜図10では、リアルタイムプロセスへの割り当てをCPU0で示し、非リアルタイムプロセスへの割り当てをCPU1で示す。また、計算量として、裏プロセッサスレッドの影響がない場合の計算時間で表した値、すなわち計算時間を用いて説明する。図8は、計算資源であるプロセッサに、リアルタイムプロセスの処理をさせる場合に、割り込みを発生させるタイミングを示した第1実施例である。図8は、縦軸に計算量を裏プロセッサスレッドの影響がない場合の計算時間で表した値である計算時間(ms)を示し、横軸に時刻(ms)を示している。図8に示す実施の形態では、リアルタイムプロセスである予約プロセス(reserved process)が10ms後のデッドラインまでに6ms分の計算時間を予約している。時刻0において、リアルタイムプロセスがプロセッサにディスパッチされ、このリアルタイムプロセスが処理されるのと同時に、非リアルタイムプロセスである他のプロセス(other process)もディスパッチされている。
まず、時刻0において、余裕時間が算出される。時刻0であり、計算時間も0であるから、上記式4により、余裕時間4msが算出される。余裕時間があるため、裏プロセッサスレッドはアイドルされず、時刻4msにおいて、割り込みが発生している。この割り込みは、上述したように、時刻4msにおける計算時間を取得するために行われる。図8に示す実施の形態では、割り込みにより、3.5ms分の計算時間が得られたことを示している。時刻4msにおいては、3.5ms分の計算時間が得られているため、残りの計算時間は2.5msであり、また、デッドライン時刻までに6msあるため、3.5msの余裕時間があることになる。この3.5msという余裕時間は、上記式4により算出することができ、また、上記式5により、次の割り込みを発生させる時刻を算出すると、時刻7.5msとなる。
図8に示す実施の形態では、時刻7msに予約した計算時間を得ることができており、したがって、時刻7.5msにおける割り込みはキャンセルされる。また、時刻7msまでに予約した計算時間を得ることができた場合、デッドライン時刻までの残りの3ms分の計算時間は、他のプロセスに割り当てることができる。
図9は、計算資源であるプロセッサに、リアルタイムプロセスの処理をさせる場合に、割り込みを発生させるタイミングを示した第2実施例である。図8と同様に、縦軸は計算時間(ms)を示し、横軸は時刻(ms)を示す。これも、図8に示す実施の形態と同様、予約プロセスが10ms後のデッドラインまでに6ms分の時間を予約している。また、予約プロセスと他のプロセスとによってプロセッサが占有されている。図8に示す実施の形態と同様、予約プロセスがプロセッサにディスパッチされた時刻を0とし、時刻0において、余裕時間を算出する。上述したように、時刻0で計算時間も0であるから、上記式4より、余裕時間は4msと算出される。余裕時間があることから、次に、上記式5を用いて割り込み発生時刻が算出される。この場合、割り込み発生時刻は予約プロセスの開始時刻から4ms後と算出される。したがって、時刻4msに割り込みを発生させ、時刻4msにおける計算時間を取得する。
図9では、時刻4msにおいて、6ms分の計算時間に対し、2ms分を計算時間しか得られていないことを示している。この2msという計算時間を取得し、再び余裕時間が計算される。このとき、余裕時間は、デッドライン時刻までの時間が6msに対し、計算時間は残り4ms分であるから、上記式4により、2msとなる。余裕時間が0を超えているため、次の割り込み発生時刻が算出される。この場合、上記式5から、時刻6msと算出される。時刻6msにおいて、割り込みを発生させ、計算時間を取得する。図9に示す実施の形態では、時刻4msから時刻6msまでの間、予約プロセスが全く処理されておらず、時刻6msにおいて、2ms分の計算時間しか得られていない。再び余裕時間が算出され、残りの計算時間が4msに対し、デッドライン時刻までの時間が4msであることから、余裕時間として0が算出される。デッドライン時刻までに、予約した計算時間を得るためには、プロセッサに予約プロセスのみを割り当てる必要があり、余裕時間が0と算出された場合、同時に処理されている他のプロセスをアイドルさせる。これにより、予約プロセスの予約した計算時間をデッドライン時刻までに得ることができる。
図10は、計算資源であるプロセッサに、リアルタイムプロセスの処理をさせる場合に、割り込みを発生させるタイミングを示した第3実施例である。図8および図9に示す実施の形態と同様、予約プロセスが10ms後のデッドラインまでに6ms分の計算時間を予約している。図10に示す実施の形態では、同時に処理される他のプロセスの影響を受けても、最低保証値αの計算性能が得られることが保証されている。
例えば、最低保証値αが0.5であれば、常に、50%分のプロセッサ性能をリアルタイムプロセスに割り当てることができることを保証する。上述したようにして、4msの余裕時間が算出されるが、次の割り込みは、上記式6により、時刻8msと算出される。これは、最低保証値を使用してプロセッサが処理した場合に余裕時間が0となる時間が8msであることを意味する。図10に示す実施の形態では、時刻7msに終了しているため、デッドライン時刻までの残り3msは、非リアルタイムプロセスである他のプロセスに割り当てることができる。なお、この場合、割り込みはキャンセルされるため、デッドライン時刻までに割り込みは発生しない。
ここで、本発明のシステムを採用した場合の処理結果と、従来のシステム、すなわち単にリアルタイムプロセスと非リアルタイムプロセスとを同時に処理する場合の処理結果とを比較したものを図11に示す。具体的には、本発明の上記機能をLinux上で実装し、インテル社のHyper Threading技術を採用したマシンを使用した場合と、上記機能を実装しない場合とで行った。非リアルタイムプロセスには、カーネルのコンパイルを、リアルタイムプロセスには、43.3ms周期で、30msかかる計算を採用した。なお、実線は、本発明のシステムを採用し、本発明の方法で処理した結果を示し、破線は、上述した従来の方法で処理した結果を示す。また、図11には、縦軸の計算時間43.3msにデッドラインも示されている。
図11に示す結果では、実装しない場合には、1つのプロセッサ上で、リアルタイムプロセスと非リアルタイムプロセスとを同時に処理するため、デッドライン時刻となる43.3ms後には30ms分の処理を行うことができず、その30ms分の処理を行うのに、破線で示されるように、45ms〜55msかかっている。これに対し、本発明のシステムを実装したマシンでは、常にデッドラインより下側にあり、デッドライン時刻である43.3ms後には常に30ms分の処理が終了していることを示しており、デッドライン時刻までに所定の計算時間、すなわち所定の計算量が得られることを見出すことができた。
また、本発明のシステムを採用した場合と、従来の、リアルタイムプロセスの処理中、非リアルタイムプロセスの処理を停止し、リアルタイムプロセスの終了後、非リアルタイムプロセスを処理する場合とを比較すると、非リアルタイムプロセスの処理量が、最大1.9倍のスループットで、最低でも従来の場合と同程度のスループットを得ることができることを見出すことができた。
これまで本発明を図面に示した実施の形態に基づいて説明してきたが、本発明は図面に示した実施の形態に限定されるものではなく、各部の機能を、上述したように、プログラムを実行させることにより達成することができ、この場合、プログラムが記録された記録媒体として提供することも可能である。記録媒体として提供する場合、そのプログラムは、計算資源であるプロセッサにより実行させることができ、そのプログラムは、上述したように、割り込みハンドラとして提供することができる。したがって、この場合、プロセッサが、そのプログラムを実行して割り込みを発生し、余裕時間を判定し、非リアルタイムプロセスを中断することになる。
本発明のシステムは、リアルタイムプロセスのデッドラインを保証しながら、可能な限り、同時に他のプロセスを処理し、システムのスループットを向上させるシステムであるため、デッドラインを厳守する必要がある飛行機の管制システムや医療システムなどに適用可能である。
本発明の計算資源予約システムが組み込まれたシステムの実施例を示した図。 本発明の計算資源予約システムの1つの実施の形態を示した図。 図2に示す計算資源予約システムを用いて計算資源の予約を行うプロセスを示したフローチャート。 本発明の計算資源予約システムの別の実施の形態を示した図。 図4に示す計算資源予約システムを用いて計算資源の予約を行うプロセスを示したフローチャート。 本発明の計算資源予約システムのさらに別の実施の形態を示した図。 図6に示す計算資源予約システムを用いて計算資源の予約を行うプロセスを示した図。 計算資源であるプロセッサに、リアルタイムプロセスの処理をさせる場合に、割り込みを発生させるタイミングを示した図。 計算資源であるプロセッサに、リアルタイムプロセスの処理をさせる場合に、割り込みを発生させるタイミングを示した図。 計算資源であるプロセッサに、リアルタイムプロセスの処理をさせる場合に、割り込みを発生させるタイミングを示した図。 本発明のシステムを採用した場合の効果と、従来のシステム、すなわち単にリアルタイムプロセスと非リアルタイムプロセスとを同時に処理する場合の効果とを比較した図。
符号の説明
10…システム
20…テレビアンテナ
30…リモートコントローラ
40…ビデオレコーダ
41…プロセッサ
42…記憶装置
43…受信部
44…テレビチューナー
50…表示装置
60…計算資源予約システム
61…計測部
62…余裕時間判定部
62a…割り込み発生時刻設定部
62b…計算量判定部
63…処理中断部

Claims (18)

  1. 複数のスレッドを同時動作させて複数のプロセスを処理する計算資源において、所定の計算量を要求するリアルタイムプロセスに対し、デッドライン時刻までに前記所定の計算量が得られるように保証する計算資源予約システムであって、
    前記計算資源による計算処理により得られる前記リアルタイムプロセスの計算量を計測する計測部と、
    前記計算資源による計算処理に割り込みを発生させ、前記計測部から割り込み発生時刻までに得られた前記計算量を取得し、取得した前記計算量を前記計算資源に与えて余裕時間を計算させ、前記余裕時間があるか否かを判定する余裕時間判定部と、
    前記余裕時間判定部が、前記余裕時間がないと判定した場合、前記計算資源上で前記リアルタイムプロセスのスレッドと同時動作する他プロセスのスレッドをアイドルさせて、前記他プロセスの計算処理を中断させ、前記リアルタイムプロセスに前記計算資源を占有させる処理中断部と
    を含み、
    前記余裕時間判定部は、前記余裕時間と前記割り込み発生時刻とを用いて、前記計算資源に次の割り込み発生時刻を計算させ、前記次の割り込み発生時刻に割り込みを発生させるように該次の割り込み発生時刻を設定する割り込み発生時刻設定部を含む、システム。
  2. 前記余裕時間判定部は、前記次の割り込み発生時刻より前に、前記所定の計算量が得られているか否かを判定する計算量判定部を含む、請求項に記載のシステム。
  3. 前記システムは、前記処理中断部により中断された前記他プロセスのコンテキストを記憶する記憶部を含む、請求項1または2に記載のシステム。
  4. 前記余裕時間tは、前記デッドライン時刻tと、前記割り込み発生時刻tと、前記所定の計算量を前記他プロセスのスレッドの影響がない場合の計算時間で表した値cと、前記割り込み発生時刻において計測された計算量を前記他プロセスのスレッドの影響がない場合の計算時間で表した値cとを用い、下記式
    Figure 0003962370
    により算出される、請求項1〜のいずれか1項に記載のシステム。
  5. 前記次の割り込み発生時刻tは、前記デッドライン時刻tと、前記割り込み発生時刻tと、前記所定の計算量を前記他プロセスのスレッドの影響がない場合の計算時間で表した値cと、前記割り込み発生時刻において計測された計算量を前記他プロセスのスレッドの影響がない場合の計算時間で表した値cとを用い、下記式
    Figure 0003962370
    により算出される、請求項に記載のシステム。
  6. 前記次の割り込み発生時刻tは、前記デッドライン時刻tと、前記割り込み発生時刻tと、前記所定の計算量を前記他プロセスのスレッドの影響がない場合の計算時間で表した値cと、前記割り込み発生時刻において計測された計算量を前記他プロセスのスレッドの影響がない場合の計算時間で表した値cと、前記計算資源を前記他プロセスに割り当てた場合でも得られる計算性能の最低保証値α(αは、0以上1未満の数である。)とを用い、下記式
    Figure 0003962370
    により算出される、請求項に記載のシステム。
  7. 複数のスレッドを同時動作させて複数のプロセスを処理する計算資源において、所定の計算量を要求するリアルタイムプロセスに対し、デッドライン時刻までに前記所定の計算量が得られるように保証する計算資源予約方法であって、
    前記計算資源による計算処理により得られる前記リアルタイムプロセスの計算量を計測するステップと、
    前記計算資源による計算処理に割り込みを発生させ、割り込み発生時刻までに得られた前記計算量を取得するステップと、
    取得した前記計算量を前記計算資源に与えて余裕時間を計算させ、前記余裕時間があるか否かを判定するステップと、
    前記余裕時間があるか否かを判定するステップで、前記余裕時間がないと判定された場合、前記計算資源上で前記リアルタイムプロセスのスレッドと同時動作する他プロセスのスレッドをアイドルさせて、前記他プロセスの計算処理を中断させ、前記リアルタイムプロセスに前記計算資源を占有させるステップと
    前記余裕時間があるか否かを判定するステップで、前記余裕時間があると判定された場合、前記余裕時間と前記割り込み発生時刻とを用いて、前記計算資源に次の割り込み発生時刻を計算させ、前記次の割り込み発生時刻に割り込みを発生させるように該次の割り込み発生時刻を設定するステップと
    を含む、方法。
  8. 前記方法は、前記次の割り込み発生時刻より前に、前記所定の計算量が得られているか否かを判定するステップを含む、請求項に記載の方法。
  9. 前記方法は、中断された前記他プロセスのコンテキストを記憶するステップを含む、請求項7または8に記載の方法。
  10. 前記余裕時間tは、前記デッドライン時刻tと、前記割り込み発生時刻tと、前記所定の計算量を前記他プロセスのスレッドの影響がない場合の計算時間で表した値cと、前記割り込み発生時刻において計測された計算量を前記他プロセスのスレッドの影響がない場合の計算時間で表した値cとを用い、下記式
    Figure 0003962370
    により算出される、請求項7〜9のいずれか1項に記載の方法。
  11. 前記次の割り込み発生時刻tは、前記デッドライン時刻tと、前記割り込み発生時刻tと、前記所定の計算量を前記他プロセスのスレッドの影響がない場合の計算時間で表した値cと、前記割り込み発生時刻において計測された計算量を前記他プロセスのスレッドの影響がない場合の計算時間で表した値cとを用い、下記式
    Figure 0003962370
    により算出される、請求項に記載の方法。
  12. 前記次の割り込み発生時刻tは、前記デッドライン時刻tと、前記割り込み発生時刻tと、前記所定の計算量を前記他プロセスのスレッドの影響がない場合の計算時間で表した値cと、前記割り込み発生時刻において計測された計算量を前記他プロセスのスレッドの影響がない場合の計算時間で表した値cと、前記計算資源を前記他プロセスに割り当てた場合でも得られる計算性能の最低保証値α(αは、0以上1未満の数である。)とを用い、下記式
    Figure 0003962370
    により算出される、請求項に記載の方法。
  13. 複数のスレッドを同時動作させて複数のプロセスを処理する計算資源において、所定の計算量を要求するリアルタイムプロセスに対し、デッドライン時刻までに前記所定の計算量が得られるように保証するためのプログラムが記録された記録媒体であって、前記プログラムは、
    前記計算資源による計算処理により得られる前記リアルタイムプロセスの計算量を計測するステップと、
    前記計算処理に割り込みを発生し、割り込み発生時刻までに得られた前記計算量を取得するステップと、
    取得した前記計算量を用いて余裕時間を計算し、前記余裕時間があるか否かを判定するステップと、
    前記余裕時間があるか否かを判定するステップで、前記余裕時間がないと判定された場合、前記計算資源上で前記リアルタイムプロセスのスレッドと同時動作する他プロセスのスレッドをアイドルさせて、前記他プロセスの計算処理を中断し、前記リアルタイムプロセスに前記計算資源を占有させるステップと
    前記余裕時間があるか否かを判定するステップで、前記余裕時間があると判定された場合、前記余裕時間と前記割り込み発生時刻とを用いて次の割り込み発生時刻を計算し、前記次の割り込み発生時刻に割り込みを発生するように該次の割り込み発生時刻を設定するステップと
    を前記計算資源に実行させる、記録媒体。
  14. 前記次の割り込み発生時刻より前に、前記所定の計算量が得られているか否かを判定するステップをさらに含む、請求項13に記載の記録媒体。
  15. 中断された前記他プロセスのコンテキストを記憶するステップをさらに含む、請求項13または14に記載の記録媒体。
  16. 前記余裕時間tは、前記デッドライン時刻tと、前記割り込み発生時刻tと、前記所定の計算量を前記他プロセスのスレッドの影響がない場合の計算時間で表した値cと、前記割り込み発生時刻において計測された計算量を前記他プロセスのスレッドの影響がない場合の計算時間で表した値cとを用い、下記式
    Figure 0003962370
    により算出される、請求項13〜15のいずれか1項に記載の記録媒体。
  17. 前記次の割り込み発生時刻tは、前記デッドライン時刻tと、前記割り込み発生時刻tと、前記所定の計算量を前記他プロセスのスレッドの影響がない場合の計算時間で表した値cと、前記割り込み発生時刻において計測された計算量を前記他プロセスのスレッドの影響がない場合の計算時間で表した値cとを用い、下記式
    Figure 0003962370
    により算出される、請求項13に記載の記録媒体。
  18. 前記次の割り込み発生時刻tは、前記デッドライン時刻tと、前記割り込み発生時刻tと、前記所定の計算量を前記他プロセスのスレッドの影響がない場合の計算時間で表した値cと、前記割り込み発生時刻において計測された計算量を前記他プロセスのスレッドの影響がない場合の計算時間で表した値cと、前記計算資源を前記他プロセスに割り当てた場合でも得られる計算性能の最低保証値α(αは、0以上1未満の数である。)とを用い、下記式
    Figure 0003962370
    により算出される、請求項13に記載の記録媒体。
JP2003398823A 2003-11-28 2003-11-28 資源予約システムおよび資源予約方法および該方法を実行するためのプログラムが記録された記録媒体 Expired - Fee Related JP3962370B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2003398823A JP3962370B2 (ja) 2003-11-28 2003-11-28 資源予約システムおよび資源予約方法および該方法を実行するためのプログラムが記録された記録媒体
US10/998,237 US20050132038A1 (en) 2003-11-28 2004-11-27 Resource reservation system and resource reservation method and recording medium storing program for executing the method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003398823A JP3962370B2 (ja) 2003-11-28 2003-11-28 資源予約システムおよび資源予約方法および該方法を実行するためのプログラムが記録された記録媒体

Publications (2)

Publication Number Publication Date
JP2005157955A JP2005157955A (ja) 2005-06-16
JP3962370B2 true JP3962370B2 (ja) 2007-08-22

Family

ID=34649903

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003398823A Expired - Fee Related JP3962370B2 (ja) 2003-11-28 2003-11-28 資源予約システムおよび資源予約方法および該方法を実行するためのプログラムが記録された記録媒体

Country Status (2)

Country Link
US (1) US20050132038A1 (ja)
JP (1) JP3962370B2 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007004696A1 (ja) * 2005-07-06 2007-01-11 Matsushita Electric Industrial Co., Ltd. アクセス制御装置、アクセス制御集積回路、及びアクセス制御方法
JP2007086921A (ja) * 2005-09-20 2007-04-05 Prime Motion:Kk 機械装置制御プログラム実行システム
JP4707603B2 (ja) * 2006-05-15 2011-06-22 パナソニック株式会社 リアルタイムosにおける処理時間配分方法
US8438267B2 (en) * 2006-12-28 2013-05-07 At&T Intellectual Property Ii, L.P. Internet-wide scheduling of transactions
US20090089555A1 (en) * 2007-09-28 2009-04-02 James Adam Cataldo Methods and apparatus for executing or converting real-time instructions
JP2009181498A (ja) * 2008-01-31 2009-08-13 Nomura Research Institute Ltd ジョブ処理システムおよびジョブ処理方法
EP2133793B1 (en) * 2008-06-10 2015-08-12 Barcelona Supercomputing Center-Centro Nacional de Supercomputación A multithreaded processor and a mechanism and a method for executing one hard real-time task in a multithreaded processor
US8250395B2 (en) * 2009-11-12 2012-08-21 International Business Machines Corporation Dynamic voltage and frequency scaling (DVFS) control for simultaneous multi-threading (SMT) processors
JP5673937B2 (ja) * 2011-01-07 2015-02-18 アイキューブド研究所株式会社 信号処理装置、および信号処理方法
JP2014225137A (ja) 2013-05-16 2014-12-04 株式会社デンソー タスクスケジューラ,マイクロプロセッサ及びタスクスケジューリング方法
WO2019187719A1 (ja) * 2018-03-28 2019-10-03 ソニー株式会社 情報処理装置、および情報処理方法、並びにプログラム
US10884785B2 (en) * 2018-11-29 2021-01-05 International Business Machines Corporation Precise accounting of processor time for multi-threaded time-critical applications

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5388261A (en) * 1992-09-30 1995-02-07 Apple Computer, Inc. Apparatus and method for handling frame overruns in a digital signal processing system
US5628013A (en) * 1992-09-30 1997-05-06 Apple Computer, Inc. Apparatus and method for allocating processing time in a frame-based computer system
US6438573B1 (en) * 1996-10-09 2002-08-20 Iowa State University Research Foundation, Inc. Real-time programming method
JP2000010800A (ja) * 1998-06-19 2000-01-14 Toshiba Corp 計算機システムに於けるスレッド制御装置、及び同システムに於けるスレッド制御方法
US6757897B1 (en) * 2000-02-29 2004-06-29 Cisco Technology, Inc. Apparatus and methods for scheduling and performing tasks
US7302685B2 (en) * 2000-06-02 2007-11-27 Honeywell International Inc. Methods and apparatus for sharing slack in a time-partitioned system
US7117497B2 (en) * 2001-11-08 2006-10-03 Honeywell International, Inc. Budget transfer mechanism for time-partitioned real-time operating systems
JP3971715B2 (ja) * 2003-03-28 2007-09-05 インターナショナル・ビジネス・マシーンズ・コーポレーション 情報処理装置、割込制御装置、制御方法、及びこれらのプログラム

Also Published As

Publication number Publication date
US20050132038A1 (en) 2005-06-16
JP2005157955A (ja) 2005-06-16

Similar Documents

Publication Publication Date Title
US11507420B2 (en) Systems and methods for scheduling tasks using sliding time windows
Elliott et al. GPUSync: A framework for real-time GPU management
US8397235B2 (en) User tolerance based scheduling method for aperiodic real-time tasks
US9207977B2 (en) Systems and methods for task grouping on multi-processors
US9886305B2 (en) Determining the status of plurality of threads by monitoring the execution of folded thread
US9448864B2 (en) Method and apparatus for processing message between processors
JP3962370B2 (ja) 資源予約システムおよび資源予約方法および該方法を実行するためのプログラムが記録された記録媒体
JP4213572B2 (ja) 電子機器およびプロセッサ速度制御方法
JP2003509766A (ja) コンピュータ・オペレーティング・システムにおける時間分割したアプリケーション・スケジューリングのための方法
US20120029659A1 (en) Safety controller and safety control method
Huang et al. Implementation and evaluation of mixed-criticality scheduling approaches for sporadic tasks
KR20130050661A (ko) 실시간 운영체제에서 태스크 스케줄링 방법
JP5605131B2 (ja) ジョブスケジューリングプログラム,方法,および装置
US8898675B2 (en) Method of calculating processor utilization rate in SMT processor
Zhu et al. Response time analysis of hierarchical scheduling: The synchronized deferrable servers approach
CN109766168B (zh) 任务调度方法和装置、存储介质以及计算设备
WO2012036954A2 (en) Scheduling amongst multiple processors
US20070083863A1 (en) Method and system for restrained budget use
Souto et al. Overhead-aware schedulability evaluation of semi-partitioned real-time schedulers
Audsley et al. Appropriate mechanisms for the support of optional processing in hard real-time systems
Burns et al. Combining EDF and FP scheduling: Analysis and implementation in Ada 2005
JPS63300350A (ja) マルチプロセッサシステムのタスクスケジュ−ル方式
KR100455623B1 (ko) 멀티태스킹 운영체계에서 무한 루프 타스크 처리 방법
JP2000172513A (ja) タスク管理方法
JP2008305065A (ja) Cpuリソース管理方式

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060919

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061215

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070123

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070316

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

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20070501

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070518

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees