プロセスを実行するプロセッサを複数有する情報処理装置に、複数の前記プロセスにより共有される複数の装置を含む共有リソースを対象として前記プロセスが発行したI/O処理の内容を判別し、前記判別した内容に応じて、前記共有リソースに対するアクセスを1つのI/O処理のみに認める排他ロックを該I/O処理の要求に獲得させる処理、または、前記共有リソースが有する1つの装置に対するアクセスを1つのI/O処理のみに認める共有排他ロックを該I/O処理の要求に獲得させる処理を実行させることを特徴とする排他制御プログラム。前記I/O処理の内容を判別する処理として、該I/O処理の内容が前記共有リソースにおける一意性を要するか否かを判別し、前記排他ロックまたは前記共有排他ロックを該I/O処理の要求に獲得させる処理として、前記I/O処理の内容が前記共有リソースにおける一意性を要すると判別した場合は、前記排他ロックを該I/O処理の要求に獲得させ、前記I/O処理の内容が前記共有リソースにおける一意性を要しないと判別した場合は、前記共有排他ロックを該I/O処理の要求に獲得させる処理を実行させることを特徴とする請求項1に記載の排他制御プログラム。前記判別したI/O処理の内容が、前記共有リソースに含まれる装置を識別する装置識別処理、または、前記共有リソースに含まれる全ての装置の一覧を取得する装置一覧取得処理、または、前記共有リソースに含まれる装置においてエラーが発生した際に当該装置のリカバリ処理を実行するエラー対応処理である場合は、前記I/O処理の内容が前記共有リソースにおける一意性を要すると判別することを特徴とする請求項2に記載の排他制御プログラム。前記排他ロックを前記I/O処理の要求に獲得させる処理として、前記排他ロック、または、前記共有排他ロックが他の要求に獲得されているか否かを判別し、前記排他ロック、または、前記共有排他ロックが他の要求に獲得されていると判別した場合には、当該I/O処理の要求を待機させ、前記他の要求が獲得した前記排他ロックが解放され、かつ、全ての前記共有排他ロックが解放された場合には、該I/O処理の要求に前記排他ロックを獲得させることを特徴とする請求項1~3のいずれか1つに記載の排他制御プログラム。前記共有排他ロックを前記I/O処理の要求に獲得させる処理として、当該I/O処理の対象と同一の装置に対する前記共有排他ロック、または、前記排他ロックが他の要求によって獲得されているか否かを判別し、当該共有排他ロック、または、前記排他ロックが他の要求によって獲得されている場合には、当該I/O処理の要求を待機させ、当該共有排他ロックが解放され、かつ、前記排他ロックが解放された場合には、該I/O処理の要求に前記共有排他ロックを獲得させることを特徴とする請求項1~4のいずれか1つに記載の排他制御プログラム。複数の演算処理装置が実行するプロセスにより共有される複数の装置を含む共有リソースを対象として前記プロセスが発行したI/O処理の内容を判別する判別部と、前記判別部が判別した内容に応じて、前記共有リソースに対するアクセスを1つのI/O処理のみに認める排他ロック、または、前記共有リソースが有する1つの装置に対するアクセスを1つのI/O処理のみに認める共有排他ロックを該I/O処理の要求に獲得させるロック制御部と、を有することを特徴とする排他制御装置。プロセスを実行するプロセッサを複数有する情報処理装置が実行する排他制御方法において、複数の前記プロセスにより共有される複数の装置を含む共有リソースを対象として前記プロセスが発行したI/O処理の内容を判別し、前記判別した内容に応じて、前記共有リソースに対するアクセスを1つのI/O処理のみに認める排他ロック、または、前記共有リソースが有する1つの装置に対するアクセスを1つのI/O処理のみに認める共有排他ロックを該I/O処理の要求に獲得させる処理を実行することを特徴とする排他制御方法。しかしながら、上述したジャイアントロックの技術では、1つのI/O処理に対して、共有リソース全体の排他ロックを一括して獲得させるので、複数のI/O処理を並行して実行することができないという問題がある。このため、マルチプロセッサの技術が適用された場合等、複数のプロセスを並行して実行する際に、I/O処理を並行して実行することができず、システムの性能を向上させることができない。本願は、1つの側面では、マルチプロセッサを備えた処理装置の性能を向上させる。1つの側面では、本願に関わる排他制御プログラムは、それぞれ独立してプロセスを実行するプロセッサを複数有する情報処理装置に以下の処理を実行させる。すなわち、排他制御プログラムは、複数の装置を含み、複数のプロセスにより共有される共有リソースに対して発行されたI/O処理の内容を判別させる。そして、排他制御プログラムは、判別した内容に応じて、共有リソースに対するアクセスを1つのI/O処理のみに認める排他ロック、または、共有リソースが有する1つの装置に対するアクセスを1つのI/O処理のみに認める共有排他ロックをI/O処理の要求に獲得させる。1つの側面では、マルチプロセッサを備えた処理装置の性能の向上を図ることができる。以下に添付図面を参照して本願に係る排他制御プログラム、排他制御装置および排他制御方法について説明する。以下の実施例1では、図1を用いて、マルチプロセッサの技術が適用された情報処理装置が実行する排他制御プログラムの一例を説明する。図1は、実施例1に関わる排他制御プログラムの一例を説明するための図である。図1に示す例では、排他制御プログラムがOS20の一部として実行されているものとする。なお、図1には、情報処理装置1が実行するプログラムについて、ユーザ空間10で実行されるプログラム、OSカーネル20として実行されるプログラムおよび各プログラムが共用する共用リソースであるハードウェア30とを階層的に示した。例えば、図1に示す例では、情報処理装置1は、ユーザ空間10において複数のユーザプログラム11、12を実行する。また、情報処理装置1は、OS20を実行する。また、ハードウェア30は、各ユーザプログラム11、12によって共用される複数の装置31~33を有する。ここで、各装置31~33は、例えば、ディスク装置等のハードウェアである。OS20は、I/OInputOutput処理振分部21、I/O発行処理部22、認識処理部24、一覧取得処理部26、ロック情報記憶部27を有する。また、I/O発行処理部22は、装置単位排他ロック制御部23、実行部22aを有する。また、認識処理部24は、一括排他ロック制御部25、実行部24aを有する。また、一覧取得処理部26は、一括排他ロック制御部25、実行部26aを有する。また、ロック情報記憶部27は、共有カウンタ27a、一括排他フラグ27b、一括排他待ちフラグ27c、ロック状態記憶部27dを有する。また、装置単位排他ロック制御部23は、ロック獲得可否判別部23a、ロック状態遷移部23b、ロック獲得部23cを有する。また、一括排他ロック制御部25は、ロック獲得可否判別部25a、ロック状態遷移部25b、ロック獲得部25cを有する。このような、I/O発行処理部22は、各装置31~33のいずれかに対してI/O処理を実行する処理部であり、認識処理部24は、ハードウェア30が有する装置の認識を行う処理部である。また、一覧取得処理部26は、ハードウェア30が有する装置の一覧を作成する処理部である。なお、OS20は、図1に図示したI/O発行処理部22、認識処理部24、一覧取得処理部26以外にも、複数の処理部を有する。例えば、OS20は、各装置31~33においてエラーのリカバリ処理を実行するエラー処理部を有する。また、例えば、OS20は、1つの装置に対する処理の実行中に任意の割り込み処理を実行するI/O割り込み処理部を有する。すなわち、OS20は、各装置31~33に対してそれぞれ特定の種類のI/O処理を実行する処理部を複数有する。ここで、各処理部22、24、26は、1つの装置に対するアクセスを1つの処理部のみに認める装置単位排他ロック、全ての装置31~33に対するアクセスを1つの処理部のみに認める一括排他ロック、すなわちジャイアントロックのいずれかを獲得する。なお、各処理部22、24、26は、装置単位排他ロックを獲得する場合には、1つの装置に対するアクセスを複数の処理部に認める共有ロックを同時に獲得する。具体的には、I/O発行処理部22は、装置単位排他ロックを獲得する装置単位排他ロック制御部23を有する。また、認識処理部24および一覧取得処理部26は、一括排他ロックを獲得する一括排他ロック制御部25を有する。そして、各処理部22、24、26は、自身が有する装置単位排他ロック制御部23、または、一括排他ロック制御部25のいずれかを用いて、ロックを獲得する。なお、図1に示す例では、各制御部が装置単位排他ロック制御部23、または、一括排他ロック制御部25を有する例について記載した。しかし、例えば、各制御部は、自身が実行するI/O処理の種別に応じて、装置単位排他ロック制御部23、または、一括排他ロック制御部25をサブルーチンとして呼び出す方式を採用しても良い。次に、I/O処理振分部21が実行する処理について説明する。I/O処理振分部21は、ユーザープログラム11、12がI/O処理のリクエストを発行した場合は、リクエストの対象となるI/O処理の内容を判別する。そして、I/O処理振分部21は、判別した内容のI/O処理を実行する処理部に、リクエストを振り分ける。例えば、I/O処理振分部21は、ユーザプログラム11、12がI/O発行処理のリクエストを発行した場合には、リクエストをI/O発行処理部22に振り分ける。また、I/O処理振分部21は、ユーザプログラム11が、ハードウェア30が有する各装置31~33の認識処理のリクエストを発行した場合には、リクエストを認識処理部24に発行する。また、I/O処理振分部21は、ユーザプログラム11がハードウェア30が有する装置の一覧取得処理のリクエストを発行した場合には、リクエストを一覧取得部処理部26に振り分ける。次に、ロック情報記憶部27について説明する。共有カウンタ27aは、装置単位排他ロック制御部23が獲得中の共有ロックの数をカウントするカウンタである。例えば、共有カウンタ27aは、2つの装置単位排他ロック制御部23が2つの共有ロックを獲得した場合には、獲得数2を記憶する。一括排他フラグ27bは、一括排他ロック制御部25が一括排他ロックを獲得しているか否かを示すフラグである。例えば、一括排他フラグ27bは、一括排他ロック制御部25が一括排他ロックを獲得している場合にはonを保持し、一括排他ロック制御部25が一括排他ロックを獲得していない場合にはoffを保持する。一括排他待ちフラグ27cは、一括排他ロックの獲得を待機する処理部が存在するか否かを示すフラグである。例えば、一括排他待ちフラグ27cは、いずれかの処理部が一括排他ロックを獲得中に、他の処理部が一括排他ロックを獲得しようとした場合には、onとなる。また、一括排他待ちフラグ27cは、一括排他ロックを獲得しようとした処理部が一括排他ロックを獲得した場合には、offとなる。ロック状態記憶部27dは、各処理部22、24、26が獲得した装置単位排他ロックおよび一括排他ロックのロック獲得状態を記憶する。例えば、ロック状態記憶部27dは、装置31に対する装置単位排他ロックと共有ロックとが併せて獲得されている場合には、ロック獲得状態として共有ロック装置31に対する装置単位獲得済み状態を記憶する。また、ロック状態記憶部27dは、装置31および装置32に対する装置単位排他ロックと共有ロックとが併せて獲得されている場合には、ロック獲得状態として共有ロック装置31に対する装置単位排他ロック獲得装置32に対する装置単位排他ロック獲得状態を記憶する。なお、ロック状態記憶部27dがロック獲得状態を記憶する具体的な方法としては、例えば、各装置31~33ごとに装置単位排他ロックが獲得されているか否かを示すフラグを記憶することとしてもよい。次に、I/O発行処理部22が有する装置単位排他ロック制御部23および実行部22aが実行する処理について説明する。ロック獲得可否判別部23aは、I/O処理振分部21からI/O発行処理部22にリクエストが振り分けられた場合には、装置単位排他ロックを獲得できるか否かを判別する。具体的には、ロック獲得可否判別部23aは、ロック情報記憶部27が有する一括排他待ちフラグ27cを参照し、一括排他待ちフラグ27cがoffであるか否かを判別する。そして、ロック獲得可否判別部23aは、一括排他待ちフラグ27cがonである場合には、一定時間待機し、その後、一括排他待ちフラグ27cがoffであるか否かを再度判別する。一方、ロック獲得可否判別部23aは、一括排他待ちフラグ27cがoffである場合には、一括排他フラグ27bを参照する。そして、ロック獲得可否判別部23aは、一括排他フラグがonである場合には、一定時間待機し、その後、一括排他フラグ27bがoffであるか否かを再度判別する。また、ロック獲得可否判別部23aは、一括排他フラグ27bがoffである場合には、ロック状態記憶部27dを参照する。そして、ロック獲得可否判別部23aは、I/O発行処理部22に振り分けられたリクエストがI/O処理の対象となる装置の装置単位排他ロックが獲得されているか否かを判別する。また、ロック獲得可否判別部23aは、I/O発行処理部22に振り分けられたリクエストがI/O処理の対象となる装置の装置単位排他ロックが獲得されていると判別した場合には、一定時間待機する。その後、ロック獲得可否判別部23aは、ロック状態記憶部27dを参照し、I/O発行処理部22に振り分けられたリクエストがI/O処理の対象となる装置の装置単位排他ロックが獲得されているか否かを再度判別する。また、ロック獲得可否判別部23aは、I/O発行処理部22に振り分けられたリクエストがI/O処理の対象となる装置の装置単位排他ロックが獲得されていないと判別した場合には、装置単位排他ロックが獲得できる旨をロック獲得部23cに通知する。なお、ロック獲得可否判別部23aは、一括排他フラグ27bおよび一括排他待ちフラグ27cがonである際や、I/O処理の対象となる装置の装置単位排他ロックが獲得されている際に、一定時間待機する場合には、以下の処理を併せて実行する。すなわち、ロック獲得可否判別部23aは、ロック状態遷移部23bに対して、一定時間待機する旨を通知する。また、ロック獲得可否判別部23aは、I/O発行処理部22に振り分けられたリクエストがI/O処理の対象となる装置の装置単位排他ロックが獲得されていないと判別した場合には、装置単位排他ロックが獲得できる旨をロック状態遷移部23bに通知する。ロック状態遷移部23bは、ロック獲得可否判別部23aから一定時間待機する旨の通知を受付けた場合には、I/O発行処理部22に対して振り分けられたI/O処理のリクエストを発行したユーザプログラムの状態を待ち状態に遷移させる。なお、待ち状態に遷移したユーザプログラムは、ビジーループ状態となる。また、ロック状態遷移部23bは、ロック獲得可否判別部23aから装置単位排他ロックが獲得できる旨の通知を受付けた場合には、上述したユーザプログラムの待ち状態を解除し、ユーザプログラムが発行したI/O処理のリクエストを情報処理装置に実行させる。ロック獲得部23cは、ロック獲得可否判別部23aから装置単位排他ロックが獲得できる旨の通知を受付けた場合には、以下の処理を実行する。すなわち、ロック獲得部23cは、ロック情報記憶部27が有する共有カウンタ27aの値を1インクリメントする。また、ロック獲得部23cは、ロック状態記憶部27dに記憶されたロック獲得状態を書換え、ロックの獲得状態を遷移させる。詳細には、ロック獲得部23cは、ロック状態記憶部27dが記憶するロック状態に、I/O処理の対象となる装置について装置単位排他ロックを獲得した旨を追加する。その後、ロック獲得部23cは、装置単位排他ロックを獲得した旨を実行部22aに通知する。また、ロック獲得部23cは、実行部22aがI/O処理を終了した場合には、ロック状態記憶部27dから、I/O処理の対象となる装置について装置単位排他ロックを獲得した旨を削除し、共有カウンタ27aの値を1デクリメントする。すなわち、ロック獲得部23cは、実行部22aがI/O処理を終了した場合には、I/O処理の対象となる装置について装置単位排他ロックと共有ロックとを解放する。実行部22aは、ロック獲得部23cからロックを獲得した旨の通知を受付けた場合には、I/O発行処理部22に振り分けられたリクエストが示すI/O処理、すなわち、I/O発行処理を実行する。換言すると、実行部22aは、ロック獲得部23cが装置単位排他ロックを獲得した装置に対してI/O発行処理を実行する。次に、認識処理部24が有する一括排他ロック制御部25および実行部24aが実行する処理について説明する。ロック獲得可否判別部25aは、I/O処理振分部21から認識処理部24にリクエストが振り分けられた場合には、一括排他ロックを獲得できるか否かを判別する。具体的には、ロック獲得可否判別部25aは、ロック情報記憶部27が有する共有カウンタ27a、一括排他フラグ27b、一括排他待ちフラグ27c、ロック状態記憶部27dを参照し、一括排他ロックまたは共有ロックが獲得されているか否かを判別する。そして、ロック獲得可否判別部25aは、一括排他ロックおよび共有ロックが獲得されていないと判別した場合には、一括排他ロックが獲得できる旨をロック状態遷移部25bおよびロック獲得部25cに通知する。一方、ロック獲得可否判別部25aは、共有ロックが獲得されており、かつ、一括排他ロック待ちフラグがoffである場合、すなわち、一括排他ロックが獲得されておらず、かつ、装置単位排他ロックが獲得されている場合には、以下の処理を実行する。すなわち、ロック獲得可否判別部25aは、一括排他待ちフラグ27cをonに遷移させ、一定時間待機する。その後、ロック獲得可否判別部25aは、再度、一括排他ロックおよび共有ロックが獲得されていないか判別する。また、ロック獲得可否判別部25aは、共有ロックが獲得されており、かつ、一括排他ロック待ちフラグがonである場合には、共有ロックが全て解放されるのを待ち合わせる。すなわち、ロック獲得可否判別部25aは、共有ロックが全て解放された後に、一括排他ロックの獲得を待っている処理部が一括排他ロックを獲得し、その後、一括排他ロックが解放されれるまで待機する。そして、ロック獲得可否判別部25aは、一定時間待機し、その後、一括排他ロックおよび共有ロックが獲得されていないか再度判別する。また、ロック獲得可否判別部25aは、一括排他ロックが獲得されており、かつ、一括排他ロック待ちフラグがoffである場合には、一括排他ロックの解放を待ち合わせする。その後、ロック獲得可否判別部25aは、共有ロックおよび一括排他ロックが獲得されていないか再度判別する。なお、ロック獲得可否判別部25aは、一定時間待機する場合には、ロック状態遷移部25bに対して、一定時間待機する旨を通知する。このような場合には、ロック状態遷移部25bは、ロック状態遷移部23bと同様に、認識処理部24にI/O処理のリクエストを発行したユーザプログラムの状態を待ち状態に遷移させる。また、ロック状態遷移部25bは、ロック獲得可否判別部25aから一括排他ロックが獲得できる旨の通知を受付けた場合には、ユーザプログラムの待ち状態を解除し、ユーザプログラムが発行したI/O処理のリクエストを情報処理装置に実行させる。ロック獲得部25cは、ロック獲得可否判別部25aから一括排他ロックが獲得できる旨の通知を受付けた場合には、以下の処理を実行する。すなわち、ロック獲得部25cは、一括排他フラグ27bをonにし、ロック状態記憶部27dに記憶されたロック獲得状態を書換え、ロックの獲得状態を遷移させる。詳細には、ロック獲得部25cは、ロック状態記憶部27dが記憶するロック状態に、一括排他ロックを獲得した旨を追加する。その後、ロック獲得部25cは、一括排他ロックを獲得した旨を実行部24aに通知する。また、ロック獲得部25cは、実行部24aがI/O処理を終了した場合には、ロック状態記憶部27dから、一括排他ロックを獲得した旨を削除し、一括排他フラグ27bをoffにする。すなわち、ロック獲得部25cは、一括排他ロックを解放する。実行部24aは、ロック獲得部25cから一括排他ロックを獲得した旨の通知を受付けた場合には、認識処理部24に振り分けられたリクエストが示すI/O処理、すなわち、各装置31~33の認識処理を実行する。なお、一覧取得処理部26が有する一括排他ロック制御部25は、認識処理部24が有する一括排他ロック制御部25と同様の機能を発揮する。また、実行部26aは、一括排他ロック制御部25が一括排他ロックを獲得した場合には、ハードウェア30に含まれる共用リソースである各装置31~33の一覧を取得する。すなわち、一覧取得処理部26は、I/O処理振分部21からI/O処理のリクエストを受信した場合には、一括排他ロックを獲得し、その後、ハードウェア30に含まれる共用リソースである各装置31~33の一覧を取得する処理を実行する処理部である。ここで、図2を用いて、装置単位排他ロック制御部23および一括排他ロック制御部25が、装置単位排他ロックおよび一括排他ロックの獲得状況と、新たに獲得するロックの種別とに応じて、ロックの獲得可否を判別する処理について説明する。図2は、ロックの獲得可否を判別する処理の一例を説明するための図である。なお、以下の説明では、装置単位排他ロック制御部23および一括排他ロック制御部25を各ロック制御部23、25と適宜記載する。例えば、図2に示す例では、装置単位排他ロック制御部23および一括排他ロック制御部25は、一括排他ロックおよび装置単位排他ロックが獲得されていない場合には、新たな装置単位排他ロックおよび一括排他ロックの獲得を許可する。また、ある装置に対して装置単位排他ロックが獲得されている場合には、装置単位排他ロック制御部23は、他の装置に対する装置単位排他ロックの獲得を許可する。一方、一括排他ロック制御部25は、全ての共有ロックが解放されるまで、一括排他ロックの獲得を許可せず、I/O処理のリクエストを発行したユーザプログラムを待ち状態に遷移させる。また、一括排他ロックが獲得されている場合には、各ロック制御部23、25は、装置単位排他ロックおよび一括排他ロックの獲得を許可せず、I/O処理のリクエストを発行したユーザプログラムを待ち状態に遷移させる。次に、各処理部22、24、26が取得するロックの種別と、各処理部22、24、26が実行するI/O処理との関係について説明する。例えば、実行するI/O処理の内容が、全ての装置31~33における一意性を要する処理である場合には、各処理部22、24、26は、全ての装置31~33に対する一括排他ロックを取得する必要がある。一方、実行するI/O処理の内容が、1つの装置における一意性を要する処理であり、他の装置に対する処理と並行して実行することで、I/O処理に要する時間を短縮できる処理である場合には、各処理部22、24、26は、装置単位排他ロックを獲得すればよい。ここで、全ての装置31~33における一意性を要するI/O処理とは、処理を実行するたびに状態が変動することが許されないような処理であり、例えば、識別処理、一覧取得処理、エラー処理等である。また、1つの装置における一意性を要する処理とは、I/O割り込み処理やI/O発行処理等である。このため、全ての装置31~33における一意性を要する処理を実行する認識処理部24や一覧取得処理部26は、一括排他ロックを獲得する一括排他ロック制御部25を有する。また、1つの装置における一意性を要する処理を実行するI/O発行処理部22は、装置単位排他ロックを獲得する装置単位排他ロック制御部23を有する。すなわち、図1に示すOS20は、I/O処理振分部21を用いて、I/O処理の内容を判別することで、I/O処理の内容が全ての装置31~33における一意性を要するか否かを判別する。そして、OS20は、I/O処理の内容が全ての装置31~33における一意性を要する場合には、このI/O処理を実行する処理部に一括排他ロックを獲得させる。また、OS20は、I/O処理の内容が1つの装置における一意性を要する場合には、このI/O処理を実行する処理部に装置単位排他ロックを獲得させる。そして、OS20は、一括排他ロック、または、装置単位排他ロックを獲得させた各処理部に、I/O処理を実行させる。ここで、OS20は、装置単位排他ロックを獲得した複数のI/O処理については、並行して実行することとなる。例えば、OS20は、ユーザプログラム11が装置31に対するI/O発行処理のリクエストを発行し、ユーザプログラム12が装置32に対するI/O割り込み処理のリクエストを発行した場合には、各処理に装置単位排他ロックを獲得させる。この結果、OS20は、装置31に対するI/O発行処理と、装置32に対するI/O割り込み処理とを並行して実行することができる。この結果、OS20は、並行に実行可能な複数のI/O処理のリクエストが発行された場合には、いずれかのI/O処理を待たせることなく、並行して実行するので、マルチプロセッサ動作におけるシステムの性能を向上させることができる。次に、OS20が各種I/O処理の内容に応じた種別のロックを獲得させる処理について図3を用いて説明する。図3は、I/O処理の振分の一例を説明するための図である。なお、図3に示す例では、ユーザプログラムの一例として、装置一覧参照コマンド11a、装置認識コマンド11b、アプリケーションI/O11cが各種I/O処理のリクエストを発行したものとする。例えば、また、図3中Aに示すように、装置認識コマンド11bが装置認識処理のリクエストを発行した場合には、I/O処理振分部21は、認識処理部24に装置認識処理のリクエストを振り分け、図3中Bに示すように一括排他ロックを獲得させる。また、図3中Cに示すように、装置一覧参照コマンド11aが装置一覧通知処理のリクエストを発行した場合には、I/O処理振分部21は、以下の処理を実行する。すなわち、I/O処理振分部21は、一覧取得処理部26に装置一覧通知処理のリクエストを振り分け、図3中Dに示すように、一括排他ロックを獲得させる。また、図3中Eに示すように、アプリケーションI/O11cが装置33に対するI/O発行処理のリクエストを発行した場合は、図3中Fに示すように、I/O処理振分部21は、I/O発行処理部22にリクエストを振り分ける。すなわち、I/O処理振分部21は、I/O発行処理のリクエストに、装置単位排他ロックを獲得させる。また、認識処理部24は、一括排他ロックを獲得した場合には、図3中G~Hに示すように、各処理31~33の認識処理を実行する。ここで、装置一覧処理部26は、認識処理部24が一括排他ロックを獲得しているため、処理を実行せずに待機する。そして、一覧取得処理部26は、認識処理部24が処理を終了し、一括排他ロックを解放した場合には、一括排他ロックを獲得し、装置一覧通知処理を実行する。また、I/O発行処理部22は、一覧取得処理部26が処理を終了し、一括排他ロックを解放した場合には、図3中Iに示すように、装置33に対する装置単位排他ロックを獲得する。そして、I/O発行処理部22は、図3中Jに示すように、装置33に対するI/O処理を実行する。その後、I/O発行処理部22は、装置33に対するI/O処理が完了した場合には、図3中Kに示すように、割り込みでI/O完了処理を実行し、図3中Lに示すように完了通知をアプリケーションI/O11cに通知する。このように、OS20は、I/O処理のリクエストが発行された場合には、I/O処理の内容に応じて、一括排他ロック、または、装置単位排他ロックを獲得する。そして、OS20は、異なる装置について装置単位排他ロックを獲得したI/O処理を並行して実行する。このため、OS20は、異なる装置に対して実行するI/O処理を並行して実行することができる。また、OS20は、排他対象の装置単位排他ロックの獲得、解放処理を実行するための複雑な機能をユーザプログラムに追加せずとも、適切にロックを取得することができる。すなわち、ジャイアントロックである一括排他ロックの他に、デッドロックを発生させること無く、排他対象の装置単位排他ロックを獲得、解放するための機能をユーザプログラムに追加するためには、ロックの獲得順番等について細部の検討を必要とする。しかし、OS20は、ユーザプログラムが発行したI/O処理の内容に応じた種別のロックを獲得するので、ユーザプログラムの改変を不要とすることができる。ここで、実行するI/O処理の対象となる共用リソースを記憶し、対象となる共用リソースが競合しないI/O処理を並行して実行する手法も考えられる。しかし、このような手法では、各I/O処理の対象となる共用リソースを記憶したり、競合の有無を判別するので、処理コストが増大してしまう。一方、OS20は、単にI/O処理の内容に応じて、ジャイアントロックである一括排他ロック、または、装置単位のロックである装置単位排他ロックを獲得するので、複雑な処理を行わずとも、並行して実行可能な複数のI/O処理を並行して実行できる。また、OS20は、一括排他ロックのロック資源については、従来のジャイアントロックの資源を用いることができるため、容易に実装が可能である。このため、OS20の実装には、一括排他ロックと共用ロック及び装置単位排他ロック間の競合とロック獲得状態の遷移を考慮すればよい。以下、図4を用いて、一括排他ロックと共用ロック及び装置単位排他ロック間の競合とロック獲得状態の遷移の一例について説明する。図4は、ロック獲得状態の遷移の一例を説明するための図である。なお、図中の実線による矢印は、先発プロセスによるロック獲得状態の遷移を示し、点線で示される矢印は、後発プロセスによるロック獲得状態の遷移を示す。例えば、初期状態においては、一括排他ロック、共用ロック、装置単位排他ロックが獲得されていないため、ロック獲得状態は、図4中1に示すように空きである。ここで、図4中2に示すように、共有ロックが獲得されると、図4中3に示すように、共有ロック獲得状態となる。また、図4中4に示すように、装置単位排他ロックの獲得が要求されると、すなわち、装置単位排他ロックを獲得させるI/O処理のリクエストが発行されると、図4中5に示すように、装置単位排他ロック獲得状態となる。ここで、装置単位排他ロックおよび共有ロックが解放されると、ロック獲得状態は、図4中6および7に示すように、再度空きとなる。一方、図4中8に示すように、装置単位排他ロックが獲得されている際に、装置単位排他ロックの獲得が要求されると、ロック獲得状態は、図4中9に示すように、装置単位排他ロック獲得待ち状態となる。その後、図4中10に示すように、先行して獲得された装置単位排他ロックが解放されると、ロック獲得状態は、後発の要求に関わる装置単位排他ロックを獲得状態となる。一方、図4中11に示すように、ロック獲得状態が空きである際に、一括排他ロックの獲得が要求されると、図4中12に示すように、ロック獲得状態は、一括排他ロック獲得状態となる。また、図4中13に示すように、一括排他ロックが解放されると、図4中1に示すように、ロック獲得状態は、空きとなる。また、図4中14に示すように、ロック獲得状態が一括排他ロック獲得状態である際に、一括排他ロックの獲得が要求されると、図4中15に示すように、ロック獲得状態は、一括排他ロック獲得待ち状態となる。その後、図4中16に示すように、一括排他ロックが解放されると、図4中12に示すように、ロック獲得状態は一括排他ロック獲得状態となる。また、図4中17に示すように、ロック獲得状態が共有ロック獲得状態である際に、一括排他ロック獲得が要求されると、図4中18に示すように、ロック獲得状態は、一括排他ロック獲得待ち状態となる。その後、図4中19に示すように、全ての共有ロックが解放されると、図4中12に示すように、ロック獲得状態は、一括排他ロック獲得状態となる。また、図4中20に示すように、ロック獲得状態が一括排他ロック獲得状態である際に、共有ロックの獲得が要求されると、図4中21に示すように、ロック獲得状態は、共有ロック獲得待ち状態となる。また、図4中22に示すように、一括排他ロックが解放されると、図4中3に示すように、ロック獲得状態は、共有ロック獲得状態となる。次に、図5を用いて、ロック獲得状態の遷移の一例を説明する。図5は、ロック獲得状態の遷移の一例を説明するための図である。なお、図5に示す例では、現在のロック獲得状態横軸と、新たに獲得を要求されたロックの種別縦軸とに応じて、新たなロック獲得状態の一例を示した。例えば、OS20は、一括排他ロックおよび装置単位排他ロックが獲得されていないロック未獲得状態で、一括排他待ちフラグ27cがoffである際に、一括排他ロックの獲得が要求された場合には、一括排他フラグ27bをonにするとともに、ロック獲得状態を一括排他ロック獲得状態とする。一方、OS20は、一括排他ロックおよび装置単位排他ロックが獲得されておらず、一括排他待ちフラグ27cがoffである際に、共有ロックと装置31に対する装置単位排他ロックの獲得が要求された場合には、以下の処理を行う。すなわち、OS20は、共有カウンタ27aの値を0から1にインクリメントする。また、OS20は、共有ロック装置31に対する装置単位排他ロック獲得済み状態を新たなロック状態とする。また、OS20は、一括排他ロックおよび装置単位排他ロックが獲得されておらず、一括排他待ちフラグ27cがoffである際に、共有ロックと装置32に対する装置単位排他ロックの獲得が要求された場合には、以下の処理を行う。すなわち、OS20は、共有カウンタ27aの値を0から1にインクリメントする。また、OS20は、共有ロック装置32に対する装置単位排他ロック獲得済み状態を新たなロック状態とする。また、OS20は、共有ロックと装置32に対する装置単位排他ロックが獲得されており、かつ、一括排他待ちフラグ27cがoffである際に、一括排他ロックの獲得が要求された場合は、以下の処理を行う。すなわち、OS20は、一括排他待ちフラグ27cをonにする。そして、OS20は、共有ロックの解除を待ち合わせた後に、一括排他ロックの獲得をリトライする。また、OS20は、共有ロックと装置32に対する装置単位排他ロックが獲得されており、かつ、一括排他待ちフラグ27cがoffである際に、共有ロックと装置31に対する装置単位排他ロックの獲得が要求された場合は、以下の処理を行う。すなわち、OS20は、共有カウンタ27aの値を1から2にインクリメントする。また、OS20は、共有ロック装置31に対する装置単位排他ロック獲得装置32に対する装置単位排他ロック獲得状態を新たなロック獲得状態とする。また、OS20は、共有ロックと装置32に対する装置単位排他ロックが獲得されており、かつ、一括排他待ちフラグ27cがoffである際に、共有ロックと装置32に対する装置単位排他ロックの獲得が要求された場合は、以下の処理を行う。すなわち、OS20は、装置32に対する装置単位排他ロックが解放されるまで待ち合わせた後に、装置32に対する装置単位排他ロックの獲得をリトライする。また、OS20は、共有ロックと装置32に対する装置単位排他ロックが獲得されており、かつ、一括排他待ちフラグ27cがonである際に、一括排他ロックの獲得が要求された場合には、以下の処理を行う。すなわち、OS20は、共有ロックが解放されるのを待ち合わせた後に、一括排他ロックの獲得をリトライする。また、OS20は、共有ロックと装置32に対する装置単位排他ロックが獲得されており、かつ、一括排他待ちフラグ27cがonである際に、共有ロックと装置31に対する装置単位排他ロックの獲得が要求された場合は、以下の処理を行う。すなわち、OS20は、一括排他待ちフラグ27cがoffになるのを待ち合わせした後に、共有ロックと装置31に対する装置単位排他ロックの獲得をリトライする。また、OS20は、共有ロックと装置32に対する装置単位排他ロックが獲得されており、かつ、一括排他待ちフラグ27cがonである際に、共有ロックと装置32に対する装置単位排他ロックの獲得が要求された場合は、以下の処理を行う。すなわち、OS20は、一括排他待ちフラグ27cがoffになるのを待ち合わせした後に、共有ロックと装置32に対する装置単位排他ロックの獲得をリトライする。また、OS20は、一括排他ロック獲得状態、すなわち一括排他フラグ27bがonであり、一括排他待ちフラグ27cがoffである際に、一括排他ロックの獲得が要求された場合には、以下の処理を行う。すなわち、OS20は、一括排他ロックの解放を待ち合わせし、その後リトライする。また、OS20は、一括排他ロック獲得状態、すなわち一括排他フラグ27bがonであり、一括排他待ちフラグ27cがoffである際に、共有ロックと装置31に対する装置単位排他ロックの獲得が要求された場合は、一括排他ロックの解放を待ち合わせし、その後リトライする。また、OS20は、一括排他ロック獲得状態、すなわち一括排他フラグ27bがonであり、一括排他待ちフラグ27cがoffである際に、共有ロックと装置32に対する装置単位排他ロックの獲得が要求された場合は、一括排他ロックの解放を待ち合わせし、その後リトライする。次に、図6~8を用いて、OS20が有するI/O処理振分部21、装置単位排他ロック制御部23、一括排他ロック制御部25が実行する処理の一例について説明する。なお、図6は、実施例1に関わるOSが実行するリクエストの振分処理の一例を説明するための図である。また、図7は、実施例1に関わる装置単位排他ロック制御部が装置単位排他ロックを獲得する処理の一例を説明するための図である。また、図8は、実施例1に関わる一括排他ロック制御部が一括排他処理を獲得する処理の一例を説明するための図である。まず、図6を用いて、OS20がI/O処理の内容に応じて、リクエストを振り分ける処理の流れの一例について説明する。例えば、OS20は、ユーザプログラム11、12等が発行したI/O処理のリクエストを受領した場合にはステップS101、実行するI/O処理の内容を判別するステップS102。そして、OS20は、判別した処理内容を実行する処理部に、I/O処理のリクエストを振り分けステップS103、振分処理を終了する。次に、図7を用いて、装置単位排他ロック制御部23が装置単位排他ロックを獲得する処理の流れの一例について説明する。まず、装置単位排他ロック制御部23は、I/O処理のリクエストがI/O発行処理部22等の処理部に振り分けられた場合には、一括排他ロックが獲得されているか否かを判別するステップS201。そして、装置単位排他ロック制御部23は、一括排他ロックが獲得されている場合にはステップS201肯定、一定時間待機しステップS202、その後、一括排他ロックが獲得されているか否かを再度判別するステップS201。また、装置単位排他ロック制御部23は、一括排他ロックが獲得されていない場合にはステップS201否定、共有ロックを獲得するステップS203。そして、装置単位排他ロック制御部23は、I/O処理の対象となる装置について装置単位排他ロックが獲得されているか否かを判別するステップS204。また、装置単位排他ロック制御部23は、装置単位排他ロックが獲得されている場合にはステップS204肯定、一定時間待機しステップS205、その後、装置単位排他ロックが獲得されているか否かを再度判別するステップS204。また、装置単位排他ロック制御部23は、I/O処理の対象となる装置について装置単位排他ロックが獲得されていないと判別した場合にはステップS204否定、I/O処理の対象となる装置について装置単位排他ロックを獲得するステップS206。また、装置単位排他ロック制御部23は、I/O処理が実施されるとステップS207、獲得した装置単位排他ロックを解放しステップS208、その後、共有ロックを解放しステップS209、処理を終了する。次に、図8を用いて、一括排他ロック制御部25が一括排他ロックを獲得する処理の流れの一例について説明する。まず一括排他ロック制御部25は、認識処理部24等のI/O処理を実行する処理部にI/O処理のリクエストが振り分けられた場合には、共有ロックまたは一括排他ロックが獲得されているか否かを判別するステップS301。そして、一括排他ロック制御部25は、共有ロックまたは一括排他ロックが獲得されていると判別した場合にはステップS301肯定、一定時間待機するステップS302。その後、一括排他ロック制御部25は、共有ロックまたは一括排他ロックが獲得されているか否かを再度判別するステップS301。また、一括排他ロック制御部25は、共有ロックまたは一括排他ロックが獲得されていると判別した場合にはステップS301否定、一括排他ロックを獲得するステップS303。また、一括排他ロック制御部25は、I/O処理が実施されるとステップS304、一括排他ロックを解放しステップS305、処理を終了する。実施例1の効果上述したように、OS20は、実行するI/O処理の内容に応じて、一括排他ロック、または、共有排他ロックを獲得する複数の処理部22~26を有する。そして、OS20は、I/O処理のリクエストが発行された場合には、実行するI/O処理の内容を判別し、判別した内容を実行する処理部22~26に振り分ける。すなわち、OS20は、I/O処理のリクエストが発行された場合には、実行するI/O処理の内容に応じて、一括排他ロック、または、装置単位排他ロックを獲得させる。このため、OS20は、並列に実行可能なI/O処理のリクエストが複数発行された場合には、各I/O処理を同時に実行させることができる。この結果、OS20は、マルチプロセッサ動作におけるシステムの性能を向上させることができる。例えば、従来のOSや各処理部22、24、26が仮想化された場合には、ハードウェア30が有する各装置31~33に対する命令をエミュレーションするので、オーバーヘッドが発生する。このため、従来のOSや各処理部22、24、26を仮想化した場合には、ジャイアントロックの獲得時間が増大する。この結果、プロセッサ数が増え、同時に実行されるユーザプログラムの数が増大するたびに、I/O処理に関わる性能の劣化が著しくなってしまう。しかし、OS20は、並列に実行可能な複数のI/O処理を同時に実行することができるので、プロセッサ数を増やした際にも、I/O処理に関わる性能の劣化を防ぐ結果、システムの性能を向上させることができる。また、OS20が有する各処理部22、24、26は、実行するI/O処理が全ての装置31~33における一意性を要する場合には、一括排他ロックを獲得し、一意性が不要、すなわち、並行に実行可能なI/O処理である場合には、装置単位排他ロックを獲得する。すなわち、OS20は、実行するI/O処理の内容が全ての装置31~33における一意性を要する場合には、I/O処理のリクエストに一括排他ロックを獲得させ、一意性を要しない場合には、I/O処理の対象となる装置の装置単位排他ロックを獲得させる。このため、OS20は、I/O処理のリクエストを発行するユーザプログラム11、12の改変を行わずとも、各I/O処理の内容に即した種別のロックを獲得させることができる。この結果、OS20は、ユーザプログラム11、12の改変を行わずとも、並列に実行可能な複数のI/O処理を同時に実行させることができる。また、OS20は、認識処理、一覧取得処理、エラー処理のリクエストが発行された場合には、全ての装置31~33に対して一意性を要する処理であるため、一括排他ロックを獲得させる。この結果、例えば、OS20は、エラー処理を実行中に他のI/O処理によるアクセスを許可するようなことを防ぐので、適切にI/O処理を実行させることができる。また、OS20は、一括排他ロックを獲得させるI/O処理のリクエストが新たに発行された際に、一括排他ロックまたは装置単位排他ロックが獲得されている場合には、一定時間待機する。その後、OS20は、一括排他ロックまたは装置単位排他ロックが解放された場合には、新たに発行されたI/O処理のリクエストに一括排他ロックを獲得させる。このため、OS20は、一括排他ロックを獲得させるI/O処理のリクエストが発行された際に、他のリクエストとの競合を適切に防ぐことができる。また、OS20は、装置単位排他ロックを獲得させるI/O処理のリクエストが新たに発行された際に、同一の装置に対する装置単位排他ロック、または、一括排他ロックが獲得されている場合には、一定時間待機する。そして、OS20は、同一の装置に対する装置単位排他ロック、または、一括排他ロックが解放された場合には、新たに発行されたI/O処理のリクエストに装置単位排他ロックを獲得させる。このため、OS20は、装置単位排他ロックを獲得させるI/O処理のリクエストが発行された際に、他のリクエストとの競合を適切に防ぐことができる。これまで本発明の実施例について説明したが実施例は、上述した実施例以外にも様々な異なる形態にて実施されてよいものである。そこで、以下では実施例2として本発明に含まれる他の実施例を説明する。1OS20の態様について上述したOS20は、実行するI/O処理が定められた複数の処理部22~26を有し、各処理部22、24、26は、それぞれ実行するI/O処理の内容に応じて、装置単位排他ロック制御部23、または、一括排他ロック制御部25を有していた。しかし、実施例はこれに限定されるものではない。例えば、OS20は、装置単位排他ロック制御部23および一括排他ロック制御部25を1つづつ有する。そして、OS20は、I/O処理のリクエストが発行された場合は、I/O処理の内容に応じて、装置単位排他ロック制御部23または一括排他ロック制御部25の機能を呼び出し、発行されたリクエストに装置単位排他ロックまたは一括排他ロックを獲得させる。その後、OS20は、装置単位排他ロックまたは一括排他ロックを獲得させたリクエストから順にI/O処理を実行させることとしてもよい。すなわち、OS20は、I/O処理のリクエストが発行された場合には、I/O処理の内容に応じて、一括排他ロック、または、装置単位排他ロックを獲得させ、いずれかのロックを獲得したI/O処理のリクエストから実行させればよい。なお、I/O発行処理部22、認識処理部24、一覧取得処理部26は、サブルーチンとして動作させてもよい。すなわち、OS20は、I/O処理のリクエストが発行された場合には、I/O処理の内容に応じて、リクエストを実行するサブルーチンを呼び出す。例えば、OS20は、I/O発行処理のリクエストが発行された場合には、I/O発行処理部22をサブルーチンとして呼び出す。そして、I/O発行処理部22は、装置単位排他ロック制御部23をサブルーチンとして呼び出し、装置単位排他ロックを獲得した後に、I/O発行処理を実行することとしてもよい。なお、本発明は、実施例1として説明したOS20の他に、I/O処理振分部21、装置単位排他ロック制御部23、一括排他ロック制御部25を有する排他制御プログラムとしても実施可能である。このようなOS20や排他制御プログラムは、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスクFD、CD-ROMCompactDiscReadOnlyMemory、MOMagnetoOpticalDisc、DVDDigitalVersatileDiscなどのコンピュータで読取可能な記録媒体に記録される。また、このプログラムは、コンピュータによって記録媒体から読み出されることによって実行することもできる。