【手続補正書】
【提出日】平成18年5月8日(2006.5.8)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】特許請求の範囲
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数のスレッドがその上で実行されているプロセッサにおける実行方法であって、前記スレッドは、少なくとも１つの共有オブジェクトを参照する同期のとれた動作を含み、前記共有オブジェクトは、オブジェクト識別子（ＯＩＤ）によって識別される、方法において、
実行のための同期のとれた動作を含む前記複数のスレッドの中の第１のスレッドを選択するステップと、
前記選択されたスレッドに入るときに、前記少なくとも１つの共有オブジェクトのＯＩＤをロック・スタックの上にプッシュすることによって、前記少なくとも１つの共有オブジェクトがロックされるように指示するステップと、
前記選択されたスレッドによって定義された同期のとれた動作を実行するステップと、
前記ＯＩＤを前記ロック・スタックからプッシュすることによって、前記指示を除去するステップと、
を含むことを特徴とする方法。
【請求項２】
請求項１記載の方法において、前記選択されたスレッドによって定義された動作を実行するステップの間、前記選択されたスレッドはブロックし、この方法は、更に、前記選択されたスレッド・ブロックの後に前記少なくとも１つの共有オブジェクトをロックするステップを含むことを特徴とする方法。
【請求項３】
請求項２記載の方法において、前記共有オブジェクトに対応するモニタ・オブジェクトのインスタンスを作成するステップを更に含むことを特徴とする方法。
【請求項４】
請求項３記載の方法において、前記モニタ・オブジェクトは、キュー・ヘッダと、カウンタと、前記選択されたスレッドを識別する所有者フィールドとを含むことを特徴とする方法。
【請求項５】
請求項３記載の方法において、前記ロックするステップは、アプリケーション・メモリ空間において前記モニタ・オブジェクトを作成するステップを含むことを特徴とする方法。
【請求項６】
請求項４記載の方法において、前記ロックするステップは、カーネル・メモリ空間において前記モニタ・オブジェクトを作成するステップを含むことを特徴とする方法。
【請求項７】
請求項２記載の方法において、前記ロックするステップは、更に、
前記選択されたスレッドがいつブロックするかを判断するステップと、
前記判断ステップに応答して、前記ロック動作を実行するステップと、
を含むことを特徴とする方法。
【請求項８】
請求項２記載の方法において、前記ロックするステップは、更に、
前記選択されたスレッドが前記ブロックの後でいつ再開するかを判断するステップと、
同期のとれた動作を含む前記スレッドの別の１つが前記選択されたスレッドがブロックした後でブロックした場合にだけ前記ロック動作を実行するステップと、
を含むことを特徴とする方法。
【請求項９】
請求項１記載の方法において、
実行のために第２のスレッドを選択するステップであって、前記第２のスレッドは、前記第１のスレッドの同期のとれた動作と同期した動作を含む、ステップと、
前記第２のスレッドに入るときに、前記共有オブジェクトがロックされているかどうかを判断するステップと、
を更に含むことを特徴とする方法。
【請求項１０】
請求項９記載の方法において、前記共有オブジェクトがロックされていると判断されるときに、この方法は、更に、
前記共有オブジェクトと関連付けされたモニタ・オブジェクトを作成して前記共有オブジェクトがいつロック解除されるかを判断するステップと、
前記共有オブジェクトがロック解除されていると判断された後で、前記第２のスレッドによって定義された動作を実行するステップと、
を含むことを特徴とする方法。
【請求項１１】
請求項９記載の方法において、前記共有オブジェクトがロック解除されていると判断されるときに、
そのＯＩＤを前記ロック・スタックの上にプッシュすることによって、前記共有オブジェクトがロックされるように指示するステップと、
前記第２のスレッドによって定義される動作を実行するステップと、
前記ＯＩＤを前記ロック・スタックからプッシュすることによって、前記指示を除去するステップと、
を更に含むことを特徴とする方法。
【請求項１２】
複数の同期のとれた実行スレッドを含むアプリケーションを実行するコンピュータ・システムであって、それぞれの同期のとれたスレッドは、複数の同期のとれたスレッドの間で共有されるオブジェクト識別子（ＯＩＤ）によって識別される少なくとも１つのオブジェクトを参照する、コンピュータ・システムにおいて、
プロセッサと、
前記プロセッサに結合されたメモリと、
前記メモリの共有アドレス空間において複数の実行スレッドをサポートするマルチスレッド動作システムと、
１つのＯＩＤを保持するサイズの複数のエントリを含む、前記メモリにおけるロック・スタックと、
前記プロセッサにおいて動作し、選択された１つの同期のとれたスレッドを受け取るように結合され、前記選択されたスレッドを前記プロセッサ上で動作させる命令インタープリタであって、前記選択されたスレッドに入るときに、そのＯＩＤをロック・スタックの上にプッシュすることによって、前記共有オブジェクトがロックされるように指示し、前記選択されたスレッドから出るときに、前記ＯＩＤを前記ロック・スタックからプッシュすることによって、前記指示を除去する、命令インタープリタと、
を備えていることを特徴とするコンピュータ・システム。
【請求項１３】
請求項１２記載のコンピュータ・システムにおいて、更に、
前記プロセッサ内で動作し、前記選択されたスレッドが実行の間にいつブロックするかを告知するスレッド・ブロック・インジケータと、
前記プロセッサ内で動作し、前記スレッド・ブロック・インジケータに応答して、前記ロック・スタックにおけるＯＩＤによって識別される前記共有オブジェクトをロックするオブジェクト・ロック装置と、
を備えていることを特徴とするコンピュータ・システム。
【請求項１４】
請求項１２記載のコンピュータ・システムにおいて、前記オブジェクト・ロック装置は、前記共有オブジェクトに対応するモニタ・オブジェクトのインスタンスを備えており、前記モニタ・オブジェクトは、キュー・ヘッダと、カウンタと、前記選択されたスレッドを識別する所有者フィールドとを含むことを特徴とするコンピュータ・システム。
【請求項１５】
請求項１４記載のコンピュータ・システムにおいて、前記モニタ・オブジェクトは、前記メモリのアプリケーション・メモリ空間においてインスタンスが生成されることを特徴とするコンピュータ・システム。
【請求項１６】
請求項１４記載のコンピュータ・システムにおいて、前記モニタ・オブジェクトは、前記メモリのカーネル・メモリ空間においてインスタンスが生成されることを特徴とするコンピュータ・システム。
【請求項１７】
請求項１４記載のコンピュータ・システムにおいて、更に、
前記プロセッサ内で動作し、前記選択されたスレッドが実行の間にブロック条件からいつリリースするかを告知するスレッド・リリース・インジケータと、
前記プロセッサ内で動作し、前記スレッド・ブロック・インジケータに応答して、前記同期のとれたスレッドの別の１つが前記選択されたスレッドがブロックした後でブロックした場合にだけ、前記ロック・スタックにおける前記ＯＩＤによって識別される前記共有オブジェクトをロックするオブジェクト・ロック装置と、
を備えていることを特徴とするコンピュータ・システム。
【請求項１８】
コンピュータ・プログラム製品であって、マルチスレッド・プロセッサにおいて同期のとれたスレッド実行のためにその中で実現されているコンピュータ読み取り可能なコードを有するコンピュータ使用可能な媒体であって、それぞれの同期のとれたスレッドは、複数の同期のとれたスレッドの間で共有されているオブジェクト識別子（ＯＩＤ）によって識別される少なくとも１つのオブジェクトを参照する、コンピュータ使用可能な媒体を備えているコンピュータ・プログラム製品において、
コンピュータ・システムにおいて動作し、コンピュータに、前記同期のとれたスレッドの中の１つを実行のために選択させるように構成されたコンピュータ・プログラム・デバイスと、
前記コンピュータ・システムにおいて動作し、コンピュータに、前記選択されたスレッドに入るときに、そのＯＩＤをロック・スタックの上にプッシュすることによって、前記共有オブジェクトがロックされるように指示させるように構成されたコンピュータ・プログラム・デバイスと、
前記コンピュータ・システムにおいて動作し、コンピュータに、前記選択されたスレッドによって定義された動作を実行させるように構成されたコンピュータ・プログラム・デバイスと、
前記コンピュータ・システムにおいて動作し、コンピュータに、前記ＯＩＤを前記ロック・スタックからプッシュすることによって、前記指示を除去させるように構成されたコンピュータ・プログラム・デバイスと、
を備えていることを特徴とするコンピュータ・プログラム製品。
【請求項１９】
請求項１８記載のコンピュータ・プログラム製品において、更に、
コンピュータに、前記選択されたスレッド・ブロックの後に前記共有オブジェクトをロックさせるように構成されたコンピュータ・プログラム・デバイスを備えていることを特徴とするコンピュータ・プログラム製品。
【請求項２０】
請求項１８記載のコンピュータ・プログラム製品において、更に、
コンピュータに、前記共有オブジェクトに対応するモニタ・オブジェクトのインスタンスを作成させるように構成されたコンピュータ・プログラム・デバイスを備えており、前記モニタ・オブジェクトは、キュー・ヘッダと、カウンタと、前記選択されたスレッドを識別する所有者フィールドとを含むことを特徴とするコンピュータ・プログラム製品。
【請求項２１】
請求項１９記載のコンピュータ・プログラム製品において、更に、
コンピュータに、前記選択されたスレッドがいつブロックするかを判断させるように構成されたコンピュータ・プログラム・デバイスと、
コンピュータに、前記判断ステップに応答して、前記ロック動作を実行させるように構成されたコンピュータ・プログラム・デバイスと、
を備えていることを特徴とするコンピュータ・プログラム製品。
【請求項２２】
請求項１９記載のコンピュータ・プログラム製品において、更に、
コンピュータに、前記選択されたスレッドが前記ブロックの後でいつ再開するかを判断させるように構成されたコンピュータ・プログラム・デバイスと、
コンピュータに、前記同期のとれたスレッドの別の１つが前記選択されたスレッドがブロックした後でブロックした場合にだけ前記ロック動作を実行させるように構成されたコンピュータ・プログラム・デバイスと、
を備えていることを特徴とするコンピュータ・プログラム製品。
【請求項２３】
請求項１８記載のコンピュータ・プログラム製品において、更に、
コンピュータに、共有オブジェクトと関連付けされたモニタ・オブジェクトを作成させるように構成されたコンピュータ・プログラム・デバイスであって、前記共有オブジェクトは、オブジェクト識別子（ＯＩＤ）によって識別され、前記モニタ・オブジェクトは、前記共有オブジェクトがロックされている場合に、前記共有オブジェクトがいつロック解除されるかを判断する状態情報と方法とを含む、コンピュータ・プログラム・デバイスと、
コンピュータに、前記第２のスレッドに入るときに、前記共有オブジェクトがロックされているかどうかを判断させるように構成されたコンピュータ・プログラム・デバイスと、
前記共有オブジェクトがロックされている場合に、コンピュータに、前記共有オブジェクトと関連付けされたモニタ・オブジェクトを作成して前記共有オブジェクトがいつロック解除されるかを判断させるように構成されたコンピュータ・プログラム・デバイスと、
前記共有オブジェクトがロック解除されている場合に、コンピュータに、そのＯＩＤを前記ロック・スタックの上にプッシュすることによって、前記共有オブジェクトがロックされるように指示させるように構成されたコンピュータ・プログラム・デバイスと、
コンピュータに、前記第２のスレッドによって定義される動作を実行させるように構成されたコンピュータ・プログラム・デバイスと、
コンピュータに、前記ＯＩＤを前記ロック・スタックからプッシュすることによって、前記指示を除去させるように構成されたコンピュータ・プログラム・デバイスと、
を備えていることを特徴とするコンピュータ・プログラム製品。
【請求項２４】
搬送波の中に具体化されているコンピュータ・データ信号であって、
コンピュータに、共有オブジェクトと関連付けされたモニタ・オブジェクトを作成させるように構成されたコードを含む第１のコード部分であって、前記共有オブジェクトは、オブジェクト識別子（ＯＩＤ）によって識別され、前記モニタ・オブジェクトは、前記共有オブジェクトがロックされているときに、前記共有オブジェクトがいつロック解除されるかを判断する状態情報と方法とを含む、第１のコード部分と、
前記共有オブジェクトがロック解除されている場合に、コンピュータに、そのＯＩＤを前記ロック・スタックの上にプッシュすることによって、前記共有オブジェクトがロックされるように指示させるように構成されたコードを含む第２のコード部分と、
コンピュータに、前記第２のスレッドによって定義される動作を実行させるように構成されたコードを含む第３のコード部分と、
コンピュータに、前記ＯＩＤを前記ロック・スタックからプッシュすることによって、前記指示を除去させるように構成されたコードを含む第４のコード部分と、
を備えていることを特徴とするコンピュータ・データ信号。