JP3123871B2 - キュー検索方式 - Google Patents

キュー検索方式

Info

Publication number
JP3123871B2
JP3123871B2 JP05338197A JP33819793A JP3123871B2 JP 3123871 B2 JP3123871 B2 JP 3123871B2 JP 05338197 A JP05338197 A JP 05338197A JP 33819793 A JP33819793 A JP 33819793A JP 3123871 B2 JP3123871 B2 JP 3123871B2
Authority
JP
Japan
Prior art keywords
queue
information
specifying
search
area
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
JP05338197A
Other languages
English (en)
Other versions
JPH07200319A (ja
Inventor
規彰 ▲高▼倉
満 佐々木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP05338197A priority Critical patent/JP3123871B2/ja
Publication of JPH07200319A publication Critical patent/JPH07200319A/ja
Application granted granted Critical
Publication of JP3123871B2 publication Critical patent/JP3123871B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はキュー検索方式に関し、
特にオブジェクトに接続されているオブジェクトの操作
方法に関連するキュー検索方式に関する。
【0002】
【従来の技術】従来のタスクをプライオリティで管理し
ているOSにおいては、当該タスクそれぞれにプライオ
リティと呼ばれる正の整数を付し、その値が小さい(プ
ライオリティが高い)ほど処理を優先させるという処理
方式が採られている。従って、プライオリティの値が小
さい(プライオリティが高い)タスクと、プライオリテ
ィの値が大きい(プライオリティが低い)タスクとが動
作可能な状態にあった場合、まずプライオリティの高い
タスクの処理が実行され、その処理が終了するかもしく
は中断した場合には、プライオリティの低いタスクの処
理が実行される。また、ある資源を複数のプライオリテ
ィの異なるタスクが待っている場合には、プライオリテ
ィの高いものから優先的に資源が与えられる。このため
に、資源の待ちキューなどで、プライオリティ順にキュ
ーにつながれているオブジェクトを並べ替える操作が行
われる。
【0003】従来のキューの検索方式を、リアルタイム
OSで使用するキューについて説明する。図8は、従来
例のシステムを示すブロック図である。また、図9は、
従来のキューの検索を行う際のフローチャート、図10
は、従来のキューの検索時に割り込みを禁止しない場合
のキュー検索時のフローチャート、図11は、オブジェ
クトをキューから削除する際のフローチャート、図12
はオブジェクトをキューに挿入する際のフローチャート
である。また、図13は、割り込みを禁止した状態でキ
ューの検索を行う前におけるキューの状態を示す図、
14は、割り込みを禁止しない状態でオブジェクトをつ
なぎ直す前のキューの状態を示す図であり、図15は、
検索中に割り込み処理が入り、オブジェクトをつなぎ直
した後のキューの状態を示す図である。
【0004】図8に示されるように、本従来例は、デー
タを書き込む機能を有するデータ書き込み手段150
4、データが“0”であるか否かを判定する機能を有す
るデータ判定手段1505、データを読み込む機能を有
するデータ読み込み手段1506、および割り込みの通
知を受けて、それに対応する割り込みハンドラを起動す
る機能を有する割り込みハンドラ起動手段1507を含
むデータ処理手段1501と、プログラムコードとして
RTOS、RTOS上において動作する一つ乃至複数の
タスクを含むタスク群1510、割り込み信号が入って
きた時に、当該割り込み信号に対する処理が記述されて
いる割り込みハンドラ1508、プログラムデータとし
て前記タスクにおいて使用される各種データをRTOS
により管理するためのオブジェクト1513、そのオブ
ジェクト1513をキューイングして管理するためのキ
ュー1512、およびコード部1509を含むメモリ1
502と、割り込みコントローラ1503とを備えて構
成される。
【0005】図13において、オブジェクト特定情報領
域A2001は、そのキューの先頭につながれているオ
ブジェクトを特定する情報が入っている領域であり、オ
ブジェクト特定情報領域B2002は、そのキューの最
後尾につながれているオブジェクトを特定する情報が入
っている領域である。また、オブジェクト2003〜2
005は、そのキューにつながれているオブジェクトで
あり、オブジェクト特定情報領域C2006、2008
および2010は、そのオブジェクトの次につながれて
いるオブジェクトを特定する情報が入っている領域、オ
ブジェクト特定情報領域D2007、2009および2
011は、そのオブジェクトの一つ前につながれている
オブジェクトを特定する情報が入っている領域である。
【0006】図13において、キューに一つもオブジェ
クトがつながれていない場合には、オブジェクト特定情
報領域A2001およびオブジェクト特定情報領域B2
002の領域には、オブジェクトがつながれていないこ
とを示すために、“0”が入るものとする。この従来例
のように、オブジェクトがつながれている場合には、オ
ブジェクト特定情報領域A2001の領域には、キュー
の先頭につながれているオブジェクトを特定する情報が
入っている。また、キューの先頭につながれているオブ
ジェクト(本従来例においては、オブジェクト2003
が相当する)の一つ前につながれているオブジェクトは
存在しないので、一つ前につながれているオブジェクト
を特定する情報が入っている領域(本従来例において
は、オブジェクト特定情報領域D2007が相当する)
には、一つ前につながれているオブジェクトが存在しな
いことを示すために“0”が入っているものとする。同
様に、キューの最後尾につながれているオブジェクト
(本従来例においては、オブジェクト2005が相当す
る)の次につながれているオブジェクトが存在しないの
で、次につながれているオブジェクトを特定する情報が
入っている領域(本従来例においては、オブジェクト特
定情報領域C2010が相当する)には、次につながれ
ているオブジェクトが存在しないことを示すために
“0”が入っているものとする。
【0007】図9において、ステップ1601において
は、キューの検索を行うにあたり割り込み禁止状態にす
る。そして、ステップ1602において、データ処理手
段1501のデータ読み込み手段1506を用いて、キ
ューの先頭のオブジェクトを特定する情報を得る。本従
来例においては、オブジェクト特定情報領域A2001
の領域に入っているキューの先頭につながれているオブ
ジェクト2003を特定する情報を得る。ステップ16
03において、キューにオブジェクトが存在するか否か
を調べる。これは、ステップ1602において得られた
キューの先頭につながれているオブジェクトを特定する
情報により、データ判定手段1505を用いて“0”で
あるか否かを判定するものであり、このステップ160
3において、前記ステップ1602において得られたキ
ューの先頭につながれているオブジェクト“0”である
場合には、そのキューにはオブジェクトがつながれてい
ないので、ステップ1608に移行し、割り込み禁止状
態を解除して割り込み許可状態とし、キューの検索を終
了する。また、ステップ1603において得られた情報
に、キューの先頭につながれているオブジェクトの情報
が入っていた場合、即ちステップ1602において得ら
れたキューの先頭につながられているオブジェクトを特
定する情報が“0”でなかった場合には、ステップ16
04に移行する。本従来例においては、キューの先頭に
つながれているオブジェクトを特定する情報が入ってい
るオブジェクト特定情報領域A2001の領域には、オ
ブジェクト2003を特定する情報が入っているので、
処理はステップ1604に移行する。ステップ1604
においては、ステップ1602において得られた情報が
指示しているオブジェクトの中が検索され調べられる。
ステップ1605においては、ステップ1604におい
て検索されたオブジェクトが、探していたオブジェクト
であるか否かがチェックされ、探していたオブジェクト
である場合には、ステップ1608に移行して割り込み
禁止状態が解除され、キューの検索処理を終了する。
【0008】また、ステップ1605において、探して
いたオブジェクトでない場合には、ステップ1606に
移行し、データ読み込み手段1504を用いて、今調べ
たオブジェクトの次につながれているオブジェクトが存
在するか否かを調べるとともに、データ判定手段150
5を用いて、今得られた情報が“0”であるか否かを判
定する。当該情報が“0”である場合には、今調べたオ
ブジェクトの次につながれているオブジェクトは存在し
ないことになり、ステップ1608に移行して割り込み
禁止状態を解除し、キューの検索処理を終了する。また
“0”でない場合には、次のオブジェクトが存在してい
ることになり、処理はステップ1606に移行する。本
従来例においては、今調べたオブジェクトはオブジェク
ト2003であり、オブジェクト2003の次につなが
れているオブジェクトが存在しているか否かが調べられ
る。この場合には、データ読み込み手段1505を用い
て、オブジェクト2003の中にあるオブジェクト特定
情報領域C2006の次につながれているオブジェクト
を特定する情報を得るとともに、データ判定手段150
5を用いて、オブジェクト特定情報領域C2006に入
っている情報、即ちオブジェクト2003の次につなが
れているオブジェクトを特定する情報が“0”であるか
否かを判定する。次につながれているオブジェクトを特
定する情報が“0”である場合には、そのキューにはそ
れ以上オブジェクトがつながれていないことになり、ス
テップ1608において割り込み禁止状態を解除して、
キューの検索処理を終了する。次につながれているオブ
ジェクトを特定する情報が“0”でない場合には、ステ
ップ1607に移行して、オブジェクトの検索対象は、
次につながれているオブジェクトに移される。本従来例
においては、キューの先頭につながれているオブジェク
トは、探していたオブジェクトではなかったものとす
る。そして、オブジェクト2003の中にあるオブジェ
クト特定情報領域C2006の次につながれているオブ
ジェクトを特定する情報を得て、当該情報が“0”であ
るか否かを判定する。オブジェクト特定情報領域C20
06には、次につながれるオブジェクト2004を特定
する情報が入っており、従って、本従来例においては、
キューの検索はステップ1607に移行する。ステップ
1607においては、オブジェクトの検索対象をオブジ
ェクト2004に移行し、ステップ1604に戻って検
索対象となるオブジェクトを調べる検索処理が行われ
る。本従来例においては、オブジェクト2004が検索
対象となり、ステップ1604において、オブジェクト
2004が調べられる。
【0009】このようにして、検索されたキューの中に
探しているオブジェクトを発見することができたかを、
キューの中のオブジェクトを対象にして全て検索し終え
るまで、上記の検索処理が継続される。また、キューの
検索処理を開始して終了するまでの間、割り込処理は禁
止状態に設定される。これは、図8における割り込みコ
ントローラ1503よりキュー1512の検索処理中に
割り込み信号が入ってきて、当該割り込み信号に対する
処理(以下、割り込みハンドラと云う)が、割り込みハ
ンドラ起動手段1507により起動され、その処理の中
において、検索中のキューから、今まさに検索対象とな
っているオブジェクトが削除されないようにするためで
ある(これは、検索対象となっているオブジェクトがキ
ューから削除され、他のキューにつながれる場合の処理
も含む)。
【0010】次に、図10の検索処理を行う際のフロー
チャート、図11のキューからオブジェクトを削除する
際のフローチャート、図12のキューにオブジェクトを
挿入する際のフローチャートを参照し、図14のキュー
1およびキュー2の状態図を用いて、キュー1の検索途
中において、今まさに検索対象としているオブジェクト
が、割り込み信号に対する割り込みハンドラの処理によ
り、現在つながれているキュー(キュー1)から削除さ
れ、異なるキュー(キュー2)につなぎ直された場合に
ついて説明する。
【0011】図14のオブジェクト特定情報領域A21
01は、キュー1の先頭につながれているオブジェクト
を特定する情報が入っている領域であり、オブジェクト
特定情報領域B2102は、キュー1の最後尾につなが
れているオブジェクトを特定する情報が入っている領域
である。オブジェクト2103〜2105は、キュー1
につながれているオブジェクトで、オブジェクト特定情
報領域C2106、2108および2110は、それぞ
れオブジェクトの次につながれているオブジェクトを特
定する情報が入っている領域であり、オブジェクト特定
情報領域D2107、2109および2111は、それ
ぞれオブジェクトの一つ前につながれているオブジェク
トを特定する情報が入っている領域である。また、オブ
ジェクト特定情報領域A2112は、キュー2の先頭に
つながれているオブジェクトを特定する情報が入ってい
る領域で、オブジェクト特定情報領域A2113は、キ
ュー2の最後尾につながれているオブジェクトを特定す
る情報が入っている領域であり、オブジェクト2114
および2115は、キュー2につながれているオブジェ
クトである。オブジェクト特定情報領域C2116およ
び2118は、それぞれオブジェクトの次につながれて
いるオブジェクトを特定する情報が入っている領域で、
オブジェクト特定情報領域D2117および2119
は、それぞれオブジェクトの一つ前につながれているオ
ブジェクトを特定する情報が入っている領域である。
【0012】図15は、割り込み信号に対する割り込み
ハンドラの処理中において、キュー1につながれている
オブジェクトB2204が、キュー2につなぎ直された
状態を示す図である。
【0013】オブジェクト特定情報領域A2201は、
キュー1の先頭につながれているオブジェクトを特定す
る情報が入っている領域で、オブジェクト特定情報領域
B2202は、キュー1の最後尾につながれているオブ
ジェクトを特定する情報が入っている領域である。オブ
ジェクト2203および2205はキュー1につながれ
ているオブジェクトで、そのオブジェクト中のオブジェ
クト特定情報領域C2206および2210は、それぞ
れのオブジェクトの次につながれているオブジェクトを
特定する情報が入っている領域である。同じく、オブジ
ェクトの中にあるオブジェクト特定情報領域D2207
および2211は、それぞれのオブジェクトの一つ前に
つながれているオブジェクトを特定する情報が入ってい
る領域である。更に、オブジェクト特定情報領域A22
12は、キュー2につながれているオブジェクトを特定
する情報が入っている領域で、オブジェクト特定情報領
域B2213は、キュー2の最後尾につながれているオ
ブジェクトを特定する情報が入っている領域である。オ
ブジェクト2214および2215は、キュー2に予め
つながれているオブジェクトであり、そのオブジェクト
の中のオブジェクト特定情報領域C2216および22
18は、それぞれのオブジェクトの次につながれている
オブジェクトを特定する情報が入っている領域である。
またオブジェクト特定情報領域D2217および221
9は、そのオブジェクトの一つ前につながれているオブ
ジェクトを特定する情報が入っている領域である。オブ
ジェクトB2204は、キュー1からキュー2につなぎ
直されたオブジェクトであり、そのオブジェクト220
4の中にあるオブジェクト特定情報領域C2208は、
そのオブジェクトの次につながれているオブジェクトを
特定する情報が入っている領域である。またオブジェク
ト特定情報領域C2209は、そのオブジェクトの一つ
前につながれているオブジェクトを特定する情報が入っ
ている領域である。
【0014】図10において、ステップ1701におい
ては、データ処理手段1501のデータ読み込み手段1
506により、キューの先頭につながれているオブジェ
クトを特定する情報を得る。この場合、オブジェクト特
定情報領域A2101に入っているキューの先頭につな
がれているオブジェクト2103を特定する情報が得ら
れる。次いでステップ1702において、データ処理手
段1501のデータ判定手段1505により、ステップ
1701において得られたキューの先頭につながれてい
るオブジェクトを特定する情報が“0”であるか否かが
検索される。当該情報が“0”である場合には、そのキ
ューにはオブジェクトがないと判定してキューの検索処
理は終了する。また“0”でない場合には、キューには
オブジェクトがあるものと判定されてステップ1703
に移行する。本従来例においては、オブジェクト特定情
報領域A2101に、オブジェクト2103を特定する
情報が入っているので、処理はステップ1703に移行
して、ステップ1701において得られた情報が指示し
ているオブジェクトの中が検索される。ステップ170
4においては、ステップ1703において検索されたオ
ブジェクトが、探しているオブジェクトであるか否かが
チェックされ、当該オブジェクトである場合には、キュ
ーの検索処理は終了する。また、探しているオブジェク
トでない場合には、ステップ1705において、チェッ
クされたオブジェクトの次につながれているオブジェク
トが存在するか否かが調べられる。本従来例において
は、データ読み込み手段1506により、オブジェクト
2103の中にあるオブジェクト特定情報領域C210
6の次につながれているオブジェクトを特定する情報を
得て、データ判定手段1505を利用して、オブジェク
ト特定情報領域C2106に入っている情報、即ちオブ
ジェクト2103の次につながれているオブジェクトを
特定する情報が“0”であるか否かが判定される。当該
情報が“0”の場合には、そのキューには、それ以上オ
ブジェクトがつながれていないものと判定され、キュー
検索処理は終了する。また“0”でない場合には、キュ
ーにはオブジェクトがあるものと判定されてステップ1
706に移行し、オブジェクトの検証対象を次につなが
れているオブジェクトに移して、ステップ1703に戻
る。本従来例においては、キューの先頭につながれてい
るオブジェクトが探しているオブジェクトでないものと
する。オブジェクト2103の中にあるオブジェクト特
定情報領域C2106の情報を得て、前述のように、
“0”であるか否かか判定される。オブジェクト特定情
報領域C2106には、次につながれているオブジェク
ト2004を特定する情報が入っている。従って、キュ
ーの検索は、ステップ1706に移行する。ステップ1
706においては、オブジェクトの検索対象をオブジェ
クト2104に移して、ステップ1703に戻る。本従
来例においては、オブジェクト2104が新たな検索対
象となり、ステップ1703に戻ってオブジェクト21
04に対する検索処理が行われる。
【0015】ここにおいて、割り込み信号が入ってき
て、その割り込み信号に対応する処理プログラムが起動
されたものする。その割り込み信号に対応する処理プロ
グラム(割り込みハンドラと云う)の処理中で、オブジ
ェクト2104がキュー1より削除されて、キュー2の
の最後尾につながれたものとする。この処理について以
下に説明する。
【0016】割り込み信号が外部から割り込みコントロ
ーラ1503に入ってくると、割り込みコントローラ1
503より、データ処理手段1501に対して割り込み
信号が入ってきたことが伝達される。データ処理手段1
501においては、これを受けて、予め割り込み信号に
対して登録されている割り込みハンドラ1508による
処理を実行する。この処理中においてキュー1からオブ
ジェクト2104を削除し、キュー2につなぎ変える処
理が呼び出されると、まず図11において、ステップ1
801において割り込み禁止状態が設定され、ステップ
1802においては、削除されるオブジェクト(本従来
例においては、オブジェクト2104)の中にある一つ
前につながれているオブジェクトを特定する情報が入っ
ているオブジェクト特定情報領域C2108の情報を得
る。そして、ステップ1803において、削除されるオ
ブジェクトより一つ前につながれているオブジェクトの
中の、次につながれているオブジェクトを特定する情報
が入っている領域に、削除されるオブジェクトの次につ
ながれているオブジェクトを特定する情報を書き込む。
本従来例においては、削除されるオブジェクトはオブジ
ェクト2104であり、その一つ前につながれているオ
ブジェクトはオブジェクト2103である。そのオブジ
ェクト2103の中にある、次につながれているオブジ
ェクトを特定する情報が入っているオブジェクト特定情
報領域C2106に、オブジェクト2104の次につな
がれているオブジェクトを特定する情報が書き込まれ
る。オブジェクト2104の次につながれているオブジ
ェクトを特定する情報は、オブジェクト2105を指示
しているが、この情報は、オブジェクト2104の中
の、オブジェクト特定情報領域C2108に入っている
ので、当該データをデータ読み込み手段1506を用い
て得た後に、データ書き込み手段1504を用いて、オ
ブジェクト特定情報領域C2108の内容が、オブジェ
クト特定情報領域C2106に書き込まれる。
【0017】次に、ステップ1804において、削除さ
れるオブジェクトの次につながれているオブジェクトを
特定する情報を得る。この場合には、データ読み込み手
段1506を用いて、削除されるオブジェクト2104
の中にある、次につながれているオブジェクトを特定す
る情報が入っているオブジェクト特定情報領域D210
9の中に入っている情報を得る。そして、ステップ19
05において、削除されるオブジェクトの中にある、一
つ前につながれているオブジェクトを特定する情報が入
っている領域に、削除されるオブジェクトの一つ前につ
ながれているオブジェクトを特定する情報を書き込む。
この例においては、削除されるオブジェクトはオブジェ
クト2104であり、その次につながれているオブジェ
クトはオブジェクト2105である。このオブジェクト
2105の中の、一つ前につながれているオブジェクト
を特定する情報が入っているオブジェクト特定情報領域
C2110に、オブジェクト2104の一つ前につなが
れているオブジェクトを特定する情報が書き込まれる。
オブジェクト2104の一つ前につながれているオブジ
ェクトを特定する情報は、オブジェクト2104の中の
オブジェクト特定情報領域D2109に入っているの
で、データ読み込み手段1506およびデータ書き込み
手段1504を用いて、オブジェクト特定情報領域D2
109の内容が、オブジェクト特定情報領域D2111
に書き込まれる。次にステップ1806においては、割
り込み禁止状態が解除されて、オブジェクト2104の
キュー1からの削除処理は終了する続いて、オブジェク
ト2104のキュー2に対する挿入処理が行われる。
12に示されるステップ1901においては、オブジェ
クトを挿入する処理を行うに当って割り込み禁止状態に
する。ステップ1902において、オブジェクトを挿入
する位置の探索が行われる。この例においては、オブジ
ェクト2104はキュー2の最後尾につながれるものと
する。次に、ステップ1903において、挿入する位置
の一つ前のオブジェクトを特定する情報を書き込む。こ
の例においては、オブジェクト2104はキュー2の最
後尾につながれているので、その一つ前のオブジェクト
2115を特定する情報を、オブジェクト2104の一
つ前につながれているオブジェクトを特定する情報が入
っているオブジェクト特定情報領域C2108に書き込
む。この例においては、データ読み込み手段1506を
用いて、キュー2の最後尾につながれているオブジェク
トを特定する情報が入っているオブジェクト特定情報領
域B2113の情報を得て、データ書き込み手段150
6を用いて、オブジェクト2104の中の、オブジェク
ト特定情報領域C2108にそのデータが書き込まれ
る。もしも、挿入するオブジェクトが、挿入するキュー
の先頭に挿入されるのであれば、挿入するオブジェクト
の一つ前につながれているオブジェクトは存在しないの
で、挿入するオブジェクトの一つ前につながれているオ
ブジェクトを特定する情報が入っている領域には“0”
が書き込まれる。そして同時に、挿入するキューの先頭
につながれているオブジェクトを特定する情報が入って
いる領域に、挿入するオブジェクトを特定する情報が書
き込まれる。しかし、この例においては、挿入されるオ
ブジェクト2104はキュー2の先頭にはつながれない
ので、この処理は行われない。
【0018】次に、ステップ1904において、挿入す
るオブジェクトの次につながれているオブジェクトを特
定する情報が入っている領域に、挿入する位置の次につ
ながれるオブジェクトを特定する情報を書き込む。もし
も、挿入するオブジェクトをキュー2の最後尾に挿入す
るのであれば、挿入するオブジェクトの次につながれる
オブジェクトが存在しないので、挿入するオブジェクト
の次につながれるオブジェクトを特定する情報が入って
いる領域には“0”を書き込む。そして同時に、挿入す
るキューの最後尾につながれているオブジェクトを特定
する情報が入っている領域に、挿入するオブジェクトを
特定する情報を、キューの最後尾につながれていオブジ
ェクトを特定する領域に書き込む。この例においては、
オブジェクト2104は、キュー2の最後尾につながれ
るので、オブジェクト2104の次につながれているオ
ブジェクトが存在しない。このように、次につながれる
オブジェクトが存在しない場合には、データ書き込み手
段1504を用いて、挿入するオブジェクトの次につな
がれているオブジェクトを特定する情報が入っている領
域に“0”を書き込む。オブジェクト2104の次につ
ながれているオブジェクトが存在しないので、オブジェ
クト2104の次につながれているオブジェクトを特定
する情報が入っているオブジェクト特定情報領域D21
09には“0”が書き込まれる。前述したように、同時
にキュー2の最後尾につながれているオブジェクトを特
定する情報が入っているオブジェクト特定情報領域B2
113に挿入するオブジェクト2104を特定する情報
は、データ書き込み手段1504を用いて書き込まれ
る。
【0019】次いでステップ1905において、挿入す
るオブジェクトの一つ前につながれているオブジェクト
を特定する情報を得て、一つ前につながれているオブジ
ェクトの次につながれている情報が入っている領域を書
き換える。もしも、一つ前につながれているオブジェク
トを特定する情報が、データ判定手段1505を用いて
“0”であった場合、即ち挿入するオブジェクトがキュ
ーの先頭に挿入される場合には、何らの処理も行われな
い。この例においては、挿入するオブジェクト2104
の一つ前につながれているオブジェクトを特定する情報
が入っているオブジェクト特定情報領域D2109を、
データ読み込み手段1506を用いて読み込み、挿入す
るオブジェクトの一つ前につながれているオブジェクト
2115を特定する情報を得る。挿入するオブジェクト
の一つ前につながれているオブジェクトを特定する情報
が入っている領域の内容が“0”ではないので、得られ
たオブジェクト2115の次につながれている、オブジ
ェクトを特定する情報が入っているオブジェクト特定情
報領域C2118に挿入するオブジェクト2104を特
定する情報を、データ書き込み手段1504を用いて書
き込む。次に、ステップ1906において、挿入するオ
ブジェクトの次につながれているオブジェクトを特定す
る情報を得て、次につながれているオブジェクトの一つ
前につながれているオブジェクトを特定する情報が入っ
ている領域を書き変える。もしも、一つ前につながれて
いるオブジェクトを特定する情報が、データ判定手段1
505を用いて、そのデータが“0”と判定される場
合、即ち挿入するオブジェクトがキューの最後尾に挿入
される場合には、何らの処理も行われない。この例の場
合には、挿入するオブジェクト2104の次につながれ
ているオブジェクトを特定する情報が入っているオブジ
ェクト特定情報領域C2108を、データ読み込み手段
1506を用いて読み込み、挿入するオブジェクトの次
につながれているオブジェクトを特定する情報を得る。
データ判定手段1505を用いて、今得られたおデータ
が“0”であるか否かが判定されるが、この場合には得
られたデータが“0”てあるので何らの処理も行われ
ず、ステップ1907に移行して割り込み禁止状態を解
除し、オブジェクトをキューに挿入する処理を終了す
る。
【0020】その後において、割り込みハンドラの処理
を終了し、割り込みが入ってきた時に処理していた箇所
に処理が戻る。この従来例の場合には、オブジェクト2
104を調べる時に割り込み信号が入ってきていたの
で、図10に示されるステップ1703の処理に戻る。
この時点において、キュー1およびキュー2の状態は、
図14に示される状態から図15に示される状態へと変
化している。従って、以降の説明は図15を参照して行
うものとする。
【0021】図10において、ステップ1703におい
ては、オブジェクト2104が検索される。次いでステ
ップ1704において、ステップ1703において検索
されたオブジェクトが、探しているオブジェクトである
か否かをチェックする。もしも、今調べたオブジェクト
が探しているオブジェクトである場合には、キューの検
索処理は終了する。また、探しているオブジェクトでな
い場合には、ステップ1705に移行する。なお、本従
来例の場合には、オブジェクト2104が探しているオ
ブジェクトではないものとする。ステップ1705にお
いては、今調べたオブジェクトの次につながれているオ
ブジェクトを特定する情報が入っている領域の情報を得
て、次につながれているオブジェクトが存在するか否か
を調べる。もしも存在しなければ、キューの検索処理は
終了し、存在する場合には、ステップ1706に移行し
て、本従来例の場合には、今調べたオブジェクト210
4の次につながれているオブジェクトを特定する情報が
入っているオブジェクト特定情報領域C2108を、デ
ータ読み込み手段1506を用いて読込む。そして、デ
ータ判定手段1505を用いて“0”であるか否かがチ
ェックされる。図14において、オブジェクト2104
の次につながれているオブジェクトは存在せず、オブジ
ェクト2104の次につながれているオブジェクトを特
定する情報が入っているオブジェクト特定情報領域C2
108には“0”が入っているので、キューの検索は終
了する。
【0022】以上は、従来の、割り込み禁止状態にする
ことなく行われるキューの検索処理の内容であり、検索
中に、検索対象となっているオブジェクトが異なるキュ
ーにつなぎ直される場合の例であるが、これでは、本来
目的としているキューにつながれているオブジェクトの
検索が途中の状態で終了している。このために、オブジ
ェクト2105は検索対象とはならず、検索されること
がない。キューの検索中に割り込み信号が入ってきて、
検索中のキューにつながれている検索中のオブジェクト
を異なるキューにつなぎ直す処理が、割り込みハンドラ
1508により行われると、上記の従来例において示さ
れたタイミングだけではなく、検索処理中のどの時点に
おいて行われても、このような現象が生起することにな
る。この現象を防止するために、キューの検索処理の開
始から終了まで割り込み禁止状態にして、キューの検索
処理を行うことが必要となる。
【0023】
【発明が解決しようとする課題】上述した従来のキュー
検索方式においては、キューの検索開始から終了までの
間は割り込み禁止の状態に置かれる。しかも当該割り込
み禁止状態に置かれる時間は、内部にループが含まれて
いるために、キューにつながれているオブジェクトの数
が多くなるに従い長くなる。このように割り込み禁止状
態の時間が長くなると、割り込み信号に対する応答が遅
れる状態となり、リアルタイム性が欠如されるという欠
点がある。
【0024】
【課題を解決するための手段】本発明のキュー検索方式
は、組み込みシステム用のオペレーティングシステムに
よりデータ処理手段が動作され、データ記憶手段に記憶
されたオブジェクトをそのデータ記憶手段に記憶された
キューによって管理し、割り込みコントローラからの所
定の割り込み信号により割り込み制御されるシステムの
キュー検索方式において、前記データ記憶手段が、前記
オブジェクトが前記キューにつながれているか否かを示
すリンク情報をリンク状態管理領域に記憶し、前記キュ
ーにつながれているオブジェクトがあるか否かを示す検
索情報を検索状態管理領域に記憶し、前記データ処理手
段が、前記リンク情報を変更する第1の手段と、前記検
索情報を変更する第2の手段と、前記オブジェクトの接
続を特定する情報を示す特定情報領域にデータを書き込
む手段ならびにデータを読み込む手段と、このデータを
読み込む手段により読み込まれた特定情報が、前記キュ
ーにオブジェクトがつながれてるか、またそのオブジェ
クトの次に、または前につながれているオブジェクトが
存在するか否かを判定する判定手段と、前記割り込み信
号を受けてこの割り込み信号に対応する割り込みハンド
ラを起動させる割り込みハンドラ起動手段とを含み、
記キューの検索がどのオブジェクトまで進行したかを示
す機能と、検索中のキューよりチェック中のオブジェク
トが削除された場合にのみ、キューの再検索を行うよう
にする機能とを有することにより、一つのオブジェクト
に対する検索が終了する度に、キューの検索がどのオブ
ジェクトまで進んだかを更新し、一時的に割り込みを禁
止状態を解除し、然る後に再び割り込み禁止状態にし、
キューにつながれているオブジェクトをチェックするこ
を特徴とする。
【0025】または、キューの検索処理中に、キューの
検索がどのオブジェクトまで進行したかを示す情報によ
り示されるオブジェクトが、そのキュー検索処理中に発
生した別処理により削除された場合、または他のキュー
につながれた場合に、前記別処理よりキュー検索処理に
戻ってきた時点において、そのキューの先頭からキュー
検索処理を再開するキュー検索方式である。
【0026】
【実施例】次に、本発明について図面を参照して説明す
る。
【0027】図1は本発明の第1の実施例のシステムを
示すブロック図である。また、図9は、従来のキューの
検索を行う際のフローチャート、図2は、本実施例にお
けるキューの検索時のフローチャート、図3は、オブジ
ェクトを他のキューにつなぎ直す際のフローチャートで
ある。また、図4は検索前のキューの状態を示す図、図
5は検索中のキューの状態を示す図、図6は、オブジェ
クトをつなぎ直す前のキューの状態を示す図、図7は、
オブジェクトをつなぎ直した後のキューの状態を示す図
である。
【0028】図1に示されるように、本実施例は、キュ
ーにつながれていることを示す情報を変更するための機
能変更手段104、データを書き込む機能を有するデー
タ書き込み手段105、キューにつながれている任意の
オブジェクトを示す情報を変更するためのオブジェクト
指示機能変更手段106、オブジェクト特定情報領域
(後述)のデータが“0”であるか否かを判定する機能
を有するデータ判定手段107、データを読み込む機能
を有するデータ読み込み手段108、および割り込みの
通知を受けて、それに対応する割り込みハンドラを起動
する機能を有する割り込みハンドラ起動手段109を含
むデータ処理手段101と、プログラムコードとしてR
TOS、RTOS上において動作する一つ乃至複数のタ
スクを含むタスク群112、割り込み信号が入ってきた
時に、当該割り込み信号に対応する処理が記述されてい
る割り込みハンドラ110、プログラムデータとして前
記タスクにおいて使用される各種データをRTOSによ
り管理するためのオブジェクトA115、そのオブジェ
クト115をキューイングして管理するためのキュー1
14、およびコード部111を含むデータ記憶手段10
2と、割り込みコントローラ103とを備えて構成され
る。
【0029】なお、図4および図5において、オブジェ
クト特定情報領域A401および501は、キューの先
頭につながれているオブジェクトを特定する情報が入っ
ている領域であり、オブジェクト特定情報領域B402
および502は、キューの最後尾につながれているオブ
ジェクトを特定する情報が入っている領域である。ま
た、オブジェクト404、405、406、504、5
05および506は、それぞれキュー114につながれ
ているオブジェクトで、オブジェクト特定情報領域C4
08、411、414、508、511および514
は、これらのオブジェクトの次につながれているオブジ
ェクトを特定する情報が入っている領域であり、オブジ
ェクト特定情報領域D409、412、415、50
9、512および515は、これらのオブジェクトの一
つ前につながれているオブジェクトを特定する情報が入
っている領域である。更に、検索状態管理領域403お
よび503は、キューの検索が、当該キューにつながれ
ているオブジェクトの内、どのオブジェクトまで進んだ
かを示す機能を有しており、当該キューにつながれてい
るオブジェクトの内の一つを特定する情報が入っている
領域である。この検索状態管理領域403および503
は、本実施例においては共にデータ記憶手段102内に
含まれている。また、各オブジェクト内に存在するリン
ク状態管理領域407、410、413、507、51
0および513は、オブジェクトがキューにつながれて
いたキューに、現在もつながれているか否かを示す情報
が入っている領域である。これらのリンク状態管理領域
は、本実施例においてはデータ記憶手段102内のオブ
ジェクトの中に含まれている。
【0030】図4および図5において、キューにオブジ
ェクトが一つもつながれていない場合には、キューの先
頭につながれているオブジェクトを特定する情報が入っ
ているオブジェクト特定情報領域A401および501
には、オブジェクトが一つもつながれていないことを示
すための“0”が入るものとする。また、キューの先頭
につながれているオブジェクトの前につながれているオ
ブジェクトは存在しないので、先頭のオブジェクトの一
つ前につながれているオブジェクトを特定する情報が入
っている領域には、オブジェクトが存在しないことを示
す“0”が入るものとする。同様に、図4および図5に
おいて、キューの最後尾につながれているオブジェクト
の後につながれているオブジェクトは存在しないので、
キューの最後尾につながれているオブジェクト406お
よび506中の、次につながれているオブジェクトの次
につながれているオブジェクトを特定する情報が入って
いるオブジェクト特定情報領域領域C414および51
4には、次につながれているオブジェクトが存在しない
ことを示すために“0”が入るものとする。
【0031】本実施例の説明に当り、図4および図5に
示される各オブジェクト内に存在するリンク情報管理領
域407、410、413、507、510および51
3には、そのオブジェクトがキューにつながれているこ
とを示す“LINK”という情報が入っており、キュー
につながれていない場合には、キューにつながれていな
いことを示すために“UNLINK”という情報が入っ
ているものとする。また、或るキューよりオブジェクト
が外されて他のキューにつながれた場合には、そのこと
を示すために“UNLINKED−LINK”という情
報が入るものとする。また、図4および図5における検
索状態管理領域403および503には、そのキューに
つながれている任意のオブジェクトを特定する情報が入
っており、この情報により、キューにつながれているオ
ブジェクトの検索が、どのオブジェクトまで進んでいる
かが示される。なお、検索時以外においては、どのよう
な情報が入っていてもよいものとする。
【0032】図2において、まずステップ201におい
て、キューの検索を行うにあたり割り込み禁止状態にす
る。そして、ステップ202において、データ処理手段
101に含まれるデータ読み込み手段108を介して、
図4のオブジェクト特定情報領域A401に入ってい
る、キューの先頭につながれているオブジェクトを特定
する情報を得る。本実施例の場合には、オブジェクト特
定情報領域A401には、オブジェクト404を特定す
る情報が入っている。次いで、ステップ203におい
て、キューにつながれているオブジェクトが存在するか
否かを調べる。これは、ステップ202において得られ
たキューの先頭につながれているオブジェクトを特定す
る情報が“0”でないか否かを、データ判定手段107
を用いて調べる。この判定処理において、キューにオブ
ジェクトが存在しない場合、即ちステップ203におい
て調べたキューの先頭につながれているオブジェクトを
特定する情報が“0”である場合には、ステップ213
に移行して、割り込み禁止状態を解除し、キューの検索
処理を終了する。また、キューにオブジェクトが存在す
る場合、即ちステップ203において調べたキューの先
頭につながれているオブジェクトを特定する情報が
“0”でない場合には、ステップ204に移行して、キ
ューの検索処理を続行する。本実施例の場合には、ステ
ップ202において得られたキューの先頭につながれて
いるオブジェクトを特定する情報が入っているオブジェ
クト特定情報領域A401には、オブジェクト404を
特定する情報が入っており“0”ではないので、処理は
ステップ104に移行する。
【0033】ステップ204においては、ステップ20
2において得られたキューの先頭のオブジェクトを特定
する情報を、キュー内の任意のオブジェクトを指し示す
機能を有する検索状態管理領域A403に、オブジェク
ト指示機能変更手段106を介して書き込む。本実施例
の場合には、ステップ202において得られたキューの
先頭につながれているオブジェクトを特定する情報が、
オブジェクト404を特定する情報であり、この情報が
検索状態管理領域403に書き込まれる。
【0034】次いで、ステップ205においては一時的
に割り込み状態を解除する。そしてステップ206にお
いて再度割り込み禁止状態とし、検索処理を続行してス
テップ207に移行する。ステップ207においては、
検索状態管理領域に入っている情報を示すオブジェクト
のリンク状態管理領域に入っている情報を調べる。そし
て、リンク状態管理領域に入っている情報が、キューに
つながれていないことを示す情報であるか、またはキュ
ーから外されて他のキューにつなぎ直されたことを示す
情報が入っている場合には、キュー検索処理はステップ
215に移行する。リンク状態管理領域に入っている情
報が、そのオブジェクトがキューにつながれていること
を示す情報であった場合には、ステップ208に移行す
る。本実施例においては、検索状態管理領域403に入
っている情報が示すオブジェクトは、オブジェクト40
4であり、オブジェクト404のリンク状態管理領域4
07に入っている情報は“LINK”である。“LIN
K”という情報は、そのオブジェクトがキューにつなが
れていることを示す情報であるので、キューの検索処理
はステップ208に移行する。ステップ208において
は、当該オブジェクトの中を調べる。次いで、ステップ
209においては、今調べたオブジェクトが探していた
オブジェクトであるか否かをチェックする。もしも探し
ていたオブジェクトである場合には、ステップ213に
移行して割り込み禁止状態を解除し、キューの検索処理
を終了する。また、探していたオブジェクトでない場合
には、ステップ210において、今調べたオブジェクト
の次につながれているオブジェクトが存在するか否かを
調べる。本実施例においては、今調べたオブジェクト4
04が探していたオブジェクトでなかったものとする。
従って、この場合には、キューの検索処理は、ステップ
209よりステップ210に移行する。ステップ210
においては、今調べたオブジェクトの次につながれてい
るオブジェクトが存在するかを調べるが、本実施例にお
いては、オブジェクト404の次につながれているオブ
ジェクトを特定する情報が入っているオブジェクト特定
情報領域C408を、データ読み込み手段108を用い
て読み込む。そして、データ判定手段107を用いて、
オブジェクト特定情報領域C領域408に入っているデ
ータが“0”であるか否かを調べる。オブジェクト特定
情報領域C領域408に入っている情報は、オブジェク
ト405を特定する情報であり“0”ではないので、キ
ューの検索処理はステップ211に移行する。
【0035】ステップ211においては、検索対象とな
るオブジェクトを今調べたオブジェクトの次につながれ
ているオブジェクトに移す。本実施例においては、ステ
ップ211において、検索対象となるオブジェクトを、
今調べたオブジェクト404の次につながれているオブ
ジェクト405に移す。そして、ステップ212におい
て検索状態管理領域の変更を行う。本実施例の場合に
は、キューの検索がどのオブジェクトまで進んだかを示
す機能を変更する機能、即ち検索状態管理領域403に
より、これから調べようとしているオブジェクト405
を特定する情報に変更する。そして、ステップ205に
戻り、割り込み禁止状態を一時的に解除する。更に、ス
テップ206に移行して、再度割り込み禁止状態にして
ステップ207に移行する。このようにして検索処理を
行い、キューの中に探しているオブジェクトを発見する
ことができるか、またはキュー内のオブジェクトを全て
検索し終えるまで、この処理を続けて行う。
【0036】ここまでの処理において、割り込み禁止状
態となっているのは、図2におけるキューを検索する際
のフローチャートにおいて、ステップ207から一つの
オブジェクトの検索を終えて、再びステップ206に戻
ってくるまでの間である。次に、キューの検索処理中に
割り込み信号が入ってきて、その割り込み信号に対する
処理プログラムの中で、検索中のキューから検索対象と
なっているオブジェクトを外し、他のキューにつなぎ直
した場合について、図6および図7を用いて説明する。
【0037】図6および図7において、オブジェクト特
定情報領域A601、615、701および715は、
そのキューの先頭につながれているオブジェクトを特定
する情報が入っている領域であり、オブジェクト特定情
報領域602、616、702および716は、そのキ
ューの最後尾につながれているオブジェクトを特定する
情報が入っている領域である。そのキューにつながれて
いるオブジェクトが一つも存在しない場合には、キュー
の先頭につながれているオブジェクトを特定する情報が
入っている領域には“0”が入るものとする。オブジェ
クト604〜606、618、619、704〜70
6、718および719は、それぞれのキューにつなが
れているオブジェクトである。オブジェクト特定情報領
域C608、611、614、621、624、70
8、711、714、721および724は、それぞれ
のオブジェクトの次につながれているオブジェクトを特
定する情報が入っている領域である。本実施例において
は、そのオブジェクトの次につながれているオブジェク
トが存在しない場合には、この領域には“0”が入るも
のとする。オブジェクト特定情報領域D609、61
2、615、622、625、709、712、71
5、722および725は、それぞれのオブジェクトの
一つ前につながれているオブジェクトを特定する情報が
入っている領域である。本実施例においては、そのオブ
ジェクトの一つ前につながれているオブジェクトが存在
しない場合には、この領域には“0”が入るものとす
る。検索状態管理領域603、617、703および7
17は、キューの検索が、そのキューにつながれている
オブジェクトの内、どのオブジェクトまで進んだかを示
す機能で、そのキューにつながれているオブジェクトの
内の一つを特定する情報が入っている領域である。ま
た、各オブジェクト内に存在するリンク状態管理領域6
07、610、613、620、623、707、71
0、713、720および723は、オブジェクトがキ
ューにつながれていることを示す機能で、そのオブジェ
クトがそのキューの検索を開始した時点においてつなが
れていたキューに、現在もつながれているか否かを示す
情報が入っている領域である。
【0038】図6および図7のキュー1,キュー2にオ
ブジェクトが一つもつながれていない場合には、キュー
の先頭につながれているオブジェクトを特定する情報が
入っているオブジェクト特定情報領域A601、61
5、701および715には、オブジェクトが一つもつ
ながれていないことを示すため“0”が入るものとす
る。また、キューの先頭につながれているオブジェクト
の前につながれているオブジェクトは存在しないので、
先頭のオブジェクトの一つ前につながれているオブジェ
クトを特定する情報が入っている領域には、オブジェク
トが存在しないことを示すため“0”が入るものとす
る。そして、キューの最後尾につながれているオブジェ
クトの次につながれているオブジェクトは存在しないの
で、キューの最後尾につながれているオブジェクトの中
の、次につながれているオブジェクトを特定する情報が
入っている領域には“0”が入るものとする。
【0039】本実施例の説明においては、図5および図
6の各オブジェクト内に存在するリンク情報管理領域6
07、610、613、620、623、707、71
0、713、720および723には、そのオブジェク
トがキューにつながれていることを示す“LINK”と
いう情報が入っており、キューにつながれていない場合
には、キューにつながれていないことを示すため“UN
LINK”という情報が入っているものとする。また、
あるキューよりオブジェクトが外されて他のキューにつ
ながれた場合には、このことを示すため“UNLINK
ED−LINK”という情報が入るものとする。また、
図6および図7の検索状態管理領域603、617、7
03および717には、そのキューにつながれている任
意のオブジェクトを特定する情報が入っており、この情
報により、キューにつながれているオブジェクトの検索
がどのオブジェクトまで進んだかを示す。なお、検索時
以外においては、どのような情報が入っていてもよいも
のとする。前述したように、キューの検索をキュー1に
対して行う。
【0040】まず図2のステップ201において割り込
み禁止状態にする。そして、ステップ202において
は、検索を行うキューの先頭につながれているオブジェ
クトを特定する情報を得る。本実施例では、データ読み
込み手段108を用いて、図6のオブジェクト特定情報
領域A601に入っているキュー1の先頭につながれて
いるオブジェクトを特定する情報を得る。このオブジェ
クト特定情報領域A601には、オブジェクトB604
を特定する情報が入っている。ステップ203におい
て、キューにつながれているオブジェクトが存在するか
否かを調べる。この場合には、ステップ202において
得られたキューの先頭につながれているオブジェクトを
特定する情報が“0”でないか否かを、データ判定手段
107を用いて調べる。キューにオブジェクトが存在し
ない場合、即ち、ステップ202において得られ、ステ
ップ203において調べたキューの先頭につながれてい
るオブジェクトを特定する情報が“0”であった場合に
は、ステップ213に移行し、割り込み禁止状態を解除
して、キューの検索処理を終了する。また、キューにオ
ブジェクトが存在する場合、即ち、ステップ203にお
いて調べたデータが“0”でない場合には、ステップ2
04に移行してキューの検索処理を続ける。本実施例の
場合には、ステップ202において得られたキューの先
頭につながれているオブジェクトを特定する情報が入っ
ているオブジェクト特定情報領域601には、オブジェ
クト604を特定する情報が入っており“0”ではない
ので、ステップ204に移行し、ステップ202におい
て得られたキューの先頭につながれているオブジェクト
を特定する情報を、キュー内の任意のオブジェクトを指
し示す機能である検索状態管理領域に、オブジェクト指
示機能変更手段106を用いて書き込む。本実施例にお
いては、ステップ202において得られたキュー1の先
頭にGながれているオブジェクトを特定する情報は、オ
ブジェクト604を特定する情報であり、この情報を検
索状態管理領域613に書き込む。ステップ205にお
いては一時的に割り込み禁止状態を解除する。そして、
ステップ206において、再度割り込み禁止状態にして
検索処理を続ける。
【0041】そして、ステップ207においては、検索
状態管理領域に入っている情報が示すオブジェクトの、
リンク状態管理領域に入っている情報を調べる。そし
て、リンク状態管理領域に入っている情報が、キューに
つながれていないことを示す情報であるか、またはキュ
ーから外されて他のキューにつなぎ直されていることを
示す情報が入っている場合には、キュー検索処理はステ
ップ215に移行して、リンク状態管理領域に入ってい
る情報が、そのオブジェクトがキューにつながれている
ことを示す情報である場合には、ステップ208に移行
する。本実施例においては、検索状態管理領域603に
入っている情報が示すオブジェクトはオブジェクト60
4であり、オブジェクト604のリンク状態管理領域6
07に入っている情報は“LINK”である。“LIN
K”という情報は、そのオブジェクトがキューにつなが
れていることを示す情報であるので、キューの検索処理
はステップ208に移行する。ステップ208において
は、そのオブジェクトの中を調べる。ステップ209に
おいて、今調べたオブジェクトが探していたオブジェク
トである場合には、ステップ213に移行して、割り込
み禁止状態を解除してキューの検索処理を終了する。ま
た、探していたオブジェクトでない場合には、ステップ
210に移行して、今調べたオブジェクトの次につなが
れているオブジェクトが存在するか否かを調べる。本実
施例においては、今調べたオブジェクト604が、探し
ていたオブジェクトではなかったものとする。オブジェ
クト604が、探していたオブジェクトではないので、
キューの検索処理は、ステップ209からステップ21
0に移行する。ステップ210においては、今調べたオ
ブジェクト604の次につながれているオブジェクトを
特定する情報が入っているオブジェクト特定情報領域C
608を、データ読み込み手段108を用いて読み込
む。そして、データ判定手段107を用いて、オブジェ
クト特定情報領域C608に入っていたデータが“0”
であるか否かを調べる。オブジェクト特定情報領域C6
08の、オブジェクト604の次につながれているオブ
ジェクトを特定する情報が入っている領域の情報は、オ
ブジェクト605を特定する情報であり“0”ではない
ので、キューの検索処理はステップ211に移行する。
ステップ211においては、検索対象となるオブジェク
トを、今調べたオブジェクトの次につながれているオブ
ジェクトに移す。本実施例においては、ステップ211
における処理によって、検索対象となるオブジェクト
を、今調べたオブジェクト604の次につながれている
オブジェクト605に移す。そして、ステップ212に
移行して、検索状態管理領域の変更を行う。本実施例に
おいては、キューの検索がどのオブジェクトまで進んだ
かを示す機能を変更する機能、即ち検索状態管理領域6
03により、これから調べようとしているオブジェクト
605を特定する情報に変更する。そして、処理をステ
ップ205に戻し、割り込み禁止状態を解除する。割り
込み禁止状態を解除すると、今まで割り込みを禁止して
いた間に入ってきた割り込み信号に対する処理が開始さ
れる。
【0042】この割り込みに対する処理で、今検索の対
象となっているオブジェクト605がキュー1から外さ
れ、キュー2の最後尾につながれる処理が行われるもの
とする。その手順を図3を用いて説明する。
【0043】まず、ステップ301において割り込み禁
止状態にする。そして、ステップ302において、オブ
ジェクトの一つ前につながれているオブジェクトを特定
する情報を得る。本実施例においては、データ読み込み
手段108を用いて、キューから削除するオブジェクト
605のオブジェクト特定情報領域D612に入ってい
る情報を得る。次に、ステップ303において、ステッ
プ302において得られた、キューから削除するオブジ
ェクトの一つ前につながれているオブジェクトの、次に
つながれているオブジェクトを特定する情報が入ってい
る領域を書き替える。本実施例においては、この処理に
より、データ読み込み手段108を用いて、キューから
削除されるオブジェクト、オブジェクト605の中の次
につながれているオブジェクトを特定する情報が入って
いるオブジェクト特定情報領域C611に入っている情
報を得る。この時点において、オブジェクト特定情報領
域C611の中には、オブジェクト606を特定する情
報が入っている。削除するオブジェクトの次につながれ
ているオブジェクトを特定する情報を得た後に、当該情
報をデータ書き込み手段105を用いて、ステップ30
2において得られた削除されるオブジェクトの一つ前に
つながれているオブジェクト604の中の、次につなが
れているオブジェクトを特定する情報が入っているオブ
ジェクト特定情報領域C608に書き込む。
【0044】更に、ステップ304において、削除する
オブジェクトの次につながれているオブジェクトを特定
する情報を得る。本実施例においては、この処理は、削
除されるオブジェクト、オブジェクト605の中の次に
つながれているオブジェクトを特定する情報が入ってい
るオブジェクト特定情報領域C611に入っている情報
を、データ読み込み手段108を用いて得る。次に、ス
テップ305においては、削除されるオブジェクトの次
につながれているオブジェクトの一つ前につながれてい
るオブジェクトを特定する情報が入っている領域を書き
換える。本実施例においては、この処理は、データ読み
込み手段108を用いて、キューから削除されるオブジ
ェクト605の中の一つ前につながれているオブジェク
トを特定する情報が入っているオブジェクト特定情報領
域D612に入っている情報を得る。この時点におい
て、オブジェクト特定情報領域D612の中には、オブ
ジェクト604を特定する情報が入っている。削除する
オブジェクトの一つ前につながれているオブジェクトを
特定する情報を得た後に、その情報をデータ書き込み手
段105を用いて、ステップ304において得られた削
除されるオブジェクトの次につながれているオブジェク
ト606の中の、一つ前につながれているオブジェクト
を特定する情報が入っているオブジェクト特定情報領域
D615に書き込む。ここまでの処理により、オブジェ
クト604の次にオブジェクト606がつながれ、オブ
ジェクト606の一つ前にオブジェクト604がつなが
れたことになり、オブジェクト605はキュー1から完
全に外されたことになる。
【0045】そして、ステップ306において、今キュ
ー1から外したオブジェクトを新たにつなぐキューにつ
なぐ際に、何れの位置に挿入するかを探す。本実施例の
場合においては、オブジェクト605は、キュー2の最
後尾につながれるものとする。
【0046】次に、ステップ307において、挿入する
オブジェクトの一つ前につながれているオブジェクトを
特定する情報を書き換える。本実施例において、この処
理は、まず挿入するオブジェクトの一つ前につながれる
オブジェクトを特定する情報を得る。この場合、挿入す
るオブジェクトの一つ前につながれるオブジェクトは、
現在キュー2の最後尾につながれているオブジェクト6
19である。キューの最後尾にオブジェクトを挿入する
場合には、キューの最後尾につながれているオブジェク
トを特定する情報が入っているオブジェクト特定情報領
域B616に入っている情報を、データ読み込み手段1
08を用いて得る。次に、今得た情報をデータ書き込み
手段105を用いて、挿入するオブジェクトの一つ前に
つながれているオブジェクトを特定する情報が入ってい
る領域に書き込む。本実施例においては、挿入するオブ
ジェクトはオブジェクト605であり、そのオブジェク
トの一つ前につながれているオブジェクトを特定する情
報が入っている領域は、オブジェクト特定情報領域D6
12である。このオブジェクト特定情報領域D612
に、一つ前につながれるオブジェクト619を特定する
情報を書き込む。そして、処理はステップ308に移行
して、挿入するオブジェクトの次につながれるオブジェ
クトを特定する情報が入っている領域を書き換える。本
実施例においては、この処理は挿入されるオブジェクト
の一つ前につながれるオブジェクトの次につながれるオ
ブジェクトを特定する情報を、データ読み込み手段10
8を用いて得る。そして、その得られた情報を、挿入さ
れるオブジェクトの次につながれるオブジェクトを特定
する情報が入っている領域に、データ書き込み手段10
5を用いて書き込む。本実施例の場合には、挿入される
オブジェクトの一つ前につながれるオブジェクト619
の次につながれるオブジェクトを特定するオブジェクト
特定情報領域C624に入っている情報は“0”であ
る。この情報を、挿入されるオブジェクト605の一つ
前につながれるオブジェクトを特定する情報が入ってい
るオブジェクト特定情報領域C611に書き込む。更
に、ステップ309において、挿入されるオブジェクト
の一つ前につながれるオブジェクトの、次につながれる
オブジェクトを特定する情報が入っている領域を書き換
える。本実施例においては、この処理は、まず挿入され
るオブジェクトの一つ前につながれるオブジェクトを特
定する情報を得る。これは、挿入するオブジェクト60
5の一つ前につながれるオブジェクトを特定する情報が
入っているオブジェクト特定情報領域D612を、デー
タ読み込み手段108を用いることにより得ることがで
きる。このオブジェクト特定情報領域D612のなかに
は、オブジェクト619を特定する情報が入っている。
ここで得られたオブジェクトの次につながれているオブ
ジェクトを特定する情報が入っている領域に、挿入する
オブジェクトを特定する情報を、データ書き込み手段1
05を用いて書き込む。次に、ステップ310におい
て、オブジェクト605の次につながれているオブジェ
クトの中の、次につながれているオブジェクトを特定す
る情報が入っている領域を書き換える。本実施例におい
ては、挿入するオブジェクトの中の次につながれている
オブジェクトを特定する情報を得て、その得たオブジェ
クトの一つ前につながれているオブジェクトを特定する
情報が入っている領域を、挿入するオブジェクトを特定
する情報に書き換える。本実施例においては、挿入する
オブジェクト605の中の次につながれているオブジェ
クトを特定する情報は“0”であるので、挿入されるオ
ブジェクトの次につながれるオブジェクトは存在しな
い。この場合には、処理はステップ311に移行する。
ステップ311においては、挿入されるオブジェクトの
リンク状態管理領域を、あるキューから外されて他のキ
ューにつながれたことを示す情報に書き換える。本実施
例においては、挿入されるオブジェクト605のリンク
状態管理領域610を“UNLINKED−LINK”
に書き換える。そして、ステップ312において割り込
み禁止状態を解除し、或るオブジェクトをキューから外
して、他のキューにつなぎ直す処理を終了する。
【0047】図7は、オブジェクト705をキュー1か
らキュー2につなぎなおした状態を示している。以下
に、図7を参照して後の処理について説明する。
【0048】オブジェクト705をキュー1からキュー
2に対するつなぎ直しを含む割り込み処理が終了する
と、ステップ206に戻り、ステップ206において割
り込み禁止状態にし、ステップ207において、検索状
態管理領域に入っている情報が示しているオブジェクト
のリンク状態管理領域を調べる。本実施例においては、
現在検索状態管理領域に入っている情報はオブジェクト
705を示しており、オブジェクト705のリンク状態
管理領域710に入っている情報は“UNLINED−
LINK”である。よって、“LINK”ではないの
で、処理はステップ215に移行する。ステップ215
においては、検索状態管理領域に入っている情報が示し
ているオブジェクトのリンク状態管理領域を調べる。そ
して、そのリンク状態管理領域に入っている情報が、あ
るキューからオブジェクトが外されて他のキューにつな
がれたことを示す情報が入っているかを調べる。本実施
例の場合においては、“UNLINKED−LINK”
であるかを調べる。“UNLINKED−LINK”で
ない場合には、処理はステップ202に移行する。また
“UNLINKED−LINK”である場合には、処理
をステップ214に移行させる。本実施例の場合には、
検索状態管理領域に入っている情報が示しているオブジ
ェクトは、オブジェクト705である。このオブジェク
ト705のリンク状態管理領域に入っている情報は、或
るキューから外されて他のキューにつながれたことを示
す“UNLINKED−LINK”が入っている。従っ
て、処理はステップ214に移行する。
【0049】ステップ214においては、検索状態管理
領域に入っている情報が示しているオブジェクトのリン
ク状態管理領域をキューにつながれていることを示す情
報に書き換える。本実施例においては、検索状態管理領
域に入っている情報が示しているオブジェクトはオブジ
ェクト705であり、オブジェクト705のリンク状態
管理領域を、データ書き込み手段105を用いて“LI
NK”という情報に書き換える。
【0050】次いで処理はステップ202に移り、キュ
ーの先頭につながれているオブジェクトを特定する情報
を得る。更に、ステップ103において、キューにつな
がれているオブジェクトが存在するかを調べる。これは
前述したように、ステップ202において得られたキュ
ーの先頭につながれているオブジェクトを特定する情報
が“0”でないか否かを、データ判定手段107を用い
て調べる。キューにオブジェクトが存在しない場合、即
ち、ステップ202において得られて、ステップ203
において調べたキューの先頭につながれているオブジェ
クトを特定する情報が“0”であった場合には、処理は
ステップ213に移行し、割り込み禁止状態を解除し
て、キューの検索処理を終了する。キューにオブジェク
トが存在した場合、即ち、ステップ202において得ら
れて、ステップ203において調べたデータが“0”で
なかった場合には、処理はステップ204に移行して、
キューの検索処理を続ける。本実施例の場合には、ステ
ップ202において得られたキューに、先頭につながれ
ているオブジェクトを特定する情報が入っているオブジ
ェクト特定情報領域A701には、オブジェクト704
を特定する情報が入っていて“0”ではないので、処理
をステップ204に移行する。
【0051】そして、ステップ204において、検索状
態管理領域をキューの先頭につながれているオブジェク
トの情報を示す情報に書き換える。以下、キュー1の検
索をオブジェクト704、オブジェクト706へと続け
てゆく。また、ステップ205において、割り込み禁止
状態を解除した時点において、割り込み信号が入ってき
て割り込み信号に対する処理が行われても、その処理中
に検索状態管理領域が指し示しているオブジェクトをキ
ューから削除しなければ、検索状態管理領域が指し示す
オブジェクトのリンク状態管理領域が変更されないの
で、キューの検索はそのまま続行される。
【0052】
【発明の効果】以上説明したように、本発明は、キュー
の検索がどのオブジェクトまで進行したかを示す機能を
有し、一つのオブジェクトに対する検索が終了する度
に、キューの検索がどのオブジェクトまで進んだかを更
新しながら当該キューの検索を行うことにより、当該キ
ュー検索処理中に発生した別処理により削除された場
合、または他のキューにつながれた場合に、前記別処理
よりキュー検索処理に戻ってきた時点において、当該キ
ューの先頭からキュー検索処理を再開することが可能と
なり、これにより、キュー検索処理中における繰返し処
理中に割り込み禁止状態を解除する区間を設けることが
でき、割り込み禁止状態の時間を一定にすることができ
るという効果がある。
【0053】また、割り込み禁止状態を解除することに
より、割り込み処理において検索対象となったオブジェ
クトが削除されても、検索処理自体は何らの矛盾を起す
ことなく、検索処理を続行することができるという効果
がある。
【図面の簡単な説明】
【図1】本発明の第1の実施例のシステムを示すブロッ
ク図である。
【図2】前記実施例におけるキュー検索のフローチャー
トを示す図である。
【図3】前記実施例におけるオブジェクトを他のキュー
につなぎ直すフローチャートを示す図である。
【図4】前記実施例における検索前のキューの状態を示
す図である。
【図5】前記実施例における検索中のキューの状態を示
す図である。
【図6】前記実施例におけるオブジェクトをつなぎ直す
前のキューの状態を示す図である。
【図7】前記実施例におけるオブジェクトをつなぎ直し
た後のキューの状態を示す図である。
【図8】従来例のシステムを示すブロック図である。
【図9】従来例におけるキュー検索のフローチャート
(1)を示す図である。
【図10】従来例におけるキュー検索のフローチャート
(2)を示す図である。
【図11】従来例におけるオブジェクトをキューより削
除する際のフローチャートを示す図である。
【図12】従来例におけるオブジェクトをキューに挿入
する際のフローチャートを示す図である。
【図13】従来例における検索前のキューの状態を示す
図である。
【図14】従来例におけるオブジェクトをつなぎ直す前
のキューの状態を示す図である。
【図15】従来例におけるオブジェクトをつなぎ直した
後のキューの状態を示す図である。
【符号の説明】
101、1501:データ処理手段 102、1502:メモリ 103、1503:割り込みコントローラ 104:機能変更手段 105、1504:データ書き込み手段 106:オブジェクト指示機能変更手段 107、1505:データ判定手段 108、1506:データ読み込み手段 109、1507:割り込みハンドラ起動手段 110、111、1508、1509:コード部 112、1510:タスク群 113、1511:データ部 114、1512:キュー 115、404〜406、504〜506、604〜6
06、618、619、704〜706、718、71
9、1513、2003、2004、2005、210
3〜2105、2114、2115、2203〜220
5、2214、2215:オブジェクト 401、501、601、615、701、715、2
001、2101、2112、2201、2212:オ
ブジェクト特定情報領域A 402、502、602、616、702、716、2
002、2102、2113、2202、2213:オ
ブジェクト特定情報領域B 403、503、603、617、703、717:検
索状態管理領域 407、410、413、507、510、513、6
07、610、613、620、623、707、71
0、713、720、723:リンク状態管理領域 408、411、414、508、511、514、6
08、611、614、621、624、708、71
1、714、721、724、2006、2008、2
010、2106、2108、2110、2116、2
118、2206、2208、2210、2216、2
218:オブジェクト特定情報領域C 409、412、415、509、512、515、6
09、612、615、622、625、709、71
2、715、722、725、2009、2012、2
015、2107、2109、2111、2117、2
119、2207、2209、2211、2217、2
219:オブジェクト特定情報領域D
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平1−217638(JP,A) 特開 平5−289890(JP,A) 特開 平1−41041(JP,A) 特開 昭59−189452(JP,A) インターフェース1989年7月号(CQ 出版社)、PP.174〜179 (58)調査した分野(Int.Cl.7,DB名) G06F 9/46

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】組み込みシステム用のオペレーティングシ
    ステムによりデータ処理手段が動作され、データ記憶手
    段に記憶されたオブジェクトをそのデータ記憶手段に記
    憶されたキューによって管理し、割り込みコントローラ
    からの所定の割り込み信号により割り込み制御されるシ
    ステムのキュー検索方式において、 前記データ記憶手段が、前記オブジェクトが前記キュー
    につながれているか否かを示すリンク情報をリンク状態
    管理領域に記憶し、前記キューにつながれているオブジ
    ェクトがあるか否かを示す検索情報を検索状態管理領域
    に記憶し、 前記データ処理手段が、前記リンク情報を変更する第1
    の手段と、前記検索情報を変更する第2の手段と、前記
    オブジェクトの接続を特定する情報を示す特定情報領域
    にデータを書き込む手段ならびにデータを読み込む手段
    と、このデータを読み込む手段により読み込まれた特定
    情報が、前記キューにオブジェクトがつながれてるか、
    またそのオブジェクトの次に、または前につながれてい
    るオブジェクトが存在するか否かを判定する判定手段
    と、前記割り込み信号を受けてこの割り込み信号に対応
    する割り込みハンドラを起動させる割り込みハンドラ起
    動手段とを含み、 前記キューの検索がどのオブジェクトまで進行したかを
    示す機能と、検索中のキューよりチェック中のオブジェ
    クトが削除された場合にのみ、キューの再検索を行うよ
    うにする機能とを有することにより、一つのオブジェク
    トに対する検索が終了する度に、キューの検索がどのオ
    ブジェクトまで進んだかを更新し、一時的に割り込みを
    禁止状態を解除し、然る後に再び割り込み禁止状態に
    し、キューにつながれているオブジェクトをチェックす
    ることを特徴とするキュー検索方式。
  2. 【請求項2】キューの検索処理中に、キューの検索がど
    のオブジェクトまで進行したかを示す情報により示され
    るオブジェクトが、そのキュー検索処理中に発生した別
    処理により削除された場合、または他のキューにつなが
    れた場合に、前記別処理よりキュー検索処理に戻ってき
    た時点において、そのキューの先頭からキュー検索処理
    を再開する請求項1記載のキュー検索方式。
JP05338197A 1993-12-28 1993-12-28 キュー検索方式 Expired - Fee Related JP3123871B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP05338197A JP3123871B2 (ja) 1993-12-28 1993-12-28 キュー検索方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP05338197A JP3123871B2 (ja) 1993-12-28 1993-12-28 キュー検索方式

Publications (2)

Publication Number Publication Date
JPH07200319A JPH07200319A (ja) 1995-08-04
JP3123871B2 true JP3123871B2 (ja) 2001-01-15

Family

ID=18315847

Family Applications (1)

Application Number Title Priority Date Filing Date
JP05338197A Expired - Fee Related JP3123871B2 (ja) 1993-12-28 1993-12-28 キュー検索方式

Country Status (1)

Country Link
JP (1) JP3123871B2 (ja)

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
インターフェース1989年7月号(CQ出版社)、PP.174〜179

Also Published As

Publication number Publication date
JPH07200319A (ja) 1995-08-04

Similar Documents

Publication Publication Date Title
US7484017B1 (en) Dequeuing from a host adapter two-dimensional queue
US8224812B2 (en) Database management system and method
JP2526688B2 (ja) プログラマブルコントロ―ラおよびシ―ケンスプログラムの部分実行方法
EP1131715A1 (en) Distributed transactional processing system and method
US4523275A (en) Cache/disk subsystem with floating entry
US5371857A (en) Input/output interruption control system for a virtual machine
US5363502A (en) Hot stand-by method and computer system for implementing hot stand-by method
US5410694A (en) File access processing system of a computer enabling high-speed sequential access for a stream file
JP3123871B2 (ja) キュー検索方式
CN115617533B (zh) 异构计算中进程切换管理方法及计算装置
KR100404374B1 (ko) 캐시 변수의 자동 갱신을 실행하는 방법 및 장치
US11734051B1 (en) RTOS/OS architecture for context switching that solves the diminishing bandwidth problem and the RTOS response time problem using unsorted ready lists
US6789134B1 (en) Dequeuing from a host adapter two-dimensional queue
JP2713218B2 (ja) チェックポイント/リスタート処理方式
JP2000040057A (ja) 計算機システム、バッファ制御装置及び転送方法
JP3234029B2 (ja) 半導体記憶装置
JPH03127157A (ja) 記憶装置の負荷バランス制御方式
JPH09185540A (ja) マルチプロセスシステム
JPH04333929A (ja) キャッシュメモリ制御方式
JPH0736763A (ja) データベース管理装置
JPH0256625A (ja) データ共用システムおよびデータ更新方式
JPH04139545A (ja) データベース更新処理方式
JPH0713782A (ja) オペレーティングシステムのキュー検索方式
JP2001222432A (ja) プログラムファイルロード方式
JPH0348538B2 (ja)

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20000509

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20001010

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313117

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20081027

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20091027

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20091027

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20101027

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20101027

Year of fee payment: 10

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

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

Free format text: PAYMENT UNTIL: 20101027

Year of fee payment: 10

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20111027

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20111027

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20121027

Year of fee payment: 12

LAPS Cancellation because of no payment of annual fees