JP2000076084A - 事象管理・通知方法 - Google Patents
事象管理・通知方法Info
- Publication number
- JP2000076084A JP2000076084A JP10244128A JP24412898A JP2000076084A JP 2000076084 A JP2000076084 A JP 2000076084A JP 10244128 A JP10244128 A JP 10244128A JP 24412898 A JP24412898 A JP 24412898A JP 2000076084 A JP2000076084 A JP 2000076084A
- Authority
- JP
- Japan
- Prior art keywords
- event
- task
- cblk
- control block
- notification
- 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.)
- Pending
Links
Abstract
(57)【要約】
【課題】 一つの事象が頻発しても、他の事象の処理が
滞らないように滞積した事象を平準化して通知できるよ
うにした事象管理・通知方法を提供する。 【解決手段】 事象制御ブロック(cblk)検索手段
24は、タスク10−1〜10nが事象待ち状態に入る
際に、事象制御ブロック(cblk)テーブル12を検
索して、発生通知が保留されている事象#0〜#mの有
無をチェックする。検索開始位置記憶テーブル33に格
納されている検索位置を参照して、検索毎に検索開始事
象番号をずらしていく。通知保留事象がある場合、当該
事象を通知するとともに、今回の検索開始事象番号の次
の事象番号を次回の検索開始事象番号として検索開始位
置記憶テーブル33に格納する。通知保留事象がない場
合、今回の検索開始事象番号の次の事象番号を次回の検
索開始事象番号として検索開始位置記憶テーブル33に
格納する。
滞らないように滞積した事象を平準化して通知できるよ
うにした事象管理・通知方法を提供する。 【解決手段】 事象制御ブロック(cblk)検索手段
24は、タスク10−1〜10nが事象待ち状態に入る
際に、事象制御ブロック(cblk)テーブル12を検
索して、発生通知が保留されている事象#0〜#mの有
無をチェックする。検索開始位置記憶テーブル33に格
納されている検索位置を参照して、検索毎に検索開始事
象番号をずらしていく。通知保留事象がある場合、当該
事象を通知するとともに、今回の検索開始事象番号の次
の事象番号を次回の検索開始事象番号として検索開始位
置記憶テーブル33に格納する。通知保留事象がない場
合、今回の検索開始事象番号の次の事象番号を次回の検
索開始事象番号として検索開始位置記憶テーブル33に
格納する。
Description
【0001】
【発明の属する技術分野】この発明は、リアルタイムモ
ニタにおける事象管理・通知方法に係り、詳しくは、1
つの事象発生が極端に多い場合でも他の事象の処理が滞
らないようにリアルタイムモニタ内で滞積した事象を平
準化して通知できるようにした事象管理・通知方法に関
するものである。
ニタにおける事象管理・通知方法に係り、詳しくは、1
つの事象発生が極端に多い場合でも他の事象の処理が滞
らないようにリアルタイムモニタ内で滞積した事象を平
準化して通知できるようにした事象管理・通知方法に関
するものである。
【0002】
【従来の技術】電子情報通信ハンドブック(電子情報通
信学会 1988年)第24編 オペレーティングシス
テム 第2部門 オペレーティングシステムの機能
2.3同期制御 a.同期・通信には、以下のことが記
載されている。タスク間の処理の待ち合わせを制御する
最も基本的な同期方式は、イベントフラグを用いたWA
IT−POST方式である。タスクAとBとの間にイベ
ントフラグを設定する事象制御ブロックを設け、タスク
Bは処理を完了するとPOSTマクロを発行してイベン
トフラグをセットする。タスクAは事象制御ブロックに
イベントフラグがセットされるまでイベントウェイトに
より待ち状態となる。更に、タスク間の同期・通信の方
法としては、メッセージボックスを介してメッセージを
送受信する方法、各タスクから共通に参照できる共用メ
モリを使用する方法、仮想的なファイルを利用してタス
ク間のデータ授受を行なうパイプなどの方法が存在す
る。
信学会 1988年)第24編 オペレーティングシス
テム 第2部門 オペレーティングシステムの機能
2.3同期制御 a.同期・通信には、以下のことが記
載されている。タスク間の処理の待ち合わせを制御する
最も基本的な同期方式は、イベントフラグを用いたWA
IT−POST方式である。タスクAとBとの間にイベ
ントフラグを設定する事象制御ブロックを設け、タスク
Bは処理を完了するとPOSTマクロを発行してイベン
トフラグをセットする。タスクAは事象制御ブロックに
イベントフラグがセットされるまでイベントウェイトに
より待ち状態となる。更に、タスク間の同期・通信の方
法としては、メッセージボックスを介してメッセージを
送受信する方法、各タスクから共通に参照できる共用メ
モリを使用する方法、仮想的なファイルを利用してタス
ク間のデータ授受を行なうパイプなどの方法が存在す
る。
【0003】特開平5−257888号公報には、イベ
ントの通知順序を補償するようにしたインタフェース整
合方式が記載されている。このインタフェース整合方式
は、次のように構成されている。制御を切りキューとし
てイベントを相手に通知する「キュー通知方式」と、制
御を切らずにプロセスの延長(エントリの呼び出し)で
イベントを相手に通知する「エントリ通知方式」を併用
するオンライン制御方式で、エントリ通知のイベントが
キュー通知のイベントを追い越し、アプリケーションプ
ログラムが通知された順序で正しく処理できない場合、
エントリ通知元に該イベントを返却するとともに該イベ
ントの前に通知されなければならないイベントがキュー
イングされていることを通知し、これによりエントリ通
知元は該イベントを一時保留し、先に通知されなければ
ならないイベントをデキューしそれを処理した後、保留
したイベントを再スケジュールする。
ントの通知順序を補償するようにしたインタフェース整
合方式が記載されている。このインタフェース整合方式
は、次のように構成されている。制御を切りキューとし
てイベントを相手に通知する「キュー通知方式」と、制
御を切らずにプロセスの延長(エントリの呼び出し)で
イベントを相手に通知する「エントリ通知方式」を併用
するオンライン制御方式で、エントリ通知のイベントが
キュー通知のイベントを追い越し、アプリケーションプ
ログラムが通知された順序で正しく処理できない場合、
エントリ通知元に該イベントを返却するとともに該イベ
ントの前に通知されなければならないイベントがキュー
イングされていることを通知し、これによりエントリ通
知元は該イベントを一時保留し、先に通知されなければ
ならないイベントをデキューしそれを処理した後、保留
したイベントを再スケジュールする。
【0004】特開平6−131203号公報には、タス
クモニタでマルチタスクプログラムの実行中に発生する
イベントの記録方式が記載されている。このイベント記
録方式は次のように構成されている。記録対象イベント
に対象イベント登録部で、利用者からの記録対象イベン
トが登録される。タスク制御部は、マルチタスク・オペ
レーティングシステムのスケジューリングとタスク切り
換えアルゴリズムとをシミュレートして利用者プログラ
ムを動作させ、タスク切り換え発生でタスク切り換え情
報を認識し、認識結果をイベント記録制御部に通知す
る。イベント検出調査部は、利用者プログラム実行中の
イベントの発生を検出し、イベントが記録対象イベント
に該当する場合のみ、当該イベントの情報をイベント記
録制御部に通知する。イベント記録制御部、タスク制御
部からのタスク切り換え情報と、イベント検出調査部か
らのイベント情報とをメモリに記録し、外部記録装置に
格納する。
クモニタでマルチタスクプログラムの実行中に発生する
イベントの記録方式が記載されている。このイベント記
録方式は次のように構成されている。記録対象イベント
に対象イベント登録部で、利用者からの記録対象イベン
トが登録される。タスク制御部は、マルチタスク・オペ
レーティングシステムのスケジューリングとタスク切り
換えアルゴリズムとをシミュレートして利用者プログラ
ムを動作させ、タスク切り換え発生でタスク切り換え情
報を認識し、認識結果をイベント記録制御部に通知す
る。イベント検出調査部は、利用者プログラム実行中の
イベントの発生を検出し、イベントが記録対象イベント
に該当する場合のみ、当該イベントの情報をイベント記
録制御部に通知する。イベント記録制御部、タスク制御
部からのタスク切り換え情報と、イベント検出調査部か
らのイベント情報とをメモリに記録し、外部記録装置に
格納する。
【0005】特開平9−319595号公報には、高速
なスケジューリング処理を可能とするマルチタスク制御
装置が記載されている。このマルチタスク制御装置は次
のように構成されている。前処理部、イベントフラグ管
理部、セマフォ管理部、メール管理部、タスク状態デー
タ保持部、状態遷移テーブル保持部、スケジューリング
管理部、タスク切替え管理部、後処理部、状態遷移テー
ブル生成部を備え、スケジューリング管理部が、イベン
トフラグ管理部、セマフォ管理部、メール管理部からの
事象の発生の通知を受けて、タスク状態データ保持部の
内容と、状態遷移テーブル保持部に保持されている状態
遷移テーブルとを参照し、事象の発生後に実行すべきタ
スクを判定して、必要に応じてタスク切替え管理部にタ
スクの切替えを指示する。
なスケジューリング処理を可能とするマルチタスク制御
装置が記載されている。このマルチタスク制御装置は次
のように構成されている。前処理部、イベントフラグ管
理部、セマフォ管理部、メール管理部、タスク状態デー
タ保持部、状態遷移テーブル保持部、スケジューリング
管理部、タスク切替え管理部、後処理部、状態遷移テー
ブル生成部を備え、スケジューリング管理部が、イベン
トフラグ管理部、セマフォ管理部、メール管理部からの
事象の発生の通知を受けて、タスク状態データ保持部の
内容と、状態遷移テーブル保持部に保持されている状態
遷移テーブルとを参照し、事象の発生後に実行すべきタ
スクを判定して、必要に応じてタスク切替え管理部にタ
スクの切替えを指示する。
【0006】
【発明が解決しようとする課題】リアルタイムモニタに
おける従来の事象管理/通知方法は、発生事象の事象制
御ブロック(cblk)について事象制御ブロック(c
blk)テーブルをテーブルスロットの先頭(事象#
0)から検索し、その検索結果に基づいて事象通知を行
なうようにしている。
おける従来の事象管理/通知方法は、発生事象の事象制
御ブロック(cblk)について事象制御ブロック(c
blk)テーブルをテーブルスロットの先頭(事象#
0)から検索し、その検索結果に基づいて事象通知を行
なうようにしている。
【0007】しかしながら、一部の事象割り込みが頻発
する様になった場合、他の事象通知(例えば、タスクか
らの事象通知、他の事象割り込みにおける事象通知等)
があるにも拘わらず、リアルタイムモニタ内で他の事象
通知が滞ることがある。これは、事象待ちマクロでの通
知保留事象を検索する際に、事象制御ブロックcblk
テーブルを常にテーブルスロットの先頭から検索するた
め、頻発している方の事象が他の事象より事象番号が若
番になっている場合に頻発する事象を優先して通知して
しまうからである。
する様になった場合、他の事象通知(例えば、タスクか
らの事象通知、他の事象割り込みにおける事象通知等)
があるにも拘わらず、リアルタイムモニタ内で他の事象
通知が滞ることがある。これは、事象待ちマクロでの通
知保留事象を検索する際に、事象制御ブロックcblk
テーブルを常にテーブルスロットの先頭から検索するた
め、頻発している方の事象が他の事象より事象番号が若
番になっている場合に頻発する事象を優先して通知して
しまうからである。
【0008】この発明はこのような課題を解決するため
なされたもので、一つの事象が頻発するようなことにな
っても、他の事象の処理が滞ってしまわないように滞積
した事象を平準化して通知できるようにした事象管理・
通知方法を提供することを目的とする。
なされたもので、一つの事象が頻発するようなことにな
っても、他の事象の処理が滞ってしまわないように滞積
した事象を平準化して通知できるようにした事象管理・
通知方法を提供することを目的とする。
【0009】
【課題を解決するための手段】前記課題を解決するため
この発明に係る事象管理・通知方法は、事象制御ブロッ
ク検索手段はタスクが事象待ち状態に入る際に事象制御
ブロックテーブルを検索することで当該タスクに対し通
知が保留されている事象がないかをチェックするように
した事象管理・通知方法において、検索毎に検索を開始
する事象をずらすことを特徴とする。
この発明に係る事象管理・通知方法は、事象制御ブロッ
ク検索手段はタスクが事象待ち状態に入る際に事象制御
ブロックテーブルを検索することで当該タスクに対し通
知が保留されている事象がないかをチェックするように
した事象管理・通知方法において、検索毎に検索を開始
する事象をずらすことを特徴とする。
【0010】また、この発明に係る事象管理・通知方法
は、事象制御ブロックテーブルの検索によって通知保留
事象が発見された場合は当該通知保留事象の通知を行な
うとともに次回の検索開始事象番号を当該事象番号の次
の番号とし、通知保留事象が発見されなかった場合は次
回の検索開始事象番号を当該事象番号の次の番号とする
ことを特徴とする。
は、事象制御ブロックテーブルの検索によって通知保留
事象が発見された場合は当該通知保留事象の通知を行な
うとともに次回の検索開始事象番号を当該事象番号の次
の番号とし、通知保留事象が発見されなかった場合は次
回の検索開始事象番号を当該事象番号の次の番号とする
ことを特徴とする。
【0011】検索開始事象番号記憶テーブルを備え、こ
の検索開始事象番号記憶テーブルに各タスク毎の検索開
始事象番号を各タスクとの対応を付けて格納し、事象制
御ブロックテーブルの検索毎に該当するタスクの検索開
始事象番号を更新するようにしてもよい。
の検索開始事象番号記憶テーブルに各タスク毎の検索開
始事象番号を各タスクとの対応を付けて格納し、事象制
御ブロックテーブルの検索毎に該当するタスクの検索開
始事象番号を更新するようにしてもよい。
【0012】この発明に係る事象管理・通知方法は、事
象制御ブロックテーブルを検索する際に検索順序を固定
せずに、検索毎に検索を開始する事象をずらすようにし
たので、特定の事象が頻発するように場合であっても以
降の事象が滞留することがなく、事象を平準化して通知
することができる。
象制御ブロックテーブルを検索する際に検索順序を固定
せずに、検索毎に検索を開始する事象をずらすようにし
たので、特定の事象が頻発するように場合であっても以
降の事象が滞留することがなく、事象を平準化して通知
することができる。
【0013】
【発明の実施の形態】以下この発明の実施の形態を添付
図面に基づいて説明する。図1はこの発明に係る事象管
理・通知方法を適用したリアルタイムモニタ装置(シス
テム)の機能ブロック構成図である。リアルタイムモニ
タ装置(システム)は、タスクプログラム群10と、事
象制御ブロック(cblk)11と、事象制御ブロック
テーブル(cblkテーブル)12と、リアルタイムモ
ニタ20と、事象データテーブル群30と、割り込み処
理40とからなる。
図面に基づいて説明する。図1はこの発明に係る事象管
理・通知方法を適用したリアルタイムモニタ装置(シス
テム)の機能ブロック構成図である。リアルタイムモニ
タ装置(システム)は、タスクプログラム群10と、事
象制御ブロック(cblk)11と、事象制御ブロック
テーブル(cblkテーブル)12と、リアルタイムモ
ニタ20と、事象データテーブル群30と、割り込み処
理40とからなる。
【0014】タスクプログラム群10は機能毎に分割化
された複数のプログラムからなり、具体的には複数のタ
スク10−1,10−2,10−3……,10−nを備
える。本実施の形態においてタスクの優先度は10−1
>10−2>10−3>……>10−nである。また、
本実施の形態においてタスク10−1は、他のタスクへ
の起動を一斉に行なうためのスタートタスクである。
された複数のプログラムからなり、具体的には複数のタ
スク10−1,10−2,10−3……,10−nを備
える。本実施の形態においてタスクの優先度は10−1
>10−2>10−3>……>10−nである。また、
本実施の形態においてタスク10−1は、他のタスクへ
の起動を一斉に行なうためのスタートタスクである。
【0015】事象制御ブロック(cblk)11は、事
象待ちを行なうタスクが必ず1つ以上有しており、その
1ブロックが1つの事象を表わすものである。事象制御
ブロックテーブル(cblkテーブル)12は、事象待
ちを行なうタスクが事象待ちマクロを用いてリアルタイ
ムモニタ20へ事象待ち状態を宣言するために初期処理
時に自タスクの所有する全事象制御ブロックアドレスを
登録するためのものである。
象待ちを行なうタスクが必ず1つ以上有しており、その
1ブロックが1つの事象を表わすものである。事象制御
ブロックテーブル(cblkテーブル)12は、事象待
ちを行なうタスクが事象待ちマクロを用いてリアルタイ
ムモニタ20へ事象待ち状態を宣言するために初期処理
時に自タスクの所有する全事象制御ブロックアドレスを
登録するためのものである。
【0016】リアルタイムモニタ20は、システムマク
ロ群21と、POST処理22と、ディスパッチ処理2
3と、事象制御ブロック(cblk)検索手段24と、
事象制御ブロック(cblk)通知手段25とからな
る。
ロ群21と、POST処理22と、ディスパッチ処理2
3と、事象制御ブロック(cblk)検索手段24と、
事象制御ブロック(cblk)通知手段25とからな
る。
【0017】システムマクロ群21は、タスクプログラ
ム群10内のタスクがリアルタイムモニタ20に実行ス
ケジューリングを依頼する際に起動する関数プログラム
である。このシステムマクロ群21は、各種のシステム
マクロと、事象待ちマクロ21−1と、事象通知マクロ
21−2とを有してなる。事象待ちマクロ21−1は、
タスクが事象を待ち受ける際に起動する関数プログラム
である。事象通知マクロ21−2は、タスクが事象通知
の際に起動する関数プログラムである。
ム群10内のタスクがリアルタイムモニタ20に実行ス
ケジューリングを依頼する際に起動する関数プログラム
である。このシステムマクロ群21は、各種のシステム
マクロと、事象待ちマクロ21−1と、事象通知マクロ
21−2とを有してなる。事象待ちマクロ21−1は、
タスクが事象を待ち受ける際に起動する関数プログラム
である。事象通知マクロ21−2は、タスクが事象通知
の際に起動する関数プログラムである。
【0018】POST処理22は、事象通知マクロ21
−2により起動される。POST処理22は、全タスク
の事象発生を検索し当該発生事象を待ち受けているタス
クの実行可状態をリアルタイムモニタ20に宣言する。
−2により起動される。POST処理22は、全タスク
の事象発生を検索し当該発生事象を待ち受けているタス
クの実行可状態をリアルタイムモニタ20に宣言する。
【0019】ディスパッチ処理23は、実行スケジュー
リングの完了したリアルタイムモニタ20から起動さ
れ、スタック操作にて実行タスクを切り替える。
リングの完了したリアルタイムモニタ20から起動さ
れ、スタック操作にて実行タスクを切り替える。
【0020】事象制御ブロック(cblk)検索手段2
4は、事象待ちマクロから起動される。事象制御ブロッ
ク(cblk)検索手段24は、事象発生しているにも
関わらず通知が保留されている事象制御ブロック(cb
lk)を検索する。
4は、事象待ちマクロから起動される。事象制御ブロッ
ク(cblk)検索手段24は、事象発生しているにも
関わらず通知が保留されている事象制御ブロック(cb
lk)を検索する。
【0021】事象制御ブロック(cblk)通知手段2
5は、POST処理22にて起動される。事象制御ブロ
ック(cblk)通知手段25は、1タスクの全事象を
検索し事象を検出したら当該事象を待ち受けているタス
クへの事象通知動作を行なう。
5は、POST処理22にて起動される。事象制御ブロ
ック(cblk)通知手段25は、1タスクの全事象を
検索し事象を検出したら当該事象を待ち受けているタス
クへの事象通知動作を行なう。
【0022】事象データテーブル群30は、事象制御ブ
ロック(cblk)検索手段24ならびに事象制御ブロ
ック(cblk)通知手段25によって参照されるとと
もに更新される。この事象データテーブル群30は、待
ち受け事象数テーブル31と、事象制御ブロック(cb
lk)テーブルアドレスアドレステーブル32と、検索
開始事象番号記憶テーブル33と、リターンコード(r
tc)スタックアドレステーブル34とを備える。
ロック(cblk)検索手段24ならびに事象制御ブロ
ック(cblk)通知手段25によって参照されるとと
もに更新される。この事象データテーブル群30は、待
ち受け事象数テーブル31と、事象制御ブロック(cb
lk)テーブルアドレスアドレステーブル32と、検索
開始事象番号記憶テーブル33と、リターンコード(r
tc)スタックアドレステーブル34とを備える。
【0023】待ち受け事象数テーブル31には、事象待
ちを行なおうとするタスクが事象待ちマクロ21−1を
起動することにより当該タスクの待ち受け事象数が登録
される。
ちを行なおうとするタスクが事象待ちマクロ21−1を
起動することにより当該タスクの待ち受け事象数が登録
される。
【0024】事象制御ブロック(cblk)テーブルア
ドレスアドレステーブル32には、当該タスクの事象制
御ブロック(cblk)テーブル12のアドレスが登録
される。
ドレスアドレステーブル32には、当該タスクの事象制
御ブロック(cblk)テーブル12のアドレスが登録
される。
【0025】検索開始事象番号記憶テーブル33には、
検索を開始する事象の事象番号(事象#0,…,事象#
m)が格納される。
検索を開始する事象の事象番号(事象#0,…,事象#
m)が格納される。
【0026】リターンコード(rtc)スタックアドレ
ステーブル34には、当該タスクのリターンコード(r
tc)格納アドレスが登録される。このリターンコード
(rtc)スタックアドレステーブル34は、事象制御
ブロック(cblk)検索手段24ならびに事象制御ブ
ロック(cblk)通知手段25がリターンコード(r
tc)に発生事象番号(事象#0,…,事象#m)を書
き込む際に参照される。
ステーブル34には、当該タスクのリターンコード(r
tc)格納アドレスが登録される。このリターンコード
(rtc)スタックアドレステーブル34は、事象制御
ブロック(cblk)検索手段24ならびに事象制御ブ
ロック(cblk)通知手段25がリターンコード(r
tc)に発生事象番号(事象#0,…,事象#m)を書
き込む際に参照される。
【0027】割り込み処理40は、リアルタイムモニタ
装置(システム)の任意のタイミングで割り込みを発生
する。
装置(システム)の任意のタイミングで割り込みを発生
する。
【0028】図2および図3はこの発明に係る事象管理
・通知方法を適用したリアルタイムモニタ装置(システ
ム)の全体動作を示すフローチャートである。前述した
ように本実施の形態においてタスクの優先度は、タスク
10−1、タスク10−2、……タスク10−nの順で
あり、タスク10−1は他タスクへの起動を一斉に行な
うスタートタスクである。タスク起動はシステムマクロ
群21内のシステムマクロを使用する。該システムマク
ロは、指定された起動タスクを実行可状態にする。
・通知方法を適用したリアルタイムモニタ装置(システ
ム)の全体動作を示すフローチャートである。前述した
ように本実施の形態においてタスクの優先度は、タスク
10−1、タスク10−2、……タスク10−nの順で
あり、タスク10−1は他タスクへの起動を一斉に行な
うスタートタスクである。タスク起動はシステムマクロ
群21内のシステムマクロを使用する。該システムマク
ロは、指定された起動タスクを実行可状態にする。
【0029】タスク10−1は、タスク10−2,タス
ク10−3,……,タスク10−nに起動をかける(ス
テップA1)。システムマクロ群21内のシステムマク
ロを使用しリアルタイムモニタ20に停止状態を宣言す
る(ステップA2)。
ク10−3,……,タスク10−nに起動をかける(ス
テップA1)。システムマクロ群21内のシステムマク
ロを使用しリアルタイムモニタ20に停止状態を宣言す
る(ステップA2)。
【0030】リアルタイムモニタ20により実行タスク
の切り替えが検出されディスパッチ処理23が起動す
る。ディスパッチ処理23は、タスク10−1が停止し
たことにより優先度が高くなったタスク10−2を実行
する(ステップA3)。
の切り替えが検出されディスパッチ処理23が起動す
る。ディスパッチ処理23は、タスク10−1が停止し
たことにより優先度が高くなったタスク10−2を実行
する(ステップA3)。
【0031】図4はタスク10−2の動作を示すフロー
チャートである。タスク10−2は、各事象番号(#0
〜#m)の事象制御ブロック(cblk)アドレスを事
象制御ブロック(cblk)テーブルにセットし(ステ
ップB1)、事象待ちマクロを起動する(ステップB
2)。次に、事象番号#を認識し(ステップB3)、事
象番号#に対応した処理(ステップB4〜ステップB
7)を行ない、ステップB2,ステップB3,ステップ
B4〜B7の処理を繰り返す。例えば、事象#0であれ
ば事象#0発生時の処理が行なわれ、事象#mであれば
事象#m発生時の処理が行なわれる。このように、タス
ク10−2は、起動後にm個の事象を待ちそれぞれ発生
した事象の内容に応じた処理を繰り返す。
チャートである。タスク10−2は、各事象番号(#0
〜#m)の事象制御ブロック(cblk)アドレスを事
象制御ブロック(cblk)テーブルにセットし(ステ
ップB1)、事象待ちマクロを起動する(ステップB
2)。次に、事象番号#を認識し(ステップB3)、事
象番号#に対応した処理(ステップB4〜ステップB
7)を行ない、ステップB2,ステップB3,ステップ
B4〜B7の処理を繰り返す。例えば、事象#0であれ
ば事象#0発生時の処理が行なわれ、事象#mであれば
事象#m発生時の処理が行なわれる。このように、タス
ク10−2は、起動後にm個の事象を待ちそれぞれ発生
した事象の内容に応じた処理を繰り返す。
【0032】図5は事象待ちマクロの動作を示すフロー
チャートである。事象待ちマクロ21−1は、入力パラ
メータによりタスク番号、待ち受け事象数、事象制御ブ
ロック(cblk)テーブルアドレスを取得し(ステッ
プC1)、事象制御ブロック(cblk)検索手段24
にて当該事象制御ブロック(cblk)テーブル内にで
通知保留されている事象を検索する(ステップC2)。
そして、事象待ちマクロ21−1は、通知保留されてい
る事象の有無をチェックし(ステップC3)、通知保留
されている事象が有る場合はリアルタイムモニタ20に
処理を移管する。通知保留されている事象が無い場合
は、リアルタイムモニタ20に当該タスクの事象待ちを
宣言し(ステップC4)、リアルタイムモニタ20へ処
理を移管する。
チャートである。事象待ちマクロ21−1は、入力パラ
メータによりタスク番号、待ち受け事象数、事象制御ブ
ロック(cblk)テーブルアドレスを取得し(ステッ
プC1)、事象制御ブロック(cblk)検索手段24
にて当該事象制御ブロック(cblk)テーブル内にで
通知保留されている事象を検索する(ステップC2)。
そして、事象待ちマクロ21−1は、通知保留されてい
る事象の有無をチェックし(ステップC3)、通知保留
されている事象が有る場合はリアルタイムモニタ20に
処理を移管する。通知保留されている事象が無い場合
は、リアルタイムモニタ20に当該タスクの事象待ちを
宣言し(ステップC4)、リアルタイムモニタ20へ処
理を移管する。
【0033】図6は事象制御ブロック(cblk)検索
手段の動作を示すフローチャートである。事象制御ブロ
ック(cblk)検索手段23は、入力パラメータとし
て検索タスク番号(検索タスク#)を取得すると(ステ
ップD1)、検索開始事象番号記憶テーブル33から当
該検索タスクの検索開始事象番号を取得する(ステップ
D2)。次に、ステップD3で事象制御ブロック(cb
lk)検索手段23は、全ての事象制御ブロック(cb
lk)を見たかチェックし、全ての事象制御ブロック
(cblk)を見ていない場合には、事象制御ブロック
(cblk)テーブルの検索開始事象番号の事象制御ブ
ロック(cblk)の状態フラグを参照する(ステップ
D4)。
手段の動作を示すフローチャートである。事象制御ブロ
ック(cblk)検索手段23は、入力パラメータとし
て検索タスク番号(検索タスク#)を取得すると(ステ
ップD1)、検索開始事象番号記憶テーブル33から当
該検索タスクの検索開始事象番号を取得する(ステップ
D2)。次に、ステップD3で事象制御ブロック(cb
lk)検索手段23は、全ての事象制御ブロック(cb
lk)を見たかチェックし、全ての事象制御ブロック
(cblk)を見ていない場合には、事象制御ブロック
(cblk)テーブルの検索開始事象番号の事象制御ブ
ロック(cblk)の状態フラグを参照する(ステップ
D4)。
【0034】そして、事象制御ブロック(cblk)検
索手段23は、状態フラグをチェックし(ステップD
5)、状態フラグが事象未発生を示している場合には検
索開始事象番号に1を加算して(ステップD6)、ステ
ップD3の処理に戻る。事象制御ブロック(cblk)
検索手段23は、状態フラグが事象発生を示している場
合は、事象発生している事象番号をリターンコード(r
tc)スタックにセットして(ステップD7)、一連の
処理を終了する。
索手段23は、状態フラグをチェックし(ステップD
5)、状態フラグが事象未発生を示している場合には検
索開始事象番号に1を加算して(ステップD6)、ステ
ップD3の処理に戻る。事象制御ブロック(cblk)
検索手段23は、状態フラグが事象発生を示している場
合は、事象発生している事象番号をリターンコード(r
tc)スタックにセットして(ステップD7)、一連の
処理を終了する。
【0035】事象制御ブロック(cblk)検索手段2
3は、ステップD3で全ての事象制御ブロック(cbl
k)を見たことを確認すると、ステップD8以降の処理
を行なう。まず、ステップD8では、当該検索タスクの
待ち受け事象数テーブル31に待ち受け事象数を登録す
る。ステップD9で、当該検索タスクの事象制御ブロッ
ク(cblk)テーブルアドレステーブル32に事象制
御ブロック(cblk)テーブルアドレスを登録する。
ステップD10で、当該タスクの検索開始事象番号記憶
テーブル33の値に1を加算した値を、検索開始事象番
号記憶テーブル33に再度記憶する(検索開始事象番号
を次の値に更新する)。ステップD11で、当該タスク
のリターンコード(rtc)スタックアドレステーブル
34にリターンコード(rtc)スタックアドレスを登
録する。事象制御ブロック(cblk)検索手段23
は、ステップD8〜D11に示した事象データテーブル
群30の登録を行なった後に一連の処理を終了する。
3は、ステップD3で全ての事象制御ブロック(cbl
k)を見たことを確認すると、ステップD8以降の処理
を行なう。まず、ステップD8では、当該検索タスクの
待ち受け事象数テーブル31に待ち受け事象数を登録す
る。ステップD9で、当該検索タスクの事象制御ブロッ
ク(cblk)テーブルアドレステーブル32に事象制
御ブロック(cblk)テーブルアドレスを登録する。
ステップD10で、当該タスクの検索開始事象番号記憶
テーブル33の値に1を加算した値を、検索開始事象番
号記憶テーブル33に再度記憶する(検索開始事象番号
を次の値に更新する)。ステップD11で、当該タスク
のリターンコード(rtc)スタックアドレステーブル
34にリターンコード(rtc)スタックアドレスを登
録する。事象制御ブロック(cblk)検索手段23
は、ステップD8〜D11に示した事象データテーブル
群30の登録を行なった後に一連の処理を終了する。
【0036】図2に示すステップA3で起動されたタス
ク10−2は、図2のステップA4ならびに図4のステ
ップB1で示すように、自タスクの待ち受けする事象#
0〜#mの事象制御ブロック(cblk)のアドレスを
自タスクの事象制御ブロック(cblk)テーブル12
に登録する。
ク10−2は、図2のステップA4ならびに図4のステ
ップB1で示すように、自タスクの待ち受けする事象#
0〜#mの事象制御ブロック(cblk)のアドレスを
自タスクの事象制御ブロック(cblk)テーブル12
に登録する。
【0037】図7は事象制御ブロック(cblk)の構
成を示す説明図である。事象制御ブロック(cblk)
11は、状態フラグと通知メッセージとから構成してい
る。
成を示す説明図である。事象制御ブロック(cblk)
11は、状態フラグと通知メッセージとから構成してい
る。
【0038】図8は事象制御ブロック(cblk)テー
ブルに対する事象制御ブロック(cblk)アドレスの
登録動作を示す説明図である。事象制御ブロック(cb
lk)テーブル12には、事象番号順に各事象番号(#
0,#1,#2……)の事象制御ブロック(cblk)
のアドレスが登録される。
ブルに対する事象制御ブロック(cblk)アドレスの
登録動作を示す説明図である。事象制御ブロック(cb
lk)テーブル12には、事象番号順に各事象番号(#
0,#1,#2……)の事象制御ブロック(cblk)
のアドレスが登録される。
【0039】事象制御ブロック(cblk)テーブル1
2への登録が完了すると、図2のステップA5ならびに
図4のステップB2に示すように、タスク10−2は事
象待ちを行なうため事象待ちマクロ21−1を起動す
る。待ち受けマクロ21−1のパラメータは、本マクロ
を起動したタスクの番号と、当該タスクの待ち受け事象
数m+1と、当該タスクが所有するcblkテーブル1
2のアドレスである。
2への登録が完了すると、図2のステップA5ならびに
図4のステップB2に示すように、タスク10−2は事
象待ちを行なうため事象待ちマクロ21−1を起動す
る。待ち受けマクロ21−1のパラメータは、本マクロ
を起動したタスクの番号と、当該タスクの待ち受け事象
数m+1と、当該タスクが所有するcblkテーブル1
2のアドレスである。
【0040】事象待ちマクロ21−1は、図5のステッ
プC1,C2に示すように、cblk検出手段24にて
当該cblkテーブル12に登録されている全cblk
中に、状態フラグが事象発生となっているcblk(通
知保留されている事象)がないかを検索する。
プC1,C2に示すように、cblk検出手段24にて
当該cblkテーブル12に登録されている全cblk
中に、状態フラグが事象発生となっているcblk(通
知保留されている事象)がないかを検索する。
【0041】cblk検出手段24は、図6のステップ
D1,D2に示すように、指定されたタスクの検索開始
事象番号記憶テーブル33から検索開始事象番号を取得
する。検索開始事象番号のデフォルト値は0としてい
る。このため、最初に取得される検索開始事象番号は0
となる。cblk検出手段24は、当該タスクのcbl
kテーブル12の事象#0のスロットから待ち受け事象
数m+1分検索する(図6のステップD3〜D6)。
D1,D2に示すように、指定されたタスクの検索開始
事象番号記憶テーブル33から検索開始事象番号を取得
する。検索開始事象番号のデフォルト値は0としてい
る。このため、最初に取得される検索開始事象番号は0
となる。cblk検出手段24は、当該タスクのcbl
kテーブル12の事象#0のスロットから待ち受け事象
数m+1分検索する(図6のステップD3〜D6)。
【0042】ここでは、タスク10−2にて通知保留さ
れている事象がまだないため、cblk検出手段24
は、当該検索タスクの待ち受け事象数テーブル31に待
ち受け事象数を登録し(図6のステップD8,図9)、
当該タスクのcblkテーブルアドレステーブル32に
cblkテーブルアドレスを登録する(図6のステップ
D9,図10)。
れている事象がまだないため、cblk検出手段24
は、当該検索タスクの待ち受け事象数テーブル31に待
ち受け事象数を登録し(図6のステップD8,図9)、
当該タスクのcblkテーブルアドレステーブル32に
cblkテーブルアドレスを登録する(図6のステップ
D9,図10)。
【0043】図9は待ち受け事象数テーブルの内容を示
す説明図である。待ち受け事象数テーブル31には、各
タスクの待ち受け事象数が各タスクとの対応を付けて格
納されている。
す説明図である。待ち受け事象数テーブル31には、各
タスクの待ち受け事象数が各タスクとの対応を付けて格
納されている。
【0044】図10は事象制御ブロック(cblk)テ
ーブルアドレステーブルの内容を示す説明図である。c
blkテーブルアドレステーブル32には、各タスクの
cblkテーブルアドレスが各タスクとの対応を付けて
格納されている。
ーブルアドレステーブルの内容を示す説明図である。c
blkテーブルアドレステーブル32には、各タスクの
cblkテーブルアドレスが各タスクとの対応を付けて
格納されている。
【0045】cblk検出手段24は、ステップD10
で、当該検索タスクの検索開始事象番号記憶テーブル3
3の値に1を足した値を登録する。ここで、1を足した
値を登録するのは、次回検索時に同じ事象番号から検索
開始する動きを避けるためである。なお、1を足した値
が当該タスクの最大事象番号であるmを上回った場合
は、事象番号を0にする。cblk検索手段24にて通
知保留されているcblkを検出した場合についての説
明は後述する。
で、当該検索タスクの検索開始事象番号記憶テーブル3
3の値に1を足した値を登録する。ここで、1を足した
値を登録するのは、次回検索時に同じ事象番号から検索
開始する動きを避けるためである。なお、1を足した値
が当該タスクの最大事象番号であるmを上回った場合
は、事象番号を0にする。cblk検索手段24にて通
知保留されているcblkを検出した場合についての説
明は後述する。
【0046】図11は検索開始事象番号記憶テーブルの
内容を示す説明図である。検索開始事象番号記憶テーブ
ル33には、各タスクの検索開始事象番号が各タスクと
の対応を付けて格納されている。
内容を示す説明図である。検索開始事象番号記憶テーブ
ル33には、各タスクの検索開始事象番号が各タスクと
の対応を付けて格納されている。
【0047】cblk検索手段24は、当該タスクのマ
クロ起動時のリターンコード(rtc)格納アドレスを
rtcスタックアドレステーブル34に登録する(ステ
ップD11)。
クロ起動時のリターンコード(rtc)格納アドレスを
rtcスタックアドレステーブル34に登録する(ステ
ップD11)。
【0048】図12はリターンコード(rtc)スタッ
クアドレステーブルの内容ならびにタスク10−2のマ
クロ起動中でのスタック構成の一例を示す説明図であ
る。rtcスタックアドレステーブル34には、各タス
クのrtcスタックアドレスが各タスクとの対応を付け
て格納されている。
クアドレステーブルの内容ならびにタスク10−2のマ
クロ起動中でのスタック構成の一例を示す説明図であ
る。rtcスタックアドレステーブル34には、各タス
クのrtcスタックアドレスが各タスクとの対応を付け
て格納されている。
【0049】コンパイラによる関数呼び出しの際に関数
内で戻り値(=rtc)用に扱われる内部レジスタとい
うのは決まっているが、rtc格納アドレスとは当該内
部レジスタをスタックに積載した時のスタックエリアの
アドレスを指す。事象通知マクロ21−1はリアルタイ
ムモニタ20に当該タスクの事象待ちを宣言しリアルタ
イムモニタ20へ処理を移管する(図5のステップC
4)。
内で戻り値(=rtc)用に扱われる内部レジスタとい
うのは決まっているが、rtc格納アドレスとは当該内
部レジスタをスタックに積載した時のスタックエリアの
アドレスを指す。事象通知マクロ21−1はリアルタイ
ムモニタ20に当該タスクの事象待ちを宣言しリアルタ
イムモニタ20へ処理を移管する(図5のステップC
4)。
【0050】事象待ちマクロ21−1から処理移管され
たリアルタイムモニタ20は任意の処理を行った後、実
行タスクを切り替えるためにディスパッチ処理23へ処
理移管する。図2のステップA6に示すように、ディス
パッチ処理23は実行優先度が次に高いタスク10−3
を実行させる(ステップA6)。
たリアルタイムモニタ20は任意の処理を行った後、実
行タスクを切り替えるためにディスパッチ処理23へ処
理移管する。図2のステップA6に示すように、ディス
パッチ処理23は実行優先度が次に高いタスク10−3
を実行させる(ステップA6)。
【0051】図13はタスク10−3の動きを示すフロ
ーチャートである。タスク10−3は、実行開始後タス
ク10−2が待ち受ける事象#2の事象を検出したらタ
スク10−2に事象通知する処理を行なう。具体的に
は、ステップE1で、タスク10−2の待ち受け事象#
2の事象発生が有ったを検索する。ステップE2で事象
#2の発生が有ったこと検出すると、ステップE3でタ
スク10−2の待ち受け事象#2のcblkアドレスを
パラメータとして事象通知マクロ21−2を起動し、ス
テップE4でシステムマクロ群21のマクロを起動し一
定時間停止状態に入った後に、ステップE1の処理へ戻
る。ステップE2で事象#2の発生が無いことを検出し
た場合には、ステップE4でシステムマクロ群21のマ
クロを起動し一定時間停止状態に入った後に、ステップ
E1の処理へ戻る。
ーチャートである。タスク10−3は、実行開始後タス
ク10−2が待ち受ける事象#2の事象を検出したらタ
スク10−2に事象通知する処理を行なう。具体的に
は、ステップE1で、タスク10−2の待ち受け事象#
2の事象発生が有ったを検索する。ステップE2で事象
#2の発生が有ったこと検出すると、ステップE3でタ
スク10−2の待ち受け事象#2のcblkアドレスを
パラメータとして事象通知マクロ21−2を起動し、ス
テップE4でシステムマクロ群21のマクロを起動し一
定時間停止状態に入った後に、ステップE1の処理へ戻
る。ステップE2で事象#2の発生が無いことを検出し
た場合には、ステップE4でシステムマクロ群21のマ
クロを起動し一定時間停止状態に入った後に、ステップ
E1の処理へ戻る。
【0052】図14は事象通知マクロの動作を示すフロ
ーチャートである。事象通知マクロ21−2は、入力パ
ラメータよりcblkアドレスを取得し(ステップF
1)、パラメータで指定された事象制御ブロック(cb
lK)12の状態フラグに事象発生をセットし(ステッ
プF2)、次にPOST処理22を呼び出して(ステッ
プF3)、リアルタイムモニタ20へ処理を移管する。
ーチャートである。事象通知マクロ21−2は、入力パ
ラメータよりcblkアドレスを取得し(ステップF
1)、パラメータで指定された事象制御ブロック(cb
lK)12の状態フラグに事象発生をセットし(ステッ
プF2)、次にPOST処理22を呼び出して(ステッ
プF3)、リアルタイムモニタ20へ処理を移管する。
【0053】図15は事象制御ブロック(cblk)通
知手段の動作を示すフローチャートである。事象制御ブ
ロック(cblk)通知手段25は、入力パラメータに
基づいて検索タスク番号を取得する(ステップG1)。
次いで、事象制御ブロック(cblk)通知手段25
は、待ち受け事象数テーブル31から当該検索タスクの
待ち受け事象数を取得し(ステップG2)、cblkテ
ーブルアドレステーブル32から当該タスクのcblk
テーブルアドレスを取得し(ステップG3)、rtcス
タックアドレステーブル34から当該タスクのrtcス
タックアドレスを取得する(ステップG4)。次に、事
象制御ブロック(cblk)通知手段25は、検索開始
事象番号を0にセットする(ステップG5)。
知手段の動作を示すフローチャートである。事象制御ブ
ロック(cblk)通知手段25は、入力パラメータに
基づいて検索タスク番号を取得する(ステップG1)。
次いで、事象制御ブロック(cblk)通知手段25
は、待ち受け事象数テーブル31から当該検索タスクの
待ち受け事象数を取得し(ステップG2)、cblkテ
ーブルアドレステーブル32から当該タスクのcblk
テーブルアドレスを取得し(ステップG3)、rtcス
タックアドレステーブル34から当該タスクのrtcス
タックアドレスを取得する(ステップG4)。次に、事
象制御ブロック(cblk)通知手段25は、検索開始
事象番号を0にセットする(ステップG5)。
【0054】事象制御ブロック(cblk)通知手段2
5は、cblkテーブル12の検索開始事象番号の制御
対象ブロック(cblk)11の状態フラグを参照す
る。事象制御ブロック(cblk)通知手段25は、ス
テップG7で事象#0から事象#mまでチェックしたか
否か判断し、事象#0から事象#mまでチェックが完了
した場合には処理を終了する。事象#0から事象#mま
でのチェックが完了していない場合、事象制御ブロック
(cblk)通知手段25は、ステップG8で状態フラ
グを参照して事象発生か事象未発生かを判断する。
5は、cblkテーブル12の検索開始事象番号の制御
対象ブロック(cblk)11の状態フラグを参照す
る。事象制御ブロック(cblk)通知手段25は、ス
テップG7で事象#0から事象#mまでチェックしたか
否か判断し、事象#0から事象#mまでチェックが完了
した場合には処理を終了する。事象#0から事象#mま
でのチェックが完了していない場合、事象制御ブロック
(cblk)通知手段25は、ステップG8で状態フラ
グを参照して事象発生か事象未発生かを判断する。
【0055】事象未発生の場合、事象制御ブロック(c
blk)通知手段25は、ステップG9で検索開始事象
番号に1を加算してステップG6の処理へ戻る。事象発
生の場合、事象制御ブロック(cblk)通知手段25
は、ステップG10で、当該事象制御ブロック(cbl
k)の事象番号をリターンコード(rtc)スタックア
ドレステーブル34の当該タスクのスロットにセットす
る。
blk)通知手段25は、ステップG9で検索開始事象
番号に1を加算してステップG6の処理へ戻る。事象発
生の場合、事象制御ブロック(cblk)通知手段25
は、ステップG10で、当該事象制御ブロック(cbl
k)の事象番号をリターンコード(rtc)スタックア
ドレステーブル34の当該タスクのスロットにセットす
る。
【0056】図2のステップA6に示したように、ディ
スパッチ処理23により起動されたタスク10−3は、
タスク10−2への事象(事象#2)発生を検出し(図
2のステップA7、図13のステップE1)、事象通知
マクロ21−2を起動する(ステップA8、図13のス
テップE2、E3)。
スパッチ処理23により起動されたタスク10−3は、
タスク10−2への事象(事象#2)発生を検出し(図
2のステップA7、図13のステップE1)、事象通知
マクロ21−2を起動する(ステップA8、図13のス
テップE2、E3)。
【0057】事象通知マクロ21−2は、入力パラメー
タに基づいてタスク10−2の事象番号2(事象#2)
のcblkアドレスを取得する(図14のステップF
1)。事象通知マクロ21−2は、ステップF1で取得
したcblkアドレスに基づいて当該事象制御ブロック
(cblk)の状態フラグを事象発生としセットし(図
14のステップF2)、当該タスクのcblkの事象制
御ブロック(cblk)アドレスを入力パラメータとし
POST処理23を起動する(図14のF3)。
タに基づいてタスク10−2の事象番号2(事象#2)
のcblkアドレスを取得する(図14のステップF
1)。事象通知マクロ21−2は、ステップF1で取得
したcblkアドレスに基づいて当該事象制御ブロック
(cblk)の状態フラグを事象発生としセットし(図
14のステップF2)、当該タスクのcblkの事象制
御ブロック(cblk)アドレスを入力パラメータとし
POST処理23を起動する(図14のF3)。
【0058】POST処理22は、cblk通知手段2
5を使用して全タスクの全事象の発生状態をチェック
し、事象が発生しているタスクを実行可状態にする。P
OST処理22より入力パラメータとしてタスク番号
(タスク#)を得たcblk通知手段25は、当該タス
ク番号(タスク#)の待ち受け事象数テーブル31から
待ち受け事象数m+1を取得し(図15のステップG
1、G2)、cblkテーブルアドレステーブル32か
ら当該タスクの所有するcblkテーブル12のアドレ
スを取得し(ステップG3)、rtcスタックアドレス
テーブル34から当該タスクのrtcスタックアドレス
を取得する(ステップG4)。
5を使用して全タスクの全事象の発生状態をチェック
し、事象が発生しているタスクを実行可状態にする。P
OST処理22より入力パラメータとしてタスク番号
(タスク#)を得たcblk通知手段25は、当該タス
ク番号(タスク#)の待ち受け事象数テーブル31から
待ち受け事象数m+1を取得し(図15のステップG
1、G2)、cblkテーブルアドレステーブル32か
ら当該タスクの所有するcblkテーブル12のアドレ
スを取得し(ステップG3)、rtcスタックアドレス
テーブル34から当該タスクのrtcスタックアドレス
を取得する(ステップG4)。
【0059】cblk通知手段25は、当該タスクのc
blkテーブル12の事象#0〜事象#mまで状態フラ
グが事象発生になっているcblkが存在するかを検索
する(ステップG5、G6、G7)。状態フラグが事象
発生となっているcblkアドレスを検出した場合は当
該事象番号(#)の値をrtcスタックに格納する(ス
テップG8、G10)。本実施の形態では事象#2を検
出したため、リターンコード(rtc)には2が格納さ
れる。
blkテーブル12の事象#0〜事象#mまで状態フラ
グが事象発生になっているcblkが存在するかを検索
する(ステップG5、G6、G7)。状態フラグが事象
発生となっているcblkアドレスを検出した場合は当
該事象番号(#)の値をrtcスタックに格納する(ス
テップG8、G10)。本実施の形態では事象#2を検
出したため、リターンコード(rtc)には2が格納さ
れる。
【0060】次にPOST処理22は、リアルタイムモ
ニタ20に対しcblk通知手段25によってcblk
通知されたタスク、本実施の形態でタスク10−2の実
行可状態を宣言する(図2のステップA8)。
ニタ20に対しcblk通知手段25によってcblk
通知されたタスク、本実施の形態でタスク10−2の実
行可状態を宣言する(図2のステップA8)。
【0061】図2のステップA8に示すように、リアル
タイムモニタ20によって起動されたディスパッチ処理
23は、タスク10−3よりも実行優先度が高いタスク
10−2を実行可能状態として検出するが、割り込み入
力が保留されているために、割り込み処理40を起動す
る(図3のステップA9)。
タイムモニタ20によって起動されたディスパッチ処理
23は、タスク10−3よりも実行優先度が高いタスク
10−2を実行可能状態として検出するが、割り込み入
力が保留されているために、割り込み処理40を起動す
る(図3のステップA9)。
【0062】割り込み処理40はタスク10−2が待ち
受けている事象#0の事象を検出し(図3のステップA
10)、事象発生をタスク10−2に通知するため、タ
スク10−2の事象番号(事象#0)の事象制御ブロッ
ク(cblk)の状態フラグを事象発生としPOST処
理22を起動する(図3のステップA11)。
受けている事象#0の事象を検出し(図3のステップA
10)、事象発生をタスク10−2に通知するため、タ
スク10−2の事象番号(事象#0)の事象制御ブロッ
ク(cblk)の状態フラグを事象発生としPOST処
理22を起動する(図3のステップA11)。
【0063】POST処理22は、cblk通知手段2
5を使用し全タスクの全事象の発生状態をチェックし、
事象が発生しているタスクを実行可状態にする。POS
T処理22より入力パラメータとしてタスク番号(タス
ク#)を得たcblk通知手段25は、当該タスク番号
(タスク#)の待ち受け事象数テーブル31から待ち受
け事象数m+1を取得し(図15のステップG1、G
2)、cblkテーブルアドレステーブル32から当該
タスクの所有するcblkテーブル12のアドレスを取
得し(ステップG3)、rtcスタックアドレステーブ
ル34から当該タスクのrtcスタックアドレスを取得
する(ステップG4)。
5を使用し全タスクの全事象の発生状態をチェックし、
事象が発生しているタスクを実行可状態にする。POS
T処理22より入力パラメータとしてタスク番号(タス
ク#)を得たcblk通知手段25は、当該タスク番号
(タスク#)の待ち受け事象数テーブル31から待ち受
け事象数m+1を取得し(図15のステップG1、G
2)、cblkテーブルアドレステーブル32から当該
タスクの所有するcblkテーブル12のアドレスを取
得し(ステップG3)、rtcスタックアドレステーブ
ル34から当該タスクのrtcスタックアドレスを取得
する(ステップG4)。
【0064】cblk通知手段25は、当該タスクのc
blkテーブル12の事象#0〜事象#mまで状態フラ
グが事象発生になっている事象制御ブロック(cbl
k)が存在するか否かを検索する(ステップG5、G
6、G7)。そして、状態フラグが事象発生となってい
るcblkアドレスを検出した場合は、当該事象番号
(事象#)の値をrtcスタックに格納する(ステップ
G8、G10)。本実施の形態では、図2に示すステッ
プA7、A8にて事象#2を検出し、さらにタスク10
−2が事象#2を引き取っていない状態で事象#0を検
出したためリターンコード(rtc)には事象#0が上
書きされる。
blkテーブル12の事象#0〜事象#mまで状態フラ
グが事象発生になっている事象制御ブロック(cbl
k)が存在するか否かを検索する(ステップG5、G
6、G7)。そして、状態フラグが事象発生となってい
るcblkアドレスを検出した場合は、当該事象番号
(事象#)の値をrtcスタックに格納する(ステップ
G8、G10)。本実施の形態では、図2に示すステッ
プA7、A8にて事象#2を検出し、さらにタスク10
−2が事象#2を引き取っていない状態で事象#0を検
出したためリターンコード(rtc)には事象#0が上
書きされる。
【0065】リアルタイムモニタ20によって起動され
たディスパッチ処理23はタスク10−3よりも実行優
先度が高いタスク10−2の実行可状態を検出し、再度
タスク10−2へ実行を切り替える(図3のステップA
12)。
たディスパッチ処理23はタスク10−3よりも実行優
先度が高いタスク10−2の実行可状態を検出し、再度
タスク10−2へ実行を切り替える(図3のステップA
12)。
【0066】実行が再開されたタスク10−2は、事象
待ちマクロ21−1のリターンコード(rtc)を判断
して、当該事象に応じた処理を行う。本実施の形態では
事象#0の0がrtcとなる(ステップA13)。事象
待ちマクロ21−1から復帰したタスク10−2は、リ
ターンコード(rtc)が0であることを確認し事象#
0に対応した処理を行う(ステップA14)。タスク1
0−2は永久ループにより再度事象待ちを行うため、事
象待ちマクロ21−1を再度起動する。
待ちマクロ21−1のリターンコード(rtc)を判断
して、当該事象に応じた処理を行う。本実施の形態では
事象#0の0がrtcとなる(ステップA13)。事象
待ちマクロ21−1から復帰したタスク10−2は、リ
ターンコード(rtc)が0であることを確認し事象#
0に対応した処理を行う(ステップA14)。タスク1
0−2は永久ループにより再度事象待ちを行うため、事
象待ちマクロ21−1を再度起動する。
【0067】事象待ちマクロ21−1は、cblk検索
手段24を使用しパラメータで指定されたcblkテー
ブル12内の全cblkをチェックする(図5のステッ
プC1)。cblk検索手段24は、指定されたタスク
の検索開始事象番号記憶テーブル33から検索開始事象
番号を取得する。図2のステップA5で既に検索動作が
走っているのでここでの検索開始事象番号は1となる。
(図6のステップD1、D2)。
手段24を使用しパラメータで指定されたcblkテー
ブル12内の全cblkをチェックする(図5のステッ
プC1)。cblk検索手段24は、指定されたタスク
の検索開始事象番号記憶テーブル33から検索開始事象
番号を取得する。図2のステップA5で既に検索動作が
走っているのでここでの検索開始事象番号は1となる。
(図6のステップD1、D2)。
【0068】cblk検索手段24は、当該タスクのc
blkテーブル12の事象#1から待ち受け事象数分検
索する。検索はループ形式で行うので事象#1〜事象#
m、事象#0の順で検索を行う(ステップD3、D4、
D5、D6)。本実施の形態ではステップA7にて検出
した事象#2が通知保留されているので事象#2がリタ
ーンコード(rtc)にセットされ、一旦はリアルタイ
ムモニタ20へ処理を移管するがリアルタイム20及び
ディスパッチ処理23は事象待ち状態に入らずリターン
させる(ステップA15、A16、ステップC3、C
5)。リターンされたタスク10−2は事象#2に対応
した処理を行う(ステップA17)。
blkテーブル12の事象#1から待ち受け事象数分検
索する。検索はループ形式で行うので事象#1〜事象#
m、事象#0の順で検索を行う(ステップD3、D4、
D5、D6)。本実施の形態ではステップA7にて検出
した事象#2が通知保留されているので事象#2がリタ
ーンコード(rtc)にセットされ、一旦はリアルタイ
ムモニタ20へ処理を移管するがリアルタイム20及び
ディスパッチ処理23は事象待ち状態に入らずリターン
させる(ステップA15、A16、ステップC3、C
5)。リターンされたタスク10−2は事象#2に対応
した処理を行う(ステップA17)。
【0069】
【発明の効果】以上説明したようにこの発明に係る事象
管理・通知方法は、事象制御ブロックテーブルを検索す
る際に検索順序を固定せずに、検索毎に検索を開始する
事象をずらすようにしたので、特定の事象が頻発するよ
うに場合であっても以降の事象が滞留することがなく、
事象を平準化して通知することができる。
管理・通知方法は、事象制御ブロックテーブルを検索す
る際に検索順序を固定せずに、検索毎に検索を開始する
事象をずらすようにしたので、特定の事象が頻発するよ
うに場合であっても以降の事象が滞留することがなく、
事象を平準化して通知することができる。
【図1】 この発明に係る事象管理・通知方法を適用し
たリアルタイムモニタ装置(システム)の機能ブロック
構成図である。
たリアルタイムモニタ装置(システム)の機能ブロック
構成図である。
【図2】 この発明に係る事象管理・通知方法を適用し
たリアルタイムモニタ装置(システム)の全体動作を示
すフローチャート(その1)である。
たリアルタイムモニタ装置(システム)の全体動作を示
すフローチャート(その1)である。
【図3】 この発明に係る事象管理・通知方法を適用し
たリアルタイムモニタ装置(システム)の全体動作を示
すフローチャート(その2)である。
たリアルタイムモニタ装置(システム)の全体動作を示
すフローチャート(その2)である。
【図4】 タスク10−2の動作を示すフローチャート
である。
である。
【図5】 事象待ちマクロの動作を示すフローチャート
である。
である。
【図6】 事象制御ブロック(cblk)検索手段の動
作を示すフローチャートである。
作を示すフローチャートである。
【図7】 事象制御ブロック(cblk)の構成を示す
説明図である。
説明図である。
【図8】 事象制御ブロック(cblk)テーブルに対
する事象制御ブロック(cblk)アドレスの登録動作
を示す説明図である。
する事象制御ブロック(cblk)アドレスの登録動作
を示す説明図である。
【図9】 待ち受け事象数テーブルの内容を示す説明図
である。
である。
【図10】 事象制御ブロック(cblk)テーブルア
ドレステーブルの内容を示す説明図である。
ドレステーブルの内容を示す説明図である。
【図11】 検索開始事象番号記憶テーブルの内容を示
す説明図である。
す説明図である。
【図12】 リターンコード(rtc)スタックアドレ
ステーブルの内容ならびにタスク10−2のマクロ起動
中でのスタック構成の一例を示す説明図である。
ステーブルの内容ならびにタスク10−2のマクロ起動
中でのスタック構成の一例を示す説明図である。
【図13】 タスク10−3の動きを示すフローチャー
トである。
トである。
【図14】 事象通知マクロの動作を示すフローチャー
トである。
トである。
【図15】 事象制御ブロック(cblk)通知手段の
動作を示すフローチャートである。
動作を示すフローチャートである。
10 タスクプログラム群 10−1〜10−n タスク 20 リアルタイムモニタ 21 システムマクロ群 21−1 事象待ちマクロ 21−2 事象通知マクロ 22 POST処理 23 ディスパッチ処理 24 事象制御ブロック(cblk)検索手段 25 事象制御ブロック(cblk)通知手段 30 事象データテーブル群 31 待ち受け事象数テーブル 32 事象制御ブロック(cblk)テーブルアドレス
テーブル 33 検索開始事象番号記憶テーブル 34 リターン(rtc)コードスタックアドレステー
ブル 40 割り込み処理
テーブル 33 検索開始事象番号記憶テーブル 34 リターン(rtc)コードスタックアドレステー
ブル 40 割り込み処理
Claims (4)
- 【請求項1】 事象制御ブロック検索手段は、タスクが
事象待ち状態に入る際に事象制御ブロックテーブルを検
索することで当該タスクに対し通知が保留されている事
象がないかをチェックするようにした事象管理・通知方
法において、 検索毎に検索を開始する事象をずらすことを特徴とする
事象管理・通知方法 - 【請求項2】 事象制御ブロック検索手段は、タスクが
事象待ち状態に入る際に事象制御ブロックテーブルを検
索することで当該タスクに対し通知が保留されている事
象がないかをチェックするようにした事象管理・通知方
法において、 前記事象制御ブロックテーブルの検索によって通知保留
事象が発見された場合は当該通知保留事象の通知を行な
うとともに次回の検索開始事象番号を当該事象番号の次
の番号とし、通知保留事象が発見されなかった場合は次
回の検索開始事象番号を当該事象番号の次の番号とする
ことを特徴とする事象管理・通知方式。 - 【請求項3】 前記検索開始事象番号を格納する検索開
始事象番号記憶テーブルを備えたことを特徴とする請求
項2記載の事象管理・通知方式。 - 【請求項4】 前記検索開始事象番号記憶テーブルは、
各タスク毎の検索開始事象番号が各タスクとの対応を付
けて格納されていることを特徴とする請求項3記載の事
象管理・通知方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP10244128A JP2000076084A (ja) | 1998-08-28 | 1998-08-28 | 事象管理・通知方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP10244128A JP2000076084A (ja) | 1998-08-28 | 1998-08-28 | 事象管理・通知方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2000076084A true JP2000076084A (ja) | 2000-03-14 |
Family
ID=17114190
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP10244128A Pending JP2000076084A (ja) | 1998-08-28 | 1998-08-28 | 事象管理・通知方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2000076084A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100809290B1 (ko) | 2006-03-14 | 2008-03-04 | 삼성전자주식회사 | Pdr을 이용한 프로세스 별 관리 장치 및 그 방법 |
-
1998
- 1998-08-28 JP JP10244128A patent/JP2000076084A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100809290B1 (ko) | 2006-03-14 | 2008-03-04 | 삼성전자주식회사 | Pdr을 이용한 프로세스 별 관리 장치 및 그 방법 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6006247A (en) | Method and system for scheduling threads and handling exceptions within a multiprocessor data processing system | |
US9798595B2 (en) | Transparent user mode scheduling on traditional threading systems | |
CN112099975B (zh) | 一种消息处理方法及系统、存储介质 | |
EP1189137A1 (en) | Interruption managing device and interruption managing method | |
US20070033384A1 (en) | Real-time embedded simple monitor method and computer product | |
CN110247984A (zh) | 业务处理方法、装置及存储介质 | |
US6408324B1 (en) | Operating system having a non-interrupt cooperative multi-tasking kernel and a method of controlling a plurality of processes with the system | |
CN101192192A (zh) | 用于实时操作系统的任务异常诊断方法及系统 | |
JP3245500B2 (ja) | マルチプログラミングにおける事象管理方式 | |
JPS62160537A (ja) | 割込み処理方法 | |
JP2000076084A (ja) | 事象管理・通知方法 | |
JP2595833B2 (ja) | 遠隔保守装置 | |
JP2000502202A (ja) | 命令プロセッサのジョブスケジューリング | |
JP3601677B2 (ja) | タスク処理システム | |
CN112714492A (zh) | 一种uwb数据包处理方法、系统、电子设备及其存储介质 | |
CN113220442B (zh) | 数据调度方法、装置及电子设备 | |
CN116302732B (zh) | 多处理器性能指标获取方法、装置、电子设备及车辆 | |
JP4003113B2 (ja) | 電話交換におけるマルチスレッドの制御方法 | |
WO2003075167A1 (en) | Method and arrangement for virtual direct memory access | |
JPH0262633A (ja) | プログラム間通知方式 | |
JPH0836553A (ja) | マルチプロセッサシステムおよび同システムにおけるタスクスケジューリング方法 | |
JP3093714B2 (ja) | マルチタスクの実行優先順位決定システム | |
JP3581723B2 (ja) | 会話情報制御装置 | |
JP2885631B2 (ja) | オペレーティングシステム管理装置およびオペレーティングシステム管理方法 | |
CN118838702A (en) | Lightweight asynchronous task processing method, system and device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20000328 |