JP4015898B2 - プログラム実行装置 - Google Patents

プログラム実行装置 Download PDF

Info

Publication number
JP4015898B2
JP4015898B2 JP2002218869A JP2002218869A JP4015898B2 JP 4015898 B2 JP4015898 B2 JP 4015898B2 JP 2002218869 A JP2002218869 A JP 2002218869A JP 2002218869 A JP2002218869 A JP 2002218869A JP 4015898 B2 JP4015898 B2 JP 4015898B2
Authority
JP
Japan
Prior art keywords
task
priority
time
identifier
assigned
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
JP2002218869A
Other languages
English (en)
Other versions
JP2004062463A (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.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
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 Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2002218869A priority Critical patent/JP4015898B2/ja
Priority to US10/620,697 priority patent/US7418704B2/en
Priority to CNB031328946A priority patent/CN100354827C/zh
Publication of JP2004062463A publication Critical patent/JP2004062463A/ja
Application granted granted Critical
Publication of JP4015898B2 publication Critical patent/JP4015898B2/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

Description

【0001】
【発明の属する技術分野】
本発明は、オペレーティングシステムにおけるタスク管理機能に関し、特にタスクの実行順序を決定する技術に関する。
【0002】
【従来の技術】
オペレーティングシステムの主な機能は、ハードウエア管理、タスク管理、データ管理及び入出力管理である。なかでもタスク管理は、タスクの実行順序を管理するものであり、CPUやメモリ、入出力装置等を効率良く動作させるための重要な機能である。タスクとは、プログラムの起動とその実行、終了などの流れを一括管理する制御単位のことである。OSの管理下で動作するプログラムはタスクとして扱われ、プログラムの実行、優先処理、並行処理などはすべてタスクを単位として行われる。
【0003】
タスクの実行順序を決定するアルゴリズムのひとつとして、優先度法がある。優先度法は、簡単に説明すると、タスクごとに割り当てられた優先度に基づいて、各タスクの実行順序を決定する方法である。
【0004】
【発明が解決しようとする課題】
しかしながら、従来の優先度法では、同じ優先度を割り当てられた複数のタスクの実行順序は先着順に決定されるため、前記複数のタスクの実行順序を制御できないという問題がある。
本発明は、上記問題を解決するために、タスクの実行順序を適切に決定することのできるタスク管理方法、タスク管理プログラム及び前記タスク管理プログラムを備えたプログラム実行装置の提供を目的とする。
【0005】
【課題を解決するための手段】
上記の目的を達成するために、本発明は、それぞれ定められた完了目標時刻以前に完了すべき複数のタスクの実行順序を決定し、各タスクを実行するプログラム実行装置であって、各タスクには、階層関係を有する複数の種類の優先度が割り当てられており、すでに生成されているタスク毎に、当該タスクに割り当てられた複数の種類の優先度に基づいて定まるメモリ空間上の位置において当該タスクを識別する識別子を記憶している記憶手段と、新たに生成されたタスクに割り当てられた複数の種類の優先度、及び当該タスクを識別する識別子を受け付ける受付手段と、前記記憶手段において、前記受付けた複数の種類の優先度に基づいて定まるメモリ空間上の位置に前記受付けた識別子を書き込む書込手段とを備え、複数の種類の優先度に基づいて前記記憶手段において各識別子が配列されているメモリ空間上の位置の順序に従って、各識別子が識別するタスクの実行順序を決定することを特徴とする。
【0006】
【発明の実施の形態】
次に、本発明に係るタスク管理方法が適用された携帯電話機1を一例として説明する。
〔1〕 携帯電話機1
(1) 携帯電話機1の構成
携帯電話機1は、図1に示すように、送受信回路10、画面表示回路11、音声入力回路12、音声出力回路13、ボタン入力回路14、メモリ15、I/Oブリッジ16、タイマ回路17及びCPU18より構成される。
【0007】
送受信回路10、画面表示回路11、音声入力回路12、音声出力回路13、ボタン入力回路14、及びタイマ回路17は、互いにシステムバス19aを介して接続される。メモリ15とCPU18とは、互いにCPUバス19bを介して接続される。システムバス19aとCPUバス19bとは、互いにI/Oブリッジ16を介して接続される。
【0008】
送受信回路10は、eメール又は発信者電話番号等の通信データ並びに音声データの送受信を行う。受信時においては、受信した通信データはメモリ15に書き込まれると同時に、画面表示回路11によって、メモリ15から読み出され、ディスプレイに表示される。受信した音声データは、音声出力回路13を通じて発音される。
送信時においては、ボタン入力回路14を通じて入力される電話番号等を受け付け、送受信回路10を通じて発信処理する。相手先と回線が繋がった後は、音声入力回路12を通じて入力される音声を発信処理する。
【0009】
メモリ15は、通信データ、画面データ、音声データ、ボタン入力データ等を記憶している。その他に、リアルタイムオペレーティングシステムと呼ばれる制御プログラムと、通信データ、画面データ、音声データ及び入力データの各データを実行するための複数個の命令プログラムとを記憶している。
タイマ回路17は、タイムアウト信号をCPU18に出力して、実行されるプログラム及びデータの切換えタイミングを通知する。
(2) 携帯電話機1におけるCPU18の動作
CPU18は、メモリ15より制御プログラムを読み込み、その制御プログラムに従って、メモリ15より順に1個の命令プログラムを読み出す。そして、読出した命令プログラムを解読し、解読した命令を実行する。なお、CPU18は、前記命令を実行する際に、必要となる通信データ、画面データ、音声データ及び入力データの各データをメモリ15より読み出す。
【0010】
更に、CPU18は、前記命令を実行して得られた演算結果をメモリ15に書き込む。演算結果は、携帯電話機においては、上記した通信データ、画面データ、音声データが該当し、これらがメモリから読み出され、送信、再生処理される。
本実施の形態では、以下、CPU18が命令プログラムを実行する実行単位をタスクと呼ぶ。また、制御プログラムに従って、各命令プログラムの実行順序決めることをスケジューリングと呼ぶ。
【0011】
タスクのスケジューリング方法について、以下に説明する。
〔2〕 タスクのスケジューリング方法
タスクのスケジューリングは、図2に示すように、タスクスケジューリング部20、プログラム記憶部21、タイマ制御部22及び実行制御部23より構成される。
【0012】
このうち、プログラム記憶部21、タイマ制御部22及び実行制御部23に関しては、従来のタスクスケジューリングの技術として公知であるので説明を省略し、タスクスケジューリング部20について、説明する。
タスクスケジューリング部20は、タスク受付部201、スケジューリング可能性
判定部202、スケジューリング部203、タスク情報記憶部204及びタスク切換部205を有している。
【0013】
(1) タスク受付部201
タスク受付部201は、ユーザからの操作等により発生したタスクを受け付ける。具体的には、実行制御部23よりタスクの処理要求信号を受け付ける。この後、プログラム記憶部21より当該タスクの「タスク情報」、「優先度」、「デッドライン時刻」(以降、DL時刻と呼ぶ)及び「最悪実行時間」を読み出す。「タスク情報」は、プログラム開始アドレスとスタックポインタとからなる。プログラム開始アドレスは、タスクが書き込まれたアドレスである。スタックポインタは、タスクの状態が一時的にスタックに退避される場合に、タスクの状態が書き込まれる位置情報である。
【0014】
「優先度」は、タスクの実行順序を決定するための基準を数値で示したものである。本実施の形態では、優先度を“高”、“中”及び“低”の3レベルとする。
「DL時刻」は、タスクの実行を完了するべき目標時刻であり、“時/分/秒/秒以下(msec,μsec)” で表記する。なお、本実施の形態では、「DL時刻」は前記優先度より上位の優先度であるとする。
【0015】
「最悪実行時間」は、タスクの実行開始から実行終了までに要すると予測される時間である。
タスク受付部201は、これら読み出した「タスク情報」、「優先度」、「DL時刻」、及び「最悪実行時間」を、スケジューリング可能性判定部202へ出力する。
(2) タスク情報記憶部204
タスク情報記憶部204は、各タスクに割り当てられた「DL時刻」、及び「優先度」を管理するために設けられており、図3に示すように、先頭ポインタ30、グループ400、グループ500、・・・を有している。
【0016】
先頭ポインタ30、グループ400、グループ500、・・・は、先頭ポインタ30を先頭とし、グループ400、グループ500、・・・の順に配列を構成している。
グループ400は、同一DL時刻が割り当てられた複数のタスクに関する情報をまとめて管理するためのものであり、DCB40、TCB41、TCB42、・・・からなる。
【0017】
DCB40、TCB41、TCB42、・・・は、DCB40を先頭とし、TCB41、TCB42、・・・の順に配列を構成している。TCB(タスクコントロールブロック:Task Control Block)は、タスクを管理するための管理情報である。1個のTCBが、1タスクに対応する。DCB(デッドラインコントロールブロック:Deadline Control Block)は、各グループに含まれるTCBが管理するタスクに割り当てられたDL時刻を管理するための管理情報である。
【0018】
先頭ポインタ30は、DL基準時刻301及びDCBリンクアドレス302を含んでいる。DL基準時刻301は、各タスクに割り当てられた全てのDL時刻のうち最も早い時刻である。DCBリンクアドレス302は、グループ400に含まれるDCB40が書き込まれた位置を示すアドレスである。
DCB40は、相対DL値401、最悪実行時間402、DCBリンクアドレス403及びTCBリンクアドレス404を含んでいる。相対DL値401は、DL基準時刻301から、グループ400に含まれるTCBが管理するタスクに割り当てられたDL時刻までのあいだの時間である。
【0019】
最悪実行時間402は、グループ400に含まれる全てのTCBが管理するタスクに割り当てられた最悪実行時間を加算して得られる合計時間である。DCBリンクアドレス403は、グループ500に含まれるDCB50が書き込まれた位置を示すアドレスである。TCBリンクアドレス404は、TCB41が書き込まれた位置を示すアドレスである。
【0020】
TCB41は、優先度411、タスク情報412及びTCBリンクアドレス413を含んでいる。優先度411は、TCB41が管理するタスクに割り当てられた優先度の値である。タスク情報412は、TCB41により管理されるタスクが書き込まれた位置を示すアドレスである。TCBリンクアドレス413は、TCB42が書き込まれた位置を示すアドレスである。
【0021】
TCB42は、優先度421、タスク情報422及びTCBリンクアドレス423を含んでいる。優先度421は上記優先度411と同様の構成であり、タスク情報422は上記タスク情報412と同様の構成であり、さらにTCBリンクアドレス423は上記TCBリンクアドレス413と同様の構成であるので、説明を省略する。
【0022】
グループ500は、DCB50、TCB51、・・・を含んでいる。
DCB50は、相対DL値501、最悪実行時間502、DCBリンクアドレス503及びTCBリンクアドレス504を含んでいる。相対DL値501は上記相対DL値401と同様の構成であり、最悪実行時間502は上記最悪実行時間402と同様の構成であり、DCBリンクアドレス503は上記DCBリンクアドレス403と同様の構成であり、さらにTCBリンクアドレス504は上記TCBリンクアドレス404と同様の構成であるので、説明を省略する。
【0023】
TCB51は、優先度511、タスク情報512及びTCBリンクアドレス513を含んでいる。優先度511は上記優先度411と同様の構成であり、タスク情報512は上記タスク情報412と同様の構成であり、さらにTCBリンクアドレス513は上記TCBリンクアドレス413と同様の構成であるので、説明を省略する。
【0024】
なお、先頭ポインタ30、グループ400、グループ500、・・・による配列は、各グループに格納されているTCBに割り振られたDL時刻順に構成される。例えば、タスク情報記憶部204は、TCB41が含まれるグループ400の相対DL時間401にDL時刻“6/35/27”の値とDL基準時刻との差を記憶しており、TCB51が含まれるグループ500の相対DL時間501にDL時刻“6/35/43”の値をグループ400のDL時刻との差を記憶している。
【0025】
また、TCB41、TCB42、・・・による配列は、各TCBに割り振られた優先度の値の高いランク順に構成される。例えば、タスク情報記憶部204は、優先度411の領域に“高”を記憶しており、優先度421の領域に“中”を記憶している。
さらに、タスク情報記憶部204は、最も遅いDL時刻を割り当てられたTCBを配列したDCBに含まれるDCBリンクアドレスの領域に、最終DCBを指定するアドレスを記憶している。タスク情報記憶部204は、前記最終DCB内に、DL時刻のデータ値が“FF/FF/FF”である複数のTCBを、割り当てられた第2優先度に基づいて配列して記憶している。“FF/FF/FF”は、DL時刻を構成する所定のビット列が取り得る最大値とする。つまり、TCBのDL時刻に“FF/FF/FF”を割り当てることにより、前記TCBの優先度を最低に設定することが可能となる。
(3) スケジューリング可能性判定部202
スケジューリング可能性判定部202は、前記当該タスクがスケジューリングされた場合、スケジューリングされている全てのタスクの実行をDL時刻より以前に完了することが出来るか否かを判定するために設けられている。
【0026】
スケジューリング可能性判定部202は、i、X及びYという変数を有している。また、スケジューリング可能性判定部202は、タスク受付部201より当該タスクに割り当てられたタスク情報、優先度、DL時刻及び最悪実行時間を受け取り、タスク情報記憶部204より先頭ポインタに含まれるDL基準時刻を読み出し、さらに、タイマ制御部22より現在時刻を取得する。
【0027】
そして、スケジューリング可能性判定部202は、n回(変数i=1、2、…、n)、以下の処理を繰り返す。
▲1▼、変数Xに前記DL基準時刻を代入し、変数Yに前記現在時刻と前記当該タスクの最悪実行時間との合計値を代入する。
▲2▼、タスク情報記憶部204よりDCB(i)に含まれる相対DL値(i)と最悪実行時間(i)とを読み出す。
【0028】
▲3▼、変数Xに変数Xと相対DL値(i)との合計値を代入し、変数Yに変数Yと最悪実行時間(i)との合計値を代入する。
▲4▼、変数Xと変数Yとの比較を行う。
▲5▼、変数iに変数iと1との合計値を代入する。
ここまでが、繰り返し処理の内容となる。
【0029】
スケジューリング可能性判定部202は、上記変数Xと変数Yとの比較を繰り返した結果において、1回でも変数X≦変数Yであった場合、すなわちDL時刻が現在時刻に最悪実行時間を加算した時刻と同時刻又は前の時刻である場合に、スケジューリング不可信号を実行制御部23へ出力する。
他方、上記変数Xと変数Yとの比較を繰り返した全ての結果において、変数X>変数Yであった場合、すなわちDL時刻が現在時刻に最悪実行時間を加算した時刻より後の時刻である場合に、当該タスクのタスク情報、優先度、DL時刻及び最悪実行時間をスケジューリング部203へ出力する。
(4) スケジューリング部203
スケジューリング部203は、当該タスクを管理するTCBを、DL時刻と優先度とに基づいて、タスク情報記憶部204において定まるメモリ空間上の位置に書き込むために設けられている。
【0030】
スケジューリング部203は、i及びTという変数を有しており、スケジューリング可能性判定部202より当該タスクのタスク情報、優先度、DL時刻及び最悪実行時間を受け取り、タスク情報記憶部204より先頭ポインタに含まれるDCBリンクアドレスとDL基準時刻とを読み出す。
そして、スケジューリング部203は、変数iに1を代入し、変数Tに前記DL基準時刻を代入して、記憶部204におけるDCB(1)のデータの有無を判別する。判別結果によって以下のように各処理を行なう。
【0031】
▲1▼、 DCB(1)のデータが無いと判定する場合、記憶部204への書き込みを行う。(処理Aとする)
▲2▼、 一方、DCB(1)のデータが有ると判定する場合、当該タスクのDL時刻と変数Tとを比較する。
▲2▼−1、 タスクのDL時刻<変数Tの場合に、記憶部204への書き込みを行う。(処理Bとする)
▲2▼−2、 タスクのDL時刻=変数Tの場合に、記憶部204への書き込みを行う。(処理Eとする)
▲2▼−3、 さらに、タスクのDL時刻>変数Tの場合に、変数iに1を加算した後、DCB(i)データの有無を判定する。
【0032】
▲2▼−3−1、 DCB(i)データが無いと判定する場合、記憶部204への書き込みを行う。(処理Cとする)
▲2▼−3−2、 他方、DCB(i)データは有ると判定する場合、DCB(i)に含まれる相対DL値を読み出す。さらに、変数Tに変数Tと前記相対DL値との合計値を代入し、当該タスクのDL時刻と変数Tとを比較する。
【0033】
▲2▼−3−2−1、 タスクのDL時刻<変数Tの場合に、記憶部204への書き込みを行う。(処理Dとする)
▲2▼−3−2−2、 タスクのDL時刻=変数Tの場合に、記憶部204への書き込みを行う。(処理Eとする)
以下に、処理A〜Eを更に詳細に説明する。
[処理Aの詳細]
スケジューリング部203は、以下の処理を行なう。
タスク情報記憶部204にTCB(a)の領域を生成して、書き込む。即ち、タスク情報記憶部204におけるTCB(a)の優先度の領域に、スケジューリング可能性判定部202より受取った当該タスクの優先度を書き込み、TCB(a)のタスク情報の領域に、当該タスクのタスク情報を書き込み、さらに、TCB(a)のTCBリンクアドレスの領域に、NULLの値を代入する。
ついで、タスク情報記憶部204に、DCB(a)の領域を生成して、書き込む。即ち、タスク情報記憶部204におけるDCB(a)の相対DL値の領域に、0の値を代入し、DCB(a)の最悪実行時間の領域に、当該タスクの最悪実行時間を書き込み、DCB(a)のDCBリンクアドレスの領域に、NULLの値を代入し、DCB(a)のTCBリンクアドレスの領域に、TCB(a)の位置を示すアドレスを書き込む。なお、この処理により、DCB(a)とTCB(a)とは、タスク情報記憶部204において配列を構成する。
【0034】
また、スケジューリング部203は、タスク情報記憶部204におけるDL基準時刻301の領域に、当該タスクのDL時刻を上書きする。
さらに、スケジューリング部203は、タスク情報記憶部204におけるDCBリンクアドレス302の領域に、DCB(a)の位置を示すアドレスを上書きする。なお、この処理により、先頭ポインタとDCB(a)とは、タスク情報記憶部204において配列を構成する。
【0035】
スケジューリング部203は、タイマ制御部22に当該タスクのDL時刻を出力する。
[処理Bの詳細]
スケジューリング部203は、タスク情報記憶部204にTCB(b)の領域を生成して、書き込む。即ち、TCB(b)の優先度の領域に、スケジューリング可能性判定部202より受取った当該タスクの優先度を書き込み、TCB(b)のタスク情報の領域に、当該タスクのタスク情報を書き込み、TCB(b)のTCBリンクアドレスの領域に、NULLの値を代入する。
【0036】
また、スケジューリング部203は、タスク情報記憶部204にDCB(b)の領域を生成して、書き込む。即ち、DCB(b)の相対DL値の領域に、0の値を代入し、DCB(b)の最悪実行時間の領域に、当該タスクの最悪実行時間を書き込み、DCB(b)のDCBリンクアドレスの領域に、DCB(1)の位置を示すアドレスを書き込む。なお、この処理により、DCB(b)とDCB(1)とは、タスク情報記憶部204において配列を構成する。
【0037】
スケジューリング部203は、さらに、DCB(b)のTCBリンクアドレスの領域に、TCB(b)の位置を示すアドレスを書き込む。この処理により、DCB(b)とTCB(b)とは、タスク情報記憶部204において配列を構成する。
また、スケジューリング部203は、タスク情報記憶部204におけるDCB(1)の相対DL値の領域に、(T−当該タスクのDL時刻)の値を上書きし、DL基準時刻301の領域に、当該タスクのDL時刻を上書きし、さらに、DCBリンクアドレス302の領域に、DCB(b)の位置を示すアドレスを上書きする。なお、この処理により、先頭ポインタとDCB(b)とは、タスク情報記憶部204において配列を構成する。
【0038】
スケジューリング部203は、タイマ制御部22に当該タスクのDL時刻を出力する。
[処理Cの詳細]
スケジューリング部203は、タスク情報記憶部204にTCB(c)の領域を生成して、書き込む。即ち、タスク情報記憶部204におけるTCB(c)の優先度の領域に、スケジューリング可能性判定部202より受取った当該タスクの優先度を書き込み、TCB(c)のタスク情報の領域に、当該タスクのタスク情報を書き込み、TCB(c)のTCBリンクアドレスの領域に、NULLの値を代入する。
【0039】
また、スケジューリング部203は、タスク情報記憶部204にDCB(c)の領域を生成して、書き込む。即ち、DCB(c)の相対DL値の領域に、(当該タスクのDL時刻−T)の値を代入し、DCB(c)の最悪実行時間の領域に、当該タスクの最悪実行時間を書き込み、DCB(c)のDCBリンクアドレスの領域に、NULLの値を代入し、さらに、DCB(c)のTCBリンクアドレスの領域に、TCB(c)の位置を示すアドレスを書き込む。
【0040】
なお、この処理により、DCB(c)とTCB(c)とは、タスク情報記憶部204において配列を構成する。
スケジューリング部203は、さらに、タスク情報記憶部204におけるDCB(i)のDCBリンクアドレスの領域に、DCB(c)の位置を示すアドレスを上書きする。この処理により、DCB(i)とDCB(c)とは、タスク情報記憶部204において配列を構成する。
[処理Dの詳細]
スケジューリング部203は、タスク情報記憶部204にTCB(d)の領域を生成して、書き込む。即ち、TCB(d)の優先度の領域に、スケジューリング可能性判定部202より受取った当該タスクの優先度を書き込み、TCB(d)のタスク情報の領域に、当該タスクのタスク情報を書き込み、TCB(d)のTCBリンクアドレスの領域に、NULLの値を代入する。
【0041】
スケジューリング部203は、タスク情報記憶部204にDCB(d)の領域を生成して、書き込む。即ち、DCB(d)の相対DL値の領域に、(当該タスクのDL時刻−T)の値を代入し、DCB(d)の最悪実行時間の領域に、当該タスクの最悪実行時間を書き込み、DCB(d)のDCBリンクアドレスの領域に、DCB(i)の位置を示すアドレスを書き込む。なお、この処理により、DCB(d)とDCB(i)とは、タスク情報記憶部204において配列を構成する。
【0042】
また、スケジューリング部203は、タスク情報記憶部204におけるDCB(d)のTCBリンクアドレスの領域に、TCB(d)の位置を示すアドレスを書き込む。この処理により、DCB(d)とTCB(d)とは、タスク情報記憶部204において配列を構成する。
さらに、 スケジューリング部203は、タスク情報記憶部204におけるDCB(i−1)のDCBリンクアドレスの領域に、DCB(d)の位置を示すアドレスを上書きする。この処理により、DCB(i−1)とDCB(d)とは、タスク情報記憶部204において配列を構成する。
[処理Eの詳細]
スケジューリング部203は、変数jを有し、初期値を1に設定して後、タスク情報記憶部204におけるDCB(i)に含まれるTCBリンクアドレスにより指定されるTCB(j)を認識する。
【0043】
そして、タスク情報記憶部204からTCB(j)の優先度を読み出し、当該タスクの優先度値とTCB(j)の優先度とを比較する。
当該タスクの優先度がTCB(j)の優先度より低い、または等しい場合、変数jに1を加算する。そして、再び、タスク情報記憶部204にTCB(j)が記憶されているか否かを判定する。
【0044】
TCB(j)が記憶されている限り、当該タスクの優先度とTCB(j)の優先度との比較処理、及び変数jに1を加算する処理を繰り返す。
スケジューリング部203は、もはや、TCB(j)が記憶されていない場合、又は当該タスクの優先度がTCB(j)の優先度より高い場合、タスク情報記憶部204にTCB(e)の領域を生成して、書き込む。
【0045】
書き込む内容は、TCB(e)の優先度の領域に、スケジューリング可能性判定部202より受取った当該タスクの優先度を、TCB(e)のタスク情報の領域に、当該タスクのタスク情報を、TCB(e)のTCBリンクアドレスの領域に、TCB(j)の位置を示すアドレスをそれぞれ書き込む。
なお、この処理により、TCB(e)とTCB(j)とは、タスク情報記憶部204において配列を構成する。
【0046】
続いて、スケジューリング部203は、タスク情報記憶部204におけるTCB(j−1)のTCBリンクアドレスの領域に、TCB(e)の位置を示すアドレスを書き込む。この処理により、TCB(j−1)とTCB(e)とは、タスク情報記憶部204において配列を構成する。
ついで、スケジューリング部203は、タスク情報記憶部204におけるDCB(i)の最悪実行時間の領域より、最悪実行時間を読み出し、その時間と、当該タスクの最悪実行時間とを加算した合計時間を、タスク情報記憶部204におけるDCB(i)の最悪実行時間の領域に上書きする。
(5) タスク切換部205
タスク切換部205は、CPU18により実行されるタスクを切り換えるために設けられる。
【0047】
タスク切換部205は、タイマ制御部22よりタイムアウト信号を受け取る場合、タスクの切り換えを行う。(処理Fとする)
タスク切換部205は、実行制御部23より終了信号を受け取る場合、タスク情報記憶部204におけるTCB41に含まれるTCBリンクアドレス413を読み出す。さらに、タスク切換部205は、読出したTCBリンクアドレス413の値はNULL値であるか否かを判定する。
【0048】
タスク切換部205は、前記TCBリンクアドレス413の値が、NULL値である場合、タスクの切り換えを行う。(処理Fとする)
他方、前記TCBリンクアドレス413の値が、NULL値でない場合、タスクの切り換えを行う。(処理Gとする)
以下に、処理F及び処理Gを詳細に説明する。
[処理Fの詳細]
タスク切換部205は、タスク情報記憶部204より先頭ポインタ30、DCB40及びDCB50を読み出し、現在のDL基準時刻とDCB50に含まれる相対DL値との合計値を、タスク情報記憶部204におけるDL基準時刻301の領域に上書きし、DCB50の位置を示すアドレスを、タスク情報記憶部204におけるDCBリンクアドレス302の領域に上書きし、さらに、DCB50に含まれる相対DL値501の領域に、0値を上書きする。
【0049】
また、タスク切換部205は、DCB40及びDCB40に接続される全てのTCBをタスク情報記憶部204より消去する。
続いて、タスク切換部205は、タスク情報記憶部204よりDCB50に含まれるTCBリンクアドレスにより指定されるTCB51を読み出し、読出したTCB51に含まれるタスク情報512を実行制御部23へ出力する。
[処理Gの詳細]
タスク切換部205は、タスク情報記憶部204よりDCB40、TCB41及びTCB42を読み出し、DCB40に含まれるTCBリンクアドレス404の領域に、TCB42の位置を示すアドレスを上書きする。
【0050】
続いて、タスク情報記憶部204におけるTCB41を消去し、TCB42に含まれるタスク情報422を、実行制御部23に出力する。
〔3〕 タスクスケジューリング部20の動作
タスクスケジューリング部20の動作について、図4に示すシーケンス図を用いて説明する。
【0051】
実行制御部23は、当該タスクの生成をタスク受付部201へ通知する(ステップS101)。
タスクスケジューリング部20は、プログラム記憶部21における当該タスクの位置を示すアドレスを送信し(ステップS102)、当該タスクのタスク情報を読み出す(ステップS103)。読出したタスク情報に基づいて、当該タスクのスケジューリング可能性判定を行う(ステップS104)。
【0052】
判定の結果、当該タスクのスケジューリングが不可能な場合、スケジューリング不可信号を実行制御部23へ出力する(ステップS105)。
判定の結果、可能な場合は、当該タスクのスケジューリングを行う(ステップS106)。このとき、先頭ポインタ30に含まれるDL基準時刻301を変更する場合、タイマ制御部22へDL時刻を出力する(ステップS107)。
【0053】
タスク切換部205は、タイマ制御部22よりタイムアウト信号を受け取り(ステップS108)り、実行制御部23よりタスク終了信号を受け取る(ステップS109)と、タスクの切換えを行う(ステップS110)。
(1) スケジューリング可能性判定の動作
スケジューリング可能性判定の動作を、図5に示すフローチャートを用いて説明する。
【0054】
スケジューリング可能性判定部202は、タスク受付部201より当該タスクのタスク情報、優先度、DL時刻及び最悪実行時間を受け取り(ステップS201)、タスク情報記憶部204よりDL基準時刻を読み出し(ステップS202)、タイマ制御部22より現在時刻を取得する(ステップS203)。
続いて、変数iに1を、変数Xに前記DL基準時刻を、変数Yに前記現在時刻と前記当該タスクの最悪実行時間との合計値をそれぞれ代入する(ステップS204)。
【0055】
そして、変数iがnになるまで、ステップ206から210までの処理を繰り返す(ステップS205)。
即ち、タスク情報記憶部204よりDCB(i)に含まれる相対DL値(i)と最悪実行時間(i)とを読み出し(ステップS206)、変数Xに変数Xと相対DL値(i)との合計値を代入し、さらに変数Yに変数Yと最悪実行時間(i)との合計値を代入する(ステップS207)。
【0056】
この状態で、変数Xと変数Yとの値を比較を行う(ステップS208)。
比較の結果、変数X≦変数Yである場合(ステップS208で≦)、スケジューリング不可信号を実行制御部23へ出力する(ステップS209)が、変数X>変数Yである場合(ステップS208で>)、変数iに変数iと1との合計値を代入し(ステップS210)、上記の処理を繰り返す(ステップS211)。
【0057】
繰り返しを終えると、タスク情報、優先度、DL時刻及び最悪実行時間をスケジューリング部203へと出力する(ステップS212)。
(2) スケジューリングの動作
スケジューリングの動作を、図6に示すフローチャートを用いて説明する。
スケジューリング部203は、スケジューリング可能性判定部202より当該タスクのタスク情報、優先度、DL時刻及び最悪実行時間を受け取り(ステップS301)、タスク情報記憶部204より先頭ポインタに含まれるDCBリンクアドレスとDL基準時刻とを読み出す(ステップS302)。
【0058】
そして、変数iに1を、変数Tに前記DL基準時刻をそれぞれ代入する(ステップS303)。
i=1であるので、DCB(1)の有無を判別し(ステップS304)、DCB(1)が無い場合(ステップS304で無)、処理A(図7参照)を行い、DCB(1)が有る場合(ステップS304で有)、当該タスクのDL時刻と変数Tとを比較する(ステップS305)。
当該タスクのDL時刻<変数Tである場合(ステップS305で<)、処理B(図8参照)を行うし、一方、当該タスクのDL時刻=変数Tである場合(ステップS305で=)、処理E(図11参照)を行う。
【0059】
さらに、当該タスクのDL時刻>変数Tである場合(ステップS305で>)、変数iに変数iと1との合計値を代入し(ステップS306)、DCB(i)の有無を判定する(ステップS307)。
DCB(i)が無い場合(ステップS307で無)、処理C(図9参照)を行う一方、DCB(i)が有る場合(ステップS307で有)、DCB(i)に含まれる相対DL値を読み出し(ステップS308)、変数Tに変数Tと前記相対DL値との合計値を代入し(ステップS309)、当該タスクのDL時刻と変数Tとを比較する(ステップS310)。
【0060】
比較の結果、当該タスクのDL時刻<変数Tである場合(ステップS310で<)、処理D(図10参照)を行う。
他方、当該タスクのDL時刻=変数Tである場合(ステップS310で=)、処理Eを行う。
また、当該タスクのDL時刻>変数Tである場合には(ステップS310で>)、ステップS306に戻り、ステップ310までの処理を繰り返す。
▲1▼ 処理Aの動作
処理Aの動作を、図7に示すフローチャートを用いて説明する。
【0061】
スケジューリング部203は、タスク情報記憶部204にTCB(a)の領域を生成し(ステップS401)、優先度の領域に当該タスクの優先度を書き込み(ステップS402)、タスク情報の領域に当該タスクのタスク情報を書き込み(ステップS403)、TCBリンクアドレスの領域に、NULLの値を代入する(ステップS404)。
【0062】
スケジューリング部203は、タスク情報記憶部204にDCB(a)の領域を生成して(ステップS405)、相対DL値の領域に0の値を代入し(ステップS406)、最悪実行時間の領域に当該タスクの最悪実行時間を書き込み(ステップS407)、DCBリンクアドレスの領域にNULLの値を代入し(ステップS408)、TCBリンクアドレスの領域にTCB(a)の位置を示すアドレスを書き込む(ステップS409)。
【0063】
続いて、タスク情報記憶部204におけるDL基準時刻301の領域に、当該タスクのDL時刻を上書きし(ステップS410)、DCBリンクアドレス302の領域にDCB(a)の位置を示すアドレスを上書きする(ステップS411)。さらに、スケジューリング部203は、タイマ制御部22に当該タスクのDL時刻を出力する(ステップS412)。
▲2▼ 処理Bの動作
処理Bの動作を、図8に示すフローチャートを用いて説明する。
【0064】
スケジューリング部203は、タスク情報記憶部204にTCB(b)の領域を生成し(ステップS501)、優先度の領域に当該タスクの優先度を書き込み(ステップS502)、タスク情報の領域に当該タスクのタスク情報を書き込み(ステップS503)、TCBリンクアドレスの領域にNULLの値を代入する(ステップS504)。
【0065】
ついで、タスク情報記憶部204にDCB(b)の領域を生成し(ステップS505)、相対DL値の領域に0の値を代入し(ステップS506)、最悪実行時間の領域に当該タスクの最悪実行時間を書き込み(ステップS507)、DCBリンクアドレスの領域にDCB(1)の位置を示すアドレスを書き込み(ステップS508)、TCBリンクアドレスの領域にTCB(b)の位置を示すアドレスを書き込む(ステップS509)。
【0066】
更に、続いて、DCB(1)の相対DL値の領域に、(T−当該タスクのDL時刻)の値を上書きし(ステップS510)、タスク情報記憶部204におけるDL基準時刻301の領域に当該タスクのDL時刻を上書きし(ステップS511)、DCBリンクアドレス302の領域にDCB(b)の位置を示すアドレスを上書きする(ステップS512)。
【0067】
この後、タイマ制御部22に当該タスクのDL時刻を出力する(ステップS513)。
▲3▼ 処理Cの動作
処理Cの動作を、図9に示すフローチャートを用いて説明する。
スケジューリング部203は、タスク情報記憶部204にTCB(c)の領域を生成し(ステップS601)、優先度の領域に当該タスクの優先度を書き込み(ステップS602)、タスク情報の領域に当該タスクのタスク情報を書き込み(ステップS603)、TCBリンクアドレスの領域にNULLの値を代入する(ステップS604)。
【0068】
この後、タスク情報記憶部204にDCB(c)の領域を生成し(ステップS605)、相対DL値の領域に(当該タスクのDL時刻−T)の値を代入し(ステップS606)、最悪実行時間の領域に当該タスクの最悪実行時間を書き込み(ステップS607)、DCBリンクアドレスの領域にNULLの値を代入し(ステップS608)、TCBリンクアドレスの領域にTCB(c)の位置を示すアドレスを書き込む(ステップS609)。
【0069】
つづいて、DCB(i)のDCBリンクアドレスの領域に、DCB(c)の位置を示すアドレスを上書きする(ステップS610)。
▲4▼ 処理Dの動作
処理Dの動作を、図10に示すフローチャートを用いて説明する。
スケジューリング部203は、タスク情報記憶部204にTCB(d)の領域を生成し(ステップS701)、優先度の領域に当該タスクの優先度を書き込み(ステップS702)、タスク情報の領域に当該タスクのタスク情報を書き込み(ステップS703)、TCBリンクアドレスの領域にNULLの値を代入する(ステップS704)。
【0070】
この後、タスク情報記憶部204にDCB(d)の領域を生成し(ステップS705)、相対DL値の領域に(当該タスクのDL時刻−T)の値を代入し(ステップS706)、最悪実行時間の領域に当該タスクの最悪実行時間を書き込み(ステップS707)、DCB(d)のDCBリンクアドレスの領域にDCB(i)の位置を示すアドレスを書き込み(ステップS708)、TCBリンクアドレスの領域にTCB(d)の位置を示すアドレスを書き込む(ステップS709)。
【0071】
続いて、DCB(i−1)のDCBリンクアドレスの領域に、DCB(d)の位置を示すアドレスを上書きする(ステップS710)。
▲5▼ 処理Eの動作
処理Eの動作を、図11に示すフローチャートを用いて説明する。
スケジューリング部203は、変数jを有し、初期値を1に設定し(ステップS801)、タスク情報記憶部204におけるDCB(i)に含まれるTCBリンクアドレスにより指定されるTCB(j)を認識し(ステップS802)、TCB(j)の優先度を読み出す(ステップS803)。
【0072】
ついで、当該タスクの優先度値とTCB(j)の優先度値とを比較する(ステップS804)。
比較の結果、当該タスクの優先度≦TCB(j)の優先度である場合(ステップS804で≦)、変数jに1を加算し(ステップS805)、TCB(j)の有無を判定する(ステップS806)。
【0073】
TCB(j)がある場合(ステップS806でYES)、ステップS804の動作に戻る。
他方、TCB(j)がない場合(ステップS806でNO)、又は当該タスクの優先度>TCB(j)の優先度である場合(ステップS804で>)、タスク情報記憶部204にTCB(e)の領域を生成し(ステップS807)、優先度の領域に当該タスクの優先度を書き込み(ステップS808)、タスク情報の領域に当該タスクのタスク情報を書き込み(ステップS809)、TCBリンクアドレスの領域にTCB(j)の位置を示すアドレスを書き込む(ステップS810)。
【0074】
この後、TCB(j−1)のTCBリンクアドレスの領域に、TCB(e)の位置を示すアドレスを書き込み(ステップS811)、DCB(i)の最悪実行時間の領域より、時間Hを読み出し(ステップS812)、読出した時間Hと当該タスクの最悪実行時間とを加算した合計時間を上書きする(ステップS813)。
(3) タスク切換えの動作
タスク切換えの動作を、図12に示すフローチャートを用いて説明する。
【0075】
タスク切換部205は、受取った信号の判別を行う(ステップS901)。
タイムアウト信号を受け取った場合(ステップS901でタイムアウト信号)、処理Fを行い、終了信号を受け取った場合(ステップS901で終了信号)、TCB41に含まれるTCBリンクアドレス413を読み出し(ステップS902)、読出したTCBリンクアドレス413の値がNULL値であるか否かを判定する(ステップS903)。
【0076】
判定の結果、前記TCBリンクアドレス413の値が、NULL値である場合(ステップS903でYES)、処理Fを行い、他方、NULL値でない場合(ステップS903でNO)、処理Gを行う。
▲1▼ 処理Fの動作
処理Fの動作を、図13に示すフローチャートを用いて説明する。
【0077】
タスク切換部205は、タスク情報記憶部204より先頭ポインタ、DCB40及びDCB50を読み出し(ステップS911)、読出した先頭ポインタのDL基準時刻の領域にDL基準時刻とDCB50に含まれる相対DL値とを合計した時刻を上書きする(ステップS912)。
続いて、先頭ポインタのDCBリンクアドレスの領域にDCB50の位置を示すアドレスを上書きし(ステップS913)、DCB50の相対DL値の領域に0を上書きする(ステップS914)。
【0078】
この後、DCB40及びDCB40に接続される全てのTCBをタスク情報記憶部204より消去し(ステップS915)、DCB50のTCBリンクアドレスにより指定されるTCB51を読み出し、読出したTCB51に含まれるタスク情報を実行制御部23へ出力する(ステップS916)。
▲2▼ 処理Gの動作
処理Gの動作を、図14に示すフローチャートを用いて説明する。
【0079】
タスク切換部205は、タスク情報記憶部204よりDCB40、TCB41及びTCB42を読み出し(ステップS921)、DCB40に含まれるTCBリンクアドレスの領域に、TCB42の位置を示すアドレスを上書きする(ステップS922)。
ついで、TCB41をタスク情報記憶部204より消去し(ステップS923)、TCB42に含まれるタスク情報を実行制御部23へ出力する(ステップS924)。
[4]その他の変形例
本発明の趣旨を逸脱しない範囲で、上記の実施の形態以外の形態で実施することができる。以下に、その例を示す。
(1) タスクに割り当てられる優先度は、本実施の形態におけるDL時刻と優先度との2種類の優先度に限定されない。複数の種類の優先度を適用してもよい。なお、複数の種類の優先度には、階層関係が与えられているものとする。
【0080】
また、タスクに割り当てられる優先度は、DL時刻の1種類としてもよい。以下に、DL時刻のみを割り当てられたタスクのスケジューリング方法について、実施の形態と異なる内容を説明する。
タスク情報記憶部204は、各タスクに割り当てられたDL時刻のうち所定の単位時間の整数倍からなる第1優先度と、前記DL時刻のうち前記所定の単位時間未満の部分からなる第2優先度との2種類の優先度を管理するために設けられており、図3に示すように、先頭ポインタ30、グループ400、グループ500、・・・を有している。例えば、DL時刻が“時/分/秒/100ミリ秒”で構成される場合、前記第1優先度は“時/分/秒” 単位部分からなり、前記第2優先度は“100ミリ秒” 単位部分からなる。
【0081】
先頭ポインタ30、グループ400、グループ500、・・・は、先頭ポインタ30を先頭とし、グループ400、グループ500、・・・の順に配列を構成している。
グループ400、グループ500、・・・は、第1優先度に基づいて並べられる。
【0082】
グループ400は、同一の第1優先度が割り当てられた複数のタスクに関する情報をまとめて管理するためのものであり、DCB40、TCB41、TCB42、・・・からなる。
DCB40、TCB41、TCB42、・・・は、DCB40を先頭とし、TCB41、TCB42、・・・の順に配列を構成している。TCB41、TCB42、・・・は、第2優先度に基づいて並べられる。
【0083】
スケジューリング部203は、当該タスクを管理するTCBを、第1優先度と第2優先度とに基づいて、記憶部204において定まるメモリ空間上の位置に書き込みを行う。
(2) DL時刻のデータ構造は、本実施の形態における“時/分/秒”に限定されない。その他の妥当な単位時間により構成されるとしてもよい。
(3) 優先度に用いる値は、本実施の形態における“高”、“中”及び“下”の3レベルに限定されない。その他の妥当な基準値を適用してもよい。
(4) 本実施の形態において、DL時刻の最低値を示すデータ構造として“FF/FF/FF”を用いたが、その他の妥当なデータ値を設定しても良い。
(5) 本発明は、上記の実施の形態におけるタスク切換部205が、プリエンプトと呼ばれる排他制御を行うとしてもよい。
【0084】
以下に、タスク切換部205が行う排他制御について説明する。
タスク切換部205は、タイムアウト信号又は終了信号を受取った場合、実行していたタスクを識別するTCBのTCBリンクアドレスの領域に格納されたデータをタスク情報記憶部204より読み出す。
タスク切換部205は、読出したデータにより指定されるTCBのタスク情報の領域にロック情報が有るか否かの判定を行う。ロック情報とは、当該TCBにより識別されるタスクが排他制御により実行出来ない状態にあるか否かの制御情報である。
【0085】
タスク切換部205は、タスク情報の領域にロック情報が有る場合、さらにTCBリンクアドレスの領域に格納されたデータを読み出し、前記判定を実行する。タスク切換部205は、前記読み出し、及び前記判定をタスク情報の領域にロック情報が有る限り、繰り返し行う。
タスク切換部205は、タスク情報の領域にロック情報が無い場合、本実施の形態と同様なタスク切換え処理を実行する。
(6)本発明は、上記の実施の形態に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するためのコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
【0086】
また、本発明は、前記コンピュータプログラム又は前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、ROM、RAM、フレキシブルディスク、ハードディスク、CD−ROM、MO、DVD、DVD−ROM、DVD−RAM、半導体メモリなど、に記録したものとしてもよい。また、これらの記録媒体に記録されている前記コンピュータプログラム又は前記デジタル信号であるとしてもよい。
【0087】
また、本発明は、前記コンピュータプログラム又は前記デジタル信号を、電気通信回線、無線又は有線通信回路、インターネットを代表とするネットワーク等を経由して伝送するものとしてもよい。
また、本発明は、マイクロプロセッサとメモリとを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムに従って動作するとしてもよい。なお、前記コンピュータシステムには、TV、冷蔵庫、電話機、エアコンなどの家電製品も含まれる。
【0088】
また、前記プログラム又は前記デジタル信号を前記記録媒体に記録して移送することにより、又は前記プログラム又は前記デジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
(7)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
【0089】
【発明の効果】
以上説明したように、本発明は、それぞれ定められた完了目標時刻以前に完了するべき複数のタスクの実行順序を決定し、各タスクを実行するプログラム実行装置であって、各タスクには、階層関係を有する複数の種類の優先度が割り当てられており、すでに生成されているタスク毎に、当該タスクに割り当てられた複数の種類の優先度に基づいて定まるメモリ空間上の位置において当該タスクを識別する識別子を記憶している記憶手段と、新たに生成されたタスクに割り当てられた複数の種類の優先度、及び当該タスクを識別する識別子を受け付ける受付手段と、前記記憶手段において、前記受付手段により受付けた複数の種類の優先度に基づいて定まるメモリ空間上の位置に前記受付けた識別子を書き込む書込手段とを備え、複数の種類の優先度に基づいて前記記憶手段において各識別子が配列されている位置の順序に従って、各識別子が識別するタスクの実行順序を決定することを特徴とする。
【0090】
この構成によると、プログラム実行装置は、タスクの実行順序を、階層関係を有する複数の種類の優先度により適切に制御することが可能となる。
ここで、各タスクには、前記複数の種類の優先度として、当該タスクの完了目標時刻を示す第1優先度と、前記第1優先度より下位の優先度である第2優先度とが割り当てられており、前記記憶手段は、第1優先度として同じ完了目標時刻が割り当てられたタスクが同じグループに属するように、前記複数のタスクを分類して生成した複数のグループを有し、各グループは完了目標時刻の順に従って定まるメモリ空間上の位置に配列されており、各グループにはタスクを識別する識別子が当該タスクに割り当てられた第2優先度に従って定まるメモリ空間上の位置に配列されており、前記受付手段は、新たに生成されたタスクに割り当てられた第1優先度としての完了目標時刻、当該タスクに割り当てられた第2優先度、及び当該タスクを識別する識別子を受け付け、前記書込手段は、前記受付けた第1優先度と同じ優先度を持つ識別子が含まれるグループにおいて、前記受付けた第2優先度に基づいて定まるメモリ空間上の位置に前記受付けた識別子を書き込み、前記プログラム実行装置は、前記記憶手段において、第1優先度及び第2優先度に基づいて各識別子が配列されている位置の順序に従って、各識別子が識別するタスクの実行順序を決定する。
【0091】
この構成によると、プログラム実行装置は、同一な完了目標時刻を割り振られた複数のタスクの実行順序を、第2優先度により適切に制御することが可能となる。
ここで、前記記憶手段は、直近の完了目標時刻である第1優先度に基づいてタスクが分類されたグループである先頭グループに対応付けて、前記完了目標時刻である第1優先度を記憶しており、前記先頭グループに後続して配列されたグループである後続グループ毎に、当該後続グループに含まれるタスクに割り当てられた完了目標時刻と、当該後続グループに先行して配列されているグループに含まれるタスクに割り当てられた完了目標時刻との時間差を、当該後続グループに対応づけて記憶しており、前記書込手段は、前記受付手段により受付けた完了目標時刻と、前記直近の完了目標時刻とを比較して、一致する場合、前記先頭グループにおいて前記受付けた第2優先度に基づいて定まるメモリ空間上の位置に前記受付けた識別子を書き込み、一致しない場合、前記後続グループ毎に、当該後続グループに対応づけられた時間差と、当該後続グループに先行して配列されているグループに含まれるタスクに割り当てられた完了目標時刻とを加算して得られる時刻と前記受付手段により受付けた完了目標時刻とを比較し、一致する場合に、当該後続グループにおいて前記受付けた第2優先度に基づいて定まるメモリ空間上の位置に前記受付けた識別子を書き込む。
【0092】
この構成によると、記憶手段は各後続グループに対応づけて前記時間差を記憶していることにより、書込手段が前記書込み処理において必要とするデータ量の削減を可能とする。
ここで、第1優先度が取り得る値のうちの最も低い値は、完了目標時刻を構成する所定ビット列が取り得る最大値であり、前記記憶手段は、前記所定ビット列の最大値を有する完了目標時刻が割り当てられたタスクを含むグループを、前記完了目標時刻の順に従って定まる最後尾の位置において記憶しており、前記受付手段は、新たに生成されたタスクに割り当てられた前記所定ビット列の最大値を有する完了目標時刻、当該タスクに割り当てられた第2優先度、及び当該タスクを識別する識別子を受け付け、前記書込手段は、前記最後尾に位置するグループにおいて前記受付けた第2優先度に基づいて定まるメモリ空間上の位置に前記受付けた識別子を書き込む。
【0093】
この構成によると、プログラム実行装置は、タスクの第1優先度を最も低い値に制御することが可能となる。
ここで、前記記憶手段は、さらに、各グループについて、当該グループに含まれる全てのタスクの実行に要すると予測される総実行時間を、当該グループに対応づけて記憶しており、前記受付手段は、新たに生成されたタスクの実行に要すると予測される実行時間を受け付け、前記プログラム実行装置は、さらに、現在時刻に、前記総実行時間と、前記実行時間とを加算して得られた時刻が、前記受付けた識別子により識別されるタスクに割り当てられた完了目標時刻より前であるか否かを判定し、前記時刻は前記完了目標時刻以降の時刻である場合に、前記受付けた識別子により識別されるタスクの実行を拒否する拒否信号を出力する判定手段を備え、前記判定手段により前記時刻は前記完了目標時刻より前の時刻であると判定される場合、前記書込手段は、前記受付けた第1優先度と同じ優先度を持つ識別子が含まれるグループにおいて、前記受付けた第2優先度に基づいて定まるメモリ空間上の位置に前記受付けた識別子を書き込む。
【0094】
この構成によると、プログラム実行装置は、タスクの実行を完了目標時刻以前に完了させるように制御することが可能となる。
ここで、前記判定手段は、前記グループに後続する全ての後続グループから当該後続グループを選択し、選択した当該後続グループについて、現在時刻に、前記当該後続グループに対応付けられた総実行時間と、前記受付けた実行時間とを加算して得られた時刻が、前記当該後続グループに含まれるタスクに割り当てられた完了目標時刻より前であるか否かを判定し、前記の選択と判定とを全ての後続グループについて繰り返し、前記判定手段による全ての判定において前記時刻は前記完了目標時刻より前であると判定される場合、前記書込手段は、前記受付けた第1優先度と同じ優先度を持つ識別子が含まれるグループにおいて、前記受付けた第2優先度に基づいて定まるメモリ空間上の位置に前記受付けた識別子を書き込み、前記判定手段による全ての判定のうち少なくとも1回前記時刻は前記完了目標時刻以降の時刻である判定される場合に、前記判定手段は前記受付けた識別子により識別されるタスクの実行を拒否する拒否信号を出力する。
【0095】
この構成によると、プログラム実行装置は、さらに、記憶手段による記憶されている全てのタスクの実行を完了目標時刻以前に完了させるように制御することが可能となる。
ここで、各タスクには、当該タスクに定められた完了目標時刻のうち所定の単位時間の整数倍からなる第1優先度と、前記完了目標時刻のうち前記所定の単位時間未満の部分からなる第2優先度とが割り当てられており、前記記憶手段は、同じ第1優先度が割り当てられたタスクが同じグループに属するように、前記複数のタスクを分類して生成した複数のグループを有し、各グループは第1優先度に従って定まるメモリ空間上の位置に配列されており、各グループにはタスクを識別する識別子が当該タスクに割り当てられた第2優先度に従って定まるメモリ空間上の位置に配列されており、前記受付手段は、新たに生成されたタスクに割り当てられた第1優先度、第2優先度、及び当該タスクを識別する識別子を受け付け、前記書込手段は、前記受付けた第1優先度と同じ優先度を持つ識別子が含まれるグループにおいて、前記受付けた第2優先度に基づいて定まるメモリ空間上の位置に前記受付けた識別子を書き込み、前記プログラム実行装置は、前記記憶手段において、第1優先度及び第2優先度に基づいて各識別子が配列されている位置の順序に従って、各識別子が識別するタスクの実行順序を決定する。
【0096】
この構成によると、タスクに割り当てられる優先度が完了目標時刻の1種類である場合に、プログラム実行装置は、タスクの実行順序を適切に制御できる。
【図面の簡単な説明】
【図1】 携帯電話機1の構成を示すブロック図である。
【図2】 タスクスケジューリング部20の機能を示すブロック図である。
【図3】 タスク情報記憶部204におけるスケジューリング状況を示すブロック図である。
【図4】 タスクスケジューリング部20によるタスクスケジューリングの動作を示すシーケンス図である。
【図5】 スケジューリング可能性判定の動作を示すフローチャートである。
【図6】 スケジューリング動作を示すフローチャートである。
【図7】 処理Aの動作を示すフローチャートである。
【図8】 処理Bの動作を示すフローチャートである。
【図9】 処理Cの動作を示すフローチャートである。
【図10】 処理Dの動作を示すフローチャートである。
【図11】 処理Eの動作を示すフローチャートである。
【図12】 タスク切換え動作を示すフローチャートである。
【図13】 処理Fの動作を示すフローチャートである。
【図14】 処理Gの動作を示すフローチャートである。
【符号の説明】
1 携帯電話機
10 送受信回路
11 画面表示回路
12 音声入力回路
13 音声出力回路
14 ボタン入力回路
15 メモリ
16 I/Oブリッジ
17 タイマ回路
18 CPU
20 タスクスケジューリング部
21 プログラム記憶部
22 タイマ制御部
23 実行制御部
201 タスク受付部
202 スケジューリング可能性判定部
203 スケジューリング部
204 タスク情報記憶部
205 タスク切換部

Claims (11)

  1. それぞれ定められた完了目標時刻以前に完了すべき複数のタスクの実行順序を決定し、各タスクを実行するプログラム実行装置であって、
    各タスクには、階層関係を有する複数の種類の優先度が割り当てられており、すでに生成されているタスク毎に、当該タスクに割り当てられた複数の種類の優先度に基づいて定まるメモリ空間上の位置において当該タスクを識別する識別子を記憶している記憶手段と、
    新たに生成されたタスクに割り当てられた複数の種類の優先度、及び当該タスクを識別する識別子を受け付ける受付手段と、
    前記記憶手段において、前記受付けた複数の種類の優先度に基づいて定まるメモリ空間上の位置に前記受付けた識別子を書き込む書込手段と、
    上位の階層の優先度が同一の場合、下位の階層の優先度に応じて、各識別子により識別されるタスクの実行順序を決定する順序決定手段と
    を備えることを特徴とするプログラム実行装置。
  2. 各タスクには、前記複数の種類の優先度として、当該タスクの完了目標時刻を示す第1優先度と、前記第1優先度より下位の優先度である第2優先度とが割り当てられており、
    前記記憶手段は、第1優先度として同じ完了目標時刻が割り当てられたタスクが同じグループに属するように、前記複数のタスクを分類して生成した複数のグループを有し、各グループは完了目標時刻の順に従ってメモリ空間上の定まるメモリ空間上の位置に配列されており、各グループにはタスクを識別する識別子が当該タスクに割り当てられた第2優先度に従って定まるメモリ空間上の位置に配列されており、
    前記受付手段は、新たに生成されたタスクに割り当てられた第1優先度としての完了目標時刻、当該タスクに割り当てられた第2優先度、及び当該タスクを識別する識別子を受け付け、
    前記書込手段は、前記受付けた第1優先度と同じ優先度を持つ識別子が含まれるグループにおいて、前記受付けた第2優先度に基づいて定まるメモリ空間上の位置に前記受付けた識別子を書き込み、
    前記順序決定手段は、前記記憶手段において、第1優先度及び第2優先度に基づいて各識別子が配列されているメモリ空間上の位置の順序に従って、各識別子が識別するタスクの実行順序を決定する
    ことを特徴とする請求項1に記載のプログラム実行装置。
  3. 前記記憶手段は、直近の完了目標時刻である第1優先度に基づいてタスクが分類されたグループである先頭グループに対応付けて、前記完了目標時刻である第1優先度を記憶しており、前記先頭グループに後続して配列されたグループである後続グループ毎に、当該後続グループに含まれるタスクに割り当てられた完了目標時刻と、当該後続グループに先行して配列されているグループに含まれるタスクに割り当てられた完了目標時刻との時間差を、当該後続グループに対応づけて記憶しており、
    前記書込手段は、前記受付手段により受付けた完了目標時刻と、前記直近の完了目標時刻とを比較して、一致する場合、前記先頭グループにおいて前記受付けた第2優先度に基づいて定まるメモリ空間上の位置に前記受付けた識別子を書き込み、一致しない場合、前記後続グループ毎に、当該後続グループに対応づけられた時間差と、当該後続グループに先行して配列されているグループに含まれるタスクに割り当てられた完了目標時刻とを加算して得られる時刻と前記受付手段により受付けた完了目標時刻とを比較し、一致する場合に、当該後続グループにおいて前記受付けた第2優先度に基づいて定まるメモリ空間上の位置に前記受付けた識別子を書き込む
    ことを特徴とする請求項2に記載のプログラム実行装置。
  4. 第1優先度が取り得る値のうちの最も低い値は、完了目標時刻を構成する所定ビット列が取り得る最大値であり、
    前記記憶手段は、前記所定ビット列の最大値を有する完了目標時刻が割り当てられたタスクを含むグループを、前記完了目標時刻の順に従ってメモリ空間上の定まる最後尾の位置において記憶しており、
    前記受付手段は、新たに生成されたタスクに割り当てられた前記所定ビット列の最大値を有する完了目標時刻、当該タスクに割り当てられた第2優先度、及び当該タスクを識別する識別子を受け付け、
    前記書込手段は、前記最後尾に位置するグループにおいて前記受付けた第2優先度に基づいて定まるメモリ空間上の位置に前記受付けた識別子を書き込む
    ことを特徴とする請求項2に記載のプログラム実行装置。
  5. 前記記憶手段は、さらに、
    各グループについて、当該グループに含まれる全てのタスクの実行に要すると予測される総実行時間を、当該グループに対応づけて記憶しており、
    前記受付手段は、新たに生成されたタスクの実行に要すると予測される実行時間を受け付け、
    前記プログラム実行装置は、さらに、
    現在時刻に、前記総実行時間と、前記実行時間とを加算して得られた時刻が、前記受付けた識別子により識別されるタスクに割り当てられた完了目標時刻より前であるか否かを判定し、前記時刻は前記完了目標時刻以降の時刻である場合に、前記受付けた識別子により識別されるタスクの実行を拒否する拒否信号を出力する判定手段を備え、
    前記判定手段により前記時刻は前記完了目標時刻より前の時刻であると判定される場合、
    前記書込手段は、前記受付けた第1優先度と同じ優先度を持つ識別子が含まれるグループにおいて、前記受付けた第2優先度に基づいて定まるメモリ空間上の位置に前記受付けた識別子を書き込む
    ことを特徴とする請求項2に記載のプログラム実行装置。
  6. 前記判定手段は、前記グループに後続する全ての後続グループから当該後続グループを選択し、選択した当該後続グループについて、現在時刻に、前記当該後続グループに対応付けられた総実行時間と、前記受付けた実行時間とを加算して得られた時刻が、前記当該後続グループに含まれるタスクに割り当てられた完了目標時刻より前であるか否かを判定し、前記の選択と判定とを全ての後続グループについて繰り返し、
    前記判定手段による全ての判定において前記時刻は前記完了目標時刻より前であると判定される場合、
    前記書込手段は、前記受付けた第1優先度と同じ優先度を持つ識別子が含まれるグループにおいて、前記受付けた第2優先度に基づいて定まるメモリ空間上の位置に前記受付けた識別子を書き込み、
    前記判定手段による全ての判定のうち少なくとも1回前記時刻は前記完了目標時刻以降の時刻である判定される場合に、前記判定手段は前記受付けた識別子により識別されるタスクの実行を拒否する拒否信号を出力する
    ことを特徴とする請求項5に記載のプログラム実行装置。
  7. 各タスクには、当該タスクに定められた完了目標時刻のうち所定の単位時間の整数倍からなる第1優先度と、前記完了目標時刻のうち前記所定の単位時間未満の部分からなる第2優先度とが割り当てられており、
    前記記憶手段は、同じ第1優先度が割り当てられたタスクが同じグループに属するように、前記複数のタスクを分類して生成した複数のグループを有し、各グループは第1優先度に従って定まるメモリ空間上の位置に配列されており、各グループにはタスクを識別する識別子が当該タスクに割り当てられた第2優先度に従って定まるメモリ空間上の位置に配列されており、
    前記受付手段は、新たに生成されたタスクに割り当てられた第1優先度、第2優先度、及び当該タスクを識別する識別子を受け付け、
    前記書込手段は、前記受付けた第1優先度と同じ優先度を持つ識別子が含まれるグループにおいて、前記受付けた第2優先度に基づいて定まるメモリ空間上の位置に前記受付けた識別子を書き込み、
    前記順序決定手段は、前記記憶手段において、第1優先度及び第2優先度に基づいて各識別子が配列されているメモリ空間上の位置の順序に従って、各識別子が識別するタスクの実行順序を決定する
    ことを特徴とする請求項1に記載のプログラム実行装置。
  8. それぞれ定められた完了目標時刻以前に完了すべき複数のタスクの実行順序を決定し、各タスクを実行するプログラム実行装置で用いられるタスク管理方法であって、
    各タスクには、階層関係を有する複数の種類の優先度が割り当てられており、前記プログラム実行装置は、すでに生成されているタスク毎に、当該タスクに割り当てられた複数の種類の優先度に基づいて定まるメモリ空間上の位置において当該タスクを識別する識別子を記憶している記憶手段を備え、
    前記タスク管理方法は、
    新たに生成されたタスクに割り当てられた複数の種類の優先度、及び当該タスクを識別する識別子を受け付ける受付ステップと、
    前記記憶手段において、前記受付けた複数の種類の優先度に基づいて定まるメモリ空間上の位置に前記受付けた識別子を書き込む書込ステップと、
    上位の階層の優先度が同一の場合、下位の階層の優先度に応じて、各識別子により識別されるタスクの実行順序を決定する順序決定ステップと
    を含むことを特徴とするタスク管理方法。
  9. それぞれ定められた完了目標時刻以前に完了すべき複数のタスクの実行順序を決定し、各タスクを実行するプログラム実行装置で用いられるタスク管理プログラムであって、
    各タスクには、階層関係を有する複数の種類の優先度が割り当てられており、前記プログラム実行装置は、すでに生成されているタスク毎に、当該タスクに割り当てられた複数の種類の優先度に基づいて定まるメモリ空間上の位置において当該タスクを識別する識別子を記憶している記憶手段を備え、
    前記タスク管理プログラムは、
    新たに生成されたタスクに割り当てられた複数の種類の優先度、及び当該タスクを識別する識別子を受け付ける受付ステップと、
    前記記憶手段において、前記受付けた複数の種類の優先度に基づいて定まるメモリ空間上の位置に前記受付けた識別子を書き込む書込ステップと、
    上位の階層の優先度が同一の場合、下位の階層の優先度に応じて、各識別子により識別されるタスクの実行順序を決定する順序決定ステップと
    を含むことを特徴とするタスク管理プログラム。
  10. それぞれ定められた完了目標時刻以前に完了すべき複数のタスクの実行順序を決定し、各タスクを実行するプログラム実行装置で用いられるタスク管理プログラムが記録されているコンピュータ読み取り可能な記録媒体であって、
    各タスクには、階層関係を有する複数の種類の優先度が割り当てられており、前記プログラム実行装置は、すでに生成されているタスク毎に、当該タスクに割り当てられた複数の種類の優先度に基づいて定まるメモリ空間上の位置において当該タスクを識別する識別子を記憶している記憶手段を備え、
    前記タスク管理プログラムは、
    新たに生成されたタスクに割り当てられた複数の種類の優先度、及び当該タスクを識別する識別子を受け付ける受付ステップと、
    前記記憶手段において、前記受付けた複数の種類の優先度に基づいて定まるメモリ空間上の位置に前記受付けた識別子を書き込む書込ステップと、
    上位の階層の優先度が同一の場合、下位の階層の優先度に応じて、各識別子により識別されるタスクの実行順序を決定する順序決定ステップと
    を含むことを特徴とする記録媒体。
  11. それぞれ定められた完了目標時刻以前に完了すべき複数のタスクの実行順序を決定し、各タスクを実行する携帯電話機であって、
    各タスクには、階層関係を有する複数の種類の優先度が割り当てられており、すでに生成されているタスク毎に、当該タスクに割り当てられた複数の種類の優先度に基づいて定まるメモリ空間上の位置において当該タスクを識別する識別子を記憶している記憶手段と、
    新たに生成されたタスクに割り当てられた複数の種類の優先度、及び当該タスクを識別する識別子を受け付ける受付手段と、
    前記記憶手段において、前記受付けた複数の種類の優先度に基づいて定まるメモリ空間上の位置に前記受付けた識別子を書き込む書込手段と、
    上位の階層の優先度が同一の場合、下位の階層の優先度に応じて、各識別子により識別されるタスクの実行順序を決定する順序決定手段と
    を備えることを特徴とする携帯電話機。
JP2002218869A 2002-07-26 2002-07-26 プログラム実行装置 Expired - Fee Related JP4015898B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2002218869A JP4015898B2 (ja) 2002-07-26 2002-07-26 プログラム実行装置
US10/620,697 US7418704B2 (en) 2002-07-26 2003-07-17 Program execution apparatus
CNB031328946A CN100354827C (zh) 2002-07-26 2003-07-25 程序执行装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002218869A JP4015898B2 (ja) 2002-07-26 2002-07-26 プログラム実行装置

Publications (2)

Publication Number Publication Date
JP2004062463A JP2004062463A (ja) 2004-02-26
JP4015898B2 true JP4015898B2 (ja) 2007-11-28

Family

ID=31492084

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002218869A Expired - Fee Related JP4015898B2 (ja) 2002-07-26 2002-07-26 プログラム実行装置

Country Status (3)

Country Link
US (1) US7418704B2 (ja)
JP (1) JP4015898B2 (ja)
CN (1) CN100354827C (ja)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1774696B (zh) * 2003-02-11 2010-04-28 汤姆森特许公司 通过主处理器实现设备之间的异步串行通信的方法和系统
JP2005310056A (ja) * 2004-04-26 2005-11-04 Mitsubishi Electric Corp プログラム実行制御方式
JP4622474B2 (ja) * 2004-11-17 2011-02-02 横河電機株式会社 フィールド機器及びこれを用いたシステム
US8510737B2 (en) * 2005-01-07 2013-08-13 Samsung Electronics Co., Ltd. Method and system for prioritizing tasks made available by devices in a network
TWI337495B (en) * 2006-10-26 2011-02-11 Au Optronics Corp System and method for operation scheduling
US7761642B2 (en) * 2006-12-22 2010-07-20 Lsi Corporation Serial advanced technology attachment (SATA) and serial attached small computer system interface (SCSI) (SAS) bridging
WO2008096891A1 (ja) * 2007-02-09 2008-08-14 Ntt Docomo, Inc. 端末装置及びソフトウエア検査方法
US8301605B2 (en) * 2007-12-17 2012-10-30 International Business Machines Corporation Managing maintenance tasks for computer programs
US20100058120A1 (en) * 2008-08-26 2010-03-04 Microsoft Corporation Dynamic Inline Sequence Interface
US8683471B2 (en) * 2008-10-02 2014-03-25 Mindspeed Technologies, Inc. Highly distributed parallel processing on multi-core device
US9703595B2 (en) * 2008-10-02 2017-07-11 Mindspeed Technologies, Llc Multi-core system with central transaction control
US8656404B2 (en) * 2008-10-16 2014-02-18 Palo Alto Research Center Incorporated Statistical packing of resource requirements in data centers
JP4655145B2 (ja) * 2008-12-16 2011-03-23 富士ゼロックス株式会社 プログラム及び情報処理装置
EP2290542B1 (en) * 2009-09-01 2013-03-27 Research In Motion Limited System and method for sequencing radio items for a multi downlink multi carrier receiver
US8213974B2 (en) * 2009-09-01 2012-07-03 Research In Motion Limited System and method for sequencing radio items for a multi downlink multi carrier receiver
CN101887383B (zh) * 2010-06-30 2013-08-21 中山大学 一种进程实时调度方法
IT1401647B1 (it) * 2010-07-09 2013-08-02 Campatents B V Metodo per monitorare cambi di configurazione di un dispostivo di controllo di una macchina automatica
WO2013001607A1 (ja) * 2011-06-28 2013-01-03 富士通株式会社 情報処理装置、管理プログラムおよび管理方法
US9380597B2 (en) * 2011-08-25 2016-06-28 Telefonaktiebolaget Lm Ericsson (Publ) Method and system for wireless communication baseband processing
CN104067309A (zh) * 2011-12-28 2014-09-24 英特尔公司 流水线化的图像处理序列发生器
US9183210B2 (en) * 2012-11-30 2015-11-10 International Business Machines Corporation Operating system control of directory events with dynamic program execution
KR101770191B1 (ko) 2013-01-30 2017-08-23 한국전자통신연구원 자원 할당 방법 및 그 장치
CN104424021A (zh) * 2013-08-29 2015-03-18 鸿富锦精密工业(深圳)有限公司 任务优先级设置系统及方法
CN104202239B (zh) * 2014-09-15 2018-07-31 合肥美的智能科技有限公司 通信方法、通信系统和冰箱
CN106712924B (zh) * 2015-11-16 2021-03-19 方正国际软件(北京)有限公司 一种实现通用有时序通讯的方法及装置
CN108829546B (zh) * 2018-06-21 2021-06-18 中国人民解放军战略支援部队信息工程大学 超时机制控制方法和装置
CN111243587A (zh) * 2020-01-08 2020-06-05 北京松果电子有限公司 语音交互方法、装置、设备及存储介质

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62284437A (ja) 1986-05-31 1987-12-10 Nec Corp タスク管理方式
US5117496A (en) * 1988-05-23 1992-05-26 Hewlett-Packard Company Method for recording and replaying mouse commands by recording the commands and the identities of elements affected by the commands
CA2034878C (en) * 1990-03-08 2002-04-02 Craig S. Hyatt Programmable controller communication module
US5437032A (en) 1993-11-04 1995-07-25 International Business Machines Corporation Task scheduler for a miltiprocessor system
JP3293122B2 (ja) * 1996-12-13 2002-06-17 ニプロ株式会社 プレフィルドシリンジ
US6324562B1 (en) * 1997-03-07 2001-11-27 Fujitsu Limited Information processing apparatus, multitask control method, and program recording medium
US6061709A (en) * 1998-07-31 2000-05-09 Integrated Systems Design Center, Inc. Integrated hardware and software task control executive
JP2000347883A (ja) * 1999-06-03 2000-12-15 Matsushita Electric Ind Co Ltd 仮想計算機装置
US6895583B1 (en) * 2000-03-10 2005-05-17 Wind River Systems, Inc. Task control block for a computing environment
US20010027463A1 (en) * 2000-03-22 2001-10-04 Fujitsu Limited Task priority decision apparatus and method, workflow system, work processing method, and recording medium
CN1146796C (zh) * 2000-07-18 2004-04-21 多思资讯(集团)有限公司 堆栈式寄存器堆及其控制方法
EP1182551B1 (en) * 2000-08-21 2017-04-05 Texas Instruments France Address space priority arbitration
US7155716B2 (en) * 2002-03-08 2006-12-26 Intel Corporation Weighted and prioritized task scheduler

Also Published As

Publication number Publication date
US20040054998A1 (en) 2004-03-18
US7418704B2 (en) 2008-08-26
JP2004062463A (ja) 2004-02-26
CN100354827C (zh) 2007-12-12
CN1475910A (zh) 2004-02-18

Similar Documents

Publication Publication Date Title
JP4015898B2 (ja) プログラム実行装置
JP3595073B2 (ja) 計算機システムおよびそのシステムで使用されるファイル管理方法
CN109766341B (zh) 一种建立哈希映射的方法、装置、存储介质
EP1309157A2 (en) Method for displaying data for multitasking operation in mobile telecommunication terminal
CN107122130B (zh) 一种数据重删方法及装置
JP2010134630A (ja) 情報処理装置、分割管理サーバ、情報処理方法、分割管理方法、プログラムおよび情報処理システム
CN110348236A (zh) 一种文件的操作权限设置方法、装置和存储介质
CN111930486A (zh) 任务选取数据处理方法、装置、设备及存储介质
KR100725412B1 (ko) 시간 경과에 따른 사용량 예측을 통해 저장 공간을관리하는 장치 및 방법
EP1422622A2 (en) Apparatus, method and program for contention arbitration
CN113467719A (zh) 数据写入方法及装置
JP5897527B2 (ja) 発話サーバ、発話方法およびプログラム
JP4277952B2 (ja) 競合調停装置、競合調停方法および競合調停プログラム
CN109101191A (zh) 数据存储方法、装置和存储介质以及电子设备
JP4481053B2 (ja) 通信機器、通信機器の制御方法、通信機器の制御プログラム
CN107870925B (zh) 一种字符串过滤方法和相关装置
JP2006528867A (ja) 電子デバイス接続のリソース管理
US7159019B2 (en) Information collection apparatus and method
JP3939223B2 (ja) メール送信サーバ、メール送信端末、メール送受信システム、およびメール送信方法
JP4411980B2 (ja) パケット送出の順序制御プログラム及び方法
JP2820088B2 (ja) Atmセル送出システム
JP2010218235A (ja) アーカイブ装置、分散管理装置および分散管理プログラム
JP2009194718A (ja) 情報構造化装置、情報構造化システム、及びプログラム
JP6482712B1 (ja) プログラム、情報処理装置、及び情報処理方法
JP3076168B2 (ja) 確率的探索方式

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050704

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070327

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070511

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070511

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070914

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100921

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4015898

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110921

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120921

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130921

Year of fee payment: 6

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees