[go: up one dir, main page]

JPH07152587A - 協調型のタスク・グループを有する横取り型のマルチ・タスキング方法およびデータ処理システム - Google Patents

協調型のタスク・グループを有する横取り型のマルチ・タスキング方法およびデータ処理システム

Info

Publication number
JPH07152587A
JPH07152587A JP6224931A JP22493194A JPH07152587A JP H07152587 A JPH07152587 A JP H07152587A JP 6224931 A JP6224931 A JP 6224931A JP 22493194 A JP22493194 A JP 22493194A JP H07152587 A JPH07152587 A JP H07152587A
Authority
JP
Japan
Prior art keywords
task
group
tasks
groups
executed
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
JP6224931A
Other languages
English (en)
Other versions
JP3746798B2 (ja
Inventor
David Dsouza
ドスーザ ディヴィッド
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.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JPH07152587A publication Critical patent/JPH07152587A/ja
Application granted granted Critical
Publication of JP3746798B2 publication Critical patent/JP3746798B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/484Precedence

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

(57)【要約】 【目的】 横取り型スケジューリングに協調型ないし非
横取り型スケジューリングを組み合わせたオペレーティ
ング・システムを提供する。 【構成】 タスク群は、相互に従属したタスクのグルー
プに分割される(ステップ44)。各グループには、非同
期には実行されない、相互に関係したタスク群が含まれ
る。オペレーティング・システムのスケジューラは、プ
ロセッサ時間のタイム・スロットを各グループに与える
(ステップ46)。グループ内のタスク群は協調型にスケ
ジューリングされ、そのグループに割り当てられたタイ
ム・スロットを利用する(ステップ48)。横取り型でス
ケジューリングされたグループ間で問題が発生しないよ
うに、モジュールおよびタスク間の従属性が維持され
る。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、一般に、データ処理
システムに関し、より詳細には、データ処理システムに
おけるタスクのスケジューリングに関する。
【0002】
【従来の技術】ワシントンのレドモンドにあるマイクロ
ソフト社により販売されているマイクロソフトWINDOWS
バージョン3.1 オペレーティング・システムは、メッセ
ージ駆動型のオペレーティング・システムである。オペ
レーティング・システム上を実行される各プログラム
は、そのプログラムのある部分に向けられた入力メッセ
ージを保持するメッセージ・キューを備えている。メッ
セージは、プログラムによって生成されたウィンドウへ
向けられていることがよくある。プログラムによって生
成された各ウィンドウは、関連するプロシジャを備えて
いる。つまり、メッセージは、ウィンドウそれ自体には
送られず、むしろ関連するプロシジャに送られる。
【0003】メッセージは、「メッセージ・ループ」と
して知られているコードのブロックの実行により、関連
するプログラムによってメッセージ・キューから取り出
され、処理される。図1は、メッセージ・ループによっ
て実行される処理の流れを示すフローチャートである。
これらの処理は、プログラムがアクティブである間、ル
ープ処理により繰り返し実行される。
【0004】まず、GetMessage関数が呼び出され、キュ
ーからメッセージが一つ取り出される(ステップ10)。
GetMessage関数は、キューからメッセージを一つ(一つ
存在するならば)取り出す機能をもつ。
【0005】メッセージが、キューから一度取り出され
ると、(必要ならば)TranslateMessage関数が呼び出さ
れ、このメッセージは使用可能なフォーマットに変換さ
れる(ステップ12)。この関数は、あるキーボード変換
を行う。
【0006】メッセージが一度変換されると、Dispatch
Message 関数が呼び出され、このメッセージは適切なプ
ロシジャにディスパッチされる(ステップ14)。このメ
ッセージは、行き先のウィンドウを識別する情報を含ん
でいる。この情報は、メッセージを適切にディスパッチ
するために使用される。
【0007】また、上述したGetMessage関数は、マイク
ロソフトWINDOWS バージョン3.1 オペレーティング・シ
ステムにおけるタスクのスケジューリングにおいても役
割を担う。このオペレーティング・システムは、非横取
り型(非プリエンプティブ)、すなわち協調型のマルチ
タスキングのアプローチを採用する。タスクは、サブル
ーチンまたはプログラムのように、独立に実行すること
ができる一つのコードの集まりである。
【0008】協調型マルチタスキングとは、タスク相互
間でプロセッサ上の制御を自発的に渡す(譲渡する
(“yielding”))ことにより、タスクが互いに協調す
ることをいう。これとは対照的に、横取り型のマルチタ
スキングでは、スケジューラがどのタスクにプロセッサ
の使用を認めるべきかを決定し、典型的には、実行のた
めに与えられたタイム・スロットを各タスクに提供す
る。GetMessage関数は、オペレーティング・システムに
おける協調型マルチタスキングを実行するための媒体の
一例である。オペレーティング・システムが提供する他
の関数であって、協調型マルチタスキングを実行するの
に役立つ関数には、PeekMessage 、Yield およびWaitMe
ssage 関数が含まれる。GetMessage関数およびこれらの
他の名前をもつ関数群が協調型マルチタスキングにおい
てどのように機能するかを理解するために、GetMessage
関数の処理をより詳しく見ることが有効である。
【0009】図2は、複数のアクティブなタスクを有す
る状況において、GetMessage関数が第1のタスク(例え
ば、プログラム)から呼び出されたときに、GetMessage
関数によって実行される処理の流れを示すフローチャー
トである。
【0010】まず、GetMessage関数は、呼出し側タスク
のメッセージ・キューが空かどうかを判定する(ステッ
プ16)。呼出し側タスクのメッセージ・キューが空の場
合には、このタスクは、空でないメッセージ・キューを
もつ第2のタスクにプロセッサを譲る(すなわち、この
第1のタスクはプロセッサの制御を放棄する)(ステッ
プ18)。時間が少し経過した時点において、メッセージ
が第1のタスクのメッセージ・キューで利用可能になる
(ステップ20)。第2のタスクがもう一つのタスクに制
御を譲るまで、第2のタスクはプロセッサの制御を維持
する。最終的に、あるタスクが制御を第1のタスクに戻
すことになる(ステップ22)。一般的には、他のタスク
の一つのメッセージ・キューが空であり、かつ、第1の
タスクのメッセージ・キューが空でないときに、この他
のタスクが第1のタスクに制御を戻す。続いて、第1の
タスクのメッセージ・キューのメッセージが、メッセー
ジ・キューから取り出される(ステップ24)。一方、ス
テップ16において、第1のタスクのメッセージ・キュー
が空でないと判定された場合には、メッセージ・キュー
からのメッセージの取出し処理(ステップ24)が、ステ
ップ18、20および22の実行後ではなく、直接実行され
る。
【0011】
【発明が解決しようとする課題】マイクロソフトWINDOW
S バージョン3.1 オペレーティング・システムの協調型
マルチタスキングのアプローチの難点の一つは、あるタ
スクが、他のタスクに制御を譲ることを拒否することに
より、プロセッサを占有することである。タスクがその
メッセージ・キューにメッセージを持っている限り、タ
スクは、制御を譲る必要がない。
【0012】
【課題を解決するための手段】この発明の第1の特徴に
よると、タスク群を実行する少なくとも一つのプロセッ
サを備えたデータ処理システムにおいて、一方法が実行
される。これらのタスク群は、独立したタスク・グルー
プに論理的に分割される。各タスク・グループにプロセ
ッサ上で実行されるためのタイム・スロットが割り当て
られるように、タスク・グループは横取り型(プリエン
プティブ)にスケジューリングされ、実行される。各グ
ループ内で実行されるタスク群は、非横取り型(非プリ
エンプティブ)にスケジューリングされ、これらのタス
ク群は、グループに割り当てられたタイム・スロットの
時間中に実行される。
【0013】この発明の第2の特徴によると、コード・
モジュールを記憶する少なくとも一つの記憶装置と、タ
スク群を実行する少なくとも一つのプロセッサとを備え
たデータ処理システムにおいて、一方法が実行される。
各タスクの実行中に、少なくとも一つのコード・モジュ
ールが実行される。この方法では、タスク従属リストが
各タスク用に設けられる。このタスク従属リストは、タ
スクがプロセッサ上で実行されるときに呼び出される候
補のモジュールを列挙したものである。
【0014】この方法は、各コード・モジュール用のモ
ジュール従属リストを設けるための付加的な処理(ステ
ップ)を含んでいる。各モジュール従属リストは、その
リストに関連したコード・モジュールに相互に従属する
コード・モジュール群を列挙したものである。このよう
な場合に、各タスクのタスク従属リストは、タスクがプ
ロセッサ上で実行されるときに呼び出される候補のモジ
ュール従属リストに列挙されたモジュール群の論理的な
統合を行うことにより生成される。タスク・グループ
は、スケジューリングされ、実行される。このスケジュ
ーリングは、各タスク・グループに、そのグループのタ
スク群がプロセッサ上で実行される一サイクル中の一つ
のタイム・スロットが与えられるように行われる。各タ
スク・グループごとに、グループ内のタスク群は非横取
り型にスケジューリングされ、そのグループに割り当て
られたタイム・スロットの時間中に実行される。
【0015】この発明の第3の特徴によると、データ処
理システムは、相互に従属するタスク群からなるグルー
プにタスク群を分割するための分割メカニズムを含んで
いる。また、このデータ処理システムは、タスクを実行
するための実行メカニズムも含んでいる。横取り型スケ
ジューラは、タスク・グループを横取り型にスケジュー
リングする。このスケジューリングは、各グループのタ
スク群の一つを実行するための一つのタイム・スロット
が、各グループに与えられるように行われる。また、非
横取り型スケジューラは、各グループのタスク群を非横
取り型にスケジューリングするためにデータ処理システ
ムに設けられる。
【0016】
【実施例】この発明の好ましい実施例は、横取り型マル
チタスキングと協調型マルチタスキングを組み合わせ、
オペレーティング・システムにおけるタスク群のスケジ
ューリングを最適化する。特に、タスク群は、論理的に
は、相互に従属するタスク・グループに分けられる。
【0017】以下に詳細に説明されるように、相互に従
属するタスク(相互従属タスク)が非同期にスケジュー
リングされると、コード・シェアリング(コードの共
有)およびデータ・シェアリング(データの共有)の問
題が発生するように、相互従属タスクは関連している。
【0018】プロセッサ時間のタイム・スロットは、各
グループに与えられる。しかし、そのグループ内におけ
るスケジューリングは、ワシントンのレドモンドにある
マイクロソフト社によって販売されているマイクロソフ
トWINDOWS バージョン3.1 オペレーティング・システム
によって実行されるように、協調型の方法で行われる。
グループが、横取り型でスケジュールされているので、
一つのタスクが、プロセッサを占有することはなく、す
べてのタスクの実行を遅くすることはない。一般に、タ
スク完了の応答時間は、この発明により改善される。ま
た、一つのタスクが停止(ハング)しても、スケジュー
ラは、全てのタスクが停止しないように、もう一つのグ
ループに切り換える。
【0019】さらに、互換性のために、この発明は、タ
スク間の従属性が無視されないことを確実にする。
【0020】マイクロソフトWINDOWS オペレーティング
・システムの早期のバージョンは、協調型のマルチタス
キングを使用していた。したがって、このオペレーティ
ング・システムの早期バージョン用に記述されたアプリ
ケーションは、横取り型スケジューリングには向いてい
ない。また、そのようなアプリケーションが、横取り型
でスケジュールされた環境において実行されるときに、
従属性の問題が生じる。これらの従属性を認識すること
に失敗すると、純粋に横取り型でスケジューリングされ
た環境において種々の問題が発生する。
【0021】この発明の好ましい実施例は、図3に示す
ように、データ処理システム26において実現される。図
3に示すデータ処理システム26は、単一のプロセッサ・
システムであるが、この技術分野の専門家ならば、この
発明が分散システムのようなマルチ・プロセッサ・シス
テムにおいても実現されることを理解するであろう。図
3のデータ処理システム26は、システムの処理を制御す
る中央処理装置(CPU)27を備えている。データ処理
システム26は、ファイルおよびデータを記憶するための
メモリ28およびディスク記憶装置30も備えている。メモ
リ28は、RAM、ROMまたは他のよく知られたタイプ
のメモリ・デバイスを含む複数のタイプのメモリ・デバ
イスのいずれであってもよい。データ処理システム26
は、さらに、キーボード32、マウス34およびビデオ・デ
ィスプレイ36も備えている。追加の、または他のタイプ
の入出力装置をデータ処理システム26に備えることがで
きるのはいうまでもない。
【0022】メモリ28は、オペレーティング・システム
40とコード・モジュール38とのコピーを保持する。オペ
レーティング・システムは、ここに示される好ましい実
施例をサポートするための、マイクロソフトWINDOWS バ
ージョン3.1 オペレーティング・システムの改良バージ
ョンであってもよい。オペレーティング・システム40
は、CPU28上でのタスクの実行をスケジューリングす
る機能をもつスケジューラ42を含んでいる。この発明の
好ましい実施例の大部分は、このスケジューラ42によっ
て実行される。
【0023】図4は、この発明の好ましい実施例におけ
るタスクのスケジューリングで実行される処理の流れを
示す高レベルのフローチャートである。
【0024】まず、タスク群は、相互従属関係にあるタ
スク群の論理的なグループに組織される(ステップ4
4)。これらのタスク群は、別々のタイム・スロットで
実行できないように相互従属性を有している。例えば、
これらのタスク群は、共通の動的リンク・ライブラリ
(DLL)・モジュールまたは他の共通のモジュールを
呼び出すかもしれない。このようなタスク群が別々のタ
イム・スロットで実行されると、データ共有問題が発生
する。これらのタスク群の一つが、DDLのデータを不
注意に変化させると、他のタスクに有害な影響を与え
る。タスク群を論理的なグループに組織する処理は、オ
ペレーティング・システム40によって実行される。この
組織する処理については、後に詳述する。
【0025】以下では、まず、この発明の横取り型スケ
ジューリングの点に焦点を合わせ、後に、この発明の協
調型スケジューリングの点に焦点を合わせて説明する。
【0026】オペレーティング・システム40上を実行さ
れる様々なタスク・グループは、横取り型でスケジュー
リングされ、各グループに、CPU28上での実行のため
に、プロセッサ時間のある特定のタイム・スロットが与
えられる(図4のステップ46)。図5は、4つのタイム
・スロット(グループ1、グループ2、グループ3およ
びグループ4)が存在する場合に、タイム・スロットが
どのように割り当てられるかを示している。図5に示す
例では、グループ1は、サイクル1のタスク1に割り当
てられ、次のサイクル2ではタイム・スロット5に割り
当てられている。また、図5に示す例では、グループ2
はサイクル1のタイム・スロット2に、グループ3はサ
イクル1のタイム・スロット3に、グループ4はサイク
ル1のタイム・スロット4にそれぞれ割り当てられてい
る。各グループは、次のサイクルにおいて対応するタイ
ム・スロットにそれぞれ割り当てられている。すなわ
ち、グループ1はサイクル2のタイム・スロット5に、
グループ2はサイクル2のタイム・スロット6に、グル
ープ3はサイクル2のタイム・スロット7に、グループ
4はサイクル2のタイム・スロット8にそれぞれ割り当
てられている。
【0027】スケジューリングが動的であり、時間の経
過とともにグループの追加および削除の双方またはいず
れか一方が行われるかもしれないので、タイム・スロッ
トのシーケンスは、固定されている必要はない。むしろ
スケジューリングは、時間の経過とともに変化する。し
かしながら、スケジューラ42は、アクティブな各グルー
プが、各サイクルでタイム・スロットを得られることを
確実にする。
【0028】各グループ内におけるタスク群のスケジュ
ーリングは、横取り型で行われず、むしろ協調型で行わ
れる(図4のステップ48)。上述したように、協調型の
マルチ・タスキングでは、あるタスクが別のタスクに自
発的に制御を譲ることが必要とされる。GetMessage関数
に焦点を置いた従来技術の項で説明した例では、GetMes
sage関数がタスク間で制御を譲る媒体として機能する。
一般に、グループ内で行われる協調型マルチ・タスキン
グは、マイクロソフトWINDOWS バージョン3.1オペレー
ティング・システムで行われるスケジューリングと同様
にして行われる。以下に詳述するように、この発明は、
タスクを非ブロック化する前に、従属性のチェックを付
加的に行う。GetMessage、PeekMessage 、Yield および
WaitMessage のようなAPIは、アプリケーションに同
じグループ内の他のタスクに従属することを許容する。
【0029】まとめると、各グループには、各サイクル
において、プロセッサ時間の一つのタイム・スロットが
与えられる。グループに割り当てられたタイム・スロッ
トにおいて、どのタスクを実行するかは、そのグループ
内のタスクの協調型スケジューリングに依存する。した
がって、あるグループにおいて現在実行されているタス
クは、そのタスクがGetMessage関数のような媒体によっ
てそのグループ内の他のタスクに制御を渡すまで、その
グループに割り当てられたタイム・スロットの期間中、
連続的に実行され続けるであろう。
【0030】オペレーティング・システム40は、どのタ
スクが各グループにあるかを監視するためのデータ構造
を有する。このための最初のデータ構造は、グループ・
リスト50(図6)である。グループ・リスト50は、メモ
リ28におけるオペレーティング・システム40のデータ領
域に記憶することができる。グループ・リスト50は、そ
のグループに含まれる各タスク用に、それぞれのエント
リ52A 、52B 、52C および52D を含んでいる。各エント
リ52A 、52B 、52C および52D は、そのグループの一部
であるタスク用のハンドルを保持する。ハンドルとは、
システム26のタスク群において一つのタスクをユニーク
に識別するための番号である。図6に示す例では、グル
ープ・リスト50には、タスク1、タスク2、タスク7お
よびタスク8の4つのタスクのエントリ52A 、52B 、52
C および52D が含まれている。
【0031】グループ・リストに含まれるタスクは、時
間の経過とともに変化する。図7は、グループを併合す
るために実行される処理の流れを示すフローチャートで
ある。
【0032】まず、一つのタスクが、それ自身のグルー
プ内で起動する(ステップ54)。このタスクの実行中
に、このタスクは、DDLにリンクを行うために、AP
Iコール(例えば、LoadLibrary 、LoadModule、WinExe
c 、またはSendMessage のある形態)を行う(ステップ
56)。オペレーティング・システム40は、データ共有問
題を回避するために、同じDDLを用いる他のアプリケ
ーション(タスク)を有するグループに、このタスクを
移動させる(ステップ58)。
【0033】図8は、図7のステップ58の処理を詳細に
示すフローチャートである。このフローチャートでは、
あるタスクを、他のタスクを有するグループに移動する
処理がどのようにして行われるかが示されている。
【0034】第1のグループから第2のグループに移動
されるべきタスク(アプリケーション)は、LoadLibrar
y またはLoadModuleのAPIから直接返される(リター
ンされる)のではなく、停止状態に置かれる(ステップ
60)。第1のグループは、この時点で、「同期状態」
(シンキング・アップ状態)にある。オペレーティング
・システム40は、第2のグループのアプリケーション・
コードのいずれもが実行されなくなるまで待つ(ステッ
プ62)。すなわち、オペレーティング・システム40は、
第2のグループのタスクのそれぞれが、GetMessage、Wa
itMessage またはYield のようなAPIを呼び出すまで
待つ。その後、第1のグループからのタスクは、第2の
グループに加えられ(ステップ64)、続いて、そのタス
クは実行のためにスケジューリングされる(ステップ6
6)。
【0035】スケジューラ42がグループにタイム・スロ
ットを適切に割り当てるために、スケジューラ42は、各
グループの現在の状態と、たとえあるとしても、どのタ
スクが、そのグループに与えられた次のタイム・スロッ
トで実行されるようにスケジューリングされているかを
知らなければならない。図9に示すように、グループ・
ステータス・テーブル68が、オペレーティング・システ
ム40によってメモリ28に記憶され、スケジューラ42が様
々なグループからのタスクを横取り型でスケジューリン
グするのを助ける。
【0036】図9に示す例では、システム26は、現在、
4つのアクティブなタスク・グループを有している。個
別のエントリ70A 、70B 、70C および70D が、各グルー
プに提供される。これらのエントリ70A 、70B 、70C お
よび70D のそれぞれには、ステータス・フィールド72A
、72B 、72C および72D がそれぞれ含まれている。ス
テータス・フィールド72A 、72B 、72C および72D は、
各グループのタスクのいずれが次のタイム・スロットで
実行されるようにスケジューリングされているか、また
はそのグループが「同期状態」(以下に詳述する)にあ
るかを詳細に示すステータス情報を保持する。ステータ
ス情報は、ステータス・フィールド72A 、72B 、72C お
よび72D 内のビットの集合として符号化されているであ
ろう。また、各エントリ70A 、70B 、70C および70D に
は、タスク・ネーム・フィールド74A 、74B 、74C およ
び74D がそれぞれ含まれている。このタスク・ネーム・
フィールド74A 、74B 、74C および74D は、そのグルー
プの次の利用可能なタイム・スロットで実行されるタス
クのタスク・ネーム(タスク名)を保持する。したがっ
て、エントリト70A がグループ1のステータス情報を保
持するならば、このタスク・ネーム・フィールド74A
は、実行されるグループ1のタスクのタスク名(または
ハンドル)を保持する。
【0037】オペレーティング・システム40は、モジュ
ール群38のそれぞれについてのモジュール従属リストも
有している。このモジュール従属リストは、新しいタス
クまたはモジュールがグループに追加されたとき、およ
びタスクがどのグループに追加されるかを決定するとき
に、タスク/モジュールをグループに割り当てる役割を
もつ。モジュール従属リストは、タスクが割り当てられ
るべきグループを決定するために調べられる。横取り型
にスケジューリングされたグループ群は、常に、共通の
要素を持たないモジュール従属リストを有する。タスク
/モジュールは、それ自身のグループまたは相互に従属
するタスク/モジュールを有するグループ内に置かれ
る。
【0038】図10には、モジュール従属リスト76の一例
が示されている。各タスクは、一つのモジュールまたは
複数のモジュールを含んでいてもよい。モジュール従属
リスト76は、関連するモジュールから呼び出され、また
はロードされる候補モジュール群を列挙したものであ
る。列挙されたモジュール群および関連するモジュール
は、相互に従属する関係を有している。エントリ64A 、
64B および64C は、各モジュール用のハンドルを保持す
る。このモジュール従属リスト76は、このリストに関連
したモジュールから呼び出されまたはロードされるモジ
ュールのそれぞれのエントリ78A 、78B および78C を備
えている。図10では、このモジュールは、モジュール
1、DDL1およびDDL2を呼び出しまたはロードす
る。
【0039】モジュール従属リストは静的ではなく、む
しろこのリストは時間の経過とともに変化する。図11
は、関連したモジュールが実行されているときに、モジ
ュール従属リスト76を更新するために行われる処理の流
れを示すフローチャートである。
【0040】まず、モジュール従属リストは、各モジュ
ール用に保持される(ステップ80)。続いて、そのリス
トに関連したモジュールに関係する従属関係を追加する
処理が実行される(ステップ82)。この処理には、例え
ば、ライブラリ・モジュールのロード、DDLモジュー
ルのロード、アプリケーション・モジュールの実行、ま
たは輸出されるDDLモジュールのアドレスの獲得処理
が含まれる。マイクロソフトWINDOWS バージョン3.1 オ
ペレーティング・システムでは、LoadLibrary、LoadMod
ule、GetProcAddressおよびWinExec のようなAPIコ
ールは、モジュールに関係する従属関係を追加する。続
いて、このようなAPIコールによってロードされ、実
行され、または輸出される新しいモジュールは、モジュ
ール従属リストに追加される(ステップ84)。このよう
にして、モジュール従属リストは、関連したモジュール
の実行中に、動的に変化(成長)する。
【0041】いずれのタスクも複数のモジュールを含む
ので、タスクのモジュール従属リストをどのようにして
生成するかという問題がある。図12は、タスクのモジュ
ール従属リストを生成するために実行される処理の流れ
を示すフローチャートである。まず、タスクが生成され
る(ステップ86)。続いて、このタスクのタスク従属リ
ストが、このタスクのモジュール群からなるモジュール
従属リストを統合することにより生成される(ステップ
88)。このようにして、この発明の好ましい実施例は、
タスクをグループに割り当てるときに、タスクの全ての
従属関係が考慮されることを確実にする。
【0042】スケジューラ42によって実行されるスケジ
ューリングの内容を、ここでまとめておくことはおそら
く有益であろう。このスケジューラ42は、アクティブな
グループのそれぞれにタイム・スロットを割り当てる。
また、スケジューラ42は、グループ内のどのタスクが実
行されるべきか、またはそのグループが同期状態にある
かどうかを判定しなければならない。現在実行されてい
るタスクは、グループ・ステータス・テーブル68のエン
トリ70A 、70B 、70C および70D のタスク・ネーム・フ
ィールド74A 、74B 、74C および74D (図9)内に示さ
れる。APIのGetMessage、PeekMessage 、Yield およ
びWaitMessage が、この発明の好ましい実施例において
は改良され、制御を渡すときおよびブロック化するとき
に、グループ・ステータス・テーブルを更新する。この
ようにして、グループ・ステータス・テーブル68は現在
の情報を備え、各グループの適切なタスクがスケジュー
リングされる。
【0043】この発明について、好ましい実施例を参照
しながら説明したが、この技術分野における専門家なら
ば、特許請求の範囲に記載された発明の範囲内で、様々
な変更ないし修正を加えることが可能なことを理解する
であろう。例えば、この発明は分散システムにおける使
用によく適している。また、この発明は、マイクロソフ
トWINDOWS バージョン3.1 オペレーティング・システム
以外の環境下でも実行することができる。さらに、この
発明においては、単一のスケジューラだけでなく、むし
ろ複数のスケジューラを共同で使用することもできる。
【図面の簡単な説明】
【図1】マイクロソフトWINDOWS バージョン3.1 オペレ
ーティング・システムのメッセージ・ループにより実行
される処理の流れを示すフローチャートである。
【図2】図1のメッセージ・ループのGetMessage関数に
よって実行される処理の流れを示すフローチャートであ
る。
【図3】この発明の好ましい実施例を実行するのに適し
たデータ処理システムを示すブロック図である。
【図4】タスク実行のスケジューリングにおいて、この
発明の好ましい実施例によって実行される処理の高レベ
ルの流れを示すフローチャートである。
【図5】この発明の好ましい実施例におけるグループの
横取り型スケジューリングの一例を示すブロック図であ
る。
【図6】この発明の好ましい実施例において使用される
グループ・リストの一例を示す。
【図7】この発明の好ましい実施例において、タスク群
を、一つの併合されたグループに併合するために実行さ
れる処理の流れを示すフローチャートである。
【図8】この発明の好ましい実施例において、同じDD
Lを用いる他のタスクを有するグループに、あるタスク
を移動させるために実行される詳細な処理の流れを示す
フローチャートである。
【図9】この発明の好ましい実施例において使用される
グループ・ステータス・テーブルの一例を示す。
【図10】この発明の好ましい実施例において使用され
るモジュール従属リストの一例を示す。
【図11】この発明の好ましい実施例におけるモジュー
ル従属リストを変化(成長)させるために実行される処
理の流れを示すフローチャートである。
【図12】この発明の好ましい実施例におけるタスク従
属リストを生成するために実行される処理の流れを示す
フローチャートである。
【符号の説明】
26 データ処理システム 27 CPU 28 メモリ 30 ディスク記憶装置 32 キーボード 34 マウス 36 ビデオ・ディスプレイ 38 モジュール群 40 オペレーティング・システム 42 スケジューラ 50 グループ・リスト 52A 、52B 、52C 、52D エントリ 68 グループ・ステータス・テーブル 70A 、70B 、70C 、70D エントリ 72A 、72B 、72C 、72D ステータス・フィールド 74A 、74B 、74C 、74D タスク・ネーム・フィールド 76 モジュール従属リスト 78A 、78B 、78C エントリ

Claims (11)

    【特許請求の範囲】
  1. 【請求項1】 タスクを実行する少なくとも一つのプロ
    セッサを備えたデータ処理システムにおいて、 相互に従属するタスクのグループにタスクを論理的に分
    割し、 各タスク・グループが、そのグループのタスクにプロセ
    ッサ上で実行される一サイクルの一つのタイム・スロッ
    トが与えられるように、前記タスク・グループを横取り
    型にスケジューリングし、および各グループごとに、グ
    ループに割り当てられたタイム・スロットの間、各グル
    ープ内で実行されるタスクを非横取り型にスケジューリ
    ングするステップ、を含む方法。
  2. 【請求項2】 前記データ処理システムが少なくとも一
    つの記憶装置を含み、前記方法が各関連したグループの
    グループ・リストを前記記憶装置に記憶するステップを
    さらに含み、各グループ・リストは、前記関連したグル
    ープに含まれるタスクの識別情報を含むものである、 請求項1に記載の方法。
  3. 【請求項3】 各グループが実行されているタスクを有
    しているかどうかを示し、かつ、実行されているいずれ
    かのタスクについての識別情報を保持する、各グループ
    ごとのステータス情報を記憶するステップ、 をさらに含む請求項1に記載の方法。
  4. 【請求項4】 前記相互に従属するタスクのグループに
    タスクを論理的に分割するステップが、 最初に、各タスクをそれ自身のグループに配置し、およ
    びその後、実行時に共通モジュールを呼び出すタスクの
    タスク・グループ群を一つの併合されたグループに結合
    するステップを含むものである、 請求項1に記載の方法。
  5. 【請求項5】 コード・モジュールを記憶する少なくと
    も一つの記憶装置、および少なくとも一つのコード・モ
    ジュールの実行を含む各タスクの実行を行う少なくとも
    一つのプロセッサを備えたデータ処理システムにおい
    て、 タスクが前記プロセッサ上の実行されるときに呼び出さ
    れる候補モジュールを列挙したタスク従属リストを各タ
    スクごとに提供し、 前記タスク従属リストを調べ、前記タスクを、相互に従
    属するタスクのグループに論理的に分割し、 前記タスク・グループのそれぞれのタスクを前記プロセ
    ッサ上で実行する、一サイクル中の一つのタイム・スロ
    ットが、前記タスク・グループのそれぞれに与えられる
    ように、前記タスク・グループを実行のために横取り型
    にスケジューリングし、および前記各タスク・グループ
    ごとに、各グループに割り当てられたタイム・スロット
    の期間中に各グループ内で実行されるタスクを非横取り
    型にスケジューリングするステップ、 を含む方法。
  6. 【請求項6】 前記各グループに含まれるタスクの識別
    情報を保持するグループ・リストを各グループごとに記
    憶するステップをさらに含む、 請求項5に記載の方法。
  7. 【請求項7】 前記グループが実行されるタスクを有し
    ているということを示し、かつ、実行されるいずれのタ
    スクについての識別情報を保持するステータス情報を各
    グループごとに記憶するステップをさらに含む、 請求項5に記載の方法。
  8. 【請求項8】 コード・モジュールを記憶する少なくと
    も一つの記憶装置、および少なくとも一つのコード・モ
    ジュールの実行を含む各タスクの実行を行う少なくとも
    一つのプロセッサを備えたデータ処理システムにおい
    て、 関連したコード・モジュールと相互に従属するコード・
    モジュールを列挙したモジュール従属リストを、前記各
    関連したコード・モジュールごとに提供し、 タスクが前記プロセッサ上の実行されるときに呼び出さ
    れる候補モジュール群からなる前記モジュール従属リス
    トに列挙されたモジュールの論理的な統一を行うことに
    より、各タスクごとにタスク従属リストを生成し、 前記タスク従属リストを調べ、前記タスクを、相互に従
    属するタスクのグループに論理的に分割し、 前記タスク・グループのそれぞれのタスクを前記プロセ
    ッサ上で実行する、一サイクル中の一つのタイム・スロ
    ットが、前記タスク・グループのそれぞれに与えられる
    ように、前記タスク・グループを実行のために横取り型
    にスケジューリングし、および前記各タスク・グループ
    ごとに、各グループに割り当てられたタイム・スロット
    の期間中に各グループ内で実行されるタスクを非横取り
    型にスケジューリングするステップ、 を含む方法。
  9. 【請求項9】 前記各グループに含まれるタスクの識別
    情報を保持するグループ・リストを各グループごとに記
    憶するステップをさらに含む、 請求項8に記載の方法。
  10. 【請求項10】 前記グループが実行されるタスクを有
    しているということを示し、かつ、実行されるいずれの
    タスクについての識別情報を保持するステータス情報を
    各グループごとに記憶するステップをさらに含む、 請求項8に記載の方法。
  11. 【請求項11】 相互に従属するタスクのグループにタ
    スクを分割する分割メカニズム、 前記タスクを実行する実行メカニズム、 前記各タスク・グループに、そのグループのタスクの一
    つを実行する、一つのタイム・スロットが与えられるよ
    うに、前記タスク・グループを横取り型のスケジューリ
    ングする横取り型スケジューラ、および前記各グループ
    内のタスクを非横取り型にスケジューリングする非横取
    り型スケジューラ、 を含むデータ処理システム。
JP22493194A 1993-09-21 1994-09-20 協調型のタスク・グループを有する横取り型のマルチ・タスキング方法およびデータ処理システム Expired - Fee Related JP3746798B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12593093A 1993-09-21 1993-09-21
US08/125930 1993-09-21

Publications (2)

Publication Number Publication Date
JPH07152587A true JPH07152587A (ja) 1995-06-16
JP3746798B2 JP3746798B2 (ja) 2006-02-15

Family

ID=22422115

Family Applications (1)

Application Number Title Priority Date Filing Date
JP22493194A Expired - Fee Related JP3746798B2 (ja) 1993-09-21 1994-09-20 協調型のタスク・グループを有する横取り型のマルチ・タスキング方法およびデータ処理システム

Country Status (5)

Country Link
US (1) US6052707A (ja)
EP (1) EP0644484B1 (ja)
JP (1) JP3746798B2 (ja)
CA (1) CA2131406C (ja)
DE (1) DE69424610T2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008226023A (ja) * 2007-03-14 2008-09-25 Kansai Electric Power Co Inc:The ジョブ割当装置、及びジョブ割当方法
JP2009020692A (ja) * 2007-07-11 2009-01-29 Toshiba Corp タスク管理装置、タスク管理方法及びタスク管理プログラム
JP2021174367A (ja) * 2020-04-28 2021-11-01 株式会社デンソー リアルタイム演算処理装置
JP2021174368A (ja) * 2020-04-28 2021-11-01 株式会社デンソー リアルタイム演算処理装置

Families Citing this family (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6424989B1 (en) * 1991-09-20 2002-07-23 Venson M. Shaw Object-oriented transaction computing system
US6948172B1 (en) * 1993-09-21 2005-09-20 Microsoft Corporation Preemptive multi-tasking with cooperative groups of tasks
DE69622832T2 (de) * 1995-05-05 2003-04-10 Apple Computer Vorrichtung und verfahren für kooperative unterbrechungen in einer preemptiven prozessablauffolgeplanungsumgebung
US6571215B1 (en) * 1997-01-21 2003-05-27 Microsoft Corporation System and method for generating a schedule based on resource assignments
JP3037182B2 (ja) * 1997-02-17 2000-04-24 日本電気株式会社 タスク管理方式
KR20010072477A (ko) * 1998-08-13 2001-07-31 썬 마이크로시스템즈, 인코포레이티드 가상 머신 환경에서 네이티브 코드를 변환하고 실행하는방법 및 장치
US6910210B1 (en) * 1998-11-24 2005-06-21 Microsoft Corp. System and method for terminating applications
GB2348306B (en) * 1999-03-25 2003-07-30 Ibm Data processing systems and method for processing tasks in such systems
US6754690B2 (en) * 1999-09-16 2004-06-22 Honeywell, Inc. Method for time partitioned application scheduling in a computer operating system
JP2001125797A (ja) * 1999-10-25 2001-05-11 Seiko Epson Corp マルチタスクシステム及びそのプログラムを記録した記録媒体並びに加工装置
US6789132B2 (en) * 2000-02-09 2004-09-07 Seagate Technology Llc Modular disc drive architecture
US6757897B1 (en) * 2000-02-29 2004-06-29 Cisco Technology, Inc. Apparatus and methods for scheduling and performing tasks
US7058947B1 (en) 2000-05-02 2006-06-06 Microsoft Corporation Resource manager architecture utilizing a policy manager
US6799208B1 (en) * 2000-05-02 2004-09-28 Microsoft Corporation Resource manager architecture
US7111297B1 (en) * 2000-05-02 2006-09-19 Microsoft Corporation Methods and architectures for resource management
JP3891936B2 (ja) * 2001-02-28 2007-03-14 富士通株式会社 並列プロセス実行方法、及びマルチプロセッサ型コンピュータ
GB2377283B (en) * 2001-04-10 2004-12-01 Discreet Logic Inc Initialising modules
JP3813930B2 (ja) * 2002-01-09 2006-08-23 松下電器産業株式会社 プロセッサ及びプログラム実行方法
WO2003081429A1 (fr) * 2002-03-22 2003-10-02 Toyota Jidosha Kabushiki Kaisha Procede et dispositif de gestion de taches, procede et dispositif d'evaluation de fonctionnement et programme devant etre evalue
GB2387931A (en) * 2002-04-25 2003-10-29 Livedevices Ltd Reduced-overhead context-saving in static priority scheduled operating systems
EP1502187B1 (en) * 2002-04-25 2007-11-14 Livedevices Limited Reduced overhead context-saving in static priority scheduled operating systems
GB2388213A (en) * 2002-04-30 2003-11-05 Innovation Ct Improvements relating to task dispatch in priority pre-emptive real-time operating systems
EP1514181A2 (en) * 2002-04-30 2005-03-16 Livedevices Limited Task dispatch in priority pre-emptive real-time operating systems
JP4750350B2 (ja) * 2003-03-13 2011-08-17 パナソニック株式会社 タスク切換装置、方法及びプログラム
JP4028444B2 (ja) * 2003-06-27 2007-12-26 株式会社東芝 スケジューリング方法およびリアルタイム処理システム
JP3920818B2 (ja) * 2003-07-22 2007-05-30 株式会社東芝 スケジューリング方法および情報処理システム
JP4682513B2 (ja) * 2003-12-05 2011-05-11 トヨタ自動車株式会社 タスク管理システム
US7444621B2 (en) * 2004-02-20 2008-10-28 Microsoft Corporation Method and system for providing a common operating system
WO2005085994A2 (en) * 2004-02-24 2005-09-15 Koninklijke Philips Electronics N.V. Multi-tasking data processing system
US7496912B2 (en) * 2004-02-27 2009-02-24 International Business Machines Corporation Methods and arrangements for ordering changes in computing systems
US8782654B2 (en) 2004-03-13 2014-07-15 Adaptive Computing Enterprises, Inc. Co-allocating a reservation spanning different compute resources types
CA2559588A1 (en) 2004-03-13 2005-09-29 Cluster Resources, Inc. System and method for providing object triggers for dynamic control of compute environment
JP4325466B2 (ja) * 2004-03-31 2009-09-02 トヨタ自動車株式会社 タスク実行システム
US20070266388A1 (en) 2004-06-18 2007-11-15 Cluster Resources, Inc. System and method for providing advanced reservations in a compute environment
US8176490B1 (en) 2004-08-20 2012-05-08 Adaptive Computing Enterprises, Inc. System and method of interfacing a workload manager and scheduler with an identity manager
WO2006053093A2 (en) 2004-11-08 2006-05-18 Cluster Resources, Inc. System and method of providing system jobs within a compute environment
US8863143B2 (en) 2006-03-16 2014-10-14 Adaptive Computing Enterprises, Inc. System and method for managing a hybrid compute environment
US9231886B2 (en) 2005-03-16 2016-01-05 Adaptive Computing Enterprises, Inc. Simple integration of an on-demand compute environment
ES2666563T3 (es) 2005-03-16 2018-05-07 Iii Holdings 12, Llc Transferencia automática de carga a un centro bajo demanda
EP3203374B1 (en) 2005-04-07 2021-11-24 III Holdings 12, LLC On-demand access to compute resources
US20130312006A1 (en) * 2005-04-07 2013-11-21 Adaptive Computing Enterprises, Inc. System and method of managing job preemption
CN100377091C (zh) * 2006-03-16 2008-03-26 浙江大学 嵌入式操作系统分组硬实时任务调度的实现方法
US8694999B2 (en) * 2006-12-07 2014-04-08 Wind River Systems, Inc. Cooperative scheduling of multiple partitions in a single time window
US8041773B2 (en) 2007-09-24 2011-10-18 The Research Foundation Of State University Of New York Automatic clustering for self-organizing grids
US8621475B2 (en) * 2007-12-06 2013-12-31 International Business Machines Corporation Responsive task scheduling in cooperative multi-tasking environments
US20090165015A1 (en) * 2007-12-21 2009-06-25 Schlumberger Technology Corporation Managing dependencies among applications using satisfiability engine
US9304831B2 (en) * 2008-09-29 2016-04-05 Microsoft Technology Licensing, Llc Scheduling execution contexts with critical regions
EP2282264A1 (en) * 2009-07-24 2011-02-09 ProximusDA GmbH Scheduling and communication in computing systems
US8458136B2 (en) * 2009-07-27 2013-06-04 International Business Machines Corporation Scheduling highly parallel jobs having global interdependencies
US11720290B2 (en) 2009-10-30 2023-08-08 Iii Holdings 2, Llc Memcached server functionality in a cluster of data processing nodes
US10877695B2 (en) 2009-10-30 2020-12-29 Iii Holdings 2, Llc Memcached server functionality in a cluster of data processing nodes
CN102654843A (zh) * 2011-03-04 2012-09-05 北京国科环宇空间技术有限公司 嵌入式处理器中非抢占式容错调度方法及嵌入式处理器
US9575803B2 (en) * 2015-02-13 2017-02-21 International Business Machines Corporation Determining an ordering to use to open and close programs that call other programs
US9948760B2 (en) 2015-06-26 2018-04-17 Honda Motor Co., Ltd. System and method for controlling vehicle network functions with version control
CN107566460B (zh) * 2017-08-16 2020-06-05 微梦创科网络科技(中国)有限公司 分布式部署计划任务的方法和系统
US11726823B2 (en) * 2020-02-06 2023-08-15 Samsung Electronics Co., Ltd. Electronic device having heterogeneous processors and method of processing task using the heterogeneous processors
WO2025042164A1 (ko) * 2023-08-22 2025-02-27 삼성전자주식회사 프로세스의 실행을 제어하기 위한 전자 장치 및 그 방법

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4658351A (en) * 1984-10-09 1987-04-14 Wang Laboratories, Inc. Task control means for a multi-tasking data processing system
US4980824A (en) * 1986-10-29 1990-12-25 United Technologies Corporation Event driven executive
US5311461A (en) * 1988-12-30 1994-05-10 International Business Machines Corp. Programmable priority and selective blocking in a compute system
JP3039953B2 (ja) * 1989-04-28 2000-05-08 株式会社日立製作所 並列化装置
JPH0460843A (ja) * 1990-06-29 1992-02-26 Hitachi Ltd マルチプロセッサシステムにおけるタスクスケジュール方式
FR2696259A1 (fr) * 1992-09-30 1994-04-01 Apple Computer Organisation en tâches et en modules d'une exécution dans un processeur.
US5432941A (en) * 1992-10-13 1995-07-11 Microsoft Corporation Method and system for dynamically configuring a software system using configuration groups
US5437032A (en) * 1993-11-04 1995-07-25 International Business Machines Corporation Task scheduler for a miltiprocessor system
US5745778A (en) * 1994-01-26 1998-04-28 Data General Corporation Apparatus and method for improved CPU affinity in a multiprocessor system
US5909559A (en) * 1997-04-04 1999-06-01 Texas Instruments Incorporated Bus bridge device including data bus of first width for a first processor, memory controller, arbiter circuit and second processor having a different second data width

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008226023A (ja) * 2007-03-14 2008-09-25 Kansai Electric Power Co Inc:The ジョブ割当装置、及びジョブ割当方法
JP2009020692A (ja) * 2007-07-11 2009-01-29 Toshiba Corp タスク管理装置、タスク管理方法及びタスク管理プログラム
JP2021174367A (ja) * 2020-04-28 2021-11-01 株式会社デンソー リアルタイム演算処理装置
JP2021174368A (ja) * 2020-04-28 2021-11-01 株式会社デンソー リアルタイム演算処理装置

Also Published As

Publication number Publication date
EP0644484B1 (en) 2000-05-24
EP0644484A2 (en) 1995-03-22
JP3746798B2 (ja) 2006-02-15
EP0644484A3 (ja) 1995-04-26
DE69424610D1 (de) 2000-06-29
CA2131406A1 (en) 1995-03-22
US6052707A (en) 2000-04-18
DE69424610T2 (de) 2000-09-28
CA2131406C (en) 2002-11-12

Similar Documents

Publication Publication Date Title
JPH07152587A (ja) 協調型のタスク・グループを有する横取り型のマルチ・タスキング方法およびデータ処理システム
US7721286B2 (en) Preemptive multi-tasking with cooperative groups of tasks
US9141422B2 (en) Plug-in task scheduler
US8161453B2 (en) Method and apparatus for implementing task management of computer operations
US8549524B2 (en) Task scheduler for cooperative tasks and threads for multiprocessors and multicore systems
CA2722670C (en) Scheduler instances in a process
EP1364284A4 (en) COMPUTER MULTITASKING VIRTUAL THREADS
EP1031925B1 (en) Cooperative processing of tasks in multi-threaded computing system
JPH06180654A (ja) 送信側プロセスと複数の受信側プロセスの間でプロセス間メッセージのスイッチングを行う方法および装置
JPH08502612A (ja) データ処理システムおよびオペレーティング・システム
KR102338849B1 (ko) 실시간 운영 체제에서 스택 메모리 관리를 제공하는 방법 및 시스템
US9367350B2 (en) Meta-scheduler with meta-contexts
US10761904B2 (en) Method and system for synchronizing and joining multiple calls to the same asynchronous code segment
AU2009255464A1 (en) Regaining control of a processing resource that executes an external execution context
JPH06243112A (ja) マルチプロセッサ装置
US8806180B2 (en) Task execution and context switching in a scheduler
US10303523B2 (en) Method and apparatus to migrate stacks for thread execution
US5369774A (en) Method and apparatus for handling array type data in a data driven type information processor
US9304831B2 (en) Scheduling execution contexts with critical regions
JP2693916B2 (ja) タスクスケジュール方法
JP4820553B2 (ja) ルールに基づいてデータの決定的なディスパッチを実行する方法、コンピュータプログラムおよびコンピューティングシステム
JP2021060707A (ja) 同期制御システムおよび同期制御方法
US9384063B2 (en) Eliding synchronization in a concurrent data structure
Serbânescu Software development by abstract behavioural specification
Burgess et al. BED: a multithreaded kernel for embedded systems

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050308

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20050608

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20050608

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20050613

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050908

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20051125

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20091202

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20101202

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20111202

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20111202

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20121202

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20121202

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20131202

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees