(57)【要約】【課題】タスクの実行順序を適切に決定し、決定した実行順序に従ってタスクを実行するプログラム実行装置を提供すること。【解決手段】定められた完了目標時刻以前に完了すべき複数のタスクの実行順序を決定し、各タスクを実行するプログラム実行装置であって、各タスクには、階層関係を有する複数の種類の優先度が割り当てられ、生成されているタスク毎に、当該タスクに割り当てられた複数の種類の優先度に基づいて定まるメモリ空間上の位置において当該タスクを識別する識別子を記憶している記憶手段と、新たに生成されたタスクに割り当てられた複数の種類の優先度、及び当該タスクを識別する識別子を受け付ける受付手段と、前記記憶手段において、前記受付けた複数の種類の優先度に基づいて定まるメモリ空間上の位置に前記受付けた識別子を書き込む書込手段とを備えることを特徴とする。【選択図】　図３
2004062463.tif 000002
【特許請求の範囲】
【請求項１】
それぞれ定められた完了目標時刻以前に完了すべき複数のタスクの実行順序を決定し、各タスクを実行するプログラム実行装置であって、
各タスクには、階層関係を有する複数の種類の優先度が割り当てられており、すでに生成されているタスク毎に、当該タスクに割り当てられた複数の種類の優先度に基づいて定まるメモリ空間上の位置において当該タスクを識別する識別子を記憶している記憶手段と、
新たに生成されたタスクに割り当てられた複数の種類の優先度、及び当該タスクを識別する識別子を受け付ける受付手段と、
前記記憶手段において、前記受付けた複数の種類の優先度に基づいて定まるメモリ空間上の位置に前記受付けた識別子を書き込む書込手段とを備え、
複数の種類の優先度に基づいて前記記憶手段において各識別子が配列されているメモリ空間上の位置の順序に従って、各識別子が識別するタスクの実行順序を決定する
ことを特徴とするプログラム実行装置。
【請求項２】
各タスクには、前記複数の種類の優先度として、当該タスクの完了目標時刻を示す第１優先度と、前記第１優先度より下位の優先度である第２優先度とが割り当てられており、
前記記憶手段は、第１優先度として同じ完了目標時刻が割り当てられたタスクが同じグループに属するように、前記複数のタスクを分類して生成した複数のグループを有し、各グループは完了目標時刻の順に従ってメモリ空間上の定まるメモリ空間上の位置に配列されており、各グループにはタスクを識別する識別子が当該タスクに割り当てられた第２優先度に従って定まるメモリ空間上の位置に配列されており、
前記受付手段は、新たに生成されたタスクに割り当てられた第１優先度としての完了目標時刻、当該タスクに割り当てられた第２優先度、及び当該タスクを識別する識別子を受け付け、
前記書込手段は、前記受付けた第１優先度と同じ優先度を持つ識別子が含まれるグループにおいて、前記受付けた第２優先度に基づいて定まるメモリ空間上の位置に前記受付けた識別子を書き込み、
前記プログラム実行装置は、前記記憶手段において、第１優先度及び第２優先度に基づいて各識別子が配列されているメモリ空間上の位置の順序に従って、各識別子が識別するタスクの実行順序を決定する
ことを特徴とする請求項１に記載のプログラム実行装置。
【請求項３】
前記記憶手段は、直近の完了目標時刻である第１優先度に基づいてタスクが分類されたグループである先頭グループに対応付けて、前記完了目標時刻である第１優先度を記憶しており、
前記先頭グループに後続して配列されたグループである後続グループ毎に、当該後続グループに含まれるタスクに割り当てられた完了目標時刻と、当該後続グループに先行して配列されているグループに含まれるタスクに割り当てられた完了目標時刻との時間差を、当該後続グループに対応づけて記憶しており、
前記書込手段は、前記受付手段により受付けた完了目標時刻と、前記直近の完了目標時刻とを比較して、一致する場合、前記先頭グループにおいて前記受付けた第２優先度に基づいて定まるメモリ空間上の位置に前記受付けた識別子を書き込み、
一致しない場合、前記後続グループ毎に、当該後続グループに対応づけられた時間差と、当該後続グループに先行して配列されているグループに含まれるタスクに割り当てられた完了目標時刻とを加算して得られる時刻と前記受付手段により受付けた完了目標時刻とを比較し、一致する場合に、当該後続グループにおいて前記受付けた第２優先度に基づいて定まるメモリ空間上の位置に前記受付けた識別子を書き込む
ことを特徴とする請求項２に記載のプログラム実行装置。
【請求項４】
第１優先度が取り得る値のうちの最も低い値は、完了目標時刻を構成する所定ビット列が取り得る最大値であり、
前記記憶手段は、前記所定ビット列の最大値を有する完了目標時刻が割り当てられたタスクを含むグループを、前記完了目標時刻の順に従ってメモリ空間上の定まる最後尾の位置において記憶しており、
前記受付手段は、新たに生成されたタスクに割り当てられた前記所定ビット列の最大値を有する完了目標時刻、当該タスクに割り当てられた第２優先度、及び当該タスクを識別する識別子を受け付け、
前記書込手段は、前記最後尾に位置するグループにおいて前記受付けた第２優先度に基づいて定まるメモリ空間上の位置に前記受付けた識別子を書き込む
ことを特徴とする請求項２に記載のプログラム実行装置。
【請求項５】
前記記憶手段は、さらに、
各グループについて、当該グループに含まれる全てのタスクの実行に要すると予測される総実行時間を、当該グループに対応づけて記憶しており、
前記受付手段は、新たに生成されたタスクの実行に要すると予測される実行時間を受け付け、
前記プログラム実行装置は、さらに、
現在時刻に、前記総実行時間と、前記実行時間とを加算して得られた時刻が、前記受付けた識別子により識別されるタスクに割り当てられた完了目標時刻より前であるか否かを判定し、前記時刻は前記完了目標時刻以降の時刻である場合に、前記受付けた識別子により識別されるタスクの実行を拒否する拒否信号を出力する判定手段を備え、
前記判定手段により前記時刻は前記完了目標時刻より前の時刻であると判定される場合、前記書込手段は、前記受付けた第１優先度と同じ優先度を持つ識別子が含まれるグループにおいて、前記受付けた第２優先度に基づいて定まるメモリ空間上の位置に前記受付けた識別子を書き込む
ことを特徴とする請求項２に記載のプログラム実行装置。
【請求項６】
前記判定手段は、前記グループに後続する全ての後続グループから当該後続グループを選択し、選択した当該後続グループについて、現在時刻に、前記当該後続グループに対応付けられた総実行時間と、前記受付けた実行時間とを加算して得られた時刻が、前記当該後続グループに含まれるタスクに割り当てられた完了目標時刻より前であるか否かを判定し、前記の選択と判定とを全ての後続グループについて繰り返し、
前記判定手段による全ての判定において前記時刻は前記完了目標時刻より前であると判定される場合、前記書込手段は、前記受付けた第１優先度と同じ優先度を持つ識別子が含まれるグループにおいて、前記受付けた第２優先度に基づいて定まるメモリ空間上の位置に前記受付けた識別子を書き込み、
前記判定手段による全ての判定のうち少なくとも１回前記時刻は前記完了目標時刻以降の時刻である判定される場合に、前記判定手段は前記受付けた識別子により識別されるタスクの実行を拒否する拒否信号を出力する
ことを特徴とする請求項５に記載のプログラム実行装置。
【請求項７】
各タスクには、当該タスクに定められた完了目標時刻のうち所定の単位時間の整数倍からなる第１優先度と、前記完了目標時刻のうち前記所定の単位時間未満の部分からなる第２優先度とが割り当てられており、
前記記憶手段は、同じ第１優先度が割り当てられたタスクが同じグループに属するように、前記複数のタスクを分類して生成した複数のグループを有し、各グループは第１優先度に従って定まるメモリ空間上の位置に配列されており、各グループにはタスクを識別する識別子が当該タスクに割り当てられた第２優先度に従って定まるメモリ空間上の位置に配列されており、
前記受付手段は、新たに生成されたタスクに割り当てられた第１優先度、第２優先度、及び当該タスクを識別する識別子を受け付け、
前記書込手段は、前記受付けた第１優先度と同じ優先度を持つ識別子が含まれるグループにおいて、前記受付けた第２優先度に基づいて定まるメモリ空間上の位置に前記受付けた識別子を書き込み、
前記プログラム実行装置は、前記記憶手段において、第１優先度及び第２優先度に基づいて各識別子が配列されているメモリ空間上の位置の順序に従って、各識別子が識別するタスクの実行順序を決定する
ことを特徴とする請求項１に記載のプログラム実行装置。
【請求項８】
それぞれ定められた完了目標時刻以前に完了すべき複数のタスクの実行順序を決定し、各タスクを実行するプログラム実行装置で用いられるタスク管理方法であって、
各タスクには、階層関係を有する複数の種類の優先度が割り当てられており、前記プログラム実行装置は、すでに生成されているタスク毎に、当該タスクに割り当てられた複数の種類の優先度に基づいて定まるメモリ空間上の位置において当該タスクを識別する識別子を記憶している記憶手段を備え、
前記タスク管理方法は、
新たに生成されたタスクに割り当てられた複数の種類の優先度、及び当該タスクを識別する識別子を受け付ける受付ステップと、
前記記憶手段において、前記受付手段により受付けた複数の種類の優先度に基づいて定まるメモリ空間上の位置に前記受付けた識別子を書き込む書込ステップとを含み、
前記プログラム実行装置は、複数の種類の優先度に基づいて前記記憶手段において各識別子が配列されているメモリ空間上の位置の順序に従って、各識別子が識別するタスクの実行順序を決定する
ことを特徴とするタスク管理方法。
【請求項９】
それぞれ定められた完了目標時刻以前に完了すべき複数のタスクの実行順序を決定し、各タスクを実行するプログラム実行装置で用いられるタスク管理プログラムであって、
各タスクには、階層関係を有する複数の種類の優先度が割り当てられており、前記プログラム実行装置は、すでに生成されているタスク毎に、当該タスクに割り当てられた複数の種類の優先度に基づいて定まるメモリ空間上の位置において当該タスクを識別する識別子を記憶している記憶手段を備え、
前記タスク管理プログラムは、
新たに生成されたタスクに割り当てられた複数の種類の優先度、及び当該タスクを識別する識別子を受け付ける受付ステップと、
前記記憶手段において、前記受付手段により受付けた複数の種類の優先度に基づいて定まるメモリ空間上の位置に前記受付けた識別子を書き込む書込ステップとを含み、
前記プログラム実行装置は、複数の種類の優先度に基づいて前記記憶手段において各識別子が配列されているメモリ空間上の位置の順序に従って、各識別子が識別するタスクの実行順序を決定する
ことを特徴とするタスク管理プログラム。
【請求項１０】
それぞれ定められた完了目標時刻以前に完了すべき複数のタスクの実行順序を決定し、各タスクを実行するプログラム実行装置で用いられるタスク管理プログラムが記録されているコンピュータ読み取り可能な記録媒体であって、
各タスクには、階層関係を有する複数の種類の優先度が割り当てられており、前記プログラム実行装置は、すでに生成されているタスク毎に、当該タスクに割り当てられた複数の種類の優先度に基づいて定まるメモリ空間上の位置において当該タスクを識別する識別子を記憶している記憶手段を備え、
前記タスク管理プログラムは、
新たに生成されたタスクに割り当てられた複数の種類の優先度、及び当該タスクを識別する識別子を受け付ける受付ステップと、
前記記憶手段において、前記受付手段により受付けた複数の種類の優先度に基づいて定まるメモリ空間上の位置に前記受付けた識別子を書き込む書込ステップとを含み、
前記プログラム実行装置は、複数の種類の優先度に基づいて前記記憶手段において各識別子が配列されているメモリ空間上の位置の順序に従って、各識別子が識別するタスクの実行順序を決定する
ことを特徴とする記録媒体。
【請求項１１】
それぞれ定められた完了目標時刻以前に完了すべき複数のタスクの実行順序を決定し、各タスクを実行する携帯電話機であって、
各タスクには、階層関係を有する複数の種類の優先度が割り当てられており、すでに生成されているタスク毎に、当該タスクに割り当てられた複数の種類の優先度に基づいて定まるメモリ空間上の位置において当該タスクを識別する識別子を記憶している記憶手段と、
新たに生成されたタスクに割り当てられた複数の種類の優先度、及び当該タスクを識別する識別子を受け付ける受付手段と、
前記記憶手段において、前記受付手段により受付けた複数の種類の優先度に基づいて定まるメモリ空間上の位置に前記受付けた識別子を書き込む書込手段とを備え、
複数の種類の優先度に基づいて前記記憶手段において各識別子が配列されているメモリ空間上の位置の順序に従って、各識別子が識別するタスクの実行順序を決定する
ことを特徴とする携帯電話機。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、オペレーティングシステムにおけるタスク管理機能に関し、特にタスクの実行順序を決定する技術に関する。
【０００２】
【従来の技術】
オペレーティングシステムの主な機能は、ハードウエア管理、タスク管理、データ管理及び入出力管理である。なかでもタスク管理は、タスクの実行順序を管理するものであり、ＣＰＵやメモリ、入出力装置等を効率良く動作させるための重要な機能である。タスクとは、プログラムの起動とその実行、終了などの流れを一括管理する制御単位のことである。ＯＳの管理下で動作するプログラムはタスクとして扱われ、プログラムの実行、優先処理、並行処理などはすべてタスクを単位として行われる。
【０００３】
タスクの実行順序を決定するアルゴリズムのひとつとして、優先度法がある。
優先度法は、簡単に説明すると、タスクごとに割り当てられた優先度に基づいて、各タスクの実行順序を決定する方法である。
【０００４】
【発明が解決しようとする課題】
しかしながら、従来の優先度法では、同じ優先度を割り当てられた複数のタスクの実行順序は先着順に決定されるため、前記複数のタスクの実行順序を制御できないという問題がある。
本発明は、上記問題を解決するために、タスクの実行順序を適切に決定することのできるタスク管理方法、タスク管理プログラム及び前記タスク管理プログラムを備えたプログラム実行装置の提供を目的とする。
【０００５】
【課題を解決するための手段】
上記の目的を達成するために、本発明は、それぞれ定められた完了目標時刻以前に完了すべき複数のタスクの実行順序を決定し、各タスクを実行するプログラム実行装置であって、各タスクには、階層関係を有する複数の種類の優先度が割り当てられており、すでに生成されているタスク毎に、当該タスクに割り当てられた複数の種類の優先度に基づいて定まるメモリ空間上の位置において当該タスクを識別する識別子を記憶している記憶手段と、新たに生成されたタスクに割り当てられた複数の種類の優先度、及び当該タスクを識別する識別子を受け付ける受付手段と、前記記憶手段において、前記受付けた複数の種類の優先度に基づいて定まるメモリ空間上の位置に前記受付けた識別子を書き込む書込手段とを備え、複数の種類の優先度に基づいて前記記憶手段において各識別子が配列されているメモリ空間上の位置の順序に従って、各識別子が識別するタスクの実行順序を決定することを特徴とする。
【０００６】
【発明の実施の形態】
次に、本発明に係るタスク管理方法が適用された携帯電話機１を一例として説明する。
〔１〕　携帯電話機１
（１）　携帯電話機１の構成
携帯電話機１は、図１に示すように、送受信回路１０、画面表示回路１１、音声入力回路１２、音声出力回路１３、ボタン入力回路１４、メモリ１５、Ｉ／Ｏブリッジ１６、タイマ回路１７及びＣＰＵ１８より構成される。
【０００７】
送受信回路１０、画面表示回路１１、音声入力回路１２、音声出力回路１３、ボタン入力回路１４、及びタイマ回路１７は、互いにシステムバス１９ａを介して接続される。メモリ１５とＣＰＵ１８とは、互いにＣＰＵバス１９ｂを介して接続される。システムバス１９ａとＣＰＵバス１９ｂとは、互いにＩ／Ｏブリッジ１６を介して接続される。
【０００８】
送受信回路１０は、ｅメール又は発信者電話番号等の通信データ並びに音声データの送受信を行う。受信時においては、受信した通信データはメモリ１５に書き込まれると同時に、画面表示回路１１によって、メモリ１５から読み出され、ディスプレイに表示される。受信した音声データは、音声出力回路１３を通じて発音される。
送信時においては、ボタン入力回路１４を通じて入力される電話番号等を受け付け、送受信回路１０を通じて発信処理する。相手先と回線が繋がった後は、音声入力回路１２を通じて入力される音声を発信処理する。
【０００９】
メモリ１５は、通信データ、画面データ、音声データ、ボタン入力データ等を記憶している。その他に、リアルタイムオペレーティングシステムと呼ばれる制御プログラムと、通信データ、画面データ、音声データ及び入力データの各データを実行するための複数個の命令プログラムとを記憶している。
タイマ回路１７は、タイムアウト信号をＣＰＵ１８に出力して、実行されるプログラム及びデータの切換えタイミングを通知する。
（２）　携帯電話機１におけるＣＰＵ１８の動作
ＣＰＵ１８は、メモリ１５より制御プログラムを読み込み、その制御プログラムに従って、メモリ１５より順に１個の命令プログラムを読み出す。そして、読出した命令プログラムを解読し、解読した命令を実行する。なお、ＣＰＵ１８は、前記命令を実行する際に、必要となる通信データ、画面データ、音声データ及び入力データの各データをメモリ１５より読み出す。
【００１０】
更に、ＣＰＵ１８は、前記命令を実行して得られた演算結果をメモリ１５に書き込む。演算結果は、携帯電話機においては、上記した通信データ、画面データ、音声データが該当し、これらがメモリから読み出され、送信、再生処理される。
本実施の形態では、以下、ＣＰＵ１８が命令プログラムを実行する実行単位をタスクと呼ぶ。また、制御プログラムに従って、各命令プログラムの実行順序決めることをスケジューリングと呼ぶ。
【００１１】
タスクのスケジューリング方法について、以下に説明する。
〔２〕　タスクのスケジューリング方法
タスクのスケジューリングは、図２に示すように、タスクスケジューリング部２０、プログラム記憶部２１、タイマ制御部２２及び実行制御部２３より構成される。
【００１２】
このうち、プログラム記憶部２１、タイマ制御部２２及び実行制御部２３に関しては、従来のタスクスケジューリングの技術として公知であるので説明を省略し、タスクスケジューリング部２０について、説明する。
タスクスケジューリング部２０は、タスク受付部２０１、スケジューリング可能性
判定部２０２、スケジューリング部２０３、タスク情報記憶部２０４及びタスク切換部２０５を有している。
【００１３】
（１）　タスク受付部２０１
タスク受付部２０１は、ユーザからの操作等により発生したタスクを受け付ける。具体的には、実行制御部２３よりタスクの処理要求信号を受け付ける。この後、プログラム記憶部２１より当該タスクの「タスク情報」、「優先度」、「デッドライン時刻」（以降、ＤＬ時刻と呼ぶ）及び「最悪実行時間」を読み出す。
「タスク情報」は、プログラム開始アドレスとスタックポインタとからなる。プログラム開始アドレスは、タスクが書き込まれたアドレスである。スタックポインタは、タスクの状態が一時的にスタックに退避される場合に、タスクの状態が書き込まれる位置情報である。
【００１４】
「優先度」は、タスクの実行順序を決定するための基準を数値で示したものである。本実施の形態では、優先度を“高”、“中”及び“低”の３レベルとする。
「ＤＬ時刻」は、タスクの実行を完了するべき目標時刻であり、“時／分／秒／秒以下（ｍｓｅｃ，μｓｅｃ）”　で表記する。なお、本実施の形態では、「ＤＬ時刻」は前記優先度より上位の優先度であるとする。
【００１５】
「最悪実行時間」は、タスクの実行開始から実行終了までに要すると予測される時間である。
タスク受付部２０１は、これら読み出した「タスク情報」、「優先度」、「ＤＬ時刻」、及び「最悪実行時間」を、スケジューリング可能性判定部２０２へ出力する。
（２）　タスク情報記憶部２０４
タスク情報記憶部２０４は、各タスクに割り当てられた「ＤＬ時刻」、及び「優先度」を管理するために設けられており、図３に示すように、先頭ポインタ３０、グループ４００、グループ５００、・・・を有している。
【００１６】
先頭ポインタ３０、グループ４００、グループ５００、・・・は、先頭ポインタ３０を先頭とし、グループ４００、グループ５００、・・・の順に配列を構成している。
グループ４００は、同一ＤＬ時刻が割り当てられた複数のタスクに関する情報をまとめて管理するためのものであり、ＤＣＢ４０、ＴＣＢ４１、ＴＣＢ４２、・・・からなる。
【００１７】
ＤＣＢ４０、ＴＣＢ４１、ＴＣＢ４２、・・・は、ＤＣＢ４０を先頭とし、ＴＣＢ４１、ＴＣＢ４２、・・・の順に配列を構成している。ＴＣＢ（タスクコントロールブロック：Ｔａｓｋ　Ｃｏｎｔｒｏｌ　Ｂｌｏｃｋ）は、タスクを管理するための管理情報である。１個のＴＣＢが、１タスクに対応する。ＤＣＢ（デッドラインコントロールブロック：Ｄｅａｄｌｉｎｅ　Ｃｏｎｔｒｏｌ　Ｂｌｏｃｋ）は、各グループに含まれるＴＣＢが管理するタスクに割り当てられたＤＬ時刻を管理するための管理情報である。
【００１８】
先頭ポインタ３０は、ＤＬ基準時刻３０１及びＤＣＢリンクアドレス３０２を含んでいる。ＤＬ基準時刻３０１は、各タスクに割り当てられた全てのＤＬ時刻のうち最も早い時刻である。ＤＣＢリンクアドレス３０２は、グループ４００に含まれるＤＣＢ４０が書き込まれた位置を示すアドレスである。
ＤＣＢ４０は、相対ＤＬ値４０１、最悪実行時間４０２、ＤＣＢリンクアドレス４０３及びＴＣＢリンクアドレス４０４を含んでいる。相対ＤＬ値４０１は、ＤＬ基準時刻３０１から、グループ４００に含まれるＴＣＢが管理するタスクに割り当てられたＤＬ時刻までのあいだの時間である。
【００１９】
最悪実行時間４０２は、グループ４００に含まれる全てのＴＣＢが管理するタスクに割り当てられた最悪実行時間を加算して得られる合計時間である。ＤＣＢリンクアドレス４０３は、グループ５００に含まれるＤＣＢ５０が書き込まれた位置を示すアドレスである。ＴＣＢリンクアドレス４０４は、ＴＣＢ４１が書き込まれた位置を示すアドレスである。
【００２０】
ＴＣＢ４１は、優先度４１１、タスク情報４１２及びＴＣＢリンクアドレス４１３を含んでいる。優先度４１１は、ＴＣＢ４１が管理するタスクに割り当てられた優先度の値である。タスク情報４１２は、ＴＣＢ４１により管理されるタスクが書き込まれた位置を示すアドレスである。ＴＣＢリンクアドレス４１３は、ＴＣＢ４２が書き込まれた位置を示すアドレスである。
【００２１】
ＴＣＢ４２は、優先度４２１、タスク情報４２２及びＴＣＢリンクアドレス４２３を含んでいる。優先度４２１は上記優先度４１１と同様の構成であり、タスク情報４２２は上記タスク情報４１２と同様の構成であり、さらにＴＣＢリンクアドレス４２３は上記ＴＣＢリンクアドレス４１３と同様の構成であるので、説明を省略する。
【００２２】
グループ５００は、ＤＣＢ５０、ＴＣＢ５１、・・・を含んでいる。
ＤＣＢ５０は、相対ＤＬ値５０１、最悪実行時間５０２、ＤＣＢリンクアドレス５０３及びＴＣＢリンクアドレス５０４を含んでいる。相対ＤＬ値５０１は上記相対ＤＬ値４０１と同様の構成であり、最悪実行時間５０２は上記最悪実行時間４０２と同様の構成であり、ＤＣＢリンクアドレス５０３は上記ＤＣＢリンクアドレス４０３と同様の構成であり、さらにＴＣＢリンクアドレス５０４は上記ＴＣＢリンクアドレス４０４と同様の構成であるので、説明を省略する。
【００２３】
ＴＣＢ５１は、優先度５１１、タスク情報５１２及びＴＣＢリンクアドレス５１３を含んでいる。優先度５１１は上記優先度４１１と同様の構成であり、タスク情報５１２は上記タスク情報４１２と同様の構成であり、さらにＴＣＢリンクアドレス５１３は上記ＴＣＢリンクアドレス４１３と同様の構成であるので、説明を省略する。
【００２４】
なお、先頭ポインタ３０、グループ４００、グループ５００、・・・による配列は、各グループに格納されているＴＣＢに割り振られたＤＬ時刻順に構成される。例えば、タスク情報記憶部２０４は、ＴＣＢ４１が含まれるグループ４００の相対ＤＬ時間４０１にＤＬ時刻“６／３５／２７”の値とＤＬ基準時刻との差を記憶しており、ＴＣＢ５１が含まれるグループ５００の相対ＤＬ時間５０１にＤＬ時刻“６／３５／４３”の値をグループ４００のＤＬ時刻との差を記憶している。
【００２５】
また、ＴＣＢ４１、ＴＣＢ４２、・・・による配列は、各ＴＣＢに割り振られた優先度の値の高いランク順に構成される。例えば、タスク情報記憶部２０４は、優先度４１１の領域に“高”を記憶しており、優先度４２１の領域に“中”を記憶している。
さらに、タスク情報記憶部２０４は、最も遅いＤＬ時刻を割り当てられたＴＣＢを配列したＤＣＢに含まれるＤＣＢリンクアドレスの領域に、最終ＤＣＢを指定するアドレスを記憶している。タスク情報記憶部２０４は、前記最終ＤＣＢ内に、ＤＬ時刻のデータ値が“ＦＦ／ＦＦ／ＦＦ”である複数のＴＣＢを、割り当てられた第２優先度に基づいて配列して記憶している。“ＦＦ／ＦＦ／ＦＦ”は、ＤＬ時刻を構成する所定のビット列が取り得る最大値とする。つまり、ＴＣＢのＤＬ時刻に“ＦＦ／ＦＦ／ＦＦ”を割り当てることにより、前記ＴＣＢの優先度を最低に設定することが可能となる。
（３）　スケジューリング可能性判定部２０２
スケジューリング可能性判定部２０２は、前記当該タスクがスケジューリングされた場合、スケジューリングされている全てのタスクの実行をＤＬ時刻より以前に完了することが出来るか否かを判定するために設けられている。
【００２６】
スケジューリング可能性判定部２０２は、ｉ、Ｘ及びＹという変数を有している。また、スケジューリング可能性判定部２０２は、タスク受付部２０１より当該タスクに割り当てられたタスク情報、優先度、ＤＬ時刻及び最悪実行時間を受け取り、タスク情報記憶部２０４より先頭ポインタに含まれるＤＬ基準時刻を読み出し、さらに、タイマ制御部２２より現在時刻を取得する。
【００２７】
そして、スケジューリング可能性判定部２０２は、ｎ回（変数ｉ＝１、２、…、ｎ）、以下の処理を繰り返す。
▲１▼、変数Ｘに前記ＤＬ基準時刻を代入し、変数Ｙに前記現在時刻と前記当該タスクの最悪実行時間との合計値を代入する。
▲２▼、タスク情報記憶部２０４よりＤＣＢ（ｉ）に含まれる相対ＤＬ値（ｉ）と最悪実行時間（ｉ）とを読み出す。
【００２８】
▲３▼、変数Ｘに変数Ｘと相対ＤＬ値（ｉ）との合計値を代入し、変数Ｙに変数Ｙと最悪実行時間（ｉ）との合計値を代入する。
▲４▼、変数Ｘと変数Ｙとの比較を行う。
▲５▼、変数ｉに変数ｉと１との合計値を代入する。
ここまでが、繰り返し処理の内容となる。
【００２９】
スケジューリング可能性判定部２０２は、上記変数Ｘと変数Ｙとの比較を繰り返した結果において、１回でも変数Ｘ≦変数Ｙであった場合、すなわちＤＬ時刻が現在時刻に最悪実行時間を加算した時刻と同時刻又は前の時刻である場合に、スケジューリング不可信号を実行制御部２３へ出力する。
他方、上記変数Ｘと変数Ｙとの比較を繰り返した全ての結果において、変数Ｘ＞変数Ｙであった場合、すなわちＤＬ時刻が現在時刻に最悪実行時間を加算した時刻より後の時刻である場合に、当該タスクのタスク情報、優先度、ＤＬ時刻及び最悪実行時間をスケジューリング部２０３へ出力する。
（４）　スケジューリング部２０３
スケジューリング部２０３は、当該タスクを管理するＴＣＢを、ＤＬ時刻と優先度とに基づいて、タスク情報記憶部２０４において定まるメモリ空間上の位置に書き込むために設けられている。
【００３０】
スケジューリング部２０３は、ｉ及びＴという変数を有しており、スケジューリング可能性判定部２０２より当該タスクのタスク情報、優先度、ＤＬ時刻及び最悪実行時間を受け取り、タスク情報記憶部２０４より先頭ポインタに含まれるＤＣＢリンクアドレスとＤＬ基準時刻とを読み出す。
そして、スケジューリング部２０３は、変数ｉに１を代入し、変数Ｔに前記ＤＬ基準時刻を代入して、記憶部２０４におけるＤＣＢ（１）のデータの有無を判別する。判別結果によって以下のように各処理を行なう。
【００３１】
▲１▼、　ＤＣＢ（１）のデータが無いと判定する場合、記憶部２０４への書き込みを行う。（処理Ａとする）
▲２▼、　一方、ＤＣＢ（１）のデータが有ると判定する場合、当該タスクのＤＬ時刻と変数Ｔとを比較する。
▲２▼−１、　タスクのＤＬ時刻＜変数Ｔの場合に、記憶部２０４への書き込みを行う。（処理Ｂとする）
▲２▼−２、　タスクのＤＬ時刻＝変数Ｔの場合に、記憶部２０４への書き込みを行う。（処理Ｅとする）
▲２▼−３、　さらに、タスクのＤＬ時刻＞変数Ｔの場合に、変数ｉに１を加算した後、ＤＣＢ（ｉ）データの有無を判定する。
【００３２】
▲２▼−３−１、　ＤＣＢ（ｉ）データが無いと判定する場合、記憶部２０４への書き込みを行う。（処理Ｃとする）
▲２▼−３−２、　他方、ＤＣＢ（ｉ）データは有ると判定する場合、ＤＣＢ（ｉ）に含まれる相対ＤＬ値を読み出す。さらに、変数Ｔに変数Ｔと前記相対ＤＬ値との合計値を代入し、当該タスクのＤＬ時刻と変数Ｔとを比較する。
【００３３】
▲２▼−３−２−１、　タスクのＤＬ時刻＜変数Ｔの場合に、記憶部２０４への書き込みを行う。（処理Ｄとする）
▲２▼−３−２−２、　タスクのＤＬ時刻＝変数Ｔの場合に、記憶部２０４への書き込みを行う。（処理Ｅとする）
以下に、処理Ａ〜Ｅを更に詳細に説明する。
［処理Ａの詳細］
スケジューリング部２０３は、以下の処理を行なう。
タスク情報記憶部２０４にＴＣＢ（ａ）の領域を生成して、書き込む。即ち、タスク情報記憶部２０４におけるＴＣＢ（ａ）の優先度の領域に、スケジューリング可能性判定部２０２より受取った当該タスクの優先度を書き込み、ＴＣＢ（ａ）のタスク情報の領域に、当該タスクのタスク情報を書き込み、さらに、ＴＣＢ（ａ）のＴＣＢリンクアドレスの領域に、ＮＵＬＬの値を代入する。
ついで、タスク情報記憶部２０４に、ＤＣＢ（ａ）の領域を生成して、書き込む。即ち、タスク情報記憶部２０４におけるＤＣＢ（ａ）の相対ＤＬ値の領域に、０の値を代入し、ＤＣＢ（ａ）の最悪実行時間の領域に、当該タスクの最悪実行時間を書き込み、ＤＣＢ（ａ）のＤＣＢリンクアドレスの領域に、ＮＵＬＬの値を代入し、ＤＣＢ（ａ）のＴＣＢリンクアドレスの領域に、ＴＣＢ（ａ）の位置を示すアドレスを書き込む。なお、この処理により、ＤＣＢ（ａ）とＴＣＢ（ａ）とは、タスク情報記憶部２０４において配列を構成する。
【００３４】
また、スケジューリング部２０３は、タスク情報記憶部２０４におけるＤＬ基準時刻３０１の領域に、当該タスクのＤＬ時刻を上書きする。
さらに、スケジューリング部２０３は、タスク情報記憶部２０４におけるＤＣＢリンクアドレス３０２の領域に、ＤＣＢ（ａ）の位置を示すアドレスを上書きする。なお、この処理により、先頭ポインタとＤＣＢ（ａ）とは、タスク情報記憶部２０４において配列を構成する。
【００３５】
スケジューリング部２０３は、タイマ制御部２２に当該タスクのＤＬ時刻を出力する。
［処理Ｂの詳細］
スケジューリング部２０３は、タスク情報記憶部２０４にＴＣＢ（ｂ）の領域を生成して、書き込む。即ち、ＴＣＢ（ｂ）の優先度の領域に、スケジューリング可能性判定部２０２より受取った当該タスクの優先度を書き込み、ＴＣＢ（ｂ）のタスク情報の領域に、当該タスクのタスク情報を書き込み、ＴＣＢ（ｂ）のＴＣＢリンクアドレスの領域に、ＮＵＬＬの値を代入する。
【００３６】
また、スケジューリング部２０３は、タスク情報記憶部２０４にＤＣＢ（ｂ）の領域を生成して、書き込む。即ち、ＤＣＢ（ｂ）の相対ＤＬ値の領域に、０の値を代入し、ＤＣＢ（ｂ）の最悪実行時間の領域に、当該タスクの最悪実行時間を書き込み、ＤＣＢ（ｂ）のＤＣＢリンクアドレスの領域に、ＤＣＢ（１）の位置を示すアドレスを書き込む。なお、この処理により、ＤＣＢ（ｂ）とＤＣＢ（１）とは、タスク情報記憶部２０４において配列を構成する。
【００３７】
スケジューリング部２０３は、さらに、ＤＣＢ（ｂ）のＴＣＢリンクアドレスの領域に、ＴＣＢ（ｂ）の位置を示すアドレスを書き込む。この処理により、ＤＣＢ（ｂ）とＴＣＢ（ｂ）とは、タスク情報記憶部２０４において配列を構成する。
また、スケジューリング部２０３は、タスク情報記憶部２０４におけるＤＣＢ（１）の相対ＤＬ値の領域に、（Ｔ−当該タスクのＤＬ時刻）の値を上書きし、ＤＬ基準時刻３０１の領域に、当該タスクのＤＬ時刻を上書きし、さらに、ＤＣＢリンクアドレス３０２の領域に、ＤＣＢ（ｂ）の位置を示すアドレスを上書きする。なお、この処理により、先頭ポインタとＤＣＢ（ｂ）とは、タスク情報記憶部２０４において配列を構成する。
【００３８】
スケジューリング部２０３は、タイマ制御部２２に当該タスクのＤＬ時刻を出力する。
［処理Ｃの詳細］
スケジューリング部２０３は、タスク情報記憶部２０４にＴＣＢ（ｃ）の領域を生成して、書き込む。即ち、タスク情報記憶部２０４におけるＴＣＢ（ｃ）の優先度の領域に、スケジューリング可能性判定部２０２より受取った当該タスクの優先度を書き込み、ＴＣＢ（ｃ）のタスク情報の領域に、当該タスクのタスク情報を書き込み、ＴＣＢ（ｃ）のＴＣＢリンクアドレスの領域に、ＮＵＬＬの値を代入する。
【００３９】
また、スケジューリング部２０３は、タスク情報記憶部２０４にＤＣＢ（ｃ）の領域を生成して、書き込む。即ち、ＤＣＢ（ｃ）の相対ＤＬ値の領域に、（当該タスクのＤＬ時刻−Ｔ）の値を代入し、ＤＣＢ（ｃ）の最悪実行時間の領域に、当該タスクの最悪実行時間を書き込み、ＤＣＢ（ｃ）のＤＣＢリンクアドレスの領域に、ＮＵＬＬの値を代入し、さらに、ＤＣＢ（ｃ）のＴＣＢリンクアドレスの領域に、ＴＣＢ（ｃ）の位置を示すアドレスを書き込む。
【００４０】
なお、この処理により、ＤＣＢ（ｃ）とＴＣＢ（ｃ）とは、タスク情報記憶部２０４において配列を構成する。
スケジューリング部２０３は、さらに、タスク情報記憶部２０４におけるＤＣＢ（ｉ）のＤＣＢリンクアドレスの領域に、ＤＣＢ（ｃ）の位置を示すアドレスを上書きする。この処理により、ＤＣＢ（ｉ）とＤＣＢ（ｃ）とは、タスク情報記憶部２０４において配列を構成する。
［処理Ｄの詳細］
スケジューリング部２０３は、タスク情報記憶部２０４にＴＣＢ（ｄ）の領域を生成して、書き込む。即ち、ＴＣＢ（ｄ）の優先度の領域に、スケジューリング可能性判定部２０２より受取った当該タスクの優先度を書き込み、ＴＣＢ（ｄ）のタスク情報の領域に、当該タスクのタスク情報を書き込み、ＴＣＢ（ｄ）のＴＣＢリンクアドレスの領域に、ＮＵＬＬの値を代入する。
【００４１】
スケジューリング部２０３は、タスク情報記憶部２０４にＤＣＢ（ｄ）の領域を生成して、書き込む。即ち、ＤＣＢ（ｄ）の相対ＤＬ値の領域に、（当該タスクのＤＬ時刻−Ｔ）の値を代入し、ＤＣＢ（ｄ）の最悪実行時間の領域に、当該タスクの最悪実行時間を書き込み、ＤＣＢ（ｄ）のＤＣＢリンクアドレスの領域に、ＤＣＢ（ｉ）の位置を示すアドレスを書き込む。なお、この処理により、ＤＣＢ（ｄ）とＤＣＢ（ｉ）とは、タスク情報記憶部２０４において配列を構成する。
【００４２】
また、スケジューリング部２０３は、タスク情報記憶部２０４におけるＤＣＢ（ｄ）のＴＣＢリンクアドレスの領域に、ＴＣＢ（ｄ）の位置を示すアドレスを書き込む。この処理により、ＤＣＢ（ｄ）とＴＣＢ（ｄ）とは、タスク情報記憶部２０４において配列を構成する。
さらに、　スケジューリング部２０３は、タスク情報記憶部２０４におけるＤＣＢ（ｉ−１）のＤＣＢリンクアドレスの領域に、ＤＣＢ（ｄ）の位置を示すアドレスを上書きする。この処理により、ＤＣＢ（ｉ−１）とＤＣＢ（ｄ）とは、タスク情報記憶部２０４において配列を構成する。
［処理Ｅの詳細］
スケジューリング部２０３は、変数ｊを有し、初期値を１に設定して後、タスク情報記憶部２０４におけるＤＣＢ（ｉ）に含まれるＴＣＢリンクアドレスにより指定されるＴＣＢ（ｊ）を認識する。
【００４３】
そして、タスク情報記憶部２０４からＴＣＢ（ｊ）の優先度を読み出し、当該タスクの優先度値とＴＣＢ（ｊ）の優先度とを比較する。
当該タスクの優先度がＴＣＢ（ｊ）の優先度より低い、または等しい場合、変数ｊに１を加算する。そして、再び、タスク情報記憶部２０４にＴＣＢ（ｊ）が記憶されているか否かを判定する。
【００４４】
ＴＣＢ（ｊ）が記憶されている限り、当該タスクの優先度とＴＣＢ（ｊ）の優先度との比較処理、及び変数ｊに１を加算する処理を繰り返す。
スケジューリング部２０３は、もはや、ＴＣＢ（ｊ）が記憶されていない場合、又は当該タスクの優先度がＴＣＢ（ｊ）の優先度より高い場合、タスク情報記憶部２０４にＴＣＢ（ｅ）の領域を生成して、書き込む。
【００４５】
書き込む内容は、ＴＣＢ（ｅ）の優先度の領域に、スケジューリング可能性判定部２０２より受取った当該タスクの優先度を、ＴＣＢ（ｅ）のタスク情報の領域に、当該タスクのタスク情報を、ＴＣＢ（ｅ）のＴＣＢリンクアドレスの領域に、ＴＣＢ（ｊ）の位置を示すアドレスをそれぞれ書き込む。
なお、この処理により、ＴＣＢ（ｅ）とＴＣＢ（ｊ）とは、タスク情報記憶部２０４において配列を構成する。
【００４６】
続いて、スケジューリング部２０３は、タスク情報記憶部２０４におけるＴＣＢ（ｊ−１）のＴＣＢリンクアドレスの領域に、ＴＣＢ（ｅ）の位置を示すアドレスを書き込む。この処理により、ＴＣＢ（ｊ−１）とＴＣＢ（ｅ）とは、タスク情報記憶部２０４において配列を構成する。
ついで、スケジューリング部２０３は、タスク情報記憶部２０４におけるＤＣＢ（ｉ）の最悪実行時間の領域より、最悪実行時間を読み出し、その時間と、当該タスクの最悪実行時間とを加算した合計時間を、タスク情報記憶部２０４におけるＤＣＢ（ｉ）の最悪実行時間の領域に上書きする。
（５）　タスク切換部２０５
タスク切換部２０５は、ＣＰＵ１８により実行されるタスクを切り換えるために設けられる。
【００４７】
タスク切換部２０５は、タイマ制御部２２よりタイムアウト信号を受け取る場合、タスクの切り換えを行う。（処理Ｆとする）
タスク切換部２０５は、実行制御部２３より終了信号を受け取る場合、タスク情報記憶部２０４におけるＴＣＢ４１に含まれるＴＣＢリンクアドレス４１３を読み出す。さらに、タスク切換部２０５は、読出したＴＣＢリンクアドレス４１３の値はＮＵＬＬ値であるか否かを判定する。
【００４８】
タスク切換部２０５は、前記ＴＣＢリンクアドレス４１３の値が、ＮＵＬＬ値である場合、タスクの切り換えを行う。（処理Ｆとする）
他方、前記ＴＣＢリンクアドレス４１３の値が、ＮＵＬＬ値でない場合、タスクの切り換えを行う。（処理Ｇとする）
以下に、処理Ｆ及び処理Ｇを詳細に説明する。
［処理Ｆの詳細］
タスク切換部２０５は、タスク情報記憶部２０４より先頭ポインタ３０、ＤＣＢ４０及びＤＣＢ５０を読み出し、現在のＤＬ基準時刻とＤＣＢ５０に含まれる相対ＤＬ値との合計値を、タスク情報記憶部２０４におけるＤＬ基準時刻３０１の領域に上書きし、ＤＣＢ５０の位置を示すアドレスを、タスク情報記憶部２０４におけるＤＣＢリンクアドレス３０２の領域に上書きし、さらに、ＤＣＢ５０に含まれる相対ＤＬ値５０１の領域に、０値を上書きする。
【００４９】
また、タスク切換部２０５は、ＤＣＢ４０及びＤＣＢ４０に接続される全てのＴＣＢをタスク情報記憶部２０４より消去する。
続いて、タスク切換部２０５は、タスク情報記憶部２０４よりＤＣＢ５０に含まれるＴＣＢリンクアドレスにより指定されるＴＣＢ５１を読み出し、読出したＴＣＢ５１に含まれるタスク情報５１２を実行制御部２３へ出力する。
［処理Ｇの詳細］
タスク切換部２０５は、タスク情報記憶部２０４よりＤＣＢ４０、ＴＣＢ４１及びＴＣＢ４２を読み出し、ＤＣＢ４０に含まれるＴＣＢリンクアドレス４０４の領域に、ＴＣＢ４２の位置を示すアドレスを上書きする。
【００５０】
続いて、タスク情報記憶部２０４におけるＴＣＢ４１を消去し、ＴＣＢ４２に含まれるタスク情報４２２を、実行制御部２３に出力する。
〔３〕　タスクスケジューリング部２０の動作
タスクスケジューリング部２０の動作について、図４に示すシーケンス図を用いて説明する。
【００５１】
実行制御部２３は、当該タスクの生成をタスク受付部２０１へ通知する（ステップＳ１０１）。
タスクスケジューリング部２０は、プログラム記憶部２１における当該タスクの位置を示すアドレスを送信し（ステップＳ１０２）、当該タスクのタスク情報を読み出す（ステップＳ１０３）。読出したタスク情報に基づいて、当該タスクのスケジューリング可能性判定を行う（ステップＳ１０４）。
【００５２】
判定の結果、当該タスクのスケジューリングが不可能な場合、スケジューリング不可信号を実行制御部２３へ出力する（ステップＳ１０５）。
判定の結果、可能な場合は、当該タスクのスケジューリングを行う（ステップＳ１０６）。このとき、先頭ポインタ３０に含まれるＤＬ基準時刻３０１を変更する場合、タイマ制御部２２へＤＬ時刻を出力する（ステップＳ１０７）。
【００５３】
タスク切換部２０５は、タイマ制御部２２よりタイムアウト信号を受け取り（ステップＳ１０８）り、実行制御部２３よりタスク終了信号を受け取る（ステップＳ１０９）と、タスクの切換えを行う（ステップＳ１１０）。
（１）　スケジューリング可能性判定の動作
スケジューリング可能性判定の動作を、図５に示すフローチャートを用いて説明する。
【００５４】
スケジューリング可能性判定部２０２は、タスク受付部２０１より当該タスクのタスク情報、優先度、ＤＬ時刻及び最悪実行時間を受け取り（ステップＳ２０１）、タスク情報記憶部２０４よりＤＬ基準時刻を読み出し（ステップＳ２０２）、タイマ制御部２２より現在時刻を取得する（ステップＳ２０３）。
続いて、変数ｉに１を、変数Ｘに前記ＤＬ基準時刻を、変数Ｙに前記現在時刻と前記当該タスクの最悪実行時間との合計値をそれぞれ代入する（ステップＳ２０４）。
【００５５】
そして、変数ｉがｎになるまで、ステップ２０６から２１０までの処理を繰り返す（ステップＳ２０５）。
即ち、タスク情報記憶部２０４よりＤＣＢ（ｉ）に含まれる相対ＤＬ値（ｉ）と最悪実行時間（ｉ）とを読み出し（ステップＳ２０６）、変数Ｘに変数Ｘと相対ＤＬ値（ｉ）との合計値を代入し、さらに変数Ｙに変数Ｙと最悪実行時間（ｉ）との合計値を代入する（ステップＳ２０７）。
【００５６】
この状態で、変数Ｘと変数Ｙとの値を比較を行う（ステップＳ２０８）。
比較の結果、変数Ｘ≦変数Ｙである場合（ステップＳ２０８で≦）、スケジューリング不可信号を実行制御部２３へ出力する（ステップＳ２０９）が、変数Ｘ＞変数Ｙである場合（ステップＳ２０８で＞）、変数ｉに変数ｉと１との合計値を代入し（ステップＳ２１０）、上記の処理を繰り返す（ステップＳ２１１）。
【００５７】
繰り返しを終えると、タスク情報、優先度、ＤＬ時刻及び最悪実行時間をスケジューリング部２０３へと出力する（ステップＳ２１２）。
（２）　スケジューリングの動作
スケジューリングの動作を、図６に示すフローチャートを用いて説明する。
スケジューリング部２０３は、スケジューリング可能性判定部２０２より当該タスクのタスク情報、優先度、ＤＬ時刻及び最悪実行時間を受け取り（ステップＳ３０１）、タスク情報記憶部２０４より先頭ポインタに含まれるＤＣＢリンクアドレスとＤＬ基準時刻とを読み出す（ステップＳ３０２）。
【００５８】
そして、変数ｉに１を、変数Ｔに前記ＤＬ基準時刻をそれぞれ代入する（ステップＳ３０３）。
ｉ＝１であるので、ＤＣＢ（１）の有無を判別し（ステップＳ３０４）、ＤＣＢ（１）が無い場合（ステップＳ３０４で無）、処理Ａ（図７参照）を行い、ＤＣＢ（１）が有る場合（ステップＳ３０４で有）、当該タスクのＤＬ時刻と変数Ｔとを比較する（ステップＳ３０５）。
当該タスクのＤＬ時刻＜変数Ｔである場合（ステップＳ３０５で＜）、処理Ｂ（図８参照）を行うし、一方、当該タスクのＤＬ時刻＝変数Ｔである場合（ステップＳ３０５で＝）、処理Ｅ（図１１参照）を行う。
【００５９】
さらに、当該タスクのＤＬ時刻＞変数Ｔである場合（ステップＳ３０５で＞）、変数ｉに変数ｉと１との合計値を代入し（ステップＳ３０６）、ＤＣＢ（ｉ）の有無を判定する（ステップＳ３０７）。
ＤＣＢ（ｉ）が無い場合（ステップＳ３０７で無）、処理Ｃ（図９参照）を行う一方、ＤＣＢ（ｉ）が有る場合（ステップＳ３０７で有）、ＤＣＢ（ｉ）に含まれる相対ＤＬ値を読み出し（ステップＳ３０８）、変数Ｔに変数Ｔと前記相対ＤＬ値との合計値を代入し（ステップＳ３０９）、当該タスクのＤＬ時刻と変数Ｔとを比較する（ステップＳ３１０）。
【００６０】
比較の結果、当該タスクのＤＬ時刻＜変数Ｔである場合（ステップＳ３１０で＜）、処理Ｄ（図１０参照）を行う。
他方、当該タスクのＤＬ時刻＝変数Ｔである場合（ステップＳ３１０で＝）、処理Ｅを行う。
また、当該タスクのＤＬ時刻＞変数Ｔである場合には（ステップＳ３１０で＞）、ステップＳ３０６に戻り、ステップ３１０までの処理を繰り返す。
▲１▼　処理Ａの動作
処理Ａの動作を、図７に示すフローチャートを用いて説明する。
【００６１】
スケジューリング部２０３は、タスク情報記憶部２０４にＴＣＢ（ａ）の領域を生成し（ステップＳ４０１）、優先度の領域に当該タスクの優先度を書き込み（ステップＳ４０２）、タスク情報の領域に当該タスクのタスク情報を書き込み（ステップＳ４０３）、ＴＣＢリンクアドレスの領域に、ＮＵＬＬの値を代入する（ステップＳ４０４）。
【００６２】
スケジューリング部２０３は、タスク情報記憶部２０４にＤＣＢ（ａ）の領域を生成して（ステップＳ４０５）、相対ＤＬ値の領域に０の値を代入し（ステップＳ４０６）、最悪実行時間の領域に当該タスクの最悪実行時間を書き込み（ステップＳ４０７）、ＤＣＢリンクアドレスの領域にＮＵＬＬの値を代入し（ステップＳ４０８）、ＴＣＢリンクアドレスの領域にＴＣＢ（ａ）の位置を示すアドレスを書き込む（ステップＳ４０９）。
【００６３】
続いて、タスク情報記憶部２０４におけるＤＬ基準時刻３０１の領域に、当該タスクのＤＬ時刻を上書きし（ステップＳ４１０）、ＤＣＢリンクアドレス３０２の領域にＤＣＢ（ａ）の位置を示すアドレスを上書きする（ステップＳ４１１）。さらに、スケジューリング部２０３は、タイマ制御部２２に当該タスクのＤＬ時刻を出力する（ステップＳ４１２）。
▲２▼　処理Ｂの動作
処理Ｂの動作を、図８に示すフローチャートを用いて説明する。
【００６４】
スケジューリング部２０３は、タスク情報記憶部２０４にＴＣＢ（ｂ）の領域を生成し（ステップＳ５０１）、優先度の領域に当該タスクの優先度を書き込み（ステップＳ５０２）、タスク情報の領域に当該タスクのタスク情報を書き込み（ステップＳ５０３）、ＴＣＢリンクアドレスの領域にＮＵＬＬの値を代入する（ステップＳ５０４）。
【００６５】
ついで、タスク情報記憶部２０４にＤＣＢ（ｂ）の領域を生成し（ステップＳ５０５）、相対ＤＬ値の領域に０の値を代入し（ステップＳ５０６）、最悪実行時間の領域に当該タスクの最悪実行時間を書き込み（ステップＳ５０７）、ＤＣＢリンクアドレスの領域にＤＣＢ（１）の位置を示すアドレスを書き込み（ステップＳ５０８）、ＴＣＢリンクアドレスの領域にＴＣＢ（ｂ）の位置を示すアドレスを書き込む（ステップＳ５０９）。
【００６６】
更に、続いて、ＤＣＢ（１）の相対ＤＬ値の領域に、（Ｔ−当該タスクのＤＬ時刻）の値を上書きし（ステップＳ５１０）、タスク情報記憶部２０４におけるＤＬ基準時刻３０１の領域に当該タスクのＤＬ時刻を上書きし（ステップＳ５１１）、ＤＣＢリンクアドレス３０２の領域にＤＣＢ（ｂ）の位置を示すアドレスを上書きする（ステップＳ５１２）。
【００６７】
この後、タイマ制御部２２に当該タスクのＤＬ時刻を出力する（ステップＳ５１３）。
▲３▼　処理Ｃの動作
処理Ｃの動作を、図９に示すフローチャートを用いて説明する。
スケジューリング部２０３は、タスク情報記憶部２０４にＴＣＢ（ｃ）の領域を生成し（ステップＳ６０１）、優先度の領域に当該タスクの優先度を書き込み（ステップＳ６０２）、タスク情報の領域に当該タスクのタスク情報を書き込み（ステップＳ６０３）、ＴＣＢリンクアドレスの領域にＮＵＬＬの値を代入する（ステップＳ６０４）。
【００６８】
この後、タスク情報記憶部２０４にＤＣＢ（ｃ）の領域を生成し（ステップＳ６０５）、相対ＤＬ値の領域に（当該タスクのＤＬ時刻−Ｔ）の値を代入し（ステップＳ６０６）、最悪実行時間の領域に当該タスクの最悪実行時間を書き込み（ステップＳ６０７）、ＤＣＢリンクアドレスの領域にＮＵＬＬの値を代入し（ステップＳ６０８）、ＴＣＢリンクアドレスの領域にＴＣＢ（ｃ）の位置を示すアドレスを書き込む（ステップＳ６０９）。
【００６９】
つづいて、ＤＣＢ（ｉ）のＤＣＢリンクアドレスの領域に、ＤＣＢ（ｃ）の位置を示すアドレスを上書きする（ステップＳ６１０）。
▲４▼　処理Ｄの動作
処理Ｄの動作を、図１０に示すフローチャートを用いて説明する。
スケジューリング部２０３は、タスク情報記憶部２０４にＴＣＢ（ｄ）の領域を生成し（ステップＳ７０１）、優先度の領域に当該タスクの優先度を書き込み（ステップＳ７０２）、タスク情報の領域に当該タスクのタスク情報を書き込み（ステップＳ７０３）、ＴＣＢリンクアドレスの領域にＮＵＬＬの値を代入する（ステップＳ７０４）。
【００７０】
この後、タスク情報記憶部２０４にＤＣＢ（ｄ）の領域を生成し（ステップＳ７０５）、相対ＤＬ値の領域に（当該タスクのＤＬ時刻−Ｔ）の値を代入し（ステップＳ７０６）、最悪実行時間の領域に当該タスクの最悪実行時間を書き込み（ステップＳ７０７）、ＤＣＢ（ｄ）のＤＣＢリンクアドレスの領域にＤＣＢ（ｉ）の位置を示すアドレスを書き込み（ステップＳ７０８）、ＴＣＢリンクアドレスの領域にＴＣＢ（ｄ）の位置を示すアドレスを書き込む（ステップＳ７０９）。
【００７１】
続いて、ＤＣＢ（ｉ−１）のＤＣＢリンクアドレスの領域に、ＤＣＢ（ｄ）の位置を示すアドレスを上書きする（ステップＳ７１０）。
▲５▼　処理Ｅの動作
処理Ｅの動作を、図１１に示すフローチャートを用いて説明する。
スケジューリング部２０３は、変数ｊを有し、初期値を１に設定し（ステップＳ８０１）、タスク情報記憶部２０４におけるＤＣＢ（ｉ）に含まれるＴＣＢリンクアドレスにより指定されるＴＣＢ（ｊ）を認識し（ステップＳ８０２）、ＴＣＢ（ｊ）の優先度を読み出す（ステップＳ８０３）。
【００７２】
ついで、当該タスクの優先度値とＴＣＢ（ｊ）の優先度値とを比較する（ステップＳ８０４）。
比較の結果、当該タスクの優先度≦ＴＣＢ（ｊ）の優先度である場合（ステップＳ８０４で≦）、変数ｊに１を加算し（ステップＳ８０５）、ＴＣＢ（ｊ）の有無を判定する（ステップＳ８０６）。
【００７３】
ＴＣＢ（ｊ）がある場合（ステップＳ８０６でＹＥＳ）、ステップＳ８０４の動作に戻る。
他方、ＴＣＢ（ｊ）がない場合（ステップＳ８０６でＮＯ）、又は当該タスクの優先度＞ＴＣＢ（ｊ）の優先度である場合（ステップＳ８０４で＞）、タスク情報記憶部２０４にＴＣＢ（ｅ）の領域を生成し（ステップＳ８０７）、優先度の領域に当該タスクの優先度を書き込み（ステップＳ８０８）、タスク情報の領域に当該タスクのタスク情報を書き込み（ステップＳ８０９）、ＴＣＢリンクアドレスの領域にＴＣＢ（ｊ）の位置を示すアドレスを書き込む（ステップＳ８１０）。
【００７４】
この後、ＴＣＢ（ｊ−１）のＴＣＢリンクアドレスの領域に、ＴＣＢ（ｅ）の位置を示すアドレスを書き込み（ステップＳ８１１）、ＤＣＢ（ｉ）の最悪実行時間の領域より、時間Ｈを読み出し（ステップＳ８１２）、読出した時間Ｈと当該タスクの最悪実行時間とを加算した合計時間を上書きする（ステップＳ８１３）。
（３）　タスク切換えの動作
タスク切換えの動作を、図１２に示すフローチャートを用いて説明する。
【００７５】
タスク切換部２０５は、受取った信号の判別を行う（ステップＳ９０１）。
タイムアウト信号を受け取った場合（ステップＳ９０１でタイムアウト信号）、処理Ｆを行い、終了信号を受け取った場合（ステップＳ９０１で終了信号）、ＴＣＢ４１に含まれるＴＣＢリンクアドレス４１３を読み出し（ステップＳ９０２）、読出したＴＣＢリンクアドレス４１３の値がＮＵＬＬ値であるか否かを判定する（ステップＳ９０３）。
【００７６】
判定の結果、前記ＴＣＢリンクアドレス４１３の値が、ＮＵＬＬ値である場合（ステップＳ９０３でＹＥＳ）、処理Ｆを行い、他方、ＮＵＬＬ値でない場合（ステップＳ９０３でＮＯ）、処理Ｇを行う。
▲１▼　処理Ｆの動作
処理Ｆの動作を、図１３に示すフローチャートを用いて説明する。
【００７７】
タスク切換部２０５は、タスク情報記憶部２０４より先頭ポインタ、ＤＣＢ４０及びＤＣＢ５０を読み出し（ステップＳ９１１）、読出した先頭ポインタのＤＬ基準時刻の領域にＤＬ基準時刻とＤＣＢ５０に含まれる相対ＤＬ値とを合計した時刻を上書きする（ステップＳ９１２）。
続いて、先頭ポインタのＤＣＢリンクアドレスの領域にＤＣＢ５０の位置を示すアドレスを上書きし（ステップＳ９１３）、ＤＣＢ５０の相対ＤＬ値の領域に０を上書きする（ステップＳ９１４）。
【００７８】
この後、ＤＣＢ４０及びＤＣＢ４０に接続される全てのＴＣＢをタスク情報記憶部２０４より消去し（ステップＳ９１５）、ＤＣＢ５０のＴＣＢリンクアドレスにより指定されるＴＣＢ５１を読み出し、読出したＴＣＢ５１に含まれるタスク情報を実行制御部２３へ出力する（ステップＳ９１６）。
▲２▼　処理Ｇの動作
処理Ｇの動作を、図１４に示すフローチャートを用いて説明する。
【００７９】
タスク切換部２０５は、タスク情報記憶部２０４よりＤＣＢ４０、ＴＣＢ４１及びＴＣＢ４２を読み出し（ステップＳ９２１）、ＤＣＢ４０に含まれるＴＣＢリンクアドレスの領域に、ＴＣＢ４２の位置を示すアドレスを上書きする（ステップＳ９２２）。
ついで、ＴＣＢ４１をタスク情報記憶部２０４より消去し（ステップＳ９２３）、ＴＣＢ４２に含まれるタスク情報を実行制御部２３へ出力する（ステップＳ９２４）。
［４］その他の変形例
本発明の趣旨を逸脱しない範囲で、上記の実施の形態以外の形態で実施することができる。以下に、その例を示す。
（１）　タスクに割り当てられる優先度は、本実施の形態におけるＤＬ時刻と優先度との２種類の優先度に限定されない。複数の種類の優先度を適用してもよい。なお、複数の種類の優先度には、階層関係が与えられているものとする。
【００８０】
また、タスクに割り当てられる優先度は、ＤＬ時刻の１種類としてもよい。以下に、ＤＬ時刻のみを割り当てられたタスクのスケジューリング方法について、実施の形態と異なる内容を説明する。
タスク情報記憶部２０４は、各タスクに割り当てられたＤＬ時刻のうち所定の単位時間の整数倍からなる第１優先度と、前記ＤＬ時刻のうち前記所定の単位時間未満の部分からなる第２優先度との２種類の優先度を管理するために設けられており、図３に示すように、先頭ポインタ３０、グループ４００、グループ５００、・・・を有している。例えば、ＤＬ時刻が“時／分／秒／１００ミリ秒”で構成される場合、前記第１優先度は“時／分／秒”　単位部分からなり、前記第２優先度は“１００ミリ秒”　単位部分からなる。
【００８１】
先頭ポインタ３０、グループ４００、グループ５００、・・・は、先頭ポインタ３０を先頭とし、グループ４００、グループ５００、・・・の順に配列を構成している。
グループ４００、グループ５００、・・・は、第１優先度に基づいて並べられる。
【００８２】
グループ４００は、同一の第１優先度が割り当てられた複数のタスクに関する情報をまとめて管理するためのものであり、ＤＣＢ４０、ＴＣＢ４１、ＴＣＢ４２、・・・からなる。
ＤＣＢ４０、ＴＣＢ４１、ＴＣＢ４２、・・・は、ＤＣＢ４０を先頭とし、ＴＣＢ４１、ＴＣＢ４２、・・・の順に配列を構成している。ＴＣＢ４１、ＴＣＢ４２、・・・は、第２優先度に基づいて並べられる。
【００８３】
スケジューリング部２０３は、当該タスクを管理するＴＣＢを、第１優先度と第２優先度とに基づいて、記憶部２０４において定まるメモリ空間上の位置に書き込みを行う。
（２）　ＤＬ時刻のデータ構造は、本実施の形態における“時／分／秒”に限定されない。その他の妥当な単位時間により構成されるとしてもよい。
（３）　優先度に用いる値は、本実施の形態における“高”、“中”及び“下”の３レベルに限定されない。その他の妥当な基準値を適用してもよい。
（４）　本実施の形態において、ＤＬ時刻の最低値を示すデータ構造として“ＦＦ／ＦＦ／ＦＦ”を用いたが、その他の妥当なデータ値を設定しても良い。
（５）　本発明は、上記の実施の形態におけるタスク切換部２０５が、プリエンプトと呼ばれる排他制御を行うとしてもよい。
【００８４】
以下に、タスク切換部２０５が行う排他制御について説明する。
タスク切換部２０５は、タイムアウト信号又は終了信号を受取った場合、実行していたタスクを識別するＴＣＢのＴＣＢリンクアドレスの領域に格納されたデータをタスク情報記憶部２０４より読み出す。
タスク切換部２０５は、読出したデータにより指定されるＴＣＢのタスク情報の領域にロック情報が有るか否かの判定を行う。ロック情報とは、当該ＴＣＢにより識別されるタスクが排他制御により実行出来ない状態にあるか否かの制御情報である。
【００８５】
タスク切換部２０５は、タスク情報の領域にロック情報が有る場合、さらにＴＣＢリンクアドレスの領域に格納されたデータを読み出し、前記判定を実行する。タスク切換部２０５は、前記読み出し、及び前記判定をタスク情報の領域にロック情報が有る限り、繰り返し行う。
タスク切換部２０５は、タスク情報の領域にロック情報が無い場合、本実施の形態と同様なタスク切換え処理を実行する。
（６）本発明は、上記の実施の形態に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するためのコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
【００８６】
また、本発明は、前記コンピュータプログラム又は前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、ＲＯＭ、ＲＡＭ、フレキシブルディスク、ハードディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、半導体メモリなど、に記録したものとしてもよい。また、これらの記録媒体に記録されている前記コンピュータプログラム又は前記デジタル信号であるとしてもよい。
【００８７】
また、本発明は、前記コンピュータプログラム又は前記デジタル信号を、電気通信回線、無線又は有線通信回路、インターネットを代表とするネットワーク等を経由して伝送するものとしてもよい。
また、本発明は、マイクロプロセッサとメモリとを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムに従って動作するとしてもよい。なお、前記コンピュータシステムには、ＴＶ、冷蔵庫、電話機、エアコンなどの家電製品も含まれる。
【００８８】
また、前記プログラム又は前記デジタル信号を前記記録媒体に記録して移送することにより、又は前記プログラム又は前記デジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
（７）上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
【００８９】
【発明の効果】
以上説明したように、本発明は、それぞれ定められた完了目標時刻以前に完了するべき複数のタスクの実行順序を決定し、各タスクを実行するプログラム実行装置であって、各タスクには、階層関係を有する複数の種類の優先度が割り当てられており、すでに生成されているタスク毎に、当該タスクに割り当てられた複数の種類の優先度に基づいて定まるメモリ空間上の位置において当該タスクを識別する識別子を記憶している記憶手段と、新たに生成されたタスクに割り当てられた複数の種類の優先度、及び当該タスクを識別する識別子を受け付ける受付手段と、前記記憶手段において、前記受付手段により受付けた複数の種類の優先度に基づいて定まるメモリ空間上の位置に前記受付けた識別子を書き込む書込手段とを備え、複数の種類の優先度に基づいて前記記憶手段において各識別子が配列されている位置の順序に従って、各識別子が識別するタスクの実行順序を決定することを特徴とする。
【００９０】
この構成によると、プログラム実行装置は、タスクの実行順序を、階層関係を有する複数の種類の優先度により適切に制御することが可能となる。
ここで、各タスクには、前記複数の種類の優先度として、当該タスクの完了目標時刻を示す第１優先度と、前記第１優先度より下位の優先度である第２優先度とが割り当てられており、前記記憶手段は、第１優先度として同じ完了目標時刻が割り当てられたタスクが同じグループに属するように、前記複数のタスクを分類して生成した複数のグループを有し、各グループは完了目標時刻の順に従って定まるメモリ空間上の位置に配列されており、各グループにはタスクを識別する識別子が当該タスクに割り当てられた第２優先度に従って定まるメモリ空間上の位置に配列されており、前記受付手段は、新たに生成されたタスクに割り当てられた第１優先度としての完了目標時刻、当該タスクに割り当てられた第２優先度、及び当該タスクを識別する識別子を受け付け、前記書込手段は、前記受付けた第１優先度と同じ優先度を持つ識別子が含まれるグループにおいて、前記受付けた第２優先度に基づいて定まるメモリ空間上の位置に前記受付けた識別子を書き込み、前記プログラム実行装置は、前記記憶手段において、第１優先度及び第２優先度に基づいて各識別子が配列されている位置の順序に従って、各識別子が識別するタスクの実行順序を決定する。
【００９１】
この構成によると、プログラム実行装置は、同一な完了目標時刻を割り振られた複数のタスクの実行順序を、第２優先度により適切に制御することが可能となる。
ここで、前記記憶手段は、直近の完了目標時刻である第１優先度に基づいてタスクが分類されたグループである先頭グループに対応付けて、前記完了目標時刻である第１優先度を記憶しており、前記先頭グループに後続して配列されたグループである後続グループ毎に、当該後続グループに含まれるタスクに割り当てられた完了目標時刻と、当該後続グループに先行して配列されているグループに含まれるタスクに割り当てられた完了目標時刻との時間差を、当該後続グループに対応づけて記憶しており、前記書込手段は、前記受付手段により受付けた完了目標時刻と、前記直近の完了目標時刻とを比較して、一致する場合、前記先頭グループにおいて前記受付けた第２優先度に基づいて定まるメモリ空間上の位置に前記受付けた識別子を書き込み、一致しない場合、前記後続グループ毎に、当該後続グループに対応づけられた時間差と、当該後続グループに先行して配列されているグループに含まれるタスクに割り当てられた完了目標時刻とを加算して得られる時刻と前記受付手段により受付けた完了目標時刻とを比較し、一致する場合に、当該後続グループにおいて前記受付けた第２優先度に基づいて定まるメモリ空間上の位置に前記受付けた識別子を書き込む。
【００９２】
この構成によると、記憶手段は各後続グループに対応づけて前記時間差を記憶していることにより、書込手段が前記書込み処理において必要とするデータ量の削減を可能とする。
ここで、第１優先度が取り得る値のうちの最も低い値は、完了目標時刻を構成する所定ビット列が取り得る最大値であり、前記記憶手段は、前記所定ビット列の最大値を有する完了目標時刻が割り当てられたタスクを含むグループを、前記完了目標時刻の順に従って定まる最後尾の位置において記憶しており、前記受付手段は、新たに生成されたタスクに割り当てられた前記所定ビット列の最大値を有する完了目標時刻、当該タスクに割り当てられた第２優先度、及び当該タスクを識別する識別子を受け付け、前記書込手段は、前記最後尾に位置するグループにおいて前記受付けた第２優先度に基づいて定まるメモリ空間上の位置に前記受付けた識別子を書き込む。
【００９３】
この構成によると、プログラム実行装置は、タスクの第１優先度を最も低い値に制御することが可能となる。
ここで、前記記憶手段は、さらに、各グループについて、当該グループに含まれる全てのタスクの実行に要すると予測される総実行時間を、当該グループに対応づけて記憶しており、前記受付手段は、新たに生成されたタスクの実行に要すると予測される実行時間を受け付け、前記プログラム実行装置は、さらに、現在時刻に、前記総実行時間と、前記実行時間とを加算して得られた時刻が、前記受付けた識別子により識別されるタスクに割り当てられた完了目標時刻より前であるか否かを判定し、前記時刻は前記完了目標時刻以降の時刻である場合に、前記受付けた識別子により識別されるタスクの実行を拒否する拒否信号を出力する判定手段を備え、前記判定手段により前記時刻は前記完了目標時刻より前の時刻であると判定される場合、前記書込手段は、前記受付けた第１優先度と同じ優先度を持つ識別子が含まれるグループにおいて、前記受付けた第２優先度に基づいて定まるメモリ空間上の位置に前記受付けた識別子を書き込む。
【００９４】
この構成によると、プログラム実行装置は、タスクの実行を完了目標時刻以前に完了させるように制御することが可能となる。
ここで、前記判定手段は、前記グループに後続する全ての後続グループから当該後続グループを選択し、選択した当該後続グループについて、現在時刻に、前記当該後続グループに対応付けられた総実行時間と、前記受付けた実行時間とを加算して得られた時刻が、前記当該後続グループに含まれるタスクに割り当てられた完了目標時刻より前であるか否かを判定し、前記の選択と判定とを全ての後続グループについて繰り返し、前記判定手段による全ての判定において前記時刻は前記完了目標時刻より前であると判定される場合、前記書込手段は、前記受付けた第１優先度と同じ優先度を持つ識別子が含まれるグループにおいて、前記受付けた第２優先度に基づいて定まるメモリ空間上の位置に前記受付けた識別子を書き込み、前記判定手段による全ての判定のうち少なくとも１回前記時刻は前記完了目標時刻以降の時刻である判定される場合に、前記判定手段は前記受付けた識別子により識別されるタスクの実行を拒否する拒否信号を出力する。
【００９５】
この構成によると、プログラム実行装置は、さらに、記憶手段による記憶されている全てのタスクの実行を完了目標時刻以前に完了させるように制御することが可能となる。
ここで、各タスクには、当該タスクに定められた完了目標時刻のうち所定の単位時間の整数倍からなる第１優先度と、前記完了目標時刻のうち前記所定の単位時間未満の部分からなる第２優先度とが割り当てられており、前記記憶手段は、同じ第１優先度が割り当てられたタスクが同じグループに属するように、前記複数のタスクを分類して生成した複数のグループを有し、各グループは第１優先度に従って定まるメモリ空間上の位置に配列されており、各グループにはタスクを識別する識別子が当該タスクに割り当てられた第２優先度に従って定まるメモリ空間上の位置に配列されており、前記受付手段は、新たに生成されたタスクに割り当てられた第１優先度、第２優先度、及び当該タスクを識別する識別子を受け付け、前記書込手段は、前記受付けた第１優先度と同じ優先度を持つ識別子が含まれるグループにおいて、前記受付けた第２優先度に基づいて定まるメモリ空間上の位置に前記受付けた識別子を書き込み、前記プログラム実行装置は、前記記憶手段において、第１優先度及び第２優先度に基づいて各識別子が配列されている位置の順序に従って、各識別子が識別するタスクの実行順序を決定する。
【００９６】
この構成によると、タスクに割り当てられる優先度が完了目標時刻の１種類である場合に、プログラム実行装置は、タスクの実行順序を適切に制御できる。
【図面の簡単な説明】
【図１】携帯電話機１の構成を示すブロック図である。
【図２】タスクスケジューリング部２０の機能を示すブロック図である。
【図３】タスク情報記憶部２０４におけるスケジューリング状況を示すブロック図である。
【図４】タスクスケジューリング部２０によるタスクスケジューリングの動作を示すシーケンス図である。
【図５】スケジューリング可能性判定の動作を示すフローチャートである。
【図６】スケジューリング動作を示すフローチャートである。
【図７】処理Ａの動作を示すフローチャートである。
【図８】処理Ｂの動作を示すフローチャートである。
【図９】処理Ｃの動作を示すフローチャートである。
【図１０】処理Ｄの動作を示すフローチャートである。
【図１１】処理Ｅの動作を示すフローチャートである。
【図１２】タスク切換え動作を示すフローチャートである。
【図１３】処理Ｆの動作を示すフローチャートである。
【図１４】処理Ｇの動作を示すフローチャートである。
【符号の説明】
１　　携帯電話機
１０　　送受信回路
１１　　画面表示回路
１２　　音声入力回路
１３　　音声出力回路
１４　　ボタン入力回路
１５　　メモリ
１６　　Ｉ／Ｏブリッジ
１７　　タイマ回路
１８　　ＣＰＵ
２０　　タスクスケジューリング部
２１　　プログラム記憶部
２２　　タイマ制御部
２３　　実行制御部
２０１　　タスク受付部
２０２　　スケジューリング可能性判定部
２０３　　スケジューリング部
２０４　　タスク情報記憶部
２０５　　タスク切換部
【図１】
2004062463.tif 000003
【図２】
2004062463.tif 000004
【図３】
2004062463.tif 000005
【図４】
2004062463.tif 000006
【図５】
2004062463.tif 000007
【図６】
2004062463.tif 000008
【図７】
2004062463.tif 000009
【図８】
2004062463.tif 000010
【図９】
2004062463.tif 000011
【図１０】
2004062463.tif 000012
【図１１】
2004062463.tif 000013
【図１２】
2004062463.tif 000014
【図１３】
2004062463.tif 000015
【図１４】
2004062463.tif 000016