(57)【特許請求の範囲】
【請求項１】
所定のモニタを用いて、所定のオブジェクトに対する１つ以上のスレッドの相互排除的なアクセスを制御するステップと、
前記モニタを獲得するために待機中である第１スレッドをインタラプトするステップとを含み、
前記モニタは、
待機条件を示す条件変数と、
前記モニタを獲得した第２スレッドが存在するか否かと前記条件変数に対して待機中であるスレッドが存在するか否かを示すカウンタ変数とを含み、
前記制御するステップは、
前記第１スレッドが前記モニタを要請するステップと、
前記カウンタ変数を増加させるステップと、
前記第２スレッドが存在する場合、前記第１スレッドを前記条件変数に対して待機させるステップとを含み、
前記インタラプトするステップは、
前記第１スレッドがモニタに対して待機中であるか否かを判断し、前記第１スレッドが待機中である場合、前記第１スレッドにインタラプトの対象に該当するという情報を設定するステップと、
前記モニタを獲得するために待機中である１つ以上の、第１スレッドを含むスレッドを順次起動するブロードキャストシグナルを出力するステップと、
前記第１スレッドが前記ブロードキャストシグナルによって起動するステップと、
起動した前記第１スレッドにインタラプトの対象に該当するという情報が設定されている場合、前記第１スレッドに設定された前記モニタに対する情報を削除するステップと、前記カウンタ変数を減少させるステップと、
を含む、インタラプト可能なスレッド同期化方法。
【請求項２】
前記モニタは、前記条件変数と前記カウンタ変数とに対する前記１つ以上のスレッドの相互排除的なアクセスを制御するサブモニタをさらに含む、請求項１に記載のインタラプト可能なスレッド同期化方法。
【請求項３】
前記カウンタ変数は、負ではない整数である、請求項１に記載のインタラプト可能なスレッド同期化方法。
【請求項４】
前記第２スレッドが前記オブジェクトに対する所定の処理作業を完了した場合、前記カウンタ変数を減少させるステップをさらに含む、請求項１に記載のインタラプト可能なスレッド同期化方法。
【請求項５】
前記第２スレッドが前記オブジェクトに対する所定の処理作業を完了した後、前記モニタを獲得するために待機中であってインタラプトの対象に該当しない第３スレッドが存在すれば、前記第３スレッドを起動するシングルシグナルを出力するステップをさらに含む、請求項１に記載のインタラプト可能なスレッド同期化方法。
【請求項６】
請求項１ないし請求項５のうちいずれか一項に記載の方法を実行するためのコンピュータで読み取り可能なプログラムを記録した記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スレッド同期化に関し、より詳しくは、インタラプト可能なスレッド同期化方法および装置に関するものである。
【背景技術】
【０００２】
大部分のスレッドプログラムでは様々なスレッド間にデータを共有するようにする。そこで、あるスレッドが共有データの不変値を修正する間に他のスレッドが共有データを用いる問題が生じえる。このような問題が生じないようにするためのプログラム技術を同期化というが、スレッドを同期化するための従来の技術として、同一データに対するすべてのメモリアクセスが相互排除的に行われるようにする技術がある。すなわち、ある瞬間にはただ１つのスレッドだけがデータを用いることができて、他のスレッドは自身の順番を待つように待機させることである。
【０００３】
ところが、従来の技術では、特定スレッドの実行を中断させて、そのスレッドが占めているシステムリソースを直ちに返さなければならない状況において、そのスレッドがモニタを獲得するために同期化待機中の状態であれば、そのスレッドを中断させることができなくなる。
【０００４】
したがって、同期化待機中であるスレッドのうちの必要となる特定スレッドだけモニタからインタラプトさせ、モニタを獲得してクリティカルセクションを実行中のスレッドや該当モニタを獲得するために待機中の他のスレッドには何の影響も与えない技術が要求されている。
【０００５】
特に、スレッドライブラリを修正せず、従来の標準（例えばＰＯＳＩＸ標準）に違背せずに、このような要求を充足させる技術であればさらに好ましい。
【０００６】
特許文献１は、マルチスレッドプロセッサにおいて１つのスレッドの処理を一時中断する技術を開示している。しかし、この技術はスレッドを一時中断させるものであるため、モニタ待機中のスレッドをモニタから完全に解除させるには困難がある。
【特許文献１】韓国公開特許第１０−２００４−００６８９９３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明は、所定のオブジェクトに対して相互排除的な同期化を提供するモニタに待機中の特定スレッドをインタラプトさせるのにその目的がある。
【０００８】
本発明の目的は、以上で言及した目的に制限されず、言及していないまた他の目的は下記記載によって当業者が明確に理解できるものである。
【課題を解決するための手段】
【０００９】
前記目的を達成するための本発明の一態様に係るインタラプト可能なスレッド同期化方法は、所定のモニタを用いて、所定のオブジェクトに対する１つ以上のスレッドの相互排除的なアクセスを制御するステップと、前記モニタを待機する第１スレッドをインタラプトするステップとを含む。
【発明の効果】
【００１０】
上記のような本発明のインタラプト可能なスレッド同期化方法および装置によれば、所定のオブジェクトに対して相互排除的な同期化を提供するモニタから特定スレッドをインタラプトさせることができる効果がある。
【発明を実施するための最良の形態】
【００１１】
その他、実施形態の具体的な事項は、詳細な説明および図面に含まれている。
本発明の利点および特徴、そしてそれらを達成する方法は、添付する図面と共に詳細に後述する実施形態を参照すれば明確になる。しかし、本発明は以下にて開示する実施形態に限定されず、互いに異なる多様な形態によって実施され、単に本実施形態は本発明の開示が完全なものとなるようにし、本発明が属する技術分野で通常の知識を有する者に発明の範疇を完全に知らせるために提供されるものであって、本発明は請求項の範疇によってのみ定義されるものである。明細書の全体に亘り、同一参照符号は同一構成要素を示す。
【００１２】
先ず、本発明に用いられる用語について概略的に説明する。用語の説明は、本発明の理解を助けるためのものである。よって、本発明の詳細な説明において明示的に限定しない限り、以下にて説明する用語が本発明の技術的思想を限定する意味として用いられるのではないことに注意しなければならない。
【００１３】
・オブジェクト
オブジェクトとは、スレッドが特定機能を実行するためにアクセスする対象であって、データアイテム、リソース、コードセグメントなど、多様な形態であり得る。
【００１４】
・同期化
同期化とは、所定のオブジェクトに対しスレッドが相互排除的にアクセスできる状態のことをいう。すなわち、オブジェクトにアクセスしようとする複数のスレッドが存在する場合、ある時点におけるオブジェクトに対するアクセスは、複数のスレッドのうちのある１つのスレッドにだけ許容される。
【００１５】
・モニタ
モニタは、所定のオブジェクトに対する相互排除的なアクセスを制御する。すなわち、モニタはオブジェクトに対して複数のスレッドを同期化することによって、複数のスレッドが１つのオブジェクトに同時にアクセスすることを防止する。したがって、モニタを獲得したスレッドだけがオブジェクトにアクセスすることができる。言い換えれば、同期化したオブジェクトにアクセスしようとするスレッドは、先ず該当オブジェクトに対するモニタを獲得しなければならない。参考に、スレッドを定義する標準によっては「モニタの獲得」という表現の代わりに「モニタのロック」という表現を用いたりもするが、本発明は、このような用語に限定されないように「モニタの獲得」と「モニタのロック」を同一の意味として用いる。ＰＯＳＩＸのミューテックスやセマフォはこのようなモニタの一種である。本発明は新しい類型のモニタを提案するものであり、その内容については図１を参照して後述する。
【００１６】
・インタラプト
インタラプトとは、あるスレッドの正常的実行を中断させて他の動作を実行させることであって、本発明におけるインタラプトとは、モニタを待機しているスレッドがモニタを獲得しないまま待機状態から完全に解除され、それ以上獲得していないモニタを要請しない状態のことを意味する。
【００１７】
・条件変数
条件変数とは、スレッドの待機条件を示し、特定条件が真になるまでスレッドを待機させる。スレッドはシグナル待機情報によって条件変数に対して待機するようになる。ＰＯＳＩＸ標準ＡＰＩのｐｔｈｒｅａｄ＿ｃｏｎｄ＿ｗａｉｔ関数がシグナル待機情報の代表的な例として用いられ得る。一方、条件変数に対して待機中のスレッドは、所定のシグナル発生情報によって起動され得る。本発明でシグナル発生情報は、シングルシグナルとブロードキャストシグナルとに区分することができる。
【００１８】
好ましくは、条件変数はスレッドを待機させるためにミューテックスと共に動作する。例えば、第１スレッドがミューテックスをロックした後、指定の条件の発生を待つ条件変数によってブロックされれば、第１スレッドがブロックされている間ミューテックスのロックは解除される。この時、第２スレッドが指定の条件の状態を変更させて第１スレッドを起動すれば、第１スレッドは再びミューテックスをロックして指定の条件を検査する。条件が偽であれば、第１スレッドは条件変数によって再びブロックされるが、指定の条件が真であれば、第１スレッドはミューテックスのロックを解除して必要な作業を行うようになる。後述する図１の実施形態の場合には、条件変数がサブモニタ１１０と共に上述したような動作を実行することができる。
【００１９】
・シングルシグナル
シングルシグナルとは、条件変数に対して待機中の１つ以上のスレッドのうちのいずれか１つのスレッドを起動させるために用いられる情報である。本発明の一実施形態により、シングルシグナルによって起動されたスレッドはモニタを獲得することができる。ＰＯＳＩＸ標準ＡＰＩにおけるｐｔｈｒｅａｄ＿ｃｏｎｄ＿ｓｉｇｎａｌ関数がシングルシグナルの代表的な例として用いられ得る。
【００２０】
・ブロードキャストシグナル
ブロードキャストシグナルとは、条件変数に対して待機中の１つ以上のスレッドをすべて起動するために用いられる情報である。ブロードキャストシグナルによって、複数のスレッドは順次起動するようになる。本発明の一実施形態より、所定の条件を満たすスレッドはブロードキャストシグナルによってインタラプトされ得る。ＰＯＳＩＸ標準ＡＰＩにおけるｐｔｈｒｅａｄ＿ｃｏｎｄ＿ｂｒｏａｄｃａｓｔ関数がブロードキャストシグナルの代表的な例として用いられ得る。
【００２１】
以下、添付した図面を参照して本発明の好ましい実施形態についてより詳細に説明する。
図１は、本発明の一実施形態に係るモニタの構造を示す図である。モニタ１００は、サブモニタ１１０、条件変数１２０、カウンタ変数１３０、およびブロードキャストフラグ１４０を含む。
【００２２】
サブモニタ１１０は、モニタ１００内の情報に対してスレッドを同期化する。より具体的には、サブモニタ１１０は、本発明で具現しようとする動作に必要な条件変数１２０とカウンタ変数１３０とに対してスレッドを同期化する。このようなサブモニタ１１０の一例としてミューテックスが用いられ得る。
【００２３】
条件変数１２０は、シグナル発生情報とシグナル待機情報とを用いて所定のオブジェクトに対する同期化を提供する。本発明において条件変数１２０は、いずれか１つのスレッドによってロックされたモニタ１００を他のスレッドが要請する場合、モニタ１００を要請したスレッドが待機状態に入るようにする。
【００２４】
待機中のスレッドは、シングルシグナルによって起動した後、モニタ１００を獲得することができる。待機中のスレッドが複数あれば、そのうちのいずれか１つのスレッドだけが起動するようになる。一方、待機中のスレッドは、ブロードキャストシグナルによって起動することもできるが、この時、所定の条件を満たすスレッドは待機状態から完全に解除されるが、そうでないスレッドは再び待機状態となる。
【００２５】
カウンタ変数１３０は、モニタ１００を獲得したスレッドと待機中のスレッドの数を示し、負ではない整数の値を有することが好ましい。スレッドがモニタ１００を要請する時にカウンタ変数１３０は増加し、モニタ１００を獲得したスレッドがモニタ１００を解除したりモニタ１００を待機していたスレッドがモニタ１００からインタラプトされれば、カウンタ変数１３０は減少する。
【００２６】
ここで、カウンタ変数１３０は負ではない整数の値を有し、カウンタ変数１３０の増加幅と減少幅は１であることが好ましい。この場合、カウンタ変数１３０が１と設定されていれば、モニタ１００を獲得したスレッドの他にモニタ１００を待機中であるスレッドはないということを意味し、カウンタ変数が０であれば、モニタ１００を獲得したスレッドさえないということを意味する。また、カウンタ変数１３０が１より大きい整数Ｎと設定されていれば、モニタ１００待機中のスレッドの数がＮ−１であることを示す。以下では、カウンタ変数１３０が負ではない整数であり、増減幅は１であるとして説明するが、本発明はこれに限定されるものではない。
【００２７】
ブロードキャストフラグ１４０は、条件変数１２０に待機中であるスレッドを起動するためにブロードキャストシグナルが出力される場合に真の値を有する。インタラプトされるスレッドは、モニタ１００のブロードキャストフラグ１４０を確認することによって、該当モニタ１００からインタラプトされるべきであることが分かる。
【００２８】
図２は、本発明の一実施形態に係るスレッドを示す図である。スレッド２００は、ブロックされたモニタ情報２１０とインタラプトフラグ２２０とを含んでおり、この他にも多様な情報をさらに含むことができる。
【００２９】
ブロックされたモニタ情報２１０には、スレッド２００が待機中のモニタに対する情報が設定される。
インタラプトフラグ２２０は、スレッド２００がインタラプトの対象であるか否かを示す情報が設定される。例えば、スレッド２００がインタラプトの対象である場合、インタラプトフラグ２２０は真の値に設定され得る。インタラプトフラグ２２０が真の値に設定されたスレッドは、ブロードキャストシグナルによって起動する場合、待機中の状態から完全に脱することができる。すなわち、待機していたモニタからインタラプトされ得る。
【００３０】
以下、本発明の一実施形態に係るインタラプト可能なスレッド同期化方法について説明する。
図３は、本発明の一実施形態に係るモニタのロック過程を示すフローチャートである。
【００３１】
モニタ１００を要請するスレッド（以下、本実施形態では要請スレッドという）は、先ずモニタ１００のカウンタ変数１３０を増加させる（Ｓ３１０）。次に要請スレッドは、モニタ１００がすでに他のスレッドによって使用中であるか否かを判断する（Ｓ３２０）。モニタ１００が他のスレッドによって使用中であるか否かは、モニタ１００のカウンタ変数１３０によって確認することができる。カウンタ変数１３０が１であれば、モニタ１００は使用可能であり、カウンタ変数１３０が１より大きければ、モニタ１００は他のスレッドによって使用中であると判断することができる。また前述したように、カウンタ変数１３０によってモニタ１００に待機中であるスレッドがいくつ存在するかも判断することができるが、カウンタ変数１３０が１であればモニタ１００に待機中のスレッドがなく、カウンタ変数１３０が１より大きい整数Ｎであればモニタ１００に待機中のスレッドはＮ−１個である。
【００３２】
モニタ１００を使用中であるスレッドがなければ、要請スレッドはモニタ１００を獲得する（Ｓ３６０）。
一方、ステップＳ３２０の判断結果、モニタ１００を使用中であるスレッドが存在する場合、要請スレッドは自身のブロックされたモニタ情報２１０にモニタ１００に対する情報を設定する（Ｓ３３０）。その後、要請スレッドはモニタ１００の条件変数１２０によって待機状態になる（Ｓ３４０）。
【００３３】
待機状態で条件変数１２０に対するシングルシグナルが出力されれば（Ｓ３５０）、待機中である要請スレッドは起動してモニタ１００を獲得するようになる（Ｓ３７０）。モニタ１００に待機中であるスレッドが複数存在すれば、シングルシグナルの出力時に複数のスレッドのうちいずれか１つのスレッドが起動するようになる。
【００３４】
一方、待機状態でブロードキャストシグナルが出力されれば（Ｓ３７０）、待機中であるスレッドのインタラプト過程が進行され得、これに関しては図６を参照して後述する。
シングルシグナルとブロードキャストシグナルのうちいずれも出力されなければ、要請スレッドはモニタ１００を待機し続ける。
【００３５】
図４は、本発明の一実施形態に係るモニタ解除過程を示すフローチャートである。
先ず、モニタ１００を獲得したスレッド（以下、本実施形態では解除スレッドという）がモニタ１００を介して同期化したオブジェクトに対する所定の処理作業を終了することによってモニタ１００を解除しようとする場合、解除スレッドは、該当モニタ１００を待機しているスレッドが存在するか否かを判断する（Ｓ４１０）。モニタ１００に待機中であるスレッドが存在するか否かは、モニタ１００のカウンタ変数１３０によって確認することができる。
【００３６】
より具体的に説明すれば、モニタ１００がまだ解除される前であるため、カウンタ変数１３０は０より大きい値に設定されているはずである。カウンタ変数１３０が１であれば、Ｅモニタ１００に待機中のスレッドがないと判断することができ、カウンタ変数１３０が１より大きければ、モニタ１００に待機中のスレッドが存在すると判断することができる。
【００３７】
モニタ１００に待機中であるスレッドがなければ、解除スレッドは、モニタ１００のカウンタ変数１３０を１ほど減少させることにより（この場合、モニタ１００のカウンタ変数１３０は１から０に変更される）、モニタ１００を解除することができる（Ｓ４３０）。
【００３８】
一方、ステップＳ４１０の判断結果、モニタ１００に待機中であるスレッドが存在すれば、解除スレッドは、条件変数１２０に対するシングルシグナルを出力する（Ｓ４２０）。その後、解除スレッドは、モニタ１００のカウンタ変数１３０を１ほど減少させることにより（この場合、モニタ１００のカウンタ変数１３０は１より大きい整数ＮからＮ−１に変更される）、モニタ１００を解除する（Ｓ４３０）。
【００３９】
図５は、本発明の一実施形態に係るインタラプト指示過程を示すフローチャートである。
他のスレッドをインタラプトさせようとするスレッド（以下、本実施形態ではインタラプト指示スレッドという）は、先ずインタラプトの対象となるスレッド（以下、本実施形態ではターゲットスレッドという）が所定のモニタに対して待機中であるか否かを判断する（Ｓ５１０）。このために、ターゲットスレッドに設定された、ブロックされたモニタ情報２１０が用いられ得る。すなわち、インタラプトスレッドは、ターゲットスレッドのブロックされたモニタ情報２１０によってターゲットスレッドが待機中であるモニタが分かる。
【００４０】
ターゲットスレッドがモニタに待機中であれば、インタラプト指示スレッドは、ターゲットスレッドにインタラプトの対象であるという情報を記録する（Ｓ５２０）。インタラプトの対象であるという情報は、ターゲットスレッドのインタラプトフラグ２２０によって設定され得る。
【００４１】
その後、インタラプト指示スレッドは、ターゲットスレッドが待機中であるモニタの条件変数に対するブロードキャストシグナルを出力する（Ｓ５３０）。この場合、条件変数によって待機中であるスレッドが順次起動するようになる。
【００４２】
図６は、本発明の一実施形態に係るインタラプト過程を示す図である。示された過程は、図５の過程によってブロードキャストシグナルが出力される場合、図３の過程によってモニタを待機していたスレッドの動作過程である。すなわち、図６は、図３のステップＳ３７０において「はい」の場合に進行される過程を示す。
【００４３】
図５の過程によってブロードキャストシグナルが出力されれば、待機中であるスレッドが順次起動するが、起動したスレッドは、自身がインタラプトの対象であるか否かを判断する（Ｓ６１０）。インタラプトの対象であるか否かは、スレッド自身に設定されたインタラプトフラグ２２０を介して確認することができるが、インタラプトの対象となるスレッドのインタラプトフラグ２２０には、図５のステップＳ５２０によってインタラプトの対象であるという情報が記録されている。
【００４４】
起動したスレッドがインタラプトの対象であれば、インタラプトの対象スレッドは、待機中であるモニタに対する情報を削除するが（Ｓ６２０）、待機中であるモニタに対する情報は各スレッドのブロックされたモニタ情報２１０に設定されている。
【００４５】
そして、インタラプトの対象スレッドは、モニタのカウンタ変数１３０を減少させることによってモニタからインタラプトされる（Ｓ６３０）。ここで、モニタのカウント変数１３０は１より大きい整数ＬからＬ−１に変更される。このようにインタラプトされたスレッドは、他の作業を実行するために動作したり終了したりすることができる。
【００４６】
一方、ステップＳ６１０の判断結果、インタラプトの対象ではないスレッドは、再び待機中の状態に入る（Ｓ３４０、図３参照）。
図３〜図６には示していないが、スレッドがモニタの内部情報にアクセスする時、モニタのサブモニタ１１０を介し、モニタの内部情報に対する同期化を制御する過程を追加することができる。例えば、図４においてステップＳ４１０が実行される前にサブモニタ１１０をロックすることによって、モニタ１００内の情報に対して他のスレッドのアクセスを遮断する過程が行われ、ステップＳ４３０が行われた後にサブモニタ１１０を解除して、モニタ１００内の情報に対して他のスレッドのアクセスを許容する過程が行われ得る。
【００４７】
本発明の一実施形態によれば、図１〜図６を参照して説明した動作過程を実行するための所定のコンピュータコードで構成されて、コンピュータで読み取り可能なプログラムを、フラッシュメモリ、ＣＤ、ハードディスクなど所定の記録媒体に記録しておき、記録媒体に記録されたプログラムをコンピュータが行うことによって本発明を具現することもできる。
【００４８】
図７は、本発明の一実施形態に係るデジタル演算装置の構成図である。デジタル演算装置７００は、主記憶部７１０、入出力部７２０、およびプロセシング部７３０を含む。このようなデジタル演算装置７００は、携帯電話、ＰＤＡ、デジタルＴＶ、セットトップボックス、ノートパソコン、デスクトップパソコンなど、データ格納能力とプロセシング能力を有する多様な電子製品として具現され得る。
【００４９】
主記憶部７１０は、プロセシング部７３０がプログラム１０を実行するために必要なメモリを提供する。本発明の一実施形態によれば、主記憶部７１０はラムとして具現され得、ラムの種類としてはＤＲＡＭ、ＳＲＡＭ、ＳＤＲＡＭなどが挙げられる。
【００５０】
入出力部７２０は、プログラム１０の実行に必要なデータをプロセシング部７３０に提供し、プロセシング部７３０の作業結果が出力される。例えば、ユーザがリモコン、キーボード、キーパッド、マウスなどの入力装置により、実行中であるプログラム１０に対する要請事項を入力すれば、入出力部７２０はこの要請事項をプロセシング部７３０に伝えることができる。他の例として入出力部７２０は、プロセシング部７３０がプログラム１０を実行させることにより、行った作業結果をディスプレイやスピーカによって出力することもできる。
【００５１】
プロセシング部７３０は、プログラム１０を実行させる。このためにプロセシング部７３０は、プログラム１０に対する読み取り、書き込み、変換、演算などの作業を行うことができる。プロセシング部７３０は、プログラム１０を実行することによって、図１および図２を参照して説明したモニタ１００およびスレッド２００を具現し、図３〜図６を参照して説明した動作を行うことができる。
【００５２】
プログラム１０は、プロセシング部７３０によって処理される時、本発明の一実施形態にモニタ１００とスレッド２００を生成できるコンピュータコードによって構成され得る。
【００５３】
図７を参照して説明したデジタル演算装置７００を構成する構成要素である「〜部」は、一種のモジュールとして具現され得る。ここで「モジュール」という用語は、ソフトウェアまたはＦＰＧＡまたはＡＳＩＣのようなハードウェア構成要素を意味し、モジュールはある役割を行う。ところが、モジュールは、ソフトウェアまたはハードウェアに限定される意味ではない。モジュールは、アドレッシングできる格納媒体にあるように構成することもでき、１つまたはそれ以上のプロセッサを再生させるように構成することもできる。したがって、一例としてモジュールはソフトウェア構成要素、オブジェクト指向ソフトウェア構成要素、クラス構成要素およびタスク構成要素のような構成要素と、プロセス、関数、属性、プロシージャ、サブルーチン、プログラムコードのセグメント、ドライバ、ファームウェア、マイクロコード、回路、データ、データベース、データ構造、テーブル、アレイ、および変数を含む。構成要素とモジュールの中で提供されている機能は、さらに小さい数の構成要素およびモジュールに結合したり、追加的な構成要素とモジュールにさらに分離したりすることができる。
【００５４】
以上、添付した図面を参照して本発明の実施形態を説明したが、本発明が属する技術分野で通常の知識を有する者であれば、本発明がその技術的思想や必須の特徴を変更せず、他の具体的な形態によって実施することができるということを理解できる。したがって、以上で記述した実施形態はすべての面で例示的なものであり、限定的なものではないことを理解しなければならない。
【図面の簡単な説明】
【００５５】
【図１】本発明の一実施形態に係るモニタの構造を示す図である。
【図２】本発明の一実施形態に係るスレッドを示す図である。
【図３】本発明の一実施形態に係るモニタのロック過程を示すフローチャートである。
【図４】本発明の一実施形態に係るモニタ解除過程を示すフローチャートである。
【図５】本発明の一実施形態に係るインタラプト指示過程を示すフローチャートである。
【図６】本発明の一実施形態に係るインタラプト過程を示す図である。
【図７】本発明の一実施形態に係るデジタル演算装置の構成図である。
【符号の説明】
【００５６】
１００      モニタ
１１０      サブモニタ
１２０      条件変数
１３０      カウンタ変数
１４０      ブロードキャストフラグ
２００      スレッド
２１０      ブロックされたモニタ情報
２２０      インタラプトフラグ
７１０      主記憶部
７２０      入出力部
７３０      プロセシング部
【図１】
0004685044.tif 000002
【図２】
0004685044.tif 000003
【図３】
0004685044.tif 000004
【図４】
0004685044.tif 000005
【図５】
0004685044.tif 000006
【図６】
0004685044.tif 000007
【図７】
0004685044.tif 000008