JP3245500B2 - マルチプログラミングにおける事象管理方式 - Google Patents

マルチプログラミングにおける事象管理方式

Info

Publication number
JP3245500B2
JP3245500B2 JP09087994A JP9087994A JP3245500B2 JP 3245500 B2 JP3245500 B2 JP 3245500B2 JP 09087994 A JP09087994 A JP 09087994A JP 9087994 A JP9087994 A JP 9087994A JP 3245500 B2 JP3245500 B2 JP 3245500B2
Authority
JP
Japan
Prior art keywords
event
task
waiting
wait
condition
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP09087994A
Other languages
English (en)
Other versions
JPH07295840A (ja
Inventor
佳典 羽坂
Original Assignee
エヌイーシーマイクロシステム株式会社
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 エヌイーシーマイクロシステム株式会社 filed Critical エヌイーシーマイクロシステム株式会社
Priority to JP09087994A priority Critical patent/JP3245500B2/ja
Publication of JPH07295840A publication Critical patent/JPH07295840A/ja
Application granted granted Critical
Publication of JP3245500B2 publication Critical patent/JP3245500B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はマルチプログラミングに
おける事象管理方式に関し、特にマイクロコンピュータ
と周辺ハードウェアとのインタフェ−スを必要とする電
話およびファクシミリ等において、複数のタスクを事象
ごとに切替えるOSと、当該OS上において動作するア
プリケーション・プログラムとを、ROM等のファ−ム
ウェアとして記憶して組み込むシステムに適用されるマ
ルチプログラミングにおける事象管理方式に関する。
【0002】
【従来の技術】従来、複数のタスクを並行動作させる管
理プログラムとして機能するマルチプログラミングにお
ける事象管理方式(以下、マルチプログラミング・シス
テムと云う)は、複雑な制御用システムを小さな仕事の
単位であるタスクとして細分化するとともに、当該タス
ク間の関係およびタスクと入出力(外部システム)との
関係を明確にすることにより、生産性と保守性の向上を
図るために用いられている。例えば、CQ出版社の別冊
インタフェ−ス・ブートストラップNO.6、同じくC
Q出版社のインタフェ−ス1992年12月号、日本電
気(株)の78K/0シリーズ用リアルタイムOS R
X78K/0基礎編 資料番号EED−912A(第2
版)および日本電気(株)の78K/3リアルタイムO
Sアプリケーション 資料番号EEAー611A(第2
版)等に示されているように、一つしかないCPUに対
して複数のタスクを割り当てて、時間および外部システ
ムからの入力等をタスク切替えの要因(事象)として使
用し、タスク一つ一つに対するCPU割り当て時間を分
配することにより、前記管理プログラムを実現してい
る。このような管理プログラムは、マルチタスクOSま
たはリアルタイムOSとも呼ばれている。
【0003】図14は、従来のOSを用いた一例を示す
マルチプログラミング・システムの内部構成図である。
図14に示されるように、本従来例は、タスク管理手段
1と、タスク制御ブロック4−1、4−2、……、4−
nを含むタスク制御ブロック群4と、実行中タスク5
と、実行待ちタスク6−1、6−2、……、6−nを含
む実行待ちタスク群6と、実行待ちタスク7−1、7−
2、……、7−nを含む実行待ちタスク群7と、割り込
みハンドラ8と、メール・ボックス12ー1、イベント
・フラグ12ー2、時間待ちタイマ12−3および起床
要求カウンタ12−4を含む事象状態記憶領域12と、
事象待ち管理手段13とを備えて構成される。なお、実
行中タスク5、実行待ちタスク群6、事象待ちタスク群
7および割り込みハンドラ8は、当該システム全体を制
御するためのプログラムの集合であり、これらは全てプ
ログラム記憶部50内に格納されている。このプログラ
ム記憶部50の例としてはROM等が用いられている。
また、タスク制御ブロック群4および事象状態記憶領域
12に、プログラム記憶部50に格納されているタスク
を制御するための情報が格納されるデータ記憶部51に
包含されている。このデータ記憶部51の例としてはR
AM等が用いられる。
【0004】図14において、実行中タスク5は、プロ
グラム記憶部50に格納されているプログラムであり、
現在時点において、CPUにおいて処理されているプロ
グラムの内容を意味している。この実行中タスク5を処
理している状態は実行状態(RUN状態)と呼ばれてい
る。実行待ちタスク群6は、いつでも実行することがで
きる状態にあるが、前記CPUが、実行中タスク5より
解放されるのを待機しているプログラムであり、この待
機状態は、実行待ち状態(READY状態)または実行
可能状態と呼ばれている。事象待ちタスク群7は、或る
事象が成立することを待機しているプログラムであり、
この待機状態は、事象待ち状態(WAIT状態)と呼ば
れている。また、割り込みハンドラ8は、当該システム
全体を制御するためのプログラの集合体を意味してお
り、プログラム記憶部50に格納されている。
【0005】タスク制御ブロック群4と事象状態記憶領
域12には、プログラム記憶部50を制御するための情
報が格納され、データ記憶部51に包含されて構成され
ており、それぞれRAM等により形成される。タスク制
御ブロック4は、タスクの実行が中断された時には、再
度、当該タスクの続きを実行することが可能な範囲の情
報が格納されており、TCBとも呼ばれている。プログ
ラム記憶部50内の実行待ちタスク群6および事象待ち
タスク群7は、タスク制御ブロック4に含まれているタ
スク持続アドレスにより管理され、一つのグループにま
とめられたプログラムであり、その構造は待ち行列(キ
ュー)と呼ばれている。事象状態記憶領域12は、メー
ル・ボックス12−1、イベント・ボックス12−2、
時間待ちタイマ12−3および起床要求カウンタ12−
4により形成されており、事象の条件であるメッセー
ジ、イベント、時間および起床要求等の現在の状態を示
す情報が格納されている領域である。
【0006】タスク管理手段1および事象待ち管理手段
13は、プログラム記憶部50に格納されている、実行
中タスク5、実行待ちタスク群6および事象待ちタスク
群7等を含むタスクならびに割り込みハンドラ8を、デ
ータ記憶部に格納されている情報を基に制御する機能を
有する手段であり、この内のタスク管理手段1は、実行
状態にある実行中タスク5と、実行待ちタスク群6に含
まれているタスクの中から、或る取り決めにより一つの
タスクを選び出して、実行状態に移行させる機能を有し
ている。このタスク管理手段1による上記の動作は、ス
ケジューリングと呼ばれており、また当該タスク管理手
段1自体はスケジューラと呼ばれる。今、一例として、
タスク管理手段1により、実行待ちタスク群6から一つ
のタスクが選び出された場合には、現在、実行状態にあ
った実行中タスク5は実行待ち状態に遷移し、待ち状態
にあった実行待ちタスク群6の内の一つのタスクが実行
状態に遷移する。このタスクの遷移状態(切替状態)
は、ディスパッチと呼ばれており、実行中タスク5が中
断されていた時のレジスタ等の状態を保存する動作(コ
ンテキスト保存)と、実行待ち状態であったタスクが中
断された時のレジスタ等の状態を復元する動作(コンテ
キスト復元)とを合わせた状態を意味している。タスク
管理手段1のスケジューリングの方法としては、タスク
ごとに優先順位を与えて、当該優先順位の高いものから
順に実行する優先順位実行方式と、実行待ち状態になっ
た順に実行する先着実行方式と、タスクごとに実行可能
の時間を設けてその時間が経過した時に切替えるタイム
スライス方式等があるが、これらの方式を適当に組み合
わせて用いることが多い。なお、以後の説明において
は、優先順位方式と先着順方式とを組み合わせて行う方
式を例として説明するものとする。
【0007】実行中タスク5より出力される事象制御情
報603は、実行状態のタスクから他のタスクに対して
送信される信号またはデータ等であり、1ビットのフラ
グ情報を持つイベント・フラグおよび1バイト以上のデ
ータ群であるメッセージ等が包含されており、タスク間
の同期をとるために使用される。割り込みハンドラ8よ
り出力される事象制御情報601は、事象を設定する信
号およびデータを含む信号であり、タスク管理手段1に
入力されて、当該タスク管理手段1による制御作用に関
与する。事象待ち管理手段13に入力される事象制御情
報602は、外部回路またはCPU(図示されない)の
タイマから入力されるタイマ割り込み信号等を含む信号
であり、事象待ち管理手段13におけるOSの時間管理
用の基準タイマとして使用される。事象待ち管理手段1
3は、上記の事象制御情報601、602および603
により、事象待ちタスク群7の中から事象待ちを解除す
るタスクを選択して、実行待ちタスク群6に移動させる
手段である。この事象待ちを解除するタスクを実行待ち
タスク群6に移動させる際には、前記タスク管理手段1
において行われたスケジューリングと同等のスケジュー
リングが行われる。
【0008】マルチプログラミング・システムのシステ
ム全体としては、通常、タスク管理手段1により、実行
中タスク5と実行待ちタスク群6とを頻繁に切替えるこ
とにより動作が行われている。しかしながら、このよう
にタスクの切替えが頻繁に行われると、コンテキストの
保存と復元に多くの時間を要する状態となり、一定時間
当りのタスク実行時間が短縮される結果となる。この問
題に対処するために、或る事象が発生するまで、タスク
を切替えの対象外とする機能を持った事象待ち管理手段
13が設けられている。
【0009】以下、図14および図15(a)を参照し
て、実行中タスク5が、事象待ち管理手段13により事
象待ち状態に移行する動作について説明する。まず、実
行タスク5において事象待ちが発生した場合には、事象
待ち管理手段13による制御作用に移行して、ステップ
B1においては、登録内容を事象状態記憶領域群12に
書き込む。次いでステップB2においては、実行中タス
ク5を事象待ちタスク群7に移動させて、当該実行中タ
スク5を事象待ち状態にする。実行中タスク5の移動終
了後には、タスク管理手段1に制御作用が移りスケジュ
ーリングが行われて、実行待ちタスク群6の中から優先
順位の高いタスクが実行中タスク5に移行する。
【0010】次に、図14および図15(b)を参照し
て、事象待ちタスク群7のタスクが、事象待ち管理手段
13により実行待ち状態にに移行する動作について説明
する。タイマ割り込みにより発生した事象制御情報60
2、または、実行中タスク5および割り込みバンドラ8
においてそれぞれ発生した事象制御情報603および6
01によって、事象待ち管理手段13に制御が移り、ス
テップB3においては、発生した事象を待つタスクが事
象待ちタスク群7に存在するか否かを調べる。ステップ
B3の判断処理において、当該タスクが事象待ちタスク
群7に存在しない場合には、タスク管理手段1に制御が
戻り処理は終了する。また、当該タスクが事象待ちタス
ク群6に存在する場合には、ステップB4において、事
象待ちタスク群7に含まれている対象事象を実行待ちタ
スク群5に移動させて実行待ち状態にする。当該対象事
象の移動後においてはタスク管理手段1に制御が移り、
スケジューリングが行われて、実行待ちタスク群6の中
から優先順位の高いタスクが実行中タスク5に移動す
る。
【0011】図16は、それぞれ従来のOSを使用した
時の、実行待ち行列45、時間待ち行列46、イベント
待ち行列47およびメッセージ待ち行列48を含む事象
待ち行列の形成例である。ポインタ400、402、4
04および406は、ぞれぞれ、これらの実行待ち行列
45、時間待ち行列46、イベント待ち行列47および
メッセージ待ち行列48を含む事象待ち行列の先頭のタ
スク制御ブロックのタスク接続アドレスとして定義され
るポインタである。これらのポインタは、待ちタスクが
存在しない場合には、例えばヌルポインタ等のあり得な
いアドレスに設定される。またポインタ4011 、40
2 、4013 、4031 、4032 および405は、
次のタスク制御プロックのポインタである。この内、ポ
インタ4012 、4032 および405はターミネータ
であり、例えば、ヌルポインタ等のあり得ないアドレス
に設定される。 図14の従来のマルチプログラミング
・システムの内部構成図において、事象待ち管理手段1
3により、図16の時間待ち行列46、イベント待ち行
列47およびメッセージ待ち行列48を含む事象待ち行
列のタスクが、図16に示される実行待ち行列45に移
動する際には、このポインタを書き変えることにより実
現されている、また、実行中のタスクが、時間待ち行列
46、イベント待ち行列47およびメッセージ待ち行列
48を含む事象待ち行列のタスクに移動する時には、時
間待ち行列46、イベント待ち行列47、またはメッセ
ージ待ち行列48の先頭または後尾のポインタを書き変
えることにより実現されている。
【0012】次に、図17に示されるOSの制御構造例
と合わせて動作について説明する。アプリケーション・
プログラムの観点から見ると、タスク管理手段1と事象
待ち管理手段13との間には、システム・コール14と
呼ばれるOS制御用の関数が、アプリケーションプログ
ラムとタスク管理手段1/事象待ち管理手段13との間
を取り持っている。例えば、図14の実行待ちタスク群
6に対して、新たにタスクを追加したい場合には、先
ず、タスク生成用システム・コールをすることによりタ
スク制御ブロック群4を生成し、その後、タスク起動シ
ステム・コールを発行することにより、実行待ちタスク
群6の最後にタスクを追加する。また、起動したタスク
の優先順位を変更したい時には、優先順位変更用のシス
テム・コールを発行することにより、タスク制御ブロッ
ク群4に含まれている優先順位番号を変更する。このよ
うに、現在時点における実行中タスク5の中で、発行さ
れたシステム・コール、またはOS自身が管理している
事象制御情報602により、タスク管理手段1と事象待
ち管理手段13に制御が移る。タスク管理手段1にいて
は、実行待ちタスク群6の優先順位の高いタスクから順
次切替えおよび実行が繰返して行われる。もしも、事象
待ち管理手段13により、新たに事象待ちタスク群7か
ら実行待ちタスク群6にタスクが移動してきた場合に
は、当該タスクが、実行中タスク5のタスクよりも優先
順位の高いものであれば、実行中のタスクが中断され
て、移動してきたタスクが実行される。
【0013】事象状態記憶領域12には、図16におい
て説明したメッセージ待ち行列48の情報を格納するメ
ール・ボックス12−1と、イベント待ち行列47の情
報を格納するイベント・フラグ12−2と、時間待ち行
列46の情報を格納する時間待ちタイマ12−3と、起
床待ち行列の情報を格納する起床要求カウンタ12−4
が、少なくとも存在している。以下においては、従来例
における問題点に関連して、上記のメール・ボックス1
2−1、イベント・フラグ12−2、時間待ちタイマ1
2−3および起床要求カウンタ12−4を、それぞれ利
用する場合の事象待ち管理手段13の動作について説明
する。
【0014】メール・ボックス12−1を利用する場合
の事象待ち管理手段13の動作について説明する。ま
ず、実行中タスク5の中から事象情報603が事象待ち
管理手段13に伝達され、これを受けて事象待ち管理手
段13において、当該事象情報603の内容、この場合
にはメッセージが伝達されているものと判断されると、
事象待ち管理手段13により、メール・ボックス12−
1に伝達されたメッセージが、当該メール・ボックス1
2−1に書き込まれる。更にまた、当該メール・ボック
ス12−1内にある事象待ち行列、即ち事象待ちタスク
群7のメッセージ待ちをしているタスクの情報の中に、
事象待ちタスク7−1、7−2、………、タスク7−n
に含まれる情報が存在している場合には、事象待ち管理
手段13により、その内の一つの事象待ちタスクが実行
待ちタスク群6に移動される。逆に、実行中タスク5か
ら、メッセージを要求する事象情報603が事象待ち管
理手段13に伝達され、事象待ち管理手段13におい
て、事象情報の内容、この場合にはメール・ボックスの
番号が伝達されているものと判断されると、メール・ボ
ックス12−1にメッセージがない場合には、実行中タ
スク5は事象待ちタスク群7に移動される。その際に、
既にメッセージを待つタスクが、事象待ちタスク群7内
に存在している場合には、当該事象待ちタスクに対応す
るタスク制御ブロック内にあるタスク接続アドレスがが
書き変えられる。
【0015】次に、イベント・フラグ12−2を利用す
る場合の事象待ち管理手段13の動作について説明す
る。まず、実行中タスク5から事象情報603が事象待
ち管理手段13に伝達され、これを受けて事象待ち管理
手段13において、当該事象情報603の内容、この場
合にはイベント番号が伝達されているものと判断される
と、事象待ち管理手段13により、イベント・フラグ1
2−2に伝達されたイベント・フラグの状態が、当該イ
ベント・フラグ12−2に書き込まれる。更にまた、当
該イベント・フラグ12−2内にある事象待ち行列、即
ち事象待ちタスク群7のイベント待ちをしているタスク
の情報の中に、事象待ちタスク7−1、7−2、……
…、タスク7−nに含まれる情報が存在してる場合に
は、事象待ち管理手段13により、その内の一つ以上の
事象待ちタスクが実行待ちタスク群6に移動される。逆
に、実行中タスク5から、イベント・フラグがセットさ
れるまで待つ事象情報603が事象待ち管理手段13に
伝達され、事象待ち管理手段13において、事象情報の
内容、この場合にはイベント番号が伝達されているもの
と判断されると、イベント・フラグ12−2に対象番号
のイベント・フラグがセットされていない場合には、実
行中タスク5は事象待ちタスク群7に移動される。その
際に、既にイベントを待つタスクが、事象待ちタスク群
7内に存在している場合には、当該事象待ちタスクに対
応するタスク制御ブロック内にあるタスク接続アドレス
が書き変えられる。
【0016】次ぎに、時間待ちタイマ12−3を利用す
る場合の事象待ち管理手段13の動作について説明す
る。まず、外部からのタイマ割り込みにより発生する事
象制御情報602がが事象待ち管理手段13に伝達さ
れ、これを受けて事象待ち管理手段13の制御により、
時間待ちタイマ12−3内に時間待ちしているタスクが
存在している場合には、時間待ちタイマ12−3に対応
するタイム・カウンタがカウント・アップされる。そし
て、前記タイマ割り込みにより要求された時間の経過時
点において、事象待ち管理手段13により、事象待ちタ
スク群7内において時間待ちをしいるタスクの内の一つ
以上の事象待ちタスクが実行待ちタスク群6に移動され
る。逆に、実行中タスク5から、時間待ち要求である事
象情報603が事象待ち管理手段13に伝達され、事象
待ち管理手段13において、事象情報の内容、この場合
には時間情報が伝達されているものと判断されると、実
行中タスク5は事象待ちタスク群7に移動される。その
際に、既に時間待ちをするタスクが、事象待ちタスク群
7内に存在している場合には、当該事象待ちタスクに対
応するタスク制御ブロック内にあるタスク接続アドレス
が書き変えられる。
【0017】次に、起床要求カウンタ12−4を利用す
る場合の事象待ち管理手段13の動作について説明す
る。まず、実行中タスク5から事象情報603が事象待
ち管理手段13に伝達され、これを受けて事象待ち管理
手段13において、当該事象情報603の内容、この場
合には起床要求先タスク番号が伝達されているものと判
断されると、事象待ち管理手段13により、起床要求カ
ウンタ12−4に伝達された起床要求先タスク番号ごと
に準備されている起床要求カウンタがインクリメントさ
れる。更にまた、当該起床要求カウンタ12−4内に起
床待ちしているタスクの情報の中、または時間待ちタイ
マ12−3内に時間待ちしているタスクの情報の中に、
事象待ちタスク7−1、7−2、………、7−nに吹ま
れる情報が存在している場合には、事象待ち管理手段1
3により、その内の事象待ちタスクが実行待ちタスク群
6に移動される。逆に、実行中タスク5から、起床待ち
要求である事象情報603が事象待ち管理手段13に伝
達され、事象待ち管理手段13において、事象情報の内
容、この場合には起床要求がくるまで待つ情報が伝達さ
れているものと判断されると、事象待ち管理手段13に
より、実行中タスク5は事象待ちタスク群7に移動され
る。その際に、既に起床待ちをするタスクが、事象待ち
タスク群7内に存在している場合には、当該事象待ちタ
スクに対応するタスク制御ブロック内にあるタスク接続
アドレスが書き変えられる。
【0018】このように、従来のマルチプログラミング
・システムにおいては、事象状態記憶領域12に格納さ
れている事象情報が、種別(メッセージ、イベント、時
間および起床要求等)ごとに分類されているために、事
象待ち管理手段13による各記憶領域に対する管理手順
が複雑化し、特に、当該マルチプログラミング・システ
ムを、組み込みシステムに適用する場合においては、実
行中タスク5、実行待ちタスク群6および事象待ちタス
ク群7等を含むプログラム記憶部50の記憶領域による
制約により、事象待ち管理手段13により、全ての種別
に対応する管理処理を行うことが困難になるという状態
となっている。また、事象状態記憶領域12には、待ち
行列を形成するためのタスク接続アドレスとして定義さ
れるポインタが格納されているために、前記組み込みシ
ステムに対応する場合には、タスク制御ブロック4およ
び事象状態記憶領域12を含むデータ記憶部51に求め
られる記憶領域が大幅に増大するという問題が存在して
いる。
【0019】図18(a)、(b)および(c)は、テ
ープ録音式の留守番電話システムにおいて、OSを用い
たマルチプログラミング・システムを組み込みシステム
として実現した場合の手順を示すタイミング図である。
電話がかかってきた時に対応する留守番電話プログラム
は、相手に対して応答メッセージを発声し、当該発声後
に相手の声を録音する応答タスク30と、2msごとに
テープ制御回路の動作状態の監視および制御を行うテー
プ制御ハンドラ31と、これらの応答タスク30および
テープ制御ハンドラ31の余り時間でキーおよび受話器
の状態を監視するキー監視タスク32とが並行して動作
する。これらのタスクの内、優先順位は、テーブ制御ハ
ンドラ31が一番高く、応答タスク30およびキー監視
タスク32は優先順位が低く設定される。そして、それ
ぞれのタスク内には、予め定められた順序に従って実行
される処理(以下、シーケンスと云う)が用意されてい
る。上記の各タスクは、事象待ち状態になるか、または
優先順位が高い他のタスクの事象が成立した時には、他
のタスクに実行権を譲渡し、疑似的にマルチ・タスク動
作の状態となっている。
【0020】図18(a)、(b)および(c)は、そ
れぞれ応答タスク30、テープ制御ハンドラ31および
キー監視タスク32のシーケンスの一例を示すタイミン
グ図である。応答タスク30において実行権を譲渡する
タイミングとしては、電話がかかってくるのを待つタイ
ミングT1 と、応答メッセージの発声終了を待つタイミ
ングT2 と、相手の声を録音できる許容時間(30秒)
の経過を待つタイミングT3 と、録音した日付・時刻を
テープに記録するのを待つタイミングT4 とがある。シ
ーケンス301 においては、着信が検出された時点にお
いて事象待ち状態から復帰し、応答メッセージを発声し
て、発声終了待ちにおいて待ち状態に設定される。シー
ケンス302 においては、発声終了が検出された時点に
おいて事象待ち状態から復帰し、相手の声を録音した後
に30秒の時間待ちにて待ち状態にする。シーケンス3
3 においては、30秒が経過した時点において待ち状
態から復帰し、日付・時刻が記録されて記録終了待ち状
態に設定される。シーケンス304 においては、日付・
時刻の記録が終了した時点において待ち状態から復帰
し、着信待ちで待ち状態に設定される。シーケンス31
1 からシーケンス317 においては、2msの周期でテ
ープの動作制御(録音、再生および停止)が行われる。
またシーケンス321 からシーケンス327 において
は、シーケンス301 からシーケンス304 の間におけ
る動作が行われていない時に動作が行われて、キーおよ
び受話器の状態が常時監視される。例えば、応答動作中
に受話器が上げられた場合には、応答タスク30を強制
終了させるシーケンスが含まれている。人が違和感を感
じないように、少なくとも約100msごとに動作する
ことが必要である。
【0021】図18におけるタイミングT1 からタイミ
ングT2 に至る期間においては、応答メッセージの発声
が終了したという事象の他に、相手が電話を切ったとい
う事象が検出されないと、応答メッセージの発声が終了
するまでの次のシーケンスに移行することができない。
また、タイミングT2 からタイミングT3 の期間におい
ては、相手の声を録音できる許容時間(30秒)が経過
したという事象の他に、相手が電話を切ったという事象
が検出されないと、相手が電話を切っても録音が継続し
て行われる状態となる。更に、タイミングT3 からタイ
ミングT4 の期間においては、録音中にテープが一杯に
なったという事象が発生するという可能性がある。
【0022】このように、複数の事象を検出する必要が
ある場合には、従来のマルチプログラミング・システム
における一つの対処方法としては、事象待ち状態に移行
することなく可能な限り実行状態とし、優先順位の高い
タスクのみを割り込みにより実行するという方法が採ら
れている。図19(a)、(b)および(c)は、それ
ぞれ応答タスク30、テープ制御ハンドラ31およびキ
ー監視タスク32のシーケンスの一例を示すタイミング
図であるが、この図19(a)、(b)および(c)に
は、上記の図18における電話を切ったという事象と、
録音中にテープが一杯になったという事象とを加えるこ
とにより、複数の事象待ちを検出する必要のある場合の
実現例におけるタイミング図が示されている。タイミン
グT1 とタイミングT2 とを検出するために、応答タス
ク30は、優先順位の高いテープ制御ハンドラ31が実
行されていない時に動作する。本例においては、タイミ
ングT1 またはT2 を事象待ちせずに検出しているため
に、当該応答タスク30よりも優先順位が低いキー監視
タスク32が動作することができず、応答メッセージを
再生して相手の声の録音が終了するか、または相手が電
話を切るまで、受話器を合げたことを検出することがで
きない。
【0023】複数の事象を検出することを必要とする場
合の他の対処方法としては、それぞれの事象ごとに新た
に事象待ちタスクを起動させて、そのタスクから応答タ
スク30に対して、起床要求またはイベント、メッセー
ジ等を送信する方法がある。図20(b)および(c)
は、テープ制御ハンドラ31およびキー監視タスク32
のシーケンスの一例を示すタイミング図であるが、図2
0(a)には、上記の図18における電話を切ったとい
う事象と、録音中にテープが一杯になったという事象と
を加えることにより、複数の事象待ちを検出する必要が
ある場合の実現例におけるタイミング図が示されてい
る。
【0024】この場合は、シーケンス301 において
は、終了待シーケンス38、または切断待ちシーケンス
43をタスクとして起動し、タイミングT2 において、
応答タスク30は、終了待ちシーケンス38、または切
断待ちシーケンス43からの起床要求を受け、タイミン
グT3 においては、応答タスク30は、経過待ちシーケ
ンス39、切断待ちシーケンス43、または異常待ちシ
ーケンス44から起床要求を受ける点において、図18
のタイミング図とは異なっている。終了待ちシーケンス
38は、応答メッセージの発声終了が検出された時点に
おいて、応答タスク30に対して起床要求をし、経過待
ちシーケンス39は、相手の声を録音できる許容時間
(30秒)が経過した時に、応答タスク30に対して起
床要求をする。また、切断待ちシーケンス43は、相手
が電話を切った時に応答タスク30に対して起床要求す
る。異常待ちシーケンス44は、録音中にテープが一杯
になった時に、応答等タスク30に対して起床要求をす
る。なお、応答待ちシーケンス38および経過待ちシー
ケンス39は、シーケンス302 において強制終了され
るまで、事象待ちタスク群7、実行待ちタスク群6、ま
たは実行中タスク5に格納されており、経過待ちシーケ
ンス39、切断待ちシーケンス43および異常待ちシー
ケンス44は、シーケンス302 において、強制終了さ
れるまで、事象待ちタスク群7、実行待ちタスク群6、
または実行中タスク5に格納されている。
【0025】本例においては、タイミングT2 におい
て、応答待ちシーケンス38が、応答タスク30に対し
て起床要求し、またタイミングT3 において、経過待ち
シーケンス39が、応答タスク30に対して起床要求を
している場合の動作例を示している。なお、本例におい
ては、タスクの起動、強制終了および終了等の処理を頻
繁に行う必要があるため、タスク管理が複雑化し、プロ
グラム容量が増大する傾向となる。更に、複数のタスク
を起動させることに起因して、事象待ち行列に対応する
格納領域が大量に消費されるという問題がある。
【0026】
【発明が解決しようとする課題】上述した従来のマルチ
プログラミング・システムにおいては、事象ごとに待ち
行列が形成されているために、当該待ち行列のポインタ
接続に伴い前記事象状態記憶領域を含む記憶領域が増大
し複雑化するとともに、前記待ち行列を頻繁に生成/消
滅させる際には、その使用頻度に応じて多大の処理実行
時間が必要とするという欠点がある。
【0027】また、更に、待ち解除を行うシステムコー
ル(特にイベント待ちを解除するシステムコール)の呼
出しに際しては、多くのプログラム・ステップを要する
という状態となり、プログラムをROMのようなファ−
ムウェアに具備し、且つ、記憶領域が限られたRAMに
見られるような組み込みシステムに適用する場合におい
ては事象の個数が制約され、大半近くがOS関連の処理
およびデータに消費される結果となり、当該マルチプロ
グラミング・システムの組み込みシステムに対する適用
性に重大な支障を生じるという欠点がある。
【0028】更に、留守番電話システムのようにタイム
・シーケンスが多い場合には、当該シーケンスの分岐に
おいて、複数の事象を同時に判断することが求められる
が、そのためには実現する方法が複雑化し、逆にマルチ
プログラミング・システムを適用するという目的の一つ
である生産性を、却って悪化させる要因になるという欠
点がある。
【0029】
【0030】
【課題を解決するための手段】本願発明のよる事象管理
方式は、プログラムを細分化したタスクごとに設定され
る当該タスクの実行可能な条件(以下、事象と云う)の
種別と、当該種別に対応する待ち内容と、条件が成立し
た結果からなる成立条件を格納する事象成立条件記憶手
段と、使用頻度の高い特定事象の種別と当該種別に対応
する待ちの内容とを格納する事象成立条件テーブルと、
前記事象成立条件記憶手段に格納されている事象が成立
した時点に対応する事象待ち解除条件を格納する事象待
ち条件記憶手段と、前記タスクを制御するための制御情
報を格納するタスク制御ブロックと、実行中のタスクに
おいて事象待ちが発生した場合、該事象が事象成立条件
テーブルにあるときは事象成立条件テーブルから登録内
容を読み出して事象成立条件記憶手段に書きこみ、事象
成立条件テーブルにないときは、発生した事象の成立条
件を事象成立条件記憶手段に書きこむものであり、
た、タスク事象が発生するたびに、当該事象を前記事
象成立条件記憶手段に格納されている事象成立条件と比
照合して、対象とする事象の成立の可否を検出するタ
スク付属事象管理手段と、実行中のタスクにおいて事象
待ちが発生した場合、当該タスクを前記タスク制御ブロ
ックを使用して事象待ち状態に遷移させ、また、当該事
象待ち状態のタスクに対する前記事象待ち解除条件が成
立した時点において、当該タスクを実行待ち状態に遷移
させるタスク付属事象待ち管理手段と、前記タスク付属
事象待ち管理手段により、事象待ち状態に遷移されたタ
スクを一時的に格納する事象待ちタスク記憶手段と、前
記タスク付属事象待ち管理手段により、実行待ち状態に
遷移されたタスクを一時的に格納する実行待ちタスク記
憶手段と、所定のCPU(中央処理装置)において実行
されているタスクを格納している実行中タスク記憶手段
と、前記実行中のタスクと、前記実行待ちタスク記憶手
段に格納されている実行待ちタスクとの内より一つのタ
スクを選択して、前記タスク制御ブロックを使用して
行状態に遷移させるタスク管理手段と、を少なくとも備
えることを特徴としている。
【0031】
【実施例】次に、本発明について図面を参照して説明す
る。
【0032】図1は本発明を説明するための参考例を示
す内部構成図である。図1に示されるように、本参考例
は、タスク管理手段1と、タスク付属事象管理手段2
と、タスク付属事象待ち管理手段3と、タスク制御ブロ
ック4−1、4−2、……、4−nを含むタスク制御ブ
ロック群4と、実行中タスク5と、実行待ちタスク6−
1、6−2、……、6−nを含む実行待ちタスク群6
と、事象待ちタスク7−1、7−2、……、7−nを含
む事象待ちタスク群7と、割り込みハンドラ8と、事象
成立条件記憶領域9−1、9−2、……、9−nを含む
事象成立条件記憶領域群9と、事象待ち条件記憶領域1
0−1、10−2、……、10−nを含む事象待ち条件
記憶領域群10とを備えて構成される。なお、上記の実
行中タスク5、実行待ちタスク群6、事象待ちタスク群
7および割り込みハンドラ8に含まれる情報は、プログ
ラム記憶部50に格納されており、また、タスク制御ブ
ロック群4、事象成立条件記憶領域群9および事象待ち
条件記憶領域群10に含まれる情報は、データ記憶部5
1に格納されている。また、図2(a)および(b)
は、本実施例における事象管理処理手順を示すフローチ
ャートである。
【0033】図1において、事象成立条件記憶領域群9
は、対応する実行中タスク5、実行待ちタスク群6、事
象待ちタスク群7において使用される事象の内、現在、
待ち状態にある事象の種別と、当該種別に対応する待ち
内容と、条件が成立した結果とを、それぞれ実行中タス
ク5、実行待ちタスク群6、事象待ちタスク群7におい
て使用される個数だけ格納する領域である。また、事象
待ち条件記憶領域10は、事象成立条件記憶領域9に複
数の条件が格納された時に、事象待ち状態から復帰する
ときの条件(ANDおよびOR等)と、復帰したとき
に、何れの事象成立条件によって復帰したかの情報を格
納しておく領域であり、タスク付属事象管理手段2は、
事象成立条件記憶領域9の事象が発生したときに、当該
事象成立条件記憶領域9の内容を更新する機能を有して
いる。タスク付属事象待ち管理手段3は、事象待ち条件
記憶領域10に示されている事象待ち解除条件が成立し
たときに、事象待ちタスク群7を実行待ちタスク群6に
移行させる役割を果す。
【0034】まず、図1および図2(a)を参照して、
実行中タスク5が、タスク付属事象管理手段2とタスク
付属事象待ち管理手段3により、事象待ち状態に移行す
る処理手順について説明する。実行中タスク5において
事象待ちが発生した場合にはタスク付属事象管理手段2
に制御が移り、ステップA1においては、タスク付属事
象管理手段2により、登録内容が事象成立条件記憶領域
9に書き込まれて格納される。そしてステップA2に移
行して、更に継続して書き込む登録内容が存在する場合
には、ステップA1に戻り、再度当該登録内容が事象成
立条件記憶領域9に書き込まれて格納される。この処理
手順は、前記登録内容が無くなるまで継続して行われ
る。然る後に、登録内容が無くなった時点においてはタ
スク付属事象待ち管理手段3に制御が移り、ステップA
3において、タスク付属事象待ち管理手段3により、実
行中タスク5は事象待ちタスク群7に移動する。そして
実行中タスク5の移動後においては、タスク管理手段1
に制御が移り、このタスク管理手段1によりスケジュー
リングが行われ、実行待ちタスク群6の中から優先順位
の高いタスクが、新たに実行中タスク5として設定され
る。
【0035】次に、図1および図2(b)を参照して、
事象待ちタスク群7に含まれるタスクが、実行待ちタス
ス群5に移動する処理手順について説明する。外部回路
またはCPUからのタイマ割り込みにより発生した事象
制御情報602、実行中タスク5において発生した事象
制御情報603、および割り込みハンドル8において発
生した事象制御情報601を含む何れかの事象制御情報
を受けて、タスク付属事象管理手段2に制御が移り、ま
ずステップA4においては、タスク付属事象管理手段2
により、発生した事象が事象成立条件記憶領域群9内に
存在するか否かが判定される。当該事象が事象成立条件
記憶領域群9内に存在しない場合には、タスク管理手段
1に制御が戻り当該処理手順は終了する。また、当該事
象が事象成立条件記憶領域群9内に存在する場合には、
ステップA5において、当該事象の登録されている条件
が成立しているか否かが判定され、成立していない場合
にはタスク管理手段1に制御が戻り当該処理手順は終了
する。また、登録されている条件が成立している場合に
は、ステップA6において、事象待ち条件記憶領域にあ
る条件が成立しているか否かが判定され、成立していな
い場合にはタスク管理手段1に制御が戻り当該処理手順
は終了となる。また、登録されている条件が成立してい
る場合には、ステップA7において、事象待ちタスク群
7の中から、対象とするタスクが実行待ちタスク群6に
移動する。そして、前記対象タスクの移動後において
は、タスク管理手段1に制御が移り、このタスク管理手
段1によりスケジューリングが行われ、実行待ちタスク
群6の中から優先順位の高いタスクが、新たに実行中タ
スク5として設定される。
【0036】図3は、本参考例における事象成立条件記
憶領域群9に含まれる事象成立条件記憶領域9−i(i
=1、2、……、n)、および事象待ち条件記憶領域群
10に含まれる事象待ち条件記憶領域10−i(i=
1、2、……、n)の一構成例を示すブロック図であ
る。事象成立条件記憶領域9−iには、それぞれ登録内
容1、登録内容2、……、登録内容mが格納されてい
る。これらの各登録内容には、それぞれ登録事象番号
1、2、……、mを含む登録事象番号100が割り当て
られており、システム・コールによって参照・登録する
ときに、この登録事象番号100によって登録内容が判
別される。また、事象待ち条件記憶領域群10−iに
は、条件識別番号101と待ち解除結果102が格納さ
れている。
【0037】事象待ち条件記憶領域群10は、事象成立
条件記憶領域群9に登録されている事象が全て成立した
とき(AND条件:1)、何れかの事象が成立したとき
(OR条件:2)、または或る事象が成立したとき(単
一条件:0)に、待ち状態を復帰させるための条件を格
納する条件識別番号102と、待ち状態が解除されたと
きに、最後に待ち状態を解除した登録事象番号を格納す
る待ち解除結果103とにより構成されている。
【0038】図4(a)、(b)、(c)、(d)、
(e)および(f)は、本参考例における事象成立条件
記憶領域群9の登録内容の一構成例を示すブロック図で
ある。事象の種別としては、イベント待ち、メッセージ
待ち、受信バッファ付きメッセージ待ち、範囲指定付き
メッセージ待ち、時間待ち、および起床待ちを持った場
合における例である。これらの事象は、それぞれ3バイ
トのデータにより構成されており、1バイト目100a
の事象種別の識別番号に対応して、2バイト目100b
と、3バイト目100cに待ち条件が格納されている。
図4(a)に示されるように、1バイト目100aがイ
ベント識別番号であった場合には、2バイト目100b
にはフラグ・アドレスが格納され、3バイト目100c
にはビット位置がその上位が格納され、現在のイベント
状態がその下位に格納される。また図4(b)に示され
るように、1バイト目100aがメッセージ識別番号で
あった場合には、2バイト目100bには待ちメッセー
ジが格納され、3バイト目100cには受信メッセージ
が格納される。以下同様に、1バイト目100aが受信
バッファ付きメッセージ識別番号であった場合には、2
バイト目100bにはバッファ・アドレスが格納され、
3バイト目100cにはバッファ・サイズが格納される
(図4(c)参照)。1バイト目100aが範囲指定付
きメッセージ識別番号であった場合には、2バイト目1
00bには待ちメッセージの上限が格納され、3バイト
目100cには待ちメッセージの下限が格納されるとと
もに、受信されたメッセージが重ね書きされて格納され
る(図4(d)参照)。1バイト目100aが時間識別
番号であった場合には、2バイト目100bおよび3バ
イト目100cには残り待ち時間が格納される(図4
(e)参照)。また、この待ち時間は、OSのタイマ割
り込みごとにカウント・ダウンされ、0になった時点に
おいて、当該待ち時間が経過したものと見做される。1
バイト目100aが起床識別番号であった場合には、2
バイト目100bおよび3バイト目100cには起床要
求カウンタが格納される(図4(f)参照)。なお、前
記起床要求カウンタが最大値の状態にある場合には、カ
ウント・アップすることなく、起床要求のシステム・コ
ールを発行したタスクにエラーを返す。本参考例におい
てはイベントに対する専用の領域を設けず、1ビットの
フラグ領域を静的に配置し、そのフラグ領域のアドレス
とビット位置とを登録内容として格納するものとする。
【0039】また、メモリ・マップドI/Oであった場
合には、フラグを入力ポートおよび出力ポート等に割り
当てることも可能である。更に、イベントの前回の状態
とアクティブを指定することにより、エッジ検出により
タスクを起動することも可能となる。これにより、従来
行われているように、ポートの状態を加工して、イベン
ト・フラグをセット/リセットする必要がなくなる。た
だし、イベント・フラグを入力ポート等のOS管理外に
おいて変化する領域、即ち、システム・コールを使用す
ることなくフラグが変化する領域に割り当てた場合に
は、OSのタイマ割り込みにより検出される。メッセー
ジについては、メール・ボックスを設けず、当該メッセ
ージは直接タスクに対して送信される。メッセージ長を
1バイトにすることにより、ポインタ等を格納するとき
のオーバ・ヘッドが軽減され、指定メッセージまたは範
囲指定によりメーセージの受信を待つことにより、タス
クが実行状態となる頻度が減殺される。また、従来は、
時間待ち中に起床要求のシステム・コールが発行された
ときには時間待ちが解除されているが、本参考例におい
ては、起床待ちを設定しない限り時間待ちが解除されな
いようにすることもできる。
【0040】図5は、本参考例において、外部回路また
はCPUからのOSタイム割り込みを受けて、タスク付
属事象待ち管理手段3が起動されるまでの処理手順を示
すフローチャートの一例であり、図6および図7は、タ
スク付属事象管理手段2のシステム・コールを受けて、
タスク付属事象待ち管理手段3が起動されるまでの処理
手順を示すフローチャートの一例である。
【0041】図5において、OSタイム割り込み200
は、一定時間ごとに、例えば1msごとにタスク等の処
理中に割り込まれる。これを受けて、ステップ204に
おいては、時間待ちのタスクが存在するか否かが判定さ
れ、存在しない場合にはステップ208に移行し、存在
する場合にはステップ205においてタイムカウントさ
れて、時間待ちを行っているタスクの事象内容の残り時
間がデクリメントされる。次いで、ステップ206にお
いては、タイムがUPであるか否かか判定されて、UP
でない場合にはステップ208に移行し、UPである場
合には、ステップ207において時間待ちが解除され
て、再度ステップ204に戻り以降の処理手順が繰返し
て実行される。
【0042】上記のステップ204およびステップ20
6の処理手順において判定条件が満たされない場合には
ステップ208に移行するが、ステップ208、209
および210の処理手順は、入力ポート等のOS管理外
において変化する領域にイベント・フラグを割り当てて
いる場合において、イベントの成立を管理する際の処理
手順である。この場合、OSのタイマ割り込み周期より
も短かい時間で変化するときには、上記のステップ20
8、209および210の処理手順を更に短かい周期で
動作させることにより、当該処理の精度を向上させるこ
とができる。まずステップ208においては、イベント
待ちのタスクが存在するか否かが判定されて、イベント
待ちのタスクが存在しない場合には、これを受けてタス
ク付属事象待ち管理手段3が起動される。またイベント
待ちのタスクが存在する場合には、ステップ209にお
いて当該イベントが満たされているか否かが判定され、
満たされていない場合には、これを受けてタスク付属事
象待ち管理手段3が起動される。またイベントが満たさ
れている場合には、ステップ210において、当該イベ
ント待ちが解除されてステップ208に戻り、以降の処
理手順が継続して実行される。
【0043】図6においては、メッセージを送信するシ
ステム・コール201を受けて、まずステップ211に
おいて送信先のタスクが存在するか否かが判定され、当
外送信先タスクが存在しない場合には、ステップ217
に移行して、前記システム・コールの発行先に対して送
信エラーが返送されて復帰する。また、ステップ211
において送信先のタスクが存在する場合には、次のステ
ップ212に移行する。なお、以降のステップ212、
213および214の判断処理においても判定条件が満
たされない場合には、何れの場合においても同様にステ
ップ217に移行して、前記システム・コールの発行先
に対して送信エラーが返送されて復帰する。ステップ2
12においては送信タスクがメッセージ待ちしているか
否かが判定されて、メッセージ待ちしている場合には、
次のステップ213において、送信メッセージと待ちメ
ッセージが同一であるか否かが判定されて、同一である
場合には、ステップ214において、バッファに空き領
域が存在するか否かが判定され、バッファに空き領域が
存在する場合には、ステップ215に移行して、当該メ
ッセージは送信先の受信バッファに書き込まれる。次い
で、ステップ216においてはメッセージ待ちが解除さ
れ、これを受けて、タスク付属事象待ち管理手段3が起
動される。
【0044】次に、図7(a)においては、イベントを
設定するシステム・コール202を受けて、ステップ2
18においては、同じイベントのフラグ・アドレスを持
つタスクが存在するか否かが判定され、当該タスクが存
在しない場合には、ステップ222に移行して、イベン
ト・エラーがシステム・コールの発行先に返送されて復
帰状態となる。また、ステップ218において同じイベ
ントのフラグ・アドレスを持つタスクが存在する場合に
は、ステップ219において当該イベントが満たされて
いるか否かが判定されて、満たされていない場合にはス
テップ221に移行し、満たされている場合にはステッ
プ220において、イベント待ちが解除される。ステッ
プ221においては、同じイベントを持つタスクが存在
するか否かが判定されて、存在する場合にはステップ2
19に戻り、以降の処理手順が継続して実行される。ま
た当該タスクが存在しない場合には、これを受けて、タ
スク付属事象待ち管理手段3が起動される。
【0045】また、図7(b)においては、起床を要求
するシステム・コール203を受けて、ステップ223
において、起床要求先のタスクが存在するか否かが判定
され、存在しない場合にはステップ226に移行して、
起床要求エラーがシステム・コールの発行先に返送され
て復帰する。またステップ223において前記起床要求
先のタスクが存在する場合には、ステップ224におい
て、起床要求カウンタが最大値であるか否かが判定され
て、最大値である場合にはステップ226に移行して、
起床要求エラーがシステム・コールの発行先に返送され
て復帰する。また最大値ではない場合には、ステップ2
25において起床要求カウンタがインクリメントされ、
次いでステップ227において起床要求待ちが解除され
る。そして、これを受けてタスク付属事象待ち管理手段
3が起動される。
【0046】図8は、本参考例におけるタスク付属事象
待ち管理手段3における処理手順を示すフローチャート
の一例である。まず、ステップ228において、事象待
ちタスク群7内の事象待ち行列にタスクが存在するか否
かが判定される。当該事象待ち行列にタスクが存在しな
い場合には、タスク管理手段1に制御が移り、タスク付
属事象待ち管理手段3の動作は終了する。また当該事象
待ち行列にタスクが存在する場合には、ステップ229
において、事象待ちが、待ち条件のとうりに解除されて
いるか否かが判定される。ステップ229において解除
されていない場合には、タスク管理手段1に制御が移
り、タスク付属事象待ち管理手段3の動作は終了する。
また、待ち条件のとうりに解除されている場合には、ス
テップ230において、事象待ちスタック群7内の事象
が解除されている事象待ち行列が、実行待ちスタック群
6内の実行待ち行列に移動する。このことは、既に、前
述の図5、図6および図7に示されるフローチャートに
より明らかなところである。但し、この場合、ステップ
229の判断処理において、条件識別番号により示され
る事象待ち条件が満たされている場合においてのみ、ス
テップ230においては、前記事象待ち行列が前記実行
待ち行列に移動するものとする。次いで、ステップ23
1においては、解除された事象の登録事象番号が待ち解
除結果に書き込まれる。また、実行待ちタスク群6に移
動したタスクは、タスク管理手段1において必要に応じ
て実行状態に遷移する。
【0047】図9は、本参考例における事象待ちに関す
るシステム・コールの一例を示す図である。システム・
コールsetーpheおよびwaiーpheは、図3に
示される登録内容1、登録内容2、……、登録内容nを
含む登録内容100に指定された事象の種別と事象の内
容を設定するシステム・コールであり、このsetーp
heにより複数の条件が指定され、またwaiーphe
により最後の条件および条件識別番号102が指定され
て、事象待ちの状態となる。また、clr−pheは、
上記のsetーpheまたはwaiーpheにより設定
された事象の内の不要となった登録内容100を解除す
るシステム・コールであり、pol−pheは、事象待
ちが解除されたときに、どの事象により解除されたか
を、各登録内容100に指定されている登録事象番号を
返すことにより知らせるシステム・コールである。そし
てget−pheは、各事象登録内容100の現在の状
態を取り出すシステム・コールである。例えば、メッセ
ージ待ちであれば受信メッセージを返し、時間待ちであ
れば残り時間を返すというように動作する。なお、本実
施例においては、システム・コール名の最後の3文字に
は、現象を意味する英文字の先頭のpheを用いてい
る。
【0048】なお、本発明は、種々の組み込みシステム
に対して適用されるが、一例として、本参考例が留守番
電話システムに適用される場合には、プログラム記憶部
50には、留守番電話システム全体を制御する情報が格
納され、特に、実行中タスク5、実行待ちタスク群6お
よび事象待ちタスク群7には、留守番電話システムの操
作情報が格納される。割り込みハンドラ8には、常時監
視の必要のある(例えば、10msごとに監視する)外
部情報が格納される。また、データ記憶部51には、留
守番電話システムの実行状態が格納される。特に、事象
成立条件記憶領域群9に対しては、事象待ちタスク群7
に遷移タイミング情報を少なくとも一つ以上格納し、事
象待ち条件記憶領域群10には、二つ以上の遷移タイミ
ングの組合わせ情報が格納される。そして、タスク制御
ブロック4には、実行中タスク5、実行待ちタスク群6
および事象待ちタスク群7の実行状態を制御する情報が
格納される。 図10は、本発明の第1の実施例を示す
内部構成図である。図10に示されるように、本実施例
は、タスク管理手段1と、タスク付属事象管理手段2
と、タスク付属事象待ち管理手段3と、タスク制御ブロ
ック4−1、4−2、……、4−nを含むタスク制御ブ
ロック群4と、実行中タスク5と、実行待ちタスク6−
1、6−2、……、6−nを含む実行待ちタスク群6
と、事象待ちタスク7−1、7−2、……、7−nを含
む事象待ちタスク群7と、割り込みハンドラ8と、事象
成立条件記憶領域9−1、9−2、……、9−nを含む
事象成立条件記憶領域群9と、事象待ち条件記憶領域1
0−1、10−2、……、10−nを含む事象待ち条件
記憶領域群10と、事象成立条件テーブル11とを備え
て構成される。なお、上記の実行中タスク5、実行待ち
タスク群6、事象待ちタスク群7、割り込みハンドラ8
および事象成立条件テーブル11に含まれる情報は、プ
ログラム記憶部50に格納されており、また、タスク制
御ブロック群4、事象成立条件記憶領域群9および事象
待ち条件記憶領域群10に含まれる情報は、データ記憶
部51に格納されている。図1の図10との対比により
明らかなように、本実施例と前述の参考例との相違点
は、本実施例においては、プログラム記憶部50の内部
に事象成立条件テーブル11が新たに付加されているこ
とである。また、図11(a)および(b)は、本実施
例における事象管理処理手順を示すフローチャートであ
る。
【0049】図10において、新たに付加された事象成
立条件テーブル11は、図1の前述の参考例における事
象の種別と、当該種別に対応する待ち内容の内、頻繁に
使用するものを定数テーブルとして格納したものであ
り、組み込みシステムにおいてはROM領域に配置され
る。これによる前述の参考例との動作上の差異は、実行
状態のタスク5において事象待ちを要求した時に、事象
成立条件テーブル11における事象成立条件テーブル番
号が指定されていれば、タスク付属事象管理手段3によ
り、登録内容が事象成立条件として登録される。以後、
前述の参考例の場合と同様に動作が行われる。図3に示
される事象成立条件記憶領域群9に格納されている登録
内容100を含む事象を予めテーブル化して、システム
・コールでの条件記述をテーブル番号により記述して簡
略化することにより、プログラム・ステップ数を減少さ
せることが可能となる。
【0050】図11(a)は、実行中タスク5が、タス
ク付属事象管理手段2とタスク付属事象待ち管理手段3
により事象待ちになる処理手順を示しており、また図1
1(b)は、事象待ちタスク群7のタスクが実行待ちタ
スク群6に移動する処理手順を示している。本実施例に
おける処理手順と、前述の参考例における処理手順との
相違点は、図11(a)と、図2(a)との対比により
明らかなように、本実施例においては、図11(a)に
けるステップA8とステップA9において、事象成立条
件を事象成立条件テーブル11から読み出して、事象成
立条件記憶領域9に書き込むことである。また事象成立
条件テーブル11に、予め複数条件の事象を登録してお
き、ステップA9以降においてはステップA2における
処理を行うことなく、ステップA3に移行することも考
えられる。それ以外のステップA1、ステップA2、ス
テップA3、ステップA4、ステップA5、ステップA
6およびステップA7を含む各処理手順にける処理内容
については、前述の参考例の場合と同様である。
【0051】図12は、本実施例における事象成立条件
テーブル11の構成例を示すブロック図である。図12
において、登録事象数300は、登録内容1、……、登
録内容nを含む登録内容301の個数を示している。こ
れらの登録内容301は、図3に示される事象成立条件
記憶領域9に設定される事象の種別と事象の条件とを初
期値としてテーブル化されている。図9に示されたシス
テム・コールset−pheまたはwai−pheによ
り、登録事象テーブル番号が指定された時には、対応す
る登録内容301が取り出され、事象成立条件記憶領域
群9に書き込まれる。また、図13(a)、(b)、
(c)、(d)、(e)および(f)は、本実施例にお
ける事象成立条件テーブル11の登録内容の構成例を示
すブロック図であり、図4に示される登録内容と同等で
はあるが、ROM領域であるために、図13(b)の3
バイト目301cが空き領域となっており、図13
(d)の3バイト目301cには、待ちメッセージ下限
のみが格納され、更に、図13(b)の3バイト目30
1cには、起床要求カウンタ初期値が格納されており、
メッセージ受信領域およびイベント状態領域等が考慮さ
れていない点に差異がある。
【0052】なお、前述の参考例の場合と同様に、本実
施例が留守番電話システムに適用される場合には、プロ
グラム記憶部50には、留守番電話システム全体を制御
する情報が格納され、特に、実行中タスク5、実行待ち
タスク群6および事象待ちタスク群7には、留守番電話
システムの操作情報が格納される。事象成立条件テーブ
ル11には、事象成立条件の内、留守番電話システムに
おいて頻繁に使用される事象の組み合わせ情報が格納さ
れる、割り込みハンドラ8には、常時監視の必要のある
(例えば、10msごとに監視する)外部情報が格納さ
れる。また、データ記憶部51には、留守番電話システ
ムの実行状態が格納される。特に、事象成立条件記憶領
域群9に対しては、事象待ちタスク群7に遷移タイミン
グ情報を少なくとも一つ以上格納し、事象待ち条件記憶
領域群10には、二つ以上の遷移タイミングの組合わせ
情報が格納される。そして、タスク制御ブロック4に
は、実行中タスク5、実行待ちタスク群6および事象待
ちタスク群7の実行状態を制御する情報が格納される。
【0053】
【発明の効果】以上説明したように、本発明は、タスク
付属事象管理手段とタスク付属事象待ち管理手段とを備
えることにより、事象待ちタスク群に含まれる待ち行列
を簡略化することが可能となり、事象待ちタスクを頻繁
に生成・起動・終了・消去する際における実行時間と、
所要のプログラム・ステップとを削減することができる
という効果がある。
【0054】更に、留守番電話のように、シーケンスと
条件判断処理の多いシステムに対して本発明を適用する
ことにより、極めて簡単に複数事象を判断することが可
能となるために不必要なタスクが減殺されるとともに、
シーケンスと条件判断との関係を考慮した当該システム
の構造化設計が容易となり、当該システムの生産性と保
守性を向上させることができるという効果がある。
【図面の簡単な説明】
【図1】本発明を説明するための参考例を示すブロック
図である。
【図2】参考例における処理手順のフローチャートを示
す図である。
【図3】参考例の事象成立条件記憶領域群と事象待ち条
件記憶領域群を示すブロック図である。
【図4】参考例の事象成立条件記憶領域群における登録
内容の構成例を示す図である。
【図5】参考例のタスク付属事象管理手段における処理
手順のフローチャートを示す図である。
【図6】参考例のタスク付属事象管理手段における処理
手順のフローチャートを示す図である。
【図7】参考例のタスク付属事象管理手段における処理
手順のフローチャートを示す図である。
【図8】参考例のタスク付属事象待ち管理手段における
処理手順のフローチャートを示す図である。
【図9】参考例における事象待ちに関するシステム・コ
ールの一例を示す図である。
【図10】本発明の第1の実施例を示すブロック図であ
る。
【図11】第1の実施例における処理手順のフローチャ
ートを示す図である。
【図12】第1の実施例の事象成立条件記憶領域群と事
象待ち条件記憶領域群を示すブロック図である。
【図13】第1の実施例の事象成立条件記憶領域群にお
ける登録内容の構成例を示す図である。
【図14】従来例を示すブロック図である。
【図15】従来例における処理手順のフローチャートを
示す図である。
【図16】従来例における待ち行列形成例を示す図であ
る。
【図17】従来例における制御構造を示すブロック図で
ある。
【図18】従来例を留守番電話に適用した場合のタイミ
ング図である。
【図19】従来例において、複数事象待ちを実現した場
合のタイミング図である。
【図20】従来例において、複数事象待ちを実現した他
の場合のタイミング図である。
【符号の説明】
1 タスク管理手段 2 タスク付属事象管理手段 3 タスク付属事象待ち管理手段 4 タスク制御ブロック群 4−1〜4−n タスク制御ブロック 5 実行中タスク 6 実行待ちタスク群 6−1〜6−n 実行待ちタスク 7 事象待ちタスク群 7−1〜7−n 事象待ちタスク 8、22、31 割り込みハンドラ 9 事象成立条件記憶領域群 9−1〜9−n 事象成立条件記憶領域 10 事象待ち条件記憶領域群 10−1〜10−n 事象待ち条件記憶領域 11 事象成立条件テーブル 12 事象状態記憶領域 12−1、12−2 メール・ボックス 12−3 時間待ちタイマ 12−4 起床要求カウンタ 13 事象待ち管理領域 14、201〜203 システムコール 30 応答タスク 31 テープ制御ハンドラ 32 キー監視タスク 301 〜307 、311 〜317 、321 〜327 シーケンス 38 音声終了待ちシーケンス 39 経過待ちシーケンス 43 切断待ちシーケンス 44 異常待ちシーケンス 45 実行待ち行列 46 時間待ち行列 47 イベント待ち行列 48 メッセージ待ち行列 50 プログラム記憶部 51 データ記憶部 100 登録内容1〜登録内容m 100a 、300a 1バイト目 100b 、300b 2バイト目 100c 、300c 3バイト目 101 条件識別番号 102 待ち解除結果 204〜233、A1 〜A7 、B1 〜B4 ステップ 300 登録事象数 301 登録内容1〜登録内容m 400、4011 〜4013 、402、4031 、40 32 、404〜406ポインタ 601〜603 事象制御情報
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平4−287233(JP,A) 特開 平1−248240(JP,A) 特開 平3−25624(JP,A) 特開 平6−35724(JP,A) 特開 平5−80972(JP,A) 特開 昭59−99531(JP,A) 発明協会公開技報・公技番号93− 25932 発明協会公開技報・公技番号93− 26242 発明協会公開技報・公技番号93−2017 (58)調査した分野(Int.Cl.7,DB名) G06F 9/46 340

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】 プログラムを細分化したタスクごとに設
    定される当該タスクの実行可能な条件(以下、事象と云
    う)の種別と、当該種別に対応する待ち内容と、条件が
    成立した結果からなる成立条件を格納する事象成立条件
    記憶手段と、 使用頻度の高い特定事象の種別と当該種別に対応する
    ちの内容とを格納する事象成立条件テーブルと、前記事象成立条件記憶手段に格納 されている事象が成立
    した時点に対応する事象待ち解除条件を格納する事象待
    ち条件記憶手段と、 前記タスクを制御するための制御情報を格納するタスク
    制御ブロックと、実行中のタスクにおいて事象待ちが発生した場合、該事
    象が事象成立条件テーブルにあるときは事象成立条件テ
    ーブルから登録内容を読み出して事象成立条件記憶手段
    に書きこみ、事象成立条件テーブルにないときは、発生
    した事象の成立条件を事象成立条件記憶手段に書きこむ
    ものであり、 また、タスク事象が発生するたびに、当
    該事象を前記事象成立条件記憶手段に格納されている事
    象成立条件と比較照合して、対象とする事象の成立の可
    否を検出するタスク付属事象管理手段と、実行中のタスクにおいて事象待ちが発生した場合、当該
    タスクを前記タスク制御ブロックを使用して 事象待ち状
    態に遷移させ、また、当該事象待ち状態のタスクに対す
    る前記事象待ち解除条件が成立した時点において、当該
    タスクを実行待ち状態に遷移させるタスク付属事象待ち
    管理手段と、 前記タスク付属事象待ち管理手段により、事象待ち状態
    に遷移されたタスクを一時的に格納する事象待ちタスク
    記憶手段と、 前記タスク付属事象待ち管理手段により、実行待ち状態
    に遷移されたタスクを一時的に格納する実行待ちタスク
    記憶手段と、 所定のCPU(中央処理装置)において実行されている
    タスクを格納している実行中タスク記憶手段と、 前記実行中のタスクと、前記実行待ちタスク記憶手段に
    格納されている実行待ちタスクとの内より一つのタスク
    を選択して、前記タスク制御ブロックを使用して実行状
    態に遷移させるタスク管理手段と、 を少なくとも備えることを特徴とするマルチプログラミ
    ングにおける事象管理方式。
JP09087994A 1994-04-28 1994-04-28 マルチプログラミングにおける事象管理方式 Expired - Fee Related JP3245500B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP09087994A JP3245500B2 (ja) 1994-04-28 1994-04-28 マルチプログラミングにおける事象管理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP09087994A JP3245500B2 (ja) 1994-04-28 1994-04-28 マルチプログラミングにおける事象管理方式

Publications (2)

Publication Number Publication Date
JPH07295840A JPH07295840A (ja) 1995-11-10
JP3245500B2 true JP3245500B2 (ja) 2002-01-15

Family

ID=14010752

Family Applications (1)

Application Number Title Priority Date Filing Date
JP09087994A Expired - Fee Related JP3245500B2 (ja) 1994-04-28 1994-04-28 マルチプログラミングにおける事象管理方式

Country Status (1)

Country Link
JP (1) JP3245500B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7461380B2 (en) 2003-02-18 2008-12-02 Denso Corporation Inter-task communications method, program, recording medium, and electronic device

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001331468A (ja) * 2000-05-19 2001-11-30 Nec Corp 複数のコンピュータ間の連携業務フロー管理システム
GB0407384D0 (en) * 2004-03-31 2004-05-05 Ignios Ltd Resource management in a multicore processor
US8533716B2 (en) 2004-03-31 2013-09-10 Synopsys, Inc. Resource management in a multicore architecture
JP4068106B2 (ja) 2005-08-05 2008-03-26 三菱電機株式会社 リアルタイム組込み簡易モニタプログラム
JP4605072B2 (ja) 2006-01-17 2011-01-05 株式会社日立製作所 制御装置および情報システムの制御方法
JP4577343B2 (ja) * 2007-09-13 2010-11-10 日本電気株式会社 計算機システムおよびジョブステップ並列処理方法
JP5262418B2 (ja) * 2008-08-19 2013-08-14 日本電気株式会社 タスクスケジューリング装置およびタスクスケジューリング方法
US8706265B2 (en) 2011-01-31 2014-04-22 Toyota Jidosha Kabushiki Kaisha Safety controller and safety control method
CN103052923B (zh) * 2011-01-31 2014-06-04 丰田自动车株式会社 安全控制装置及安全控制方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01248240A (ja) * 1988-03-29 1989-10-03 Nec Corp プロセス制御方式
JP2573875B2 (ja) * 1989-06-23 1997-01-22 日本電気エンジニアリング株式会社 プログラム制御方式
JPH04287233A (ja) * 1991-03-18 1992-10-12 Hitachi Ltd 事象処理制御方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
発明協会公開技報・公技番号93−2017
発明協会公開技報・公技番号93−25932
発明協会公開技報・公技番号93−26242

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7461380B2 (en) 2003-02-18 2008-12-02 Denso Corporation Inter-task communications method, program, recording medium, and electronic device

Also Published As

Publication number Publication date
JPH07295840A (ja) 1995-11-10

Similar Documents

Publication Publication Date Title
US6006247A (en) Method and system for scheduling threads and handling exceptions within a multiprocessor data processing system
JPH03126158A (ja) スケジユーリング方法及び装置
JPH04215158A (ja) データ転送制御方法及びインタフェース・システム
US8402190B2 (en) Network adaptor optimization and interrupt reduction
JP3245500B2 (ja) マルチプログラミングにおける事象管理方式
JPS5897944A (ja) 複数マイクロプロセツサ間デ−タ転送方式
US20210311782A1 (en) Thread scheduling for multithreaded data processing environments
JP4675891B2 (ja) タスクスケジューリング装置、タスクスケジューリング方法、タスクスケジューリングプログラム、記録媒体、及び伝送媒体
JPH08115290A (ja) データ転送装置
JP2693916B2 (ja) タスクスケジュール方法
JP2000502202A (ja) 命令プロセッサのジョブスケジューリング
JP2697588B2 (ja) 通信タスク管理方式
JP2903525B2 (ja) ジョブ管理方式
JPH11184712A (ja) 情報処理装置
KR101119458B1 (ko) 비동기 통신 기술
JPH03204723A (ja) プログラム入れ替え方式
JP2833782B2 (ja) 通信制御装置
JP2000076084A (ja) 事象管理・通知方法
JPS61101862A (ja) メツセ−ジスケジユ−ル方式
WO1996031824A1 (en) Operating system
JPH11312091A (ja) センサ情報収集装置
JP2001043092A (ja) タスク間メッセージ通信方法
JPH11143723A (ja) タイマ管理装置及び方法
JPH03273734A (ja) 受信待ち行列処理装置
JPH03248231A (ja) マルチタスクの排他制御方法

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 19970218

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees