【手続補正書】
【提出日】平成16年4月6日(2004.4.6)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】特許請求の範囲
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ハードウェア制御を行うデバイスドライバを、一つのメッセージ処理用スレッドと、一つ以上の割り込み処理用スレッドとを割り当てることが可能なマルチスレッドオブジェクトとして記述し、
デバイスドライバが他のオブジェクトから入力されたメッセージに基づく処理を行う場合には、当該処理をメッセージ処理用スレッドに割り当てて実行し、
デバイスドライバに対して割り込みを要求する事象が発生したときに、各事象に対応する割り込み処理用スレッドが、既に割り込み処理を実行している場合には、メッセージ処理用スレッドの状態に関わらず、上記事象に対応する割り込み処理を実行せずに、対応した割り込み処理用スレッドにて他の割り込みに応じた割り込み処理が終了してから、当該割り込み処理用スレッドにて上記事象に対応する割り込み処理を実行すること
を特徴とするデータ処理方法。
【請求項２】
メッセージ処理用スレッドでの処理と、割り込み処理用スレッドでの割り込み処理との優先順位を設定できるようにしておき、
デバイスドライバが割り込みを受け付けたときに、割り込み処理よりも優先して実行するように設定されている処理がメッセージ処理用スレッドで行われている場合には、メッセージ処理用スレッドでの処理が終了するまで、或いは、メッセージ処理用スレッドでの処理よりも割り込み処理を優先するように設定が変更されるまで、割り込み処理の実行を待たせておき、
デバイスドライバが割り込みを受け付けたときに、割り込み処理よりも優先して実行するように設定されている処理がメッセージ処理用スレッドで行われていない場合には、直ぐに割り込み処理用スレッドで割り込み処理を実行すること
を特徴とする請求項１記載のデータ処理方法。
【請求項３】
割り込み処理を優先順位の異なる複数の処理に分けて、優先順位が高い処理を割り込み処理用スレッドに割り当てて実行し、優先順位が低い処理をメッセージ処理用スレッドに割り当てて実行すること
を特徴とする請求項１記載のデータ処理方法。
【請求項４】
上記デバイスドライバは、オペレーティングシステム上で複数のデバイスドライバが並行して動作することが可能な並行オブジェクトとして記述されていること
を特徴とする請求項１記載のデータ処理方法。
【請求項５】
ハードウェア制御を行うプログラムであるデバイスドライバが記録されたコンピュータ読み取り可能な記録媒体であって、
上記デバイスドライバは、
一つのメッセージ処理用スレッドと、一つ以上の割り込み処理用スレッドとを割り当てることが可能なマルチスレッドオブジェクトとして記述され、
当該デバイスドライバが他のオブジェクトから入力されたメッセージに基づく処理を行う場合には、当該処理をメッセージ処理用スレッドに割り当てて実行し、
当該デバイスドライバに対して割り込みを要求する事象が発生したときに、各事象に対応する割り込み処理用スレッドが、既に割り込み処理を実行している場合には、メッセージ処理用スレッドの状態に関わらず、上記事象に対応する割り込み処理を実行せずに、対応した割り込み処理用スレッドにて他の割り込みに応じた割り込み処理が終了してから、当該割り込み処理用スレッドにて上記事象に対応する割り込み処理を実行すること
を特徴とする記録媒体。
【請求項６】
上記デバイスドライバは、
メッセージ処理用スレッドでの処理と、割り込み処理用スレッドでの割り込み処理との優先順位を設定できるようになされており、
割り込みを受け付けたときに、割り込み処理よりも優先して実行するように設定されている処理がメッセージ処理用スレッドで行われている場合には、メッセージ処理用スレッドでの処理が終了するまで、或いは、メッセージ処理用スレッドでの処理よりも割り込み処理を優先するように設定が変更されるまで、割り込み処理の実行を待たせておき、
割り込みを受け付けたときに、割り込み処理よりも優先して実行するように設定されている処理がメッセージ処理用スレッドで行われていない場合には、直ぐに割り込み処理用スレッドで割り込み処理を実行すること
を特徴とする請求項５記載の記録媒体。
【請求項７】
上記デバイスドライバは、割り込み処理を優先順位の異なる複数の処理に分けて、優先順位が高い処理を割り込み処理用スレッドに割り当てて実行し、優先順位が低い処理をメッセージ処理用スレッドに割り当てて実行すること
を特徴とする請求項５記載の記録媒体。
【請求項８】
上記デバイスドライバは、オペレーティングシステム上で複数のデバイスドライバが並行して動作することが可能な並行オブジェクトとして記述されていること
を特徴とする請求項５記載の記録媒体。
【請求項９】
ハードウェア制御を行うプログラムであるデバイスドライバが記録された記録媒体を備え、当該記録媒体から上記デバイスドライバを読み取ることが可能なデータ処理装置であって、
上記デバイスドライバは、
一つのメッセージ処理用スレッドと、一つ以上の割り込み処理用スレッドとを割り当てることが可能なマルチスレッドオブジェクトとして記述され、
当該デバイスドライバが他のオブジェクトから入力されたメッセージに基づく処理を行う場合には、当該処理をメッセージ処理用スレッドに割り当てて実行し、
当該デバイスドライバに対して割り込みを要求する事象が発生したときに、各事象に対応する割り込み処理用スレッドが、既に割り込み処理を実行している場合には、メッセージ処理用スレッドの状態に関わらず、上記事象に対応する割り込み処理を実行せずに、対応した割り込み処理用スレッドにて他の割り込みに応じた割り込み処理が終了してから、当該割り込み処理用スレッドにて上記事象に対応する割り込み処理を実行すること
を特徴とするデータ処理装置。
【請求項１０】
上記デバイスドライバは、
メッセージ処理用スレッドでの処理と、割り込み処理用スレッドでの割り込み処理との優先順位を設定できるようになされており、
割り込みを受け付けたときに、割り込み処理よりも優先して実行するように設定されている処理がメッセージ処理用スレッドで行われている場合には、メッセージ処理用スレッドでの処理が終了するまで、或いは、メッセージ処理用スレッドでの処理よりも割り込み処理を優先するように設定が変更されるまで、割り込み処理の実行を待たせておき、
割り込みを受け付けたときに、割り込み処理よりも優先して実行するように設定されている処理がメッセージ処理用スレッドで行われていない場合には、直ぐに割り込み処理用スレッドで割り込み処理を実行すること
を特徴とする請求項９記載のデータ処理装置。
【請求項１１】
上記デバイスドライバは、割り込み処理を優先順位の異なる複数の処理に分けて、優先順位が高い処理を割り込み処理用スレッドに割り当てて実行し、優先順位が低い処理をメッセージ処理用スレッドに割り当てて実行すること
を特徴とする請求項９記載のデータ処理装置。
【請求項１２】
上記デバイスドライバは、オペレーティングシステム上で複数のデバイスドライバが並行して動作することが可能な並行オブジェクトとして記述されていること
を特徴とする請求項９記載のデータ処理装置。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００２０
【補正方法】変更
【補正の内容】
【００２０】
【課題を解決するための手段】
本発明に係るデータ処理方法では、ハードウェア制御を行うデバイスドライバを、一つのメッセージ処理用スレッドと、各割り込み処理に対応した割り込み処理専用スレッドとを割り当てることが可能なマルチスレッドオブジェクトとして記述する。そして、デバイスドライバが他のオブジェクトから入力されたメッセージに基づく処理を行う場合には、当該処理をメッセージ処理用スレッドに割り当てて実行する。また、デバイスドライバに対して割り込みを要求する事象が発生したときに、各事象に対応する割り込み処理用スレッドが、既に割り込み処理を実行している場合には、メッセージ処理用スレッドの状態に関わらず、上記事象に対応する割り込み処理を実行せずに、対応した割り込み処理用スレッドにて他の割り込みに応じた割り込み処理が終了してから、当該割り込み処理用スレッドにて上記事象に対応する割り込み処理を実行する。


【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００２１
【補正方法】変更
【補正の内容】
【００２１】
なお、上記データ処理方法では、共有データのアクセスの排他制御が必要な場合などの同期のために、メッセージ処理用スレッドでの処理と、割り込み処理用スレッドでの割り込み処理との優先順位を設定できるようにしておくことが好ましい。このときは、デバイスドライバが割り込みを受け付けたときに、割り込み処理よりも優先して実行するように設定されている処理がメッセージ処理用スレッドで行われている場合には、メッセージ処理用スレッドでの処理が終了するまで、或いは、メッセージ処理用スレッドでの処理よりも割り込み処理を優先するように設定が変更されるまで、割り込み処理の実行を待たせておく。また、デバイスドライバが割り込みを受け付けたときに、割り込み処理よりも優先して実行するように設定されている処理がメッセージ処理用スレッドで行われていない場合には、直ぐに割り込み処理用スレッドで割り込み処理を実行する。


【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００２２
【補正方法】変更
【補正の内容】
【００２２】
また、上記データ処理方法では、割り込み処理を優先順位の異なる複数の処理に分けて、優先順位が高い処理を割り込み処理用スレッドに割り当てて実行し、優先順位が低い処理をメッセージ処理用スレッドに割り当てて実行することにより、割り込み処理用スレッドの実行時間を減らし、割り込み遅延を減らす。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００２４
【補正方法】変更
【補正の内容】
【００２４】
また、本発明に係る記録媒体は、ハードウェア制御を行うプログラムであるデバイスドライバが記録されたコンピュータ読み取り可能な記録媒体である。そして、上記デバイスドライバは、一つのメッセージ処理用スレッドと、一つ以上の割り込み処理用スレッドとを割り当てることが可能なマルチスレッドオブジェクトとして記述される。また、このデバイスドライバは、当該デバイスドライバが他のオブジェクトから入力されたメッセージに基づく処理を行う場合には、当該処理をメッセージ処理用スレッドに割り当てて実行する。また、このデバイスドライバは、当該デバイスドライバに対して割り込みを要求する事象が発生したときに、各事象に対応する割り込み処理用スレッドが、既に割り込み処理を実行している場合には、メッセージ処理用スレッドの状態に関わらず、上記事象に対応する割り込み処理を実行せずに、対応した割り込み処理用スレッドにて他の割り込みに応じた割り込み処理が終了してから、当該割り込み処理用スレッドにて上記事象に対応する割り込み処理を実行する。


【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００７６
【補正方法】変更
【補正の内容】
【００７６】
そこで、本例では、排他制御が必要な処理の前後で、メッセージ処理用のスレッドが所定のＡＰＩを用いて割り込みマスクの開閉を制御し、その間で割り込みハンドラを抑制することにより、割り込みハンドラによる割り込み処理が正常に行われるように排他制御を行う。


【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００７９
【補正方法】変更
【補正の内容】
【００７９】
図４において、メソッド「BlockInterrupt()」及びメソッド「AllowInterrupt()」は、所定のＡＰＩとして予めmDriveメタスペースで提供されているメソッドである。そして、メソッド「BlockInterrupt()」は、割り込みマスクを制御することにより、割り込み処理よりもメッセージ処理を優先して実行するように設定するメソッドである。また、メソッド「AllowInterrupt()」は、割り込みが発生したときに、メッセージ処理よりも割り込み処理を優先して実行するように設定するメソッドである。


【手続補正８】
【補正対象書類名】図面
【補正対象項目名】図６
【補正方法】変更
【補正の内容】
【図６】
1999073334.tif 000001