JP2004280297A - タスク切換装置、方法及びプログラム - Google Patents

タスク切換装置、方法及びプログラム Download PDF

Info

Publication number
JP2004280297A
JP2004280297A JP2003068831A JP2003068831A JP2004280297A JP 2004280297 A JP2004280297 A JP 2004280297A JP 2003068831 A JP2003068831 A JP 2003068831A JP 2003068831 A JP2003068831 A JP 2003068831A JP 2004280297 A JP2004280297 A JP 2004280297A
Authority
JP
Japan
Prior art keywords
task
time slot
type
time
switching
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.)
Granted
Application number
JP2003068831A
Other languages
English (en)
Other versions
JP4750350B2 (ja
Inventor
Kunihiko Hayashi
▲邦▼彦 林
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 Holdings Corp
Original Assignee
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2003068831A priority Critical patent/JP4750350B2/ja
Priority to US10/796,213 priority patent/US7735087B2/en
Priority to CNB2004100399592A priority patent/CN1271517C/zh
Publication of JP2004280297A publication Critical patent/JP2004280297A/ja
Priority to US12/504,175 priority patent/US7950016B2/en
Priority to US13/080,847 priority patent/US8276156B2/en
Application granted granted Critical
Publication of JP4750350B2 publication Critical patent/JP4750350B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

【課題】各タスクの必要性能を満たすための優先度あるいは割当時間を指定するプログラム設計を容易にし、プログラム変更の柔軟性を有するタスク切換装置を提供する。
【解決手段】第1タイプのタスクのタスク管理ブロック210、220それぞれをタイムスロット情報110、120に1対1で割り当て、第2タイプの複数のタスク管理ブロック200、201、202を1つタイムスロット情報100に多対1で割り当て、タイムスロット情報100のタイムスロットに切り換えた場合に優先度に従って1つのタスク管理ブロックを選択し、タイムスロット情報100以外のタイムスロットに切り換えた場合にそれに割り当てられたタスク管理ブロックを選択し、そのタスクを実行させる。
【選択図】図2

Description

【0001】
【発明の属する技術分野】
本発明は、オペレーティングシステムにおけるタスク切換に関し、特にタスクが割り当てられたタイムスロットを切り換えることによりプロセッサにおいて実行すべきタスクを切り換えるタスク切換装置に関する。
【0002】
【従来の技術】
オペレーティングシステムの主な機能は、ハードウェア管理、タスク管理、データ管理及び入出力管理である。なかでもタスク管理はタスクの実行順序を管理するものであり、CPUやメモリ、入出力装置等を効率良く動作させるための重要な機能である。
【0003】
タスクとは、プログラムの起動とその実行、終了などの流れを一括管理する制御単位のことである。 オペレーティングシステムの管理下で動作するプログラムはタスクとして扱われ、プログラムの実行に関するオペレーティングシステムの操作はすべてタスクを単位として行われる。
【0004】
タスクの実行順序を決定するアルゴリズムの一つとして、時分割スケジューリング法や優先度による切換方法がある。時分割スケジューリング法は、タスクにある実行時間を割り当て、割り当てられた時間の間はプロセッサの実行権がタスクに与えられ、割り当てられた時間が過ぎると別のタスクに実行権を移す方法である。これによりすべてのタスクに平等かつ決められた時間で実行権が割り当てられる。
【0005】
また、優先度による切換方法に関して、特許文献1及び2はいずれもタスクの優先度に従ってタスクを切り換えるスケジューリング装置を開示している。
【0006】
【特許文献1】
特開2000−20323号公報
【0007】
【特許文献2】
特開平4−101233号公報
【0008】
【発明が解決しようとする課題】
しかしながら、上記従来技術によれば、各タスクの必要性能を確保するためにはプログラマが個々のタスク優先度を指定する点でプログラム設計が難しく、また一度設計してしまうと変更の柔軟性が乏しいという問題がある。
【0009】
本発明では、上記問題を解決するために、各タスクの必要性能を満たすための優先度を指定するプログラム設計を容易にし、プログラム設計の柔軟性を有するタスク切換装置を提供することを目的とする。
【0010】
【課題を解決するための手段】
上記の目的を達成するために、本発明のタスク切換装置は、プロセッサにおいてタイムスロットを切り換えることによりタイムスロットに割り当てられたタスクの実行を切り換えるタスク切換装置であって、第1タイプの複数のタスクのそれぞれを1つのタイムスロットに割り当て、第1タイプとは異なる第2タイプの複数のタスクを1つの特定のタイムスロットに割り当てる割当手段と、切り換え後のタイムスロットが前記特定のタイムスロットでない場合、当該タイムスロットに割り当てられたタスクを選択し、
切り換え後のタイムスロットが前記特定のタイムスロットでない場合、当該タイムスロットに割り当てられたタスクを選択し、切り換え後のタイムスロットが前記特定のタイムスロットである場合、第2タイプの複数のタスクから1つのタスクを選択して実行させるタスク選択タスク選択手段とを備える。
【0011】
この構成によれば、第1タイプのタスクは1対1でタイムスロットを割り当てられる結果、第1タイプのタスクについては全てのタイムスロットを含む一周期内で少なくとも1回は選択実行されるので、継続した処理性能が保証される。他方、第2タイプのタスクは多対1で1つのタイムスロットを割り当てられる結果、継続して処理性能が保証されない。その結果、プログラマは、継続して処理性能を満たす必要のあるタスクに対しては優先度を考慮する必要もなく第1タイプに分類するだけでよい。また、プログラマは、処理性能を要求しないタスクに対しては第2タイプに分類すればよい。これにより、全てのタスクに対して個別に優先度を付与する必要がなくなり、処理性能を確保するためのプログラム設計を容易にすることができ、プログラム設計の柔軟性を確保することができる。
【0012】
ここで、前記第2タイプのタスクは優先度を有し、前記タスク選択手段は第2タイプの複数のタスクのうち優先度に従って1つのタスクを選択する構成としてもよい。
【0013】
この構成によれば、第2タイプのタスクは優先度の高いものから実行されるので、プログラマは、第1タイプのタスクに対して優先度を考慮する必要がなく、継続した処理性能を要求しないタスクを第2タイプに分類して優先度を付与すればよいので、プログラム設計及び変更を容易にすることができる。
【0014】
また、前記割当手段は、予め定められた一周期の時間から第1タイプのタスクが割り当てられたタイムスロットの合計時間を引いた残り時間を前記特定のタイムスロットの時間とするように構成してもよい。
【0015】
この構成によれば、第2タイプのタスクは上記の残り時間に実行されるので、第2タイプのタスクの実行により第1タイプの個々のタスクの処理性能に影響を及ぼすことを極力排除することができる。
【0016】
さらに、前記割当手段は、第1タイプの新たなタスクをタイムスロットを割り当てる毎に、前記残り時間を再計算して前記特定のタイムスロットの時間とする構成としてもよい。
【0017】
この構成によれば、第1タイプの個々のタスクの処理性能を保証した上で、第2タイプのタスクに対して最大限の残り時間を動的に割り当てることができる。また、前記第1タイプのタスクは割当時間の指定を有するタスクであり、前記割当手段は、第1タイプの新たなタスクを追加しようとする場合、既に割当済のタスクの割当時間の合計と新たなタスクの割当時間との総和が一周期の時間を超えていれば、当該新たなタスクのタイムスロット割り当てを拒否する構成としてもよい。
【0018】
この構成によれば、第1タイプの新たなタスクの追加を排除してまで既存の第1タイプのタスクの処理性能を保証することができる。
さらに、前記タスク切換装置は、タスクによりアクセス可能な資源について、何れかのタスクからのアクセスによって資源がロック状態にあるか否かを示すロック情報を記憶する記憶手段と、実行中のタスクがロック状態の資源をアクセスしようしたとき、当該タスクを実行可能状態から待ち状態に変更し、当該資源のロック状態が解除されたとき待ち状態のタスクを実行可能状態に変更する変更手段とを備え、前記タスク選択手段は、待ち状態にあるタスクを選択対象から除外する構成としてもよい。
【0019】
また、前記タスク切換装置は、さらに、第1タイプ及び第2タイプのタスクのうち実行可能状態のタスクが1つも存在しない場合に、前記プロセッサを省電力状態に移行させる移行手段を備える構成としてもよい。
【0020】
ここで、前記プロセッサは、タスクのコンテキストを保持するためのレジスタセットを少なくとも2つ備え、前記タスク切換装置は、さらに、レジスタセットの1つを実行中のタスクの使用に供し、他の1つのレジスタセットに対して次に実行すべきタスクのコンテキストをバックグラウンド処理により復帰させ、タイムスロットの切換時にレジスタセットを切り換える切換手段を備える構成としてもよい。
【0021】
この構成によれば、コンテキストの退避及び復帰をプログラム的に実行する代わりにレジスタセットの切換を行えばよいので、タスク切換を高速化することができる。また、次に実行すべきタスクのコンテキストをバックグラウンド処理により復帰させるので、プロセッサ時間のアイドル処理などを効率よく利用してタスク切換えの高速化を図ることができる。
【0022】
また、本発明のタスク切換方法およびそのプログラムについても、上記と同様の構成であり、同様の作用及び効果を有している。
【0023】
【発明の実施の形態】
〔全体構成〕
図1は本発明の実施の形態におけるタスク切換を行うプログラム実行装置の主要部の構成を示すブロック図である。同図は、プロセッサにおいてオペレーティングシステムの一部の機能としてタスク切換を行うソフトウェアを実行することにより実現される機能を模式的に表している。プロセッサのハードウェア構成は、一般的なものでよい。
【0024】
このプログラム実行装置は、割当時間の指定を有するタスクと優先度を有するタスクの2種類のタスクを1つのプロセッサ内で扱い、前者のタスクの必要性能を確保し、後者のタスクを優先度に従って選択実行するよう構成されている。
【0025】
同図のようにプログラム実行装置は、タスクスケジューリング部10、プログラム記憶部20、タイマ制御部30及び実行制御部40より構成される。
タスクスケジューリング部10は、2種類のタスクのスケジューリングを行う。すなわち、前者のタスクに対して、タスクスケジューリング部10は、割当時間の指定を有するタスクのそれぞれに1つのタイムスロットを割り当て、予め定められた周期内において各タスクを少なくとも1回選択する時分割スケジューリングを行う。後者のタスクに対して、タスクスケジューリング部10は、一周期内における上記のタイムスロットの合計時間の残り時間において、優先度を有する複数タスクのうち1つのタスクを選択するスケジューリングを行う。ここで、タイムスロットとは、プロセッサにおけるプログラムを実行する時間を周期内において割当時間ごとに区切ったものである。
【0026】
プログラム記憶部20は、タスクスケジューリング部10によるスケジューリング対象となるタスクの本体であるプログラムとプログラムに関する情報とを記憶する。
【0027】
タイマ制御部30は、タスクスケジューリング部10から割当時間を設定される毎に、時間のカウントを開始し当該割当時間に達したときにタイムアウトを出力する。このタイムアウトは、タイムスロットの切り換えタイミングを知らせるために、タスクスケジューリング部10に通知される。
【0028】
実行制御部40は、タスクスケジューリング部10に選択されたタスクを実行する。実行制御部40はプロセッサのタスクを実行するハードウェアに相当する。
【0029】
〔タスクスケジューリング部10の構成〕
タスクスケジューリング部10は、タスク受付部11、タイムスロット記憶部12、タスク記憶部13、タイムスロット切換部14、タスク選択部15、mutex記憶部16及びmutex制御部17から構成される。
【0030】
<1.タスク受付部11>
タスク受付部11は、ユーザ操作やユーザプログラム等からの指示に従ってタスクの追加要求を受け付け、プログラム記憶部20から当該タスクに関する情報として、「タスク情報」、「優先度」及び「割当時間」を読み出して、当該タスクがスケジューリングの対象となるようにタイムスロット情報やタスク管理ブロックを生成し、タイムスロット記憶部12、タスク記憶部13に設定する。
【0031】
ここで、「タスク情報」は、プログラム開始アドレスとスタックポインタからなる。プログラム開始アドレスは、タスクが書き込まれた先頭のアドレスである。スタックポインタは、タスクの切換が生じた際にタスクの状態を一時的に退避する格納場所を示す位置情報である。
【0032】
「優先度」は、割当時間の指定を有するタスクか優先度を有するタスクかを区別する基準であり、且つ後者の場合の優先度を示すという2つの意味を持つ。
すなわち、優先度0のタスクは割当時間を有するタスク(以下種別Aのタスクと呼ぶ)、優先度が0でないタスクは優先度を有するタスク(以下種別Bのタスクと呼ぶ)であり、以下の意味を持つ。
【0033】
種別Aのタスクは、割当時間の指定を有するタスクであり、タスクスケジューリング部10において、タイムスロットに1対1で対応して割り当てられ、当該タイムスロットの割当時間の間は確実に実行される。実行時間の長さで処理性能が定まるので、いわゆるタイムドリブン型と呼ばれるタスクを種別Aとすべきである。例えば、動画データのデコード/エンコード処理、音声データのデコード/エンコード処理など継続して一定の処理性能を必要とするタスクを種別Aとすることが望ましい。
【0034】
種別Bのタスクは、他の種別Bのタスクと共に1つのタイムスロットに割り当てられ、当該タイムスロットが保持する割当時間の間、優先度の高いタスクが実される。ここでは、優先度は、高い方から順に1、2、3、・・・という値をとるものとする。いわゆるイベントドリブン型と呼ばれるタスクを種別Bとすべきである。例えば、ユーザ操作をイベントとして文字や静止画からなるメニュー表示を行う処理など継続して一定の処理性能を必要としないが不定期に随時発生するタスクを種別Bとすることが望ましい。この場合、優先度は例えば厳しい応答速度を要求されるイベントを処理するタスクほど高くすればよい。
【0035】
「割当時間」は、タスクが種別Aのときにのみ有効で、タスクに対応するタイムスロットの割当時間を指定する値である。この割当時間と優先度とは、プログラムによって指定されたものとする。
【0036】
また、タスク受付部11は、ユーザ操作やユーザプログラム等からの指示があった場合や、タスクの実行が終了した場合に、タイムスロット記憶部12、タスク記憶部13に記憶されている当該タスクのタイムスロット情報やタスク管理ブロックを削除する。
【0037】
<2.タイムスロット記憶部12>
タイムスロット記憶部12は、タスクの切り換えの基準となるタイムスロットを生成するためのタイムスロット情報を記憶する。
【0038】
図2は、タイムスロット記憶部12内のタイムスロット情報と、タスク記憶部13内のタスク管理ブロックの具体例を示す図である。同図のように、タイムスロット記憶部12は、複数のタイムスロット情報100、110、120、・・・を記憶する。タイムスロット情報100は、種別Bの複数のタスクが割り当てられたタイムスロットを示す。このタイムスロット情報100は、種別Bのタスクが存在しなくても予め生成しておいてもよい。これ以外のタイムスロット情報110、120、・・・は、種別Aのタスクが割り当てられたタイムスロットを示す。
【0039】
タイムスロット情報100は、タイムスロットの1つに対応し、割当時間100a、フラグ100b及びポインタ100cからなる。他のタイムスロット情報も同様である。
【0040】
割当時間は、当該タイムスロットに対応するタスクが実行することができる時間を示す。タスクが実際に実行された時間が割当時間に達すると次のタイムスロットに切り換られる。種別Aのタスクに対応する割当時間110a、120aは、タイムスロット情報の生成と同時に設定される。種別Bの複数タスクに対応する割当時間100aは、周期レジスタ18に保持された一周期の時間から、他のタイムスロットの割当時間110a、120a・・・の合計時間を引いた残り時間としている。この残り時間はタスクの追加、削除がある毎に変化する。
【0041】
実行フラグは、当該タイムスロットが有効か無効かを示す。タイムスロット情報の生成時には有効と設定され、タスク実行中にアクセス先の資源がロック状態にあって待ち状態になった時に無効と設定され、その後待ち状態から実行可能状態に戻った時に有効と設定される。実行フラグが無効を示す場合は、タイムスロット切換部14によってタイムスロット情報が存在しないものとみなされる。
【0042】
ポインタは、当該タイムスロットに対応するタスク管理ブロックを示している。
これらのタイムスロット情報100、110、120…は配列を構成し、その順序はタイムスロットの生成順を表すものとする。
【0043】
<3.タスク記憶部13>
タスク記憶部13は、タイムスロットに割り当てれらたタスクに対応するタスク管理ブロック200、201、・・・を記憶する。タスク管理ブロック200、201、・・・は、それぞれ1つのタスクに対応し、当該タスクを管理するための情報である。
【0044】
タスク管理ブロック200は、タスク情報200a、優先度200b、リンクアドレス200cからなる。
タスク情報200aは、プログラム開始アドレス(又はプログラムを再開すべきアドレス)及びスタックポインタを含む。タスク管理ブロックの生成時には、タスク受付部によって入力された前記タスク情報を保持する。タスク切換時には、中断されたタスクの実行アドレス及び当該時点でのスタックポインタの値を示す。
【0045】
優先度200bは、当該タスクの優先度を示す。
リンクアドレス200cは、当該タスクが要素として実行キュー又は待ちキューに接続された場合に、実行キュー又は待ちキューにおける次の要素であるタスク管理ブロックへのポインタを保持する。
【0046】
具体的には、種別Aのタスクに対応するタスク管理ブロックでは、リンクアドレス(210c等)は、当該タスクが実行可能状態である場合はnull(無効)であり、当該タスクが待ち状態である場合は待ちキューの次の要素を指すポインタである。種別Bにのタスクに対応するタスク管理ブロックでは、リンクアドレス200cは、当該タスクが実行可能状態である場合は実行キューを形成する次の要素を指すポインタであり、当該タスクが待ち状態である場合は待ちキューを形成する次の要素を指すポインタである。
【0047】
<4. タイムスロット切換部14>
タイムスロット切換部14は、現在のタイムスロットにおいてタスクの実行時間が割当時間に達したときに、タイムスロットの切換を行う。割当時間に達したかどうかはタイマ制御部30によるタイムアウトによって通知される。通知を受けたタイムスロット切換部14は、次のタイムスロット情報を選択する。本実施例では、次に選択されるタイムスロット情報は、その配列順による。タイムスロット切換部14は、選択したタイムスロット情報から割当時間を取得してタイマ制御部30に設定する。これにより次のタイムスロットの割当時間のカウントが開始される。
【0048】
<5. タスク選択部15>
タスク選択部15は、前記タイムスロット切換部14のタイムスロット切り換え時に、及び実行中のプログラムからの指示があった時に、現在実行中のタスクの実行アドレス、スタックポインタ等を当該タスクのタスク管理ブロックにタスク情報として退避し、次に実行すべきタスクのタスク管理ブロックからタスク情報を取り出して、実行制御部40へ出力する。これと同時に、実行中のタスクのコンテキスト(レジスタデータ等)の退避と、次に実行すべきタスクのコンテテキストの復帰もなされる。これにより次に実行すべきタスクが実行状態になる。
【0049】
図4は、タイムスロット切換部14及びタスク選択部15によるタスク切換の様子を示す説明図である。同図において、Tは周期レジスタ18に保持された周期、t0は種別Bのタスクに対応するタイムスロット情報100に対応するタイムスロットであり、その長さは割当時間を示す。t1〜tnはそれぞれ種別Aのn個のタスクに対応するn個のタイムスロット情報110、120・・・に対応するタイムスロットであり、その長さは割当時間を示す。Sは、タイムスロット切換部14及びタスク選択部15によってタスク切換を行うスケジューリング処理を示す。同図のように、タイムスロットt0を開始時のスケジューリング処理では、種別Bの複数のタスクB1、B2、B3のうち優先度の最も高いタスクB1が選択され実行される。タイムスロットt1の開始時のスケジューリング処理では、タイムスロット情報110に対応するタスクA1が実行される。タイムスロットt2〜tnについても同様である。このように種別Aのタスクは1つの周期Tの間に1回は必ず実行される。
【0050】
また、図5は、タイムスロットt0において実行中のタスクが終了した場合のタスク切換の様子を示す説明図である。同図においてタスクB1は、自身の処理を完了し場合、タスク選択部15にその旨を通知する。この通知によって、タスクB1の削除処理(図中のE)と、タスクの切換処理(同S1)とがなされる。削除処理Eでは、タスクB1が終了したので、タスクB1のタスク管理ブロックが削除される。切換処理S1では、タスクB1のタスク管理ブロック削除後に最も優先度の高いタスクB2がタスク選択部15によって選択され、実行される。このように、種別Bの複数のタスクが割り当てられたタイムスロットt0では、優先度の高いタスクから順に実行される。
【0051】
<6. mutex記憶部16>
mutex(mutual exclusion:相互排除)は、2つ以上のタスクが1つの資源を競合してアクセスする場合に調停を行う機構をいい、mutex制御部17に含まれる機能であり、資源のロック状態及びロック解除状態を管理するオブジェクト(プログラム)によって実現される。この機構は、2つ以上のタスクからのアクセスが競合する可能性のある資源毎に設けられる。あるタスクがmutexのロック操作に成功すると、mutexは(又は資源は)ロック状態になり他のタスクがロック操作を行ってもロック解除状態になるまで待たされることになる。これによりロック操作に成功しタスクは対応する資源を専有することができる。ロック操作を行ったタスクがロック解除操作を行うと、他のタスクがロック操作を行うことができるようになる。実行中のタスクは、資源をアクセスする場合、当該資源に対応するmutexをロック操作に成功した場合のみ資源をアクセスすることができる。既にロック状態になっている場合には、ロック解除状態になるまで待たされることになる。
【0052】
図3は、mutex記憶部16に記憶されるmutex管理ブロック300、301・・・と、タスク記憶部13に記憶される待ちキューとを示す図である。
同図においてmutex管理ブロック300、301・・・は、2つ以上のタスクからのアクセスが競合する可能性のある個々の資源に対応して設けられる。
【0053】
mutex管理ブロック300はロック変数300a及びポインタ300bを含む。
ロック変数300aは、2つの状態(1:ロック状態、0:ロック解除状態)の何れかを示す。初期値は0であり、ロック解除状態からロック状態にするにはタスクがロック操作を行う必要がある。ロック状態からロック解除状態にするには、ロック操作を行ったタスクのみが操作を許される。
【0054】
ポインタ300bは、ロック状態においてロック操作を行ったタスク(ロック操作に失敗したタスク)を示す待ちキューの先頭のタスク管理ブロックを指す。待ちキューに接続されたタスク管理ブロック200’、201’・・・は、ロック操作に失敗したタスクに対応し、それぞれリンクアドレス200’c、201’c・・・によって順に接続された待ちキューを形成する。
【0055】
<7. mutex制御部17>
mutex制御部17は、mutexのロック操作及びロック解除操作が行われるときに、ロック変数の操作を行うとともに、タスク選択部15へのタスク管理ブロックの操作要求やタイムスロット切換部14への通知及び実行フラグの操作要求を行う。
【0056】
図6は、種別Bのタスクがロック操作に失敗した場合の様子を示す説明図である。同図では、タイムスロットt0において実行中のタスクB1がアクセスしようとする資源に対応するmutexに対してロック操作(図中のL:ロック処理)を行って、失敗した場合を示している。当該mutexが既にロック状態である場合にタスクB1はロック操作に失敗することから、同図のようにロック処理Lによってタスク記憶部13の実行キューから待ちキューに移動させられ、さらに、タスク切換処理S1により、タスクB2に切り換えられる。タスクB1は、当該mutexがロック状態からロック解除状態になるまで、実行キューから除外されるので、スケジューリングの対象から除外される。
【0057】
このように種別Bのタスクに対応するタイムスロットt0では、実行中のタスクが待ち状態になった場合に、次順位のタスクに切り換えられる。
また、タスクB1がロック処理においてロック操作に成功した場合は、タスクB2に切り換えられることなく、タイムスロットt0の間、実行を続ける(資源にアクセスする)ことになる。
【0058】
図7は、種別Aのタスクがロック操作に失敗した場合の様子を示す説明図である。同図では種別AのタスクA2がロック操作に失敗して待ちキューに移動させられ場合、タイムスロットt2の割当時間に達していなくても、スケジューリング処理(同図S)によりタイムスロットが切り換えられる。種別Aのタスクに対応するタイムスロットにはタスクが1つしか割り当てられていないから、タイムスロットの残り時間があってもタイムスロットを切り換えている。
【0059】
また、タスクA2がロック操作に成功した場合には、タイムスロットt2の割当時間に達した時に次のタイムスロットに切り換えられる。
図8は、タスクがロック解除する場合の様子を示す説明図である。同図に示すように実行中のタスクA1がロック状態にあるmutexをロック解除した場合、ロック解除処理Rによって当該mutexに対応する待ちキューRのタスクB1は実行キューBに戻される。これによりタスクB1は、それ以後に対応するタイムスロットt0が選択された場合に実行されることになる。
【0060】
図9は、タスクがロック解除する場合の様子を示す他の説明図である。同図では実行中のタスクA2がロック状態にあるmutexをロック解除した場合、ロック解除処理Rによって当該mutexに対応する待ちキューSのタスクB2は実行キューBに戻される。図8とは異なり、タスクB2は、タスクB1とB3の間に戻されている。これは、優先度の順に並ぶように実行キューに戻しているからである。このケースは、タスクB2が待ちキューにある間に、それよりも優先度の高いタスクB1が生成された場合などにあたる。これ以降にタイムスロットt0が選択された場合、優先度の最も高いタスクB1が選択されて実行されることになる。
【0061】
〔処理の詳細〕
以下、本発明のプログラム実行装置における処理の詳細として、スケジューリング処理(図4〜図9中のS)、mutexロック処理(図6、図7中のL)及びmutexロック解除処理(図8、9中のR)、タスク切換処理(図5、図6中のS1)、タスク追加処理、タスク終了処理(図5中のE)について詳細に説明する。
【0062】
<1. スケジューリング処理>
図10は、スケジューリング処理の詳細を示すフローチャートである。同図のスケジューリング処理は、タイマ制御部30がタイムアウトをタイムスロット切換部14に通知したとき、及び、実行中のタスクがロック操作に失敗したとき(図7参照)に呼び出されて開始する。図中、iは実行フラグが無効になっているタイムスロット情報をカウントするための変数、(n+1)は存在するタイムスロット情報の数を表す。
【0063】
まず、タイムスロット切換部14は、カウンタとして用いる変数iを0に初期化し(S401)、現在実行しているタスクの状態をタスク管理ブロックに退避する(S402)。
【0064】
次に、タスク選択部15は、変数iに1を加算し(S403)、タイムスロット情報の配列における次順のタイムスロット情報を選択し、次の要素がない場合は、タイムスロット情報配列の先頭の要素を選択し、選択したタイムスロット情報を取得する(S404)。さらに、タイムスロット切換部14は、選択したタイムスロット情報に含まれる割当時間を取り出し、タイマ制御部30に設定する(S405)。これにより、タイマ制御部30はカウントを開始し、割当時間に達しタイムアウトするまでカウントする。
【0065】
さらに、タイムスロット切換部14は、取得したタイムスロット情報がタイムスロット情報100であるか否かを判定する。つまり次に実行すべきタスクが種別Bであるか種別Aであるかを判定する(S406)。
【0066】
判定の結果が種別Aである場合には、当該タイムスロット情報中のポインタが指すタスク管理ブロックを取得し(S407)、タイムスロット情報中の実行フラグが1(有効)であれば(S408)、タスク管理ブロック中のタスク情報に従って、当該タスクの状態を復帰させる(S411)。これにより種別Aのタスクに切り換えられる。
【0067】
また、判定の結果が種別Bである場合には、タイムスロット切換部14は、タイムスロット情報100中のポインタにタスク管理ブロックの実行キューが接続されているが否か(ポインタが有効か無効か)を判定する(S412)。実行キューが接続されていると判定された場合には、優先度が最も高い先頭のタスク管理ブロックを取得し(S413)、当該タスク管理ブロック中のタスク情報に従って、当該タスクの状態を復帰させる(S411)。これにより種別Bのタスクのうち最も高い優先度のタスクに切り換えられる。また、実行キューが接続されていないと判定された場合は、実行可能な種別Bのタスクが存在しない。この場合、次のタイムスロット情報を選択するためにS403へ戻る。
【0068】
上記S408において実行フラグが無効であれば(S408:no)、タイムスロット切換部14は再度S403、S404に戻って(S409:no)次のタイムスロットを選択する。さらに、この繰り返しによりn+1個のタスク管理情報が無効であった場合(S409:yes)、つまり、実行可能なタスクが1つも存在しない場合には、プログラム実行装置を省電力状態に移行させる(S410)。
【0069】
このように、タスクスケジューリング部10によるスケジューリング処理では、種別Aのタスクと種別Bのタスクとでは異なるスケジューリングをしている。すなわち、タスクスケジューリング部10は、種別Aのタイムスロット(タイムスロット情報1、2、・・に対応するタイムスロット)が選択された場合、当該タイムスロットに1つだけ割り当てられた種別Aのタスクに切り換える。また、タスクスケジューリング部10は、種別Bのタスクが割り当てられているタイムスロット(タイムスロット情報100に対応するタイムスロット)が選択された場合、種別Bの複数のタスクのうち優先度の最も高いタスクに切り換える。
【0070】
また、図5及び図6に示した切換処理S1は、図10のスケジューリング処理とほぼ同様とすればよい。例えば、切換処理S1では図10スケジューリング処理におけるS412から開始するようにしてもよい。
【0071】
<2. タスク追加処理>
図11は、タスクスケジューリング部10におけるタスク追加処理の詳細を示すフローチャートである。このタスク追加処理はユーザ操作やユーザプログラム等からのタスク追加要求が発生した時点で開始される。
【0072】
タスク追加の要求を受けて、タスク受付部11は、追加すべきタスクのタスク情報、優先度及び割当時間を取得し(S501)、追加すべきタスクの種別が種別Aであるか種別Bであるか(当該優先度が0であるか0でないか)を判定する(S502)。
【0073】
追加すべきタスクが種別Aであると判定された場合、タスク受付部11は、タイムスロットの追加が可能かどうかを検査する。すなわち、タスク受付部11は、タイムスロット記憶部12から種別Aのタスクに対応するタイムスロット情報110、120、・・・、内の割当時間を読み出して、その合計を算出し、当該合計に追加すべきタスクの割当時間を加えた総和が、周期レジスタ18に保持された周期値を超えていなければ、当該タスクに対応するタイムスロットの追加が可能であると判定する(S503)。当該周期値を超えている場合は、追加要求に対するエラーを返す(S504)。
【0074】
追加可能と判定されたならば、タスク受付部11は、割当時間と実行フラグ(この時点では0)とを設定したタイムスロット情報を生成して(S505)、タスク情報と優先度とを含むタスク管理ブロックを生成する(S506)。
【0075】
タイムスロット情報とタスク管理ブロックが生成した後、タスク受付部11は、その対応関係を示すためにタスク管理ブロックの格納位置をタイムスロット情報のポインタにセットする(S507)。最後に当該タイムスロットの実行フラグを有効にする(S508)。
【0076】
上記S502において追加すべきタスクが種別Bであると判定された場合、タスク受付部11は、追加すべきタスクのタスク管理ブロックを生成し(S509)、タイムスロット情報100に対応する実行キューに追加する。実行キューへの追加は、実行キューの先頭から優先度の高い順に並ぶように、追加すべき位置を探索して当該タスク管理ブロックを追加する(S510)。また、タイムスロット情報100内の実行フラグに1をセットする(S508)。
【0077】
このように、追加処理では、既に存在するタイムスロット情報及びタスク管理ブロック(図2参照)に対して、追加すべきタスクが種別Aである場合は新たなタイムスロット情報と新たなタスク管理ブロックを追加し、追加すべきタスクが種別Bである場合は実行キューの優先度に応じた位置に新たなタスク管理ブロックを追加する。
【0078】
また、図5に示したタスク削除処理Eは、削除すべきタスクが種別Aである場合は、当該タスクに対応するタイムスロット情報とタスク管理ブロックを削除し、削除すべきタスクが種別Bである場合は、当該タスクに対応するタスク管理ブロック実行キューから削除する。
【0079】
<3.mutexロック処理>
図12は、mutex制御部17によるロック処理の詳細を示すフローチャートである。このロック処理は、図6及び図7のロック処理Lであり、実行中のタスクが資源の1つをアクセスする直前に当該資源に対応するmutexをロックするために、実行中のタスクによって呼び出される処理である。
【0080】
実行中のタスクに呼び出されるとmutex制御部17は、資源に対応するmutex管理ブロックに対してロック変数の読み出しと有効値”1”の書き込みを行う(S601)。この読み出しと書き込みとの間に、他のタスクが同じ処理を行うことによって値に矛盾が生じることを防ぐために、読み出しと書き込みを一命令で行っている。これは、プロセッサに実装されている read−modify−write 命令により実現可能である。
【0081】
読み出されたロック変数が0(ロック解除状態)ならば(S602:yes)、ロック操作の成功であり、上記書き込みにより”1”をセット済であるのでロック処理を終了する。これにより、ロック処理を呼び出したタスクに実行制御が復帰し、当該タスクはmutexに対応する資源を専有してアクセスすることが可能になる。
【0082】
読み出されたロック変数が1(ロック状態)ならば(S602:no)、すでに他のタスクにより資源が専有されているため、呼び出し元のタスクはロック解除状態になるまで、当該資源をアクセスすることができない。この場合、mutex制御部17は、呼び出し元のタスクが種別Aであるか種別Bであるかを判定する。
【0083】
判定結果が種別A(優先度が0)ならば(S603:yes)、対応するタイムスロット情報の実行フラグを無効にする(S604)。これにより当該タイムスロット情報はスケジューリング対象から除外される。加えて、mutex制御部17は呼び出し元のタスクのタスク管理ブロックを実行キューから外して、当該mutex管理ブロックの待ちキューにつなぐ(S605)。待ちキューにつなぐのは、どのmutexのロック解除待ち(どの資源の専有状態解除待ち)になっているかを示すためである。さらに、mutex制御部17は、スケジューリング処理Sを呼び出す(S606)。これにより当該タイムスロットは割当時間の途中でも強制的に次のタイムスロットに切り換わる(図7参照)。
【0084】
なお、S604において実行フラグを無効にする代わりに、タイムスロット情報のポインタが、種別Bのタスクの実行キューの先頭を指すように変更してもよい。これにより、種別Bのタスクが当該タイムスロットでも実行されることになる。
【0085】
判定結果が種別B(優先度が0でない)ならば(S603:no)、mutex制御部17は、呼び出し元のタスクのタスク管理ブロックをは実行キューから外す(S607)。これにより当該タスクはスケジューリング対象から除外される。さらに、どの資源の専有状態が解除されるのを待っていることを示すために、前記タスク管理ブロックを mutex 管理ブロックの待ちキューに追加する(S608)。さらに、タスクの切換処理S1を呼び出すことにより次順位のタスクに切り換える(S609)。これによりタイムスロットの割当時間の残り時間において次順位のタスクが実行される(図6参照)。
【0086】
<4.mutexロック解除処理>
図13は、mutex制御部17によるmutexロック解除処理の詳細を示すフローチャートである。この処理は、図8及び図9に示したロック解除処理Rであり、実行中のタスクが1つ資源のアクセスを終えたときに、当該実行中のタスクによって呼び出される処理である。
【0087】
呼び出されると、mutex制御部17は、当該資源に対応するmutex管理ブロックの待ちキューから先頭のタスク管理ブロックを取り出し(S701)、取り出したタスク管理ブロック内の優先度から待ち状態にあったタスクの種別を判定する(S702)。mutex制御部17は、優先度が0(種別A)ならば、取り出したタスク管理ブロックに対応するタイムスロット情報中の実行フラグを1(有効)にする(S703)。取り出したタスク管理ブロックに対応するタイムスロット情報は、例えば、実行フラグが0になっているタイムスロット情報に接続されているタスク管理ブロックのうち、取り出したタスク管理情報と同じタスク情報をもつタスク管理ブロックを検索することにより特定すればよい。さらに、mutex制御部17は、当該mutex管理ブロック内のロック変数に0を書き込む(ロック解除状態にする)(S705)。
【0088】
また、待ちキューから取り出したタスク管理ブロックの優先度が0でない(種別B)ならば、mutex制御部17は、当該タスク管理ブロックを種別Bのタスクの実行キューに追加する。実行キューへの追加は、先頭から優先度の高い順に並ぶ位置に追加し(S704)、当該mutex管理ブロック内のロック変数に0を書き込む。
【0089】
このように、待ち状態になっていたタスクは、実行可能状態に戻るので、スケジューリングの対象となり、次に実行状態になったとき再度資源のロック操作を行うことができる。
【0090】
以上説明してきたように本実施の形態におけるプログラム実行装置によれば、種別Aのタスクは1対1でタイムスロットを割り当てられる結果、一周期内で必ず選択実行されるので継続して処理性能を保証することができる。他方、種別Bのタスクは多対1で1つのタイムスロットを割り当てられる結果、継続して処理性能が保証されないが、優先度の高いものから実行されることになる。その結果、プログラマは、継続して処理性能を満たす必要のあるタスクに対しては優先度を考慮する必要もなく種別Aに分類するだけでよく、処理性能を要求しないタスクに対しては種別Bに分類すればよい。これにより、全てのタスクに対して個別に優先度を付与する必要がなくなり、処理性能を確保するためのプログラム設計を容易にすることができ、プログラム設計の柔軟性を確保することができる。
【0091】
なお、上記実施の形態では割当時間の指定はタスク情報に含まれている例を説明したが、タスク受付部11が外部から割当時間の指定を受ける構成としてもよい。また、割当時間の指定ない場合は既定の割当時間としてもよい。
【0092】
また、種別Aのタスクには1つのタスクに1つのタイムロットが割り当てられているが、1つのタスクに2つ以上のタイムスロットを割り当てる構成としてもよい。
【0093】
さらに、種別Bのタスクに対して、複数のタスクに1つのタイムロットが割り当てられているが、固定された2つ以上のタイムスロットの何れかに割り当てるようにしてもよい。例えば、優先度が奇数のタスクをタイムスロットAに、偶数のタスクをタイムスロットBに割り当てる構成としてもよい。
【0094】
また、mutex管理ブロック内にロックしたタスク名を記録する所有タスク欄を設け、ロック解除されたとき、所有タスク欄を待ちキューから取り出したタスク名に書き換えて、ロック変数を有効なままにしてもよい。この場合、所有タスク欄に記憶されたタスクはロック操作を行わなくてもよく、確実に資源を使用することができるようになる。
【0095】
最後に、プログラム実行装置の変形例を図14に示す。図1に示したプログラム実行装置の構成と比較して、タイムスロット切換と同時に切換可能な8つのレジスタセットRS0〜RS7を追加した点が異なっている。
【0096】
1つのレジスタセットは1つのタイムスロットに対応させて、タスクのコンテキストを保持する。
種別Bの複数のタスクは1つのレジスタセットに対応するので、種別Aのタスクのタイムスロットに切り換える際に、タスクスケジューリング部10は、上記実施の形態と同様にレジスタセットRS0に対する退避及び復帰を行う。
【0097】
種別Aのタスクは1つのレジスタセットに対応するので、種別Aのタスクのタイムスロットに切り換える際に、タスクスケジューリング部10は、コンテキストの退避及び復帰の代わりにレジスタセットの切換を行う。この場合、コンテキストの退避及び復帰が不要となるので、タスク切換を高速化することができる。このことから、周期レジスタ18の周期及びタイムスロットの割当時間を極端に短くすることができる。例えば、種別Aのタイムスロット時間を退避及び復帰に要していた時間程度まで短くすることができ、一周期を短縮することができる。
【0098】
なお、図14におけるレジスタセットの数は任意の個数でよく、タイムスロットの数がレジスセットの数よりも多い場合は、例えば、レジスタセットの何れかを複数のタイムスロットが兼用し、当該レジスタセットに対しては、タイムスロット切り換え時にコンテキストの退避及び復帰を行う構成とすればよい。
【0099】
また、図14においてレジスタセットの数を2としてもよい。その場合、レジスタセットの1つを実行中のタスクが使用する表レジスタセットとし、他の1つを次に実行されるタスクのコンテキストをバックグラウンド処理により復帰させておくための裏レジスタセットとしてもよい。この構成によれば、アイドル状態を利用してバックグラウンド処理によりコンテキストの復帰をすることができ、裏と表の2つのレジスタセットを効率よく切り換えることによる高速化を図ることができる。
【0100】
さらに、レジスタセットの数が2のとき、ロック解除によって待ち状態から実行可能状態に復帰したタスクが存在し 当該タスクが次に実行されるタスクである場合には、裏レジスタセットに復帰したコンテキストが次に実行されるタスクのコンテキストと食い違う可能性がある。これに対しては以下の構成とすればよい。すなわち、ロック解除処理(図13参照)においてS705の直前に、待ち状態から実行可能状態に復帰したタスクが存在することを知らせる通知フラグを当該タスクのタスク管理ブロック内に設定するステップを追加し、スケジューリング処理(図10参照)において、S411の直前に、通知フラグが待ち状態から復帰したタスクであることを示していれば、当該タスクのコンテキストを裏レジスタセットに復帰してから、レジスタセットの裏と表とを切り換えるステップを追加した構成とすればよい。
【0101】
【発明の効果】
以上説明してきたように本発明のタスク切換装置によれば、プログラマは、継続して処理性能を満たす必要のあるタスクに対しては優先度を考慮する必要もなく第1タイプに分類するだけでよく、処理性能を要求しないタスクに対しては第2タイプに分類すればよい。これにより、全てのタスクに対して個別に優先度を付与する必要がなくなり、処理性能を確保するためのプログラム設計を容易にすることができ、プログラム設計の柔軟性を確保することができるという効果がある。
【0102】
また、第2タイプのタスクは優先度の高いものから実行されるので、プログラマは、第1タイプのタスクに対して優先度を考慮する必要がなく、継続した処理性能を要求しないタスクを第2タイプに分類して優先度を付与すればよく、プログラム設計及び変更を容易にすることができる。
【図面の簡単な説明】
【図1】本発明の実施の形態におけるタスク切換を行うプログラム実行装置の主要部の構成を示すブロック図である。
【図2】タイムスロット記憶部内のタイムスロット情報と、タスク記憶部内のタスク管理ブロックの具体例を示す図である。
【図3】mutex記憶部に記憶されるmutex管理ブロックと、タスク記憶部に記憶される待ちキューとを示す図である。
【図4】タイムスロット切換部及びタスク選択部によるタスク切換の様子を示す説明図である。
【図5】種別Bのタスクが終了した場合のタスク切換の様子を示す説明図である。
【図6】種別Bのタスクがロック操作に失敗した場合の様子を示す説明図である。
【図7】種別Aのタスクがロック操作に失敗した場合の様子を示す説明図である。
【図8】タスクがロック解除する場合の様子を示す説明図である。
【図9】タスクがロック解除する場合の様子を示す他の説明図である。
【図10】スケジューリング処理の詳細を示すフローチャートである。
【図11】タスク追加処理の詳細を示すフローチャートである。
【図12】mutex制御部によるロック処理の詳細を示すフローチャートである。
【図13】mutex制御部によるmutexロック解除処理の詳細を示すフローチャートである。
【図14】プログラム実行装置の変形例の構成を示す図である。
【符号の説明】
10 タスクスケジューリング部
11 タスク受付部
12 タイムスロット記憶部
13 タスク記憶部
14 タイムスロット切換部
15 タスク選択部
16 mutex記憶部
17 mutex制御部
18 周期レジスタ
20 プログラム記憶部
30 タイマ制御部
40 実行制御部
100、110、120 タイムスロット情報
100a、110a、120a 割当時間
100b、110b、120b 実行フラグ
100c、110c、120c ポインタ
200、201、202、210、220 タスク管理ブロック
200a、201a、202a、210a、220a タスク情報
200b、201b、202b、210b、220b 優先度
200c、201c、202c、210c、220c リンクアドレス
300、301 mutex管理ブロック
300a、301a ロック変数
300b、301b ポインタ

Claims (16)

  1. プロセッサにおいてタイムスロットを切り換えることによりタイムスロットに割り当てられたタスクの実行を切り換えるタスク切換装置であって、
    第1タイプの複数のタスクのそれぞれを1つのタイムスロットに割り当て、第1タイプとは異なる第2タイプの複数のタスクを1つの特定のタイムスロットに割り当てる割当手段と、
    前記特定のタイムスロット以外のタイムスロットに切り換えられた場合に、当該タイムスロットに割り当てられたタスクを選択し、前記特定のタイムスロットに切り換えられた場合に、第2タイプの複数のタスクから1つのタスクを選択するタスク選択手段と、
    を備えることを特徴とするタスク切換装置。
  2. 前記第2タイプのタスクは優先度を有し、
    前記タスク選択手段は、第2タイプの複数のタスクのうち優先度に従って1つのタスクを選択する
    ことを特徴とする請求項1記載のタスク切換装置。
  3. 前記割当手段は、予め定められた一周期の時間から第1タイプのタスクが割り当てられたタイムスロットの合計時間を引いた残り時間を前記特定のタイムスロットの時間とする
    ことを特徴とする請求項1又は2記載のタスク切換装置。
  4. 前記割当手段は、第1タイプの新たなタスクをタイムスロットを割り当てる毎に、前記残り時間を再計算して前記特定のタイムスロットの時間とする
    ことを特徴とする請求項3記載のタスク切換装置。
  5. 前記第1タイプのタスクは割当時間の指定を有するタスクであり、
    前記割当手段は、第1タイプの新たなタスクを追加しようとする場合、既に割当済のタスクの割当時間の合計と新たなタスクの割当時間との総和が一周期の時間を超えていれば、当該新たなタスクのタイムスロット割り当てを拒否する
    ことを特徴とする請求項1記載のタスク切換装置。
  6. 前記タスク切換装置は、さらに
    タスクによりアクセス可能な資源について、何れかのタスクからのアクセスによって資源がロック状態にあるか否かを示すロック情報を記憶する記憶手段と、
    実行中のタスクがロック状態の資源をアクセスしようしたとき、当該タスクを実行可能状態から待ち状態に変更し、当該資源のロック状態が解除されたとき待ち状態のタスクを実行可能状態に変更する変更手段と、
    を備え、
    前記タスク選択手段は、待ち状態にあるタスクを選択対象から除外する
    ことを特徴とする請求項1記載のタスク切換装置。
  7. 前記タスク切換装置は、さらに、
    第1タイプ及び第2タイプのタスクのうち実行可能状態のタスクが1つも存在しない場合に、前記プロセッサを省電力状態に移行させる移行手段を備える
    ことを特徴とする請求項6記載のタスク切換装置。
  8. 前記プロセッサは、タスクのコンテキストを保持するためのレジスタセットを少なくとも2つ備え、
    前記タスク切換装置は、さらに、
    レジスタセットの1つを実行中のタスクの使用に供し、他の1つのレジスタセットに対して次に実行すべきタスクのコンテキストをバックグラウンド処理により復帰させ、タイムスロットの切換時にレジスタセットを切り換える切換手段を備える
    こと特徴とする請求項1から7の何れかに記載のタスク切換装置。
  9. タスクが割り当てられたタイムスロットを切り換えることによりプロセッサにおいて実行すべきタスクを切り換えるタスク切換装置であって、
    割当時間の指定を有する第1タイプのタスクに対して1つのタスクに1つのタイムスロットを割り当て、当該タイムスロット毎に対応するタスクの割当時間を含むタイムスロット情報を生成する第1生成手段と、
    優先度を有する第2タイプのタスクに対して複数のタスクを特定の1つのタイムスロットに割り当て、特定のタイムスロットの割当時間と優先度とを含む1つのタイムロット情報を生成する第2生成手段と、
    タイムスロットに割り当てられたタスク毎にタスクをアドレスを含むタスク管理情報を生成する第3生成手段と、
    生成されたタイムスロット情報とタスク管理情報とを対応させて記憶する記憶手段と、
    記憶手段に記憶されたタイムスロット情報を一周期内で少なくとも1つずつ選択する選択手段と、
    第1タイプのタスクが割り当てられているタイムスロット情報が選択された場合に、当該タイムスロット情報に対応するタスク管理情報が示すタスクを実行させ、第2タイプのタスクが割り当てられているタイムスロット情報が選択された場合に、当該タイムスロット情報に対応する複数のタスク管理情報から優先度に従って1つを選択して、選択したタスク管理情報が示すタスクを実行させる制御手段と、
    を備えることを特徴とするタスク切換装置。
  10. 前記記憶手段は、第2タイプのタスクのタスク管理情報を優先度の順に並べたキューとして記憶し、
    前記制御手段は、キューの先頭のタスク管理情報に対応するタスクを選択することを特徴とする請求項9記載のタスク切換装置。
  11. 前記第2生成手段は、前記周期と、第1タイプの全タスクの割当時間の合計との差分を、特定のタイムスロットの割当時間として前記特定のタイムスロット情報に設定する
    ことを特徴とする請求項10記載のタスク切換装置。
  12. 前記第2生成手段は、第1生成手段によって第1タイプの新たなタスクにタイムスロットが割り当てられる毎に、前記残り時間を再計算して前記特定のタイムスロットの割当時間とする
    ことを特徴とする請求項11記載のタスク切換装置。
  13. 前記記憶手段は、さらに、タスクによりアクセス可能な資源について、何れかのタスクからのアクセスによるロック状態であるか否かを示すロック情報を記憶し、
    前記タスク切換装置は、さらに、
    実行中のタスクがロック状態の資源をアクセスしようとしたとき、記憶手段に記憶された当該タスクのタスク管理情報とタイムスロット情報との対応関係を切り離し、当該タスク管理情報を待ちキューとして記憶させ、当該資源がロック状態を解除されたとき待ちキュー内のタスク管理情報をタイムスロット情報に対応させて記憶させるキュー管理手段を有する
    ことを特徴とする請求項12記載のタスク切換装置。
  14. 前記プロセッサは、タスクのコンテキストを保持するためのレジスタセットを少なくとも2つ備え、
    前記タスク切換装置は、さらに、
    レジスタセットの1つを実行中のタスクの使用に供し、他の1つのレジスタセットに対して次に実行すべきタスクのコンテキストをバックグラウンド処理により復帰させ、タイムスロットの切換時にレジスタセットを切り換えるレジスセットタ切換手段を備える
    こと特徴とする請求項13記載のタスク切換装置。
  15. プロセッサにおいてタイムスロットを切り換えることによりタイムスロットに割り当てられたタスクの実行を切り換えるタスク切換方法であって、
    第1タイプの複数のタスクのそれぞれを1つのタイムスロットに割り当て、第1タイプとは異なる第2タイプの複数のタスクを1つの特定のタイムスロットに割り当てる割当ステップと、
    前記特定のタイムスロット以外のタイムスロットに切り換えられた場合に、当該タイムスロットに割り当てられたタスクを選択し、前記特定のタイムスロットに切り換えられた場合に、第2タイプの複数のタスクから1つのタスクを選択するタスク選択ステップと、
    を有することを特徴とするタスク切換方法。
  16. プロセッサにおいてタイムスロットを切り換えることによりタイムスロットに割り当てられたタスクの実行を切り換えるためのプログラムであって、
    前記プログラムは、
    第1タイプの複数のタスクのそれぞれを1つのタイムスロットに割り当て、第1タイプとは異なる第2タイプの複数のタスクを1つの特定のタイムスロットに割り当てる割当ステップと、
    切り換え後のタイムスロットが前記特定のタイムスロットでない場合、当該タイムスロットに割り当てられたタスクを選択し、切り換え後のタイムスロットが前記特定のタイムスロットである場合、第2タイプの複数のタスクから1つのタスクを選択して実行させるタスク選択ステップと、
    を前記プロセッサに実行させることを特徴とするプログラム。
JP2003068831A 2003-03-13 2003-03-13 タスク切換装置、方法及びプログラム Expired - Lifetime JP4750350B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2003068831A JP4750350B2 (ja) 2003-03-13 2003-03-13 タスク切換装置、方法及びプログラム
US10/796,213 US7735087B2 (en) 2003-03-13 2004-03-10 Task switching apparatus, method and program
CNB2004100399592A CN1271517C (zh) 2003-03-13 2004-03-15 任务切换装置、方法和程序
US12/504,175 US7950016B2 (en) 2003-03-13 2009-07-16 Apparatus for switching the task to be completed in a processor by switching to the task assigned time slot
US13/080,847 US8276156B2 (en) 2003-03-13 2011-04-06 Task switching based on assigned time slot

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003068831A JP4750350B2 (ja) 2003-03-13 2003-03-13 タスク切換装置、方法及びプログラム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2008282507A Division JP4857325B2 (ja) 2008-10-31 2008-10-31 タスク切換装置、方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2004280297A true JP2004280297A (ja) 2004-10-07
JP4750350B2 JP4750350B2 (ja) 2011-08-17

Family

ID=32959339

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003068831A Expired - Lifetime JP4750350B2 (ja) 2003-03-13 2003-03-13 タスク切換装置、方法及びプログラム

Country Status (3)

Country Link
US (3) US7735087B2 (ja)
JP (1) JP4750350B2 (ja)
CN (1) CN1271517C (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006126977A (ja) * 2004-10-27 2006-05-18 Matsushita Electric Ind Co Ltd プログラム変換装置及び方法
JP2007058601A (ja) * 2005-08-24 2007-03-08 Matsushita Electric Ind Co Ltd タスク実行装置および方法
JP2008242510A (ja) * 2007-03-23 2008-10-09 Nec Corp ジョブへの資源割当方式、ジョブへの資源割当方法およびプログラム
JP2009059310A (ja) * 2007-09-03 2009-03-19 Panasonic Corp プログラム制御装置
JP2011076639A (ja) * 2004-12-30 2011-04-14 Intel Corp オペレーティング・システム介入なしにos隔離シーケンサー上でスレッドをスケジューリングする機構
KR20150107448A (ko) * 2014-03-14 2015-09-23 삼성전자주식회사 태스크 마이그레이션 방법 및 장치
WO2019044226A1 (ja) * 2017-08-29 2019-03-07 日立オートモティブシステムズ株式会社 アクセス制御装置

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007316721A (ja) * 2006-05-23 2007-12-06 Toshiba Corp 携帯端末
US20080130592A1 (en) * 2006-12-04 2008-06-05 Electronics And Telecommunications Research Institute Apparatus and method for managing medium access slot in wireless personal area network
US8694999B2 (en) * 2006-12-07 2014-04-08 Wind River Systems, Inc. Cooperative scheduling of multiple partitions in a single time window
US8024739B2 (en) * 2007-01-09 2011-09-20 International Business Machines Corporation System for indicating and scheduling additional execution time based on determining whether the execution unit has yielded previously within a predetermined period of time
US8411734B2 (en) 2007-02-06 2013-04-02 Microsoft Corporation Scalable multi-thread video decoding
US8265144B2 (en) * 2007-06-30 2012-09-11 Microsoft Corporation Innovations in video decoder implementations
US9648325B2 (en) 2007-06-30 2017-05-09 Microsoft Technology Licensing, Llc Video decoding implementations for a graphics processing unit
US8146065B2 (en) * 2007-08-13 2012-03-27 International Business Machines Corporation Running time of short running applications by effectively interleaving compilation with computation in a just-in-time environment
WO2009022371A1 (ja) 2007-08-16 2009-02-19 Netcleus Systems Corporation タスク処理装置
WO2009133669A1 (ja) * 2008-04-28 2009-11-05 パナソニック株式会社 仮想計算機制御装置、仮想計算機制御方法及び仮想計算機制御プログラム
US8885729B2 (en) 2010-12-13 2014-11-11 Microsoft Corporation Low-latency video decoding
US9706214B2 (en) 2010-12-24 2017-07-11 Microsoft Technology Licensing, Llc Image and video decoding implementations
JP5857273B2 (ja) * 2011-05-17 2016-02-10 パナソニックIpマネジメント株式会社 ストリーム処理装置
RU2587467C2 (ru) 2011-06-30 2016-06-20 МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи Сокращение задержки при кодировании и декодировании видео
US20130061213A1 (en) * 2011-08-26 2013-03-07 Cognitive Electronics, Inc. Methods and systems for optimizing execution of a program in a parallel processing environment
US8731067B2 (en) 2011-08-31 2014-05-20 Microsoft Corporation Memory management for video decoding
US9819949B2 (en) 2011-12-16 2017-11-14 Microsoft Technology Licensing, Llc Hardware-accelerated decoding of scalable video bitstreams
US8984183B2 (en) * 2011-12-16 2015-03-17 Nvidia Corporation Signaling, ordering, and execution of dynamically generated tasks in a processing system
US9542238B2 (en) * 2013-05-23 2017-01-10 Nxp Usa, Inc. Systems and methods for direct memory access coherency among multiple processing cores
GB2519080B (en) * 2013-10-08 2021-04-14 Arm Ip Ltd Scheduling function calls
US9632844B2 (en) * 2013-12-12 2017-04-25 International Business Machines Corporation Non-preemption of a group of interchangeable tasks in a computing device
CN104239136A (zh) * 2014-08-12 2014-12-24 广州三星通信技术研究有限公司 应用程序的切换方法和装置
US10885014B2 (en) * 2017-02-28 2021-01-05 Citrix Systems, Inc. Assigning monitoring responsibilities in distributed systems using optimistic concurrency
CN107065616A (zh) * 2017-05-08 2017-08-18 浙江风向标科技有限公司 联动控制方法及装置、计算机可读存储介质
CN110879707B (zh) * 2018-09-06 2022-10-14 迈普通信技术股份有限公司 编译任务执行方法及装置
CN109885383B (zh) * 2018-10-30 2023-08-01 广东科学技术职业学院 一种带约束条件的非单位时间任务调度方法
CN111371820A (zh) * 2018-12-25 2020-07-03 上海亮衡信息科技有限公司 一种基于定时器触发的通信方法、系统及通信设备
US11416791B2 (en) * 2019-02-22 2022-08-16 American Express Travel Related Services, Inc. Optimizing user task schedules in a customer relationship management platform
CN110032438B (zh) * 2019-04-24 2021-11-26 北京高途云集教育科技有限公司 延时任务执行方法、装置及电子设备
CN112559141A (zh) * 2019-09-26 2021-03-26 上海亮衡信息科技有限公司 任务切换方法、装置、计算机设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05204675A (ja) * 1992-01-30 1993-08-13 Toshiba Corp スケジューリング方式
JPH06149599A (ja) * 1992-11-12 1994-05-27 Mitsubishi Electric Corp 計算機システム
JP2001202258A (ja) * 2000-01-20 2001-07-27 Yaskawa Electric Corp リアルタイム処理装置

Family Cites Families (67)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS55115155A (en) 1979-02-27 1980-09-04 Matsushita Electric Ind Co Ltd One chip multi-microcomputer
JPS61150039A (ja) 1984-12-24 1986-07-08 Matsushita Electric Ind Co Ltd プロセツサ制御回路
JP2666824B2 (ja) 1986-05-15 1997-10-22 三菱電機株式会社 プログラマブル制御装置
JPS63245529A (ja) 1987-03-31 1988-10-12 Toshiba Corp レジスタ退避復元装置
US5109512A (en) 1990-05-31 1992-04-28 International Business Machines Corporation Process for dispatching tasks among multiple information processors
US5452452A (en) 1990-06-11 1995-09-19 Cray Research, Inc. System having integrated dispatcher for self scheduling processors to execute multiple types of processes
JPH04101233A (ja) 1990-08-20 1992-04-02 Matsushita Electric Ind Co Ltd 2階層キュー構造によるタスク管理方法
US5349680A (en) 1990-11-07 1994-09-20 Kabushiki Kaisha Toshiba Information processing apparatus for executing application programs under control of a system program
JP3144842B2 (ja) 1991-08-09 2001-03-12 株式会社東芝 マイクロプロセッサ
JPH05127926A (ja) 1991-10-31 1993-05-25 Nec Corp タスク制御装置
DE4309532C2 (de) * 1992-03-25 1996-10-31 Intel Corp Verfahren zum Sichern einer Systemabbildung eines Computersystems auf einer permanenten Speichereinrichtung sowie ein Computersystem
JPH0667905A (ja) 1992-08-17 1994-03-11 Matsushita Electric Ind Co Ltd マイクロプロセッサ
US5628013A (en) * 1992-09-30 1997-05-06 Apple Computer, Inc. Apparatus and method for allocating processing time in a frame-based computer system
JPH0744401A (ja) 1993-08-03 1995-02-14 Hitachi Ltd 論理集積回路およびそのデータ処理システム
CA2131406C (en) * 1993-09-21 2002-11-12 David D'souza Preemptive multi-tasking with cooperative groups of tasks
US5706459A (en) * 1994-01-06 1998-01-06 Fujitsu Limited Processor having a variable number of stages in a pipeline
JPH07210400A (ja) 1994-01-20 1995-08-11 Sony Corp マルチタスク処理の処理装置
JPH07295694A (ja) 1994-04-25 1995-11-10 Matsushita Electric Ind Co Ltd 演算処理装置の省電力方法
IL110181A (en) 1994-06-30 1998-02-08 Softchip Israel Ltd Install microprocessor and peripherals
JP3588485B2 (ja) * 1994-08-26 2004-11-10 富士通株式会社 プロセススケジューリング方式
US5754869A (en) * 1994-10-04 1998-05-19 Intel Corporation Method and apparatus for managing power consumption of the CPU and on-board system devices of personal computers
JP3727382B2 (ja) 1994-12-26 2005-12-14 三菱電機株式会社 制御ソフトウェア実行システムの制御方法
JPH08190491A (ja) 1995-01-04 1996-07-23 Hitachi Koki Haramachi Co Ltd タスク切り換え方法
JPH0916409A (ja) 1995-06-30 1997-01-17 Matsushita Electric Ind Co Ltd マイクロコンピュータ
DE19530483A1 (de) * 1995-08-18 1997-02-20 Siemens Ag Einrichtung und Verfahren zur Echtzeit-Verarbeitung einer Mehrzahl von Tasks
JPH09128248A (ja) 1995-10-31 1997-05-16 Matsushita Electric Ind Co Ltd マイクロプロセッサ
US5812844A (en) * 1995-12-07 1998-09-22 Microsoft Corporation Method and system for scheduling the execution of threads using optional time-specific scheduling constraints
US6400819B1 (en) * 1996-03-28 2002-06-04 Hitachi, Ltd. Method and apparatus for executing communication in real-time and data structure for real-time data communication
JPH09282182A (ja) 1996-04-19 1997-10-31 Hitachi Ltd 計算機システムにおけるプリエンプト制御方法
JPH1011301A (ja) 1996-06-25 1998-01-16 Masaharu Imai マルチタスク処理装置及びマルチタスク処理制御方法
JPH10143376A (ja) 1996-11-11 1998-05-29 Matsushita Electric Ind Co Ltd 情報処理装置
JPH10171667A (ja) 1996-12-13 1998-06-26 Chokosoku Network Computer Gijutsu Kenkyusho:Kk タスク管理方法
JP3605978B2 (ja) 1997-01-17 2004-12-22 松下電器産業株式会社 マイクロコンピュータ
JP3037182B2 (ja) * 1997-02-17 2000-04-24 日本電気株式会社 タスク管理方式
JPH10240548A (ja) 1997-03-03 1998-09-11 Toshiba Corp タスクスケジューリング装置及び方法
JP3356677B2 (ja) 1997-03-04 2002-12-16 松下電器産業株式会社 非同期に実行すべきタスクが多数あっても、非同期イベントタスクを効率良く実行することができるプロセッサ
US6470376B1 (en) 1997-03-04 2002-10-22 Matsushita Electric Industrial Co., Ltd Processor capable of efficiently executing many asynchronous event tasks
US5872950A (en) 1997-03-31 1999-02-16 International Business Machines Corporation Method and apparatus for managing register renaming including a wraparound array and an indication of rename entry ages
CN1156171C (zh) 1997-04-07 2004-06-30 松下电器产业株式会社 提高处理效率的图象声音处理装置
JP3589565B2 (ja) 1997-04-07 2004-11-17 松下電器産業株式会社 映像音声処理装置
US6223208B1 (en) 1997-10-03 2001-04-24 International Business Machines Corporation Moving data in and out of processor units using idle register/storage functional units
US6145049A (en) * 1997-12-29 2000-11-07 Stmicroelectronics, Inc. Method and apparatus for providing fast switching between floating point and multimedia instructions using any combination of a first register file set and a second register file set
KR100280460B1 (ko) 1998-04-08 2001-02-01 김영환 데이터 처리 장치 및 이의 복수의 스레드 처리 방법
US6006293A (en) 1998-04-21 1999-12-21 Comsat Corporation Method and apparatus for zero overhead sharing for registered digital hardware
JP4048638B2 (ja) 1998-04-27 2008-02-20 ソニー株式会社 スケジューリング装置及び方法並びに記録媒体
US6408325B1 (en) 1998-05-06 2002-06-18 Sun Microsystems, Inc. Context switching technique for processors with large register files
JP2000056989A (ja) 1998-08-03 2000-02-25 Chokosoku Network Computer Gijutsu Kenkyusho:Kk タスク設計方法
JP2000066904A (ja) 1998-08-21 2000-03-03 Canon Inc マルチタスク制御方法及び記憶媒体
US6438557B1 (en) 1999-06-23 2002-08-20 Ericsson Inc. System and method for performing context switching and rescheduling of a processor
DE19955776C1 (de) 1999-11-19 2001-07-19 Infineon Technologies Ag Multitasking-Prozessorsystem
US7308686B1 (en) 1999-12-22 2007-12-11 Ubicom Inc. Software input/output using hard real time threads
AU2597401A (en) 1999-12-22 2001-07-03 Ubicom, Inc. System and method for instruction level multithreading in an embedded processor using zero-time context switching
US7120783B2 (en) 1999-12-22 2006-10-10 Ubicom, Inc. System and method for reading and writing a thread state in a multithreaded central processing unit
US6757897B1 (en) * 2000-02-29 2004-06-29 Cisco Technology, Inc. Apparatus and methods for scheduling and performing tasks
US6684342B1 (en) 2000-06-22 2004-01-27 Ubicom, Inc. Apparatus and method of dynamic and deterministic changes in clock frequency for lower power consumption while maintaining fast interrupt handling
US7010612B1 (en) 2000-06-22 2006-03-07 Ubicom, Inc. Universal serializer/deserializer
US7047396B1 (en) 2000-06-22 2006-05-16 Ubicom, Inc. Fixed length memory to memory arithmetic and architecture for a communications embedded processor system
JP4292705B2 (ja) 2000-11-24 2009-07-08 パナソニック株式会社 タスクスケジューリング装置
US20020073129A1 (en) 2000-12-04 2002-06-13 Yu-Chung Wang Integrated multi-component scheduler for operating systems
FR2818769B1 (fr) * 2000-12-21 2004-06-18 Eads Airbus Sa Procede et systeme d'exploitation temps reel multitaches
JP3891936B2 (ja) * 2001-02-28 2007-03-14 富士通株式会社 並列プロセス実行方法、及びマルチプロセッサ型コンピュータ
JP2002342097A (ja) * 2001-05-17 2002-11-29 Matsushita Electric Ind Co Ltd タスク割当可能時間決定装置及びタスク割当可能時間決定方法
JP3636679B2 (ja) 2001-07-03 2005-04-06 松下電器産業株式会社 コンテンツ配信方法および端末管理サーバ装置
US20030037091A1 (en) * 2001-08-09 2003-02-20 Kozo Nishimura Task scheduling device
US7028300B2 (en) * 2001-11-13 2006-04-11 Microsoft Corporation Method and system for managing resources in a distributed environment that has an associated object
JP3813930B2 (ja) * 2002-01-09 2006-08-23 松下電器産業株式会社 プロセッサ及びプログラム実行方法
CN1666180B (zh) * 2002-07-03 2010-05-26 Nxp股份有限公司 多处理器计算机系统及方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05204675A (ja) * 1992-01-30 1993-08-13 Toshiba Corp スケジューリング方式
JPH06149599A (ja) * 1992-11-12 1994-05-27 Mitsubishi Electric Corp 計算機システム
JP2001202258A (ja) * 2000-01-20 2001-07-27 Yaskawa Electric Corp リアルタイム処理装置

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006126977A (ja) * 2004-10-27 2006-05-18 Matsushita Electric Ind Co Ltd プログラム変換装置及び方法
JP2011076639A (ja) * 2004-12-30 2011-04-14 Intel Corp オペレーティング・システム介入なしにos隔離シーケンサー上でスレッドをスケジューリングする機構
US9069605B2 (en) 2004-12-30 2015-06-30 Intel Corporation Mechanism to schedule threads on OS-sequestered sequencers without operating system intervention
US8607235B2 (en) 2004-12-30 2013-12-10 Intel Corporation Mechanism to schedule threads on OS-sequestered sequencers without operating system intervention
JP2013191244A (ja) * 2004-12-30 2013-09-26 Intel Corp オペレーティング・システム介入なしにos隔離シーケンサー上でスレッドをスケジューリングする機構
US8370846B2 (en) 2005-08-24 2013-02-05 Panasonic Corporation Task execution device and method
JP4580845B2 (ja) * 2005-08-24 2010-11-17 パナソニック株式会社 タスク実行装置
JP2007058601A (ja) * 2005-08-24 2007-03-08 Matsushita Electric Ind Co Ltd タスク実行装置および方法
JP2008242510A (ja) * 2007-03-23 2008-10-09 Nec Corp ジョブへの資源割当方式、ジョブへの資源割当方法およびプログラム
US8413163B2 (en) 2007-09-03 2013-04-02 Panasonic Corporation Program control device including per-timeslot switching of thread execution
JP2009059310A (ja) * 2007-09-03 2009-03-19 Panasonic Corp プログラム制御装置
KR20150107448A (ko) * 2014-03-14 2015-09-23 삼성전자주식회사 태스크 마이그레이션 방법 및 장치
KR102326945B1 (ko) * 2014-03-14 2021-11-16 삼성전자 주식회사 태스크 마이그레이션 방법 및 장치
WO2019044226A1 (ja) * 2017-08-29 2019-03-07 日立オートモティブシステムズ株式会社 アクセス制御装置

Also Published As

Publication number Publication date
US20040181791A1 (en) 2004-09-16
US7950016B2 (en) 2011-05-24
CN1271517C (zh) 2006-08-23
US20110185363A1 (en) 2011-07-28
CN1530834A (zh) 2004-09-22
JP4750350B2 (ja) 2011-08-17
US8276156B2 (en) 2012-09-25
US7735087B2 (en) 2010-06-08
US20090282407A1 (en) 2009-11-12

Similar Documents

Publication Publication Date Title
JP4750350B2 (ja) タスク切換装置、方法及びプログラム
JP6897574B2 (ja) アクセラレータ制御装置、アクセラレータ制御方法およびプログラム
JP3678414B2 (ja) 多重プロセッサ・システム
CN106371894B (zh) 一种配置方法、装置和数据处理服务器
US5159678A (en) Method for efficient non-virtual main memory management
US6269391B1 (en) Multi-processor scheduling kernel
KR0128273B1 (ko) 데이타처리 시스템, 다중프로세서 데이타처리 시스템에서 다수의 인터럽트를 유지관리, 처리하는 시스템 및 방법
JP5643190B2 (ja) 局所的集合内のタスクを汎用的集合に割り当てるための方法及びコンピュータ読取可能記録媒体
US20060130062A1 (en) Scheduling threads in a multi-threaded computer
JP2006515690A (ja) 複数のプロセッサを有するデータ処理システムと、複数のプロセッサを有するデータ処理システムのためのタスクスケジューラと、タスクスケジューリングの対応する方法
KR20110019729A (ko) 스케줄러 내의 스케줄링 컬렉션
JP2009059310A (ja) プログラム制御装置
JP4857325B2 (ja) タスク切換装置、方法及びプログラム
CN113254223B (zh) 一种系统重启后的资源分配方法、系统及相关组件
KR20010080208A (ko) 처리 시스템 스케쥴링
CN108990422B (zh) 一种锁分配的方法、装置和计算设备
JP5158576B2 (ja) 入出力制御システム、入出力制御方法、及び、入出力制御プログラム
JP2011248468A (ja) 情報処理装置および情報処理方法
JPH05120041A (ja) 資源割り当て管理方式
JPH0877026A (ja) 情報処理方法とその装置
JP2011248469A (ja) 情報処理装置および情報処理方法
JP2004086921A (ja) マルチプロセッサシステムおよびマルチプロセッサシステムにおいてタスクを実行する方法
JP2023179057A (ja) 演算処理装置および演算処理方法
JP2932547B2 (ja) 通信レジスタ仮想化方式
KR0170197B1 (ko) 고속 병렬 컴퓨터에서 데스크의 병렬처리를 위한 가상 시스템

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060302

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071009

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071210

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080902

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081104

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20081107

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20081121

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110315

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110519

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4750350

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20140527

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

EXPY Cancellation because of completion of term