"第1CPUは、タスクが第1タスク種類に属するか否かを判定し、前記タスクが前記第1タスク種類に属するときは前記タスクがアクセスする第1アクセス領域が第1メモリまたは第2メモリにあるか否かを判定し、前記判定結果に基づいて前記タスクがアクセスするメモリを前記第1メモリまたは前記第2メモリに設定することを特徴とするスケジューリング方法。前記第1タスク種類はメモリリードタスクであることを特徴とする請求項1に記載のスケジューリング方法。前記タスクが前記第1タスク種類に属さないときは前記タスクが第2タスク種類に属するか否かを判定することを特徴とする請求項1または請求項2に記載のスケジューリング方法。前記第2タスク種類はメモリリードライトタスクであることを特徴とする請求項3に記載のスケジューリング方法。前記タスクが第3タスク種類に含まれるときは、前記タスクが第1メモリにアクセスする第1アクセス時間と前記タスクが前記第2メモリにアクセスする第2アクセス時間との比較結果に基づいて、前記タスクがアクセスするメモリを前記第1メモリまたは前記第2メモリに設定することを特徴とする請求項1乃至請求項4の何れか一に記載のスケジューリング方法。前記第1アクセス領域が第3タスク種類に属するタスクがアクセスする第2アクセス領域に含まれるか否かを判定し、前記判定結果に基づいて前記第1アクセス領域が前記第1メモリまたは前記第2メモリにあるか否かを判定することを特徴とする請求項1乃至請求項4の何れか一に記載のスケジューリング方法。前記第3タスク種類はメモリライトタスクであることを特徴とする請求項5または請求項6に記載のスケジューリング方法。前記第1アクセス領域が前記第2アクセス領域に含まれるときは、前記第2アクセス領域の前記第2メモリから前記第1メモリへの書き込みの終了に基づいて前記タスクがアクセスするメモリを前記第1メモリまたは前記第2メモリに設定することを特徴とする請求項6または請求項7に記載のスケジューリング方法。前記タスクがアクセスするメモリが第2メモリに設定されるとき、前記タスクがアクセスした前記第2メモリのメモリ領域が前記第1メモリに書き込まれることを特徴とする請求項1乃至請求項8の何れか一に記載のスケジューリング方法。前記タスクが第1タスク種類グループに含まれるときは、前記第1メモリにアクセスする他のタスクが割り当てられている第2CPUに前記第1タスク種類グループに含まれるタスクを割り当てることを特徴とする請求項1乃至請求項9の何れか一に記載のスケジューリング方法。第2CPUに割り当てられるタスクが第2タスク種類に属さないときであって前記第2CPUで実行されている他のタスクが前記第2タスク種類に属するとき、前記他のタスクは前記第2CPUのタスクキューに戻されることを特徴とする請求項1乃至請求項9の何れか一に記載のスケジューリング方法。第2CPUに割り当てられるタスクが第2タスク種類に属するときであって前記第2CPUを含む複数のCPUの少なくとも一のCPUで前記第2タスク種類グループに含まれるタスクが実行されていないとき、前記第2タスク種類に属するつぎのタスクの実行を停止することを特徴とする請求項1乃至請求項9の何れか一に記載のスケジューリング方法。複数のCPUと複数のメモリを含み、前記複数のCPUに含まれる第1CPUは、タスクの種類を判定し、前記タスクが第1タスク種類に属するときは前記タスクがアクセスする第1アクセス領域が前記複数のメモリのうち、第1メモリまたは第2メモリにあるか否かを判定し、前記判定結果に基づいて前記タスクがアクセスするメモリを前記第1メモリまたは前記第2メモリに設定することを特徴とするシステム。前記第1CPUは、前記複数のメモリのうち同一アクセス先のメモリとなる前記タスクを、前記複数のCPUに含まれる同一のCPUに割り当てることを特徴とする請求項13に記載のシステム。しかしながら、特許文献1~4に記載の技術では、ストレージへのアクセススケジューリングと、OSのタスクスケジューリングがそれぞれ個別におこなわれることになるため、ストレージアクセスをおこなう際に複数のCPU間で同一のストレージに対するアクセス競合が発生することが考えられる。このアクセス競合の発生により、ストレージのアクセス性能が低下する。特許文献2に記載の技術では、ストレージへのアクセススケジューリングしか考慮されておらず、ストレージへのアクセススケジューリングと、OSのタスクスケジューリングとの連携がなされないために、複数のCPUでそれぞれタスクを実行するときに一つのストレージへのアクセス競合が発生することがあった。開示のスケジューリング方法およびシステムは、上述した問題点を解消するものであり、複数のCPUが共有するメモリへのアクセス競合を回避することを目的とする。上述した課題を解決し、目的を達成するため、開示技術は、第1CPUは、タスクが第1タスク種類に属するか否かを判定し、前記タスクが前記第1タスク種類に属するときは前記タスクがアクセスする第1アクセス領域が第1メモリまたは第2メモリにあるか否かを判定し、前記判定結果に基づいて前記タスクがアクセスするメモリを前記第1メモリまたは前記第2メモリに設定することを特徴とする。開示のスケジューリング方法およびシステムによれば、複数のCPUが共有するメモリへのアクセス競合を回避できるという効果を奏する。以下に添付図面を参照して、開示技術の好適な実施の形態を詳細に説明する。開示技術は、複数のCPUと複数のメモリを備えてタスクを並列処理するシステム等に適用される。そして、メモリアクセスのスケジューリングとタスクスケジューリングとを連携させることにより、タスク実行により、複数のメモリのうち共有される一つのメモリに対するアクセス競合を回避し、メモリへのアクセス処理の効率化を図る。実施の形態図1は、実施の形態のスケジューリング方法を実行するシステムの構成例を示す図である。システム100は、複数のCPU第1CPU101、第2CPU102を含み、CPU101,102は、それぞれOS111,112を含む。これらCPU101,102は、バス103を介してメモリ121と、複数のCPUによって共有されるメモリにアクセスする。以下の説明では、図1に示す1台のコンピュータに複数のCPU101,102を搭載したマルチコアの構成例を用いて説明をおこなう。図1に示す例では、複数のCPUによって共有される複数のメモリを有する。この複数のメモリとして、第1メモリとしてのメインストレージA131と、第2メモリとしてのサブストレージB132を含む。たとえば、これらメインストレージA131と、サブストレージB132は、ハードディスク装置を用いることができる。以下の実施例では、CPU101,102は、いずれも主にメインストレージ131にアクセスし、共有使用するものとしている。そして、メインストレージ131に対するアクセス競合回避のために、一時的にサブストレージ132を利用するものとして説明する。図2は、システムの内部構成を示すブロック図である。マスタ側のOS111は、マスタスケジューラ201と、アクセス監視部202と、ウェイトキュー203と、タスクキュー204とを含む。マスタスケジューラ201は、ストレージスケジューラ205と、タスクスケジューラ206と、タスクディスパッチ部207とを含む。スレーブ側のOS112は、スレーブスケジューラ211と、アクセス監視部212と、タスクキュー214とを含む。スレーブスケジューラ211は、タスクディスパッチ部217を含む。メモリ121は、データベースDB221を含む。マスタOS111のストレージスケジューラ205は、ウェイトキュー203からタスクを取り出し、取り出したタスクのアクセス先ストレージメインストレージ131あるいはサブストレージ132を決定する。この際、各タスクの特性ReadあるいはWrite、帯域利用、処理時間等により、アクセス先ストレージを決定し、タスクスケジューラ206に通知する。マスタOS111のタスクスケジューラ206は、ストレージスケジューラ205によるストレージアクセスのスケジューリング情報と、タスクのスケジューリング情報に基づき、タスクの割当先を決定し、タスクキュー204に挿入する。このタスクスケジューラ206は、ストレージのアクセス先が同じであるタスク同士を同一のCPU101,102に割り当てる。タスクディスパッチ部207は、CPU101のディスパッチ状況を基に、タスクキュー204に挿入されているタスクのタスクディスパッチ、タスクスイッチを制御する。マスタOS111のアクセス監視部202は、ストレージに対するリード、ライトの発生時に、実行中タスクの情報に基づき、タスクがアクセスするストレージメインストレージ131あるいはサブストレージ132を指定する。スレーブOS112は、マスタOS111の統括制御を受けてCPU102の制御を実行する。スレーブOS112のスレーブスケジューラ211は、タスクディスパッチ部217を含み、このタスクディスパッチ部217は、CPU102のディスパッチ状況を基に、タスクキュー214に挿入されているタスクのタスクディスパッチ、タスクスイッチを制御する。スレーブOS112のアクセス監視部212は、ストレージに対するリード、ライトの発生時に、実行中タスクの情報に基づき、タスクがアクセスするストレージメインストレージ131あるいはサブストレージ132を指定する。メモリ121のデータベース221には、タスクテーブル、ストレージアクセススケジューリング情報、タスクのスケジューリング情報が保持される。図3-1~図3-3は、データベースの情報を示す図表である。図3-1は、データベース221に保存されるタスクテーブル301を示す図である。タスクテーブル301は、ライトWriteタスクテーブル311と、リードReadタスクテーブル312と、Fタスクテーブル313とを含む。このFタスクテーブル313の情報は、アクセス競合を避けるためにWriteタスクが一旦別のストレージに書き込んだ場合に参照される。Fタスク書き戻しタスクに相当は、実際のアクセス対象のストレージに、一時的にデータを書き込んだストレージからデータの書き戻しをおこなうタスクである。このFタスクは、ストレージにアクセスをおこなう他のタスクに影響を与えないタイミングでディスパッチされる。ライトタスクテーブル311は、1ライトタスクIDと、2指定書き込み領域と、3書き込み指定領域と、4書き戻し判定フラグと、5一時保存先アクセスリードタスクと、6データサイズの各情報を含む。1ライトタスクIDは、ストレージに書き込むライトタスクの識別子IDである。2指定書き込み領域は、書き込みが指定されているストレージのアドレスである。3書き込み指定領域は、一時的に書き込む先のストレージのアドレスである。4書き戻し判定フラグは、指定書き込み領域のアドレスのデータを、書き込み指定領域に書き込みが終了したかを示すフラグ値である。5一時保存先アクセスリードタスクは、指定書き込み領域のアドレスにアクセスしているタスクのIDである。6データサイズは、書き込みをおこなうデータのサイズである。リードタスクテーブル312は、1リードタスクIDと、2指定アクセス領域と、3読み出し指定領域と、4データサイズの各情報を含む。1リードタスクIDは、ストレージから読み出すリードタスクの識別子IDである。2指定アクセス領域は、読み出しを指定されたストレージのアドレスである。3読み出し指定領域は、実際に読み出しをおこなうストレージのアドレスである。4データサイズは、読み出しをおこなうデータのサイズである。Fタスクテーブル313は、1FタスクIDと、2書き戻しライトWriteタスクIDとを含む。1FタスクIDは、FタスクのIDである。2書き戻しライトタスクIDは、一時的に書き込みをおこなったデータを実際の指定先のストレージに書き戻しをおこなう対象ライトWriteタスクIDである。図3-2は、データベース221に保存されるストレージアクセススケジューリングテーブル321と、タスクスケジューリングテーブル322とを示す図である。ストレージアクセススケジューリングテーブル321は、ストレージIDと、各ストレージID毎の割り当てタスクID、および終了予測時間とを含む。ストレージIDは、上記メインストレージ131,およびサブストレージ132を識別するIDである。割り当てタスクIDは、各ストレージにアクセスするタスクIDである。終了予測時間は、後述するアクセス終了時間予測式により求められたタスクの終了予測時間である。タスクスケジューリングテーブル322は、CPUIDと、CPUID毎の割り当てタスクIDとを含む。CPUIDは、複数のCPU101,102の識別子IDである。割り当てタスクIDは、複数のCPU101,102毎に割り当てられているタスクの識別子IDである。図3-3は、データベース221に保存されるストレージアクセスをおこなうタスクの分類を示す図表である。図示の分類表331に示されるように、タスクは、ストレージへのアクセスタイプと、帯域の利用の仕方、処理時間等により複数図示の例ではA~Fに分類される。分類Aのタスクは、アクセスタイプがリード、帯域利用が一定帯域であり、ビデオ等のアプリケーション処理時のデータ等である。分類Bのタスクは、アクセスタイプがリード、帯域利用が全帯域であり、アップロードするデータ等である。分類Cのタスクは、アクセスタイプがライト、帯域利用全帯域であり、ダウンロードしたデータ等である。分類Dのタスクは、アクセスタイプがライト、帯域利用が最優先、処理時間が一瞬である、スワップアウトのデータ等である。分類Eのタスクは、アクセスタイプがリード、帯域利用が最優先、処理時間が一瞬である、スワップインのデータ等である。分類FのタスクFタスクは、上記のように、サブストレージ132からメインストレージ131への書き戻しをおこなう処理にかかるタスクであり、アクセスタイプがリードおよびライト、帯域利用が全帯域である。アクセス競合回避の処理の概要つぎに、複数のCPUによる一つのストレージに対するアクセス競合を回避する処理の概要について説明する。図4-1、図4-2は、アクセス競合の回避の処理概要を示す図である。はじめに、図4-1に示すように、CPU101がストレージからリードのタスクを実行しているとする。リードタスクは、データの読み出し先であるストレージがあらかじめ決まっている図示の例では、メインストレージ131である。このとき、新たにCPU102でライトタスクが発生したとする。このライトタスクのデータは、メインストレージ131にアクセスし、格納されるものであるとする。しかし、メインストレージ131は、CPU101によるリードタスクを実行中であるため、このライトタスクをどのストレージに書き込むかを判断する。この判断は、各ストレージのストレージ帯域M,Sの情報に基づき、メインストレージ131に対するタスクのアクセス終了時間を予測算出し、いずれのストレージ131,132に書き込むかを決定する。図示の例では、ライトタスクとリードタスクが同じメインストレージ131にアクセスして生じるアクセス競合を避けるために、CPU102がライトタスクをサブストレージ132に書き込む状態を示している。図4-1に示す状態の後、図4-2に示すように、メインストレージ131に対するアクセスがない時期に、サブストレージ132に書き込んだデータをメインストレージ131に書き込む上記Fタスクの処理。これにより、同一のストレージに対する複数のCPUからのアクセス競合を回避する。この際、CPU101,102のOS111,112は、メモリ121に格納されているデータベース221を参照して同一ストレージのアクセス先のタスクを同一のCPUに割り当てることにより、同一ストレージへのアクセス競合を回避するようにしている。タスクのアクセス終了時間の予測についてここで、上記のタスクのアクセス終了時間の予測の具体例について説明する。この予測処理は、ストレージスケジューラ205が実行する。ストレージスケジューラ205は、ライトタスクであるタスクC,Dをどのストレージに書き込むかを判断するために予測演算する。算出時の条件としては、1.分類Aのリードタスクは、一定帯域を利用してストレージにアクセスする。この分類Aのタスクは、他の分類B,C,D,E,Fのタスクと並列アクセスが可能である。2.分類B,C,D,E,Fのタスクは、利用可能な全帯域を利用してストレージにアクセスする。すなわち、分類Aが使用していない全帯域を利用する。3.分類B,C,D,E,Fのタスクは、シーケンシャルに処理する。分類Aのタスクとのみ並列アクセスを許可する。そして、メインストレージ131のストレージ帯域をM、サブストレージ132のストレージ帯域をS、メインストレージ131に割り当てられた分類BのタスクBxのデータ量をBmx、メインストレージ131に割り当てられた分類CのタスクCxのデータ量をCmx、メインストレージ131に割り当てられた分類AのタスクAxの使用帯域をAmx、サブストレージ132に割り当てられた分類BのタスクBxのデータ量をBsx、サブストレージ132に割り当てられた分類CのタスクCxのデータ量をCsx、サブストレージ132に割り当てられた分類AのタスクAxの使用帯域をAsxとする。このとき、各ストレージ割り当て時のアクセス終了時間をTm、Tsとすると、下記式1で求めることができる。そして、Tm>Tsであれば、ライトタスクC,Dをサブストレージ132へ書き込み、Tm<Tsであれば、ライトタスクC,Dをメインストレージ131へ書き込み指示する。ストレージアクセススケジューリングについてはじめに、ストレージスケジューラ205が実行するストレージアクセススケジューリングについて説明する。図5-1~図5-5は、ストレージに対するアクセススケジューリングの例を示す図である。分類A,CC1,C2,B,Dの順にスケジューリングする例について説明する。ここで、分類A,Bの対象データは、メインストレージ131に存在し、いずれも利用帯域は10、Bのデータ量は30、C1のデータ量は20、C2のデータ量は30であるとする。また、メインストレージ131、サブストレージ132ともにストレージ帯域は50であるとする。図5-1に示すように、はじめに、ストレージスケジューラ205は、ウェイトキュー203から分類Aのリードタスクを取り出す。この分類Aの対象データは、メインストレージ131にあるため、このタスクをメインストレージ131に割り当てる。つぎに、図5-2に示すように、分類CC1のライトタスクは、上記式1のアクセス終了時刻の予測演算をおこなうと、Tm=20/50-10=0.5、Ts=20/50=0.4と算出されるため、この分類C1のタスクをサブストレージに割り当てる。つぎに、図5-3に示すように、分類CC2のライトタスクについては、Tm=30/50-10=0.75、Ts=2030/50=1により、この分類C2のタスクをメインストレージに割り当てる。つぎに、図5-4に示すように、分類Bのリードタスクは、メインストレージ131に存在するので、この分類Bのタスクをメインストレージ131に割り当てる。最後に、図5-5に示すように、分類Dのライトタスクについては、Tm=3030/50-10=1.5、Ts=20/50=0.4と算出されるため、この分類Dのタスクをサブストレージに割り当てる。ストレージスケジューラ205は、上記のスケジューリング毎に、割り当てたタスクのIDと、終了予測時間をストレージアクセススケジューリングテーブル321に保存していく。ストレージアクセスとタスクアクセスの連動についてつぎに、ストレージアクセスと、タスクアクセスの連動について説明する。タスクスケジューラ206は、ストレージスケジューラ205のスケジューリング情報をストレージアクセススケジューリングテーブル321から読み出し、各CPUのタスクキューにタスクのキューイングをおこなう。また、タスクディスパッチ部207,217は、CPU101,102のディスパッチ状況を基に、タスクキュー204,214に挿入されているタスクのタスクディスパッチをおこなう。そして、アクセス監視部202,212は、ストレージに対するリード、ライトの発生時に、実行中タスクの情報に基づき、タスクがアクセスするストレージとして、メインストレージ131あるいはサブストレージ132を指定する。このタスクスケジューラ206は、ストレージアクセス先が同一のストレージとなるように、各CPU101,102のタスクキュー204,214にキューイングする。これにより、同一ストレージに対するアクセス競合を避ける。また、タスクディスパッチ部207,217は、分類B,Cのタスクを各CPU101,102で同時に一つしかディスパッチしない。なお、分類B,Cのタスクは、既に別の分類B,Cのタスクがディスパッチされている場合には、タスクキュー204,214に入れたままにする。また、タスクディスパッチ部207,217は、分類A,D,Eのタスクがキューイングされた場合は、すぐにディスパッチする。これは、分類A,D,Eのタスクはアクセス競合による影響が小さいためである。分類Aのタスクは、全帯域を使用しないためであり、分類D,Eのタスクは、処理時間が非常に短いためである。また、タスクディスパッチ部207,217は、分類Fのタスクがストレージアクセススケジューリングされており、各CPU101,102のタスクキュー204,214に分類B,Cのタスクが存在せず各CPU101,102で分類B,Cのタスクがディスパッチされていない場合には、この分類Fのタスクをディスパッチする。また、タスクディスパッチ部207,217は、分類Fのタスクがディスパッチ中に分類B,Cのタスクがキューイングされた場合には、ただちに分類Fのタスクをタスクキュー204,214に戻す。これは、書き戻しによる性能低下を防ぐためである。図6-1~図6-5は、ストレージアクセスとタスクアクセスを連動させたスケジューリングの例を示す図である。図5-1~図5-5と同様に、分類A,Bの対象データは、メインストレージ131に存在し、いずれも利用帯域は10、Bのデータ量は30、C1のデータ量は20、C2のデータ量は30であるとする。また、メインストレージ131、サブストレージ132ともにストレージ帯域は50であるとする。また、タスクの発生順序分類A→C1→C2→B→Dと、各タスクのストレージスケジューリングについては、図5-1~図5-5を用いて説明した結果を利用するものとする。はじめに、図6-1に示すように、発生した分類Aのタスクは、ストレージスケジューラ205によりメインストレージ131にアクセススケジューリングされる図5-1参照。また、この分類Aのタスクは、いずれのCPU101,102でも割り当て可能である。図示の例では、タスクスケジューラ206は、分類AのタスクをCPU101に割り当てたものとする。図6-2に示すように、つぎに発生した分類C1のタスクは、ストレージスケジューラ205によりサブストレージ132にアクセススケジューリングされる図5-2参照。そして、タスクスケジューラ206は、この分類C1のタスクを分類Aのタスクとはアクセスストレージが異なるので、異なるCPU102に割り当てる。図6-3に示すように、つぎに発生した分類C2のタスクは、ストレージスケジューラ205によりメインストレージ131にアクセススケジューリングされる図5-3参照。そして、タスクスケジューラ206は、この分類C2のタスクについて、アクセス先が同一であるタスクAと同一のCPU101に割り当てる。上述したように、分類Aのタスクと分類CC2のタスクは並列にアクセス可能であるため、CPU101はこれら分類Aと分類C2のタスクをマルチタスク処理する。図6-4に示すように、つぎに発生した分類Bのタスクは、ストレージスケジューラ205によりメインストレージ131にアクセススケジューリングされる図5-4参照。そして、タスクスケジューラ206は、この分類Bのタスクについて、アクセス先が同一であるタスクA,C2と同一のCPU101に割り当てる。但し、上述したように、分類Bのタスクは、分類CC2のタスクと並列アクセス不可であるため、CPU101は、分類Bのタスクをタスクキュー204にキューイングしておく。図6-5に示すように、つぎに発生した分類Dのタスクは、ストレージスケジューラ205によりサブストレージ132にアクセススケジューリングされる図5-5参照。そして、タスクスケジューラ206は、この分類Dのタスクについて、アクセス先が同一であるタスクC1と同一のCPU102に割り当てる。但し、この分類Dのタスクは、アクセス時間が短いので、タスクディスパッチ部217は、分類C1のタスクと、この分類Dのタスクのディスパッチ順を入れ替えて分類Dのタスクを先に処理させる。データの書き戻しについてライトアクセスのタスクを対象ストレージではなく、別ストレージにスケジューリングした場合、Fタスクを生成し、対象ストレージへの書き戻しをおこなう。このため、書き戻し終了までの期間、一時領域を確保する必要がある。図7は、書き戻し前のデータへのアクセスの状態を示す図である。たとえば、分類Bのタスクが対象ストレージであるメインストレージ131ではなく、異なるサブストレージ132に一時保存された状態が生じたとする。このような書き戻しが終了する前の状態のデータ701に対するアクセスが発生した場合には、データ701の本来の保存先であるメインストレージ131ではなく、この時点でデータ701が一時保存されているサブストレージ132へアクセスする制御が必要となる。上記データの書き戻しに対応するために、タスク毎に固有のタスク情報をあらかじめ付加しておき、タスクスケジューラ206と、ストレージスケジューラ205とを連携させる。この連携に用いる情報が、上述した図3-1に示したタスクテーブル301である。ストレージスケジューラ205は、このタスクテーブル301を参照して、アクセス先を特定する。また、ライトタスクテーブル311の一時保存先上記例ではサブストレージ132にアクセスしているリードタスクが存在する間は、この一時保存されているデータ701を保護しておく。そしてストレージスケジューラ205は、スケジューリング時に、このタスクテーブル301を参照してFタスクに対するスケジューリングを決定する。Fタスクのディスパッチ例図8-1~図8-3は、データの書き戻しにかかる処理を示す図である。図8-1に示すように、CPU101,102のキャッシュL1キャッシュ801,802間には、スヌープコントローラ803が設けられる。このスヌープコントローラ803を介してキャッシュ801,802の更新データをCPU101,102間でやりとりし、キャッシュ801,802のコヒーレンシをとっている。また、キャッシュ801には、CPU101,102の動作フラグCフラグと称す811,812が設けられ、キャッシュ802にもCPU101,102のCフラグ821,822が設けられている。CPU101に関するCフラグ811,821は、CPU101で分類B,C,D,Eのタスクを実行時に1、Fタスクを実行時に2の値をとる。CPU102に関するCフラグ812,822についても同様に、CPU102で分類B,C,D,Eのタスクを実行時に1、Fタスクを実行時に2の値をとる。それ以外分類Aのタスク実行時を含むの値は0OFFである。そして、図8-1に示すように、CPU101は、分類AのタスクA1と分類Cのタスクをマルチタスク処理しており、タスクキュー204に分類Fのタスクがキューイングされている。また、CPU102は、分類Dのタスクを処理し、タスクキュー214に分類A2のタスクがキューイングされているとする。この場合、CPU101のCフラグ811,821は、分類Cのタスク実行時に1、分類Aのタスク実行時に0となる。CPU102のCフラグ812,822は、分類Dのタスク実行により1となる。つぎに、図8-2に示すように、CPU101における分類Cのタスクが終了すると分類AのタスクA1は実行継続、このときCPU101のCフラグ811,821は、値が0になる。また、CPU102における分類Dのタスクが終了すると、つぎに、分類AのタスクA2が実行されるが、このときCPU102のCフラグ812,822は、値が0になる。これにより、CPU101は、すべてのCフラグ811,812の値が0になったことにより、タスクキュー204のFタスクをディスパッチする。これにより、図8-3に示すように、CPU101で分類FのFタスクが実行され、Fタスクの実行中は、CPU101のCフラグ811,821は、値が2となる。このように、分類FのFタスクは、複数のCPU101,102のうち一つのCPUでのみ実行される。システムの処理手順上述したように、実施の形態では、ストレージスケジューラ205と、タスクスケジューラ206が連動して動作する。ストレージスケジューラ205のアクセススケジューリング結果を基に、タスクスケジューラ206がCPU101,102へのタスクの配布をおこなう。ストレージスケジューラの処理手順図9は、ストレージスケジューラがおこなう処理手順を示すフローチャートである。マスタスケジューラ201に設けられるストレージスケジューラ205は、タスクの発生を待ちステップS901:No、およびステップS902:Noのループ、タスクが発生するとステップS901:Yes、タスクの種類を判別するステップS903。タスクが発生せずステップS901:No、すべてのタスクが終了するとステップS902:Yes、終了する。ステップS903のタスクの種別の判別では、あらかじめ定めた分類A~FのタスクであればステップS903:Yes、つぎに、分類A,B,Eのリードタスクであるか判別しステップS904、分類A~FのタスクでなければステップS903:No、ストレージスケジューリングを実施せず、タスクスケジューラ206の処理後述する図10へ移行する。ステップS904において、分類A,B,EのリードタスクであればステップS904:Yes、アクセスデータが存在するストレージをチェックし、アクセスデータが存在するストレージにスケジューリングする。はじめに、タスクテーブル301を参照し、ライトタスクテーブル311の2指定書き込み領域と、リードタスクテーブル312の2指定アクセス領域を比較し、一致するライトタスクを検索するステップS905。つぎに、該当するライトタスクの4書き戻し判定フラグをチェックしステップS906、書き戻しが完了しているか判定するステップS907。書き戻しが完了していればステップS907:Yes、リードタスクテーブル312の3読み出し指定領域をライトタスクテーブル311の2指定書き込み領域に更新しステップS908、ステップS911に移行する。一方、ステップS907において、書き戻しが完了していなければステップS907:No、リードタスクテーブル312の3読み出し指定領域をライトタスクテーブル311の3書き込み指定領域に更新しステップS909、また、ライトタスクテーブル311の5一時保存先アクセスリードタスクにリードタスクテーブル312の1リードタスクIDを付加しステップS910、ステップS911に移行する。ステップS911では、ライトタスクテーブル311の6データサイズに、読み出すデータサイズを書き込みステップS911、該当するタスクを対象データのあるストレージに割り当てるステップS912。この後、ストレージアクセススケジューリングテーブル321を更新しステップS913、タスクスケジューラ206の処理図10へ移行する。ステップS904において、分類A,B,Eのリードタスク以外のときにはステップS904:No、分類Fのタスクであるか判定するステップS914。分類FのタスクでなければステップS914:No、タスクの種別は、残る分類C,Dのいずれかのライトタスクであるため、ストレージアクセス終了時間を予測し、アクセスするストレージを決定し、割り当てるステップS915。この後、ライトタスクテーブル311の2指定書き込み領域と、3書き込み指定領域が等しいかすなわち、書き戻し不要か判定するステップS916。ステップS916の判定結果、ライトタスクテーブル311の2指定書き込み領域と、3書き込み指定領域が等しければステップS916:Yes、ライトタスクテーブル311を更新するステップS917。この際、ライトタスクテーブル311の2指定書き込み領域~4書き戻し判定フラグ、6データサイズを更新する。ステップS916の判定結果、ライトタスクテーブル311の2指定書き込み領域と、3書き込み指定領域が等しくなければステップS916:No、書き戻しが必要であり、Fタスクをタスクキュー204に挿入してからステップS918、ステップS917に移行する。ステップS917の実行後は、ストレージアクセススケジューリングテーブル321を更新しステップS913、タスクスケジューラ206の処理図10へ移行する。また、ステップS914の判定結果、分類FのタスクであればステップS914:Yes、このFタスクを対象データのある書き戻しをおこなうデータが存在するストレージに割り当てステップS919、ストレージアクセススケジューリングテーブル321を更新しステップS913、タスクスケジューラ206の処理図10へ移行する。タスクスケジューラの処理手順図10は、タスクスケジューラがおこなう処理手順を示すフローチャートである。マスタスケジューラ201に設けられるタスクスケジューラ206は、図9に示したストレージスケジューラ205によるストレージアクセススケジューリングの処理後に実行される。はじめに、該当するタスクが分類A~Fのタスクであるか判別しステップS1001、分類A~FのタスクであればステップS1001:Yes、同一ストレージに割り当てられているタスクがいずれかのCPU101,102のタスクキュー204,214に存在するか判断するステップS1002。判断結果、同一ストレージに割り当てられているタスクがいずれかのCPU101,102のタスクキュー204,214に存在すればステップS1002:Yes、このタスクを同一のタスクキュー204,214に割り当てステップS1003、処理を終了してストレージスケジューラ205の処理図9に戻る。ステップS1001の判断結果が分類A~FのタスクではないときステップS1001:No、およびステップS1002の判断結果が同一ストレージに割り当てられているタスクがいずれかのCPU101,102のタスクキュー204,214に存在しないときステップS1002:No、通常スケジューリングを実施しステップS1004、処理を終了してストレージスケジューラ205の処理図9に戻る。メインスケジューラ、スレーブスケジューラの処理手順図11は、メインスケジューラ、スレーブスケジューラがおこなう処理手順を示すフローチャートである。はじめに、メインスケジューラ201、スレーブスケジューラ211は、タスクキュー204、214にタスクが存在するか、もしくはいずれかのCPUのフラグ値が変化したかを判定しステップS1101、タスクが存在すればステップS1101:1、分類B~Fのタスクであるか判定するステップS1102。いずれかのCPUのフラグ値が変化した場合はステップS1101:2、Fタスクを実行中であるかを判定しステップS1111、Fタスク実行中であればステップS1111:Yes、Fタスクをタスクキューに戻しステップS1112、ステップS1101に戻り、Fタスク実行中でなければステップS1111:No、処理を終え、ステップS1101に戻る。いずれの判定にも当てはまらない場合ステップS1101:Noは、上記処理を終え、タスクの発生、もしくは、いずれかのCPUフラグ値の変更を待つ。ステップS1102において、分類B~FのタスクであればステップS1102:Yes、分類Fのタスクであるか判断しステップS1103、分類B~FのタスクでなければステップS1102:No、ステップS1110へ移行する。分類FのタスクであればステップS1103:Yes、いずれかのCPU101,102で分類B~Fのタスクがスレッド化されているか判断するステップS1104。判断結果、分類B~Fのタスクがスレッド化されていればステップS1104:Yes、処理を終了し、分類B~Fのタスクがスレッド化されていなければステップS1104:No、Cフラグを2に設定しステップS1105、このFタスクをスレッド化して処理を開始しステップS1106、処理終了により上記処理を終える。ステップS1103において、分類FのタスクでなければステップS1103:No、同一CPU101,102において1分類B~Eのタスクがスレッド化されているか、あるいは2Fタスクがスレッド化されているか判定するステップS1107。判定結果、分類B~Eのタスクがスレッド化されていればステップS1107:結果1、このタスクをスレッド化せずに処理終了する。また、2Fタスクがスレッド化されていればステップS1107:結果2、Fタスクをタスクキュー214に戻しステップS1108、Cフラグを1に設定しステップS1109、このタスクをスレッド化して処理を開始しステップS1110、処理終了により、上記一連の処理を終える。また、ステップS1107において、上記1分類B~Eのタスクがスレッド化されておらず、さらに、2Fタスクがスレッド化されていない場合にはステップS1107:No、ステップS1110により該当タスクをスレッド化して処理を開始しステップS1110、処理終了により、上記一連の処理を終える。アクセス監視部の処理手順図12は、アクセス監視部がおこなう処理手順を示すフローチャートである。アクセス監視部202,212は、それぞれストレージに対するリード、ライトの発生時に、実行中タスクの情報に基づき、タスクがアクセスするストレージメインストレージ131あるいはサブストレージ132を指定する。はじめに、1タスクディスパッチ発生、あるいは2ディスパッチ中のタスク処理終了が発生したか判定するステップS1201。1タスクディスパッチが発生したときにはステップS1201:結果1、このタスクが分類A~Fのタスクか判定するステップS1202。分類A~FのタスクであればステップS1202:Yes、つぎに、分類A,B,Eのリードタスクであるか判定するステップS1203。ステップS1201,およびステップS1202のいずれにおいても該当しないタスクであればステップS1201:No、およびステップS1202:No、今回のタスクに関する特別なアクセス制御は実施せずに処理を終える。ステップS1203において、分類A,B,EのリードタスクであればステップS1203:Yes、リードタスクテーブル312から情報3読み出し指定領域を取得しステップS1204、この読み出し指定領域からデータの読み出しを開始するステップS1205。この後、このタスクの1タスク終了、あるいは2タスクスイッチを判定しステップS1206、1タスク終了時にはステップS1206:結果1、ステップS1207に移行し、2タスクスイッチ時にはステップS1206:結果2、処理を終了する。また、1タスク終了、2タスクスイッチのいずれでもなければ、タスク終了、あるいはタスクスイッチの発生を待つステップS1206:Noのループ。ステップS1207では、リードタスクテーブル312の2指定アクセス領域と3読み出し指定領域とが一致しているか判定する。判定の結果、2指定アクセス領域と3読み出し指定領域とが一致していればステップS1207:Yes、処理を終了し、2指定アクセス領域と3読み出し指定領域とが一致していなければステップS1207:No、一時保存先からデータを読み込んでいたため、ライトタスクテーブル311の2指定書き込み領域と、リードタスクテーブル312の2指定アクセス領域が一致するライトタスクを検索し、該当ライトタスクについてライトタスクテーブル311の5一時保存先アクセスリードタスクから終了したリードタスクのIDを除去しステップS1208、処理を終了する。また、ステップS1201において、2ディスパッチ中のタスク処理終了が発生したときにはステップS1201:結果2、分類B~Fのタスクであるか判定しステップS1209、分類B~FのタスクであればステップS1209:Yes、Cフラグを初期値0に設定しステップS1210、処理を終了する。一方、分類B~Fのタスクでなければ分類Aのタスクを含むステップS1209:No、処理をおこなわず、終了する。また、ステップS1203において、分類A,B,Eのリードタスク以外であればステップS1203:No、このタスクがライトタスクであるかFタスクであるか判定するステップS1211。判定の結果、FタスクであればステップS1211:Yes、Fタスクテーブル313の情報2書き戻しライトタスクIDに該当するライトタスクをライトタスクテーブル311から検索し、該当タスクの情報2指定書き込み領域と、3書き込み指定領域を取得しステップS1212、対象領域の書き戻しを開始するステップS1213。この後、このタスクの1タスク終了、あるいは2タスクスイッチを判定しステップS1214、1タスク終了時にはステップS1214:結果1、書き戻ししたライトタスクの情報4書き戻し判定を更新終了しステップS1215、ライトタスクテーブル311の情報2指定書き込み領域の保護を解除しステップS1216、処理を終了する。また、ステップS1214において、2タスクスイッチ時にはステップS1214:結果2、処理をおこなわず、終了する。また、ステップS1211の判定の結果、FタスクでなければステップS1211:No、分類C,Dのライトタスクであり、ライトタスクテーブル311から情報2指定書き込み領域と、3書き込み指定領域を取得するステップS1217。この後、2指定書き込み領域と3書き込み指定領域が一致しているか判定するステップS1218。判定の結果、一致していなければステップS1218:No、書き込み先のストレージ領域を保護しステップS1219、指定領域へのデータの書き込みを開始しステップS1220、処理終了により、上記一連の処理を終える。ステップS1218にて、2指定書き込み領域と3書き込み指定領域が一致していればステップS1218:Yes、ステップS1219をスキップして指定領域へのデータの書き込みを開始しステップS1220、処理終了により、上記一連の処理を終える。実施の形態による競合回避および全アクセスの処理時間について図13は、実施の形態による競合の回避および全アクセスの処理時間を説明する図である。上述したストレージアクセススケジューリングの結果、メインストレージ131に対して分類CのライトタスクC1,C3を割り当て、サブストレージ132に対して分類CのライトタスクC2,C4を割り当てたと仮定する。ここで、各タスクC1~C4の書き込みデータ量はいずれも50、各ストレージの帯域は50であるとする。上述の実施の形態の処理図中右下によれば、同一アクセス先のタスクが同一CPU101,102に割り当てられるので、メインストレージ131とサブストレージ132のいずれにもアクセス競合は発生しない。また、各CPU101,102でシーケンシャルにアクセスがおこなわれると仮定すると、全アクセスの処理時間は、50/5050/50=2となる。すなわち、メインストレージ131とサブストレージ132の全帯域を有効に使用することができる。一方、システムの基本構成は実施の形態と同一構成であるが、従来の未対策技術、すなわち、ストレージアクセススケジュールのみ実行し、ストレージアクセススケジューリングとタスクスケジューリングとが連携していない構成を対比のために図中左下に示した。この場合、図示のように、タスクC1とC2がCPU101に割り当てられ、タスクC3とC4がCPU102に割り当てられる場合がある。このようにタスクスケジューリングされ、メインストレージ131に割り当てられているタスクC1,C3に対しCPU101のタスクC1と、CPU102のタスクC3が実行されると、メインストレージ131に対してCPU101,102が同時にアクセスするアクセス競合が発生する。そして、各CPU101,102でシーケンシャルにアクセスがおこなわれると仮定すると、全アクセスの処理時間は、タスクC1とC3の実行によるアクセス競合、およびタスクC2とC4の時刻によるアクセス競合の発生により、50/2550/25=4となり、実施の形態に比して倍の処理時間がかかる。この例からみても、実施の形態の処理によれば、高いアクセス性能を達成できることがわかる。システムの適用例図14は、図1に示したコンピュータを用いたシステムの適用例を示す図である。図14において、ネットワークNWは、サーバ1401,1402とクライアント1431~1434とが通信可能なネットワークであり、たとえば、LANLocalAreaNetwork、WANWideAreaNetwork、インターネット、携帯電話網などで構成される。サーバ1402は、クラウド1420を構成するサーバ群サーバ1421~1425の管理サーバである。クライアント1431~1434のうち、クライアント1431はノート型パソコン、クライアント1432はデスクトップ型パソコン、クライアント1433は携帯電話機スマートフォン、PHSPersonalHandyphoneSystemでもよい、クライアント1434はタブレット型端末である。図14のサーバ1401,1402,1421~1425、クライアント1431~1434は、たとえば、図1に示したコンピュータにより実現される。また、本実施の形態は、図1に示した各CPU101,102、およびストレージ131,132がそれぞれ異なるコンピュータたとえば図14の携帯電話機やサーバに搭載され、複数のコンピュータがネットワークNWを介して分散型の並列処理をおこなう構成に適用することもできる。以上説明した開示技術によれば、同一のストレージにアクセスするタスクを同じCPUに割り当てることにより、複数のCPUが一つのストレージにアクセスするアクセス競合を回避することができ、効果的なスケジューリングをおこなえるようになる。また、タスクの種別を判定して、あるタスクによってアクセスしているストレージに対してさらに他のタスクが生じることによるアクセス競合を避けるようにしている。タスクの種別については、データサイズによる処理時間等に基づき、複数の種別のタスクについて、それぞれ分類しておけばよく、瞬間的にアクセス競合が発生するが全体のアクセス時間に影響を与えない場合には、アクセス競合を許容することも判断している。たとえば、全帯域ではなく一定帯域のみ利用するリードタスクであれば、他のライトタスク等は、並行して同じストレージへのアクセスを許容してもよい。また、ライトタスクのデータ書き込み対象のストレージは、複数のタスクがそれぞれのストレージにアクセスするときの時間に基づき決定するため、アクセス時間を短時間とすることができるようになる。この決定には、各ストレージの帯域や、分類されたタスクのデータ量などの複数の値を用いており、適したストレージを決定できるようになる。また、データの読み出し先のストレージが定まっているリードタスクを一つのCPUで実行中に、異なるCPUでライトタスクを実行する際には、ライトタスクのデータを一旦、他のストレージに書き込む。他のストレージに一旦書き込まれたデータは、ストレージへのアクセス終了後に本来のストレージに移動させる。これにより、システム全体のストレージに対するアクセス処理を効率化できるようになる。上記の実施形態において説明したストレージは、たとえばディスク装置であるが、これに限らず、複数のCPUが共有使用することによりアクセス競合が生じるメモリであれば、他の各種データメモリ装置であっても同様に適用することができる。"