複数のプロセッサのうちの一のプロセッサに前記複数のプロセッサを管理するマスタ機構を設定し、前記複数のプロセッサのうちの前記一のプロセッサ以外のプロセッサのそれぞれに当該プロセッサを管理するローカルマスタ機構と仮想マスタ機構とを設定し、前記マスタ機構によって管理される共有メモリが前記複数のプロセッサから連続したメモリとしてアクセスされるために、前記マスタ機構が前記複数のプロセッサにアドレスのオフセット値を通知することを特徴とするプロセッサ管理方法。前記オフセット値が通知された後に、前記ローカルマスタ機構は、前記オフセット値に基づいて前記共有メモリを前記ローカルマスタ機構が管理するメモリ領域へ割り当てることを特徴とする請求項1に記載のプロセッサ管理方法。前記仮想マスタ機構は、前記マスタ機構から転送されるコンテキストデータを前記ローカルマスタ機構が管理するメモリ領域に格納することを特徴とする請求項1または請求項2に記載のプロセッサ管理方法。前記仮想マスタ機構は、前記マスタ機構に設定されたブレークポイントを検出したときに、前記マスタ機構のコンテキストデータを前記ローカルマスタ機構が管理するメモリ領域に格納することを特徴とする請求項1または請求項2に記載のプロセッサ管理方法。第1スレッドにおいて前記コンテキストデータを前記メモリ領域に格納するときに、更新された前記コンテキストデータが第2スレッドにおいて検出されるとき、前記第1スレッドの処理を中止することを特徴とする請求項4に記載のプロセッサ管理方法。前記マスタ機構または前記ローカルマスタ機構は、障害を検出するための処理を行うことを特徴とする請求項1乃至請求項5の何れか一に記載のプロセッサ管理方法。前記マスタ機構または前記ローカルマスタ機構は、前記マスタ機構のコンテキストデータにタイムスタンプまたは付随情報を所定周期毎に書き込み、前記タイムスタンプまたは前記付随情報に基づいて前記障害を検出することを特徴とする請求項6に記載のプロセッサ管理方法。前記障害が検出されるとき、前記マスタ機構は少なくとも一部の処理を停止することを特徴とする請求項6または請求項7に記載のプロセッサ管理方法。前記障害が検出され、前記ローカルマスタ機構は前記マスタ機構に通知して前記障害が前記マスタ機構の障害であるか否かを判断し、前記マスタ機構の障害であると判断されたとき、前記ローカルマスタ機構が前記複数のプロセッサを管理する状態にあるか否かを判断することを特徴とする請求項6または請求項7に記載のプロセッサ管理方法。前記障害が検出され、前記マスタ機構への通知に対して応答がない場合に、前記ローカルマスタ機構は前記マスタ機構が制御可能な通話装置へ発信して前記マスタ機構と切断された状態か否かを判断し、前記マスタ機構と切断された状態であると判断された場合、前記ローカルマスタ機構に設定されたプロセッサの動作を終了することを特徴とする請求項6に記載のプロセッサ管理方法。前記ローカルマスタ機構が前記複数のプロセッサを管理する状態にあると判断されるとき、前記ローカルマスタ機構は新たなマスタ機構として設定することを特徴とする請求項6乃至請求項9の何れか一に記載のプロセッサ管理方法。しかしながら、上述した従来技術において、特許文献1~4にかかる技術では、高性能が求められる分、各ユニットに搭載されるプロセッサが高性能のプロセッサとなるため、コストの増加を招いてしまうという問題があった。具体的には、複数のユニットに分割可能な携帯端末は、複数のユニットに分割されたことによるバックアップ処理や、機能のミラーリングを行う場合に、高性能プロセッサを複数配置しておくことが要求されるため、コストが増加してしまっていた。本発明は、上述した従来技術による問題点を解消するため、安価であり、かつ高性能なシステムをユーザに提供できるプロセッサ管理方法を提供することを目的とする。上述した課題を解決し、目的を達成するため、本発明の一側面によれば、複数のプロセッサのうちの一のプロセッサに複数のプロセッサを管理するマスタ機構を設定し、複数のプロセッサのうちの一のプロセッサ以外のプロセッサのそれぞれに当該プロセッサを管理するローカルマスタ機構と仮想マスタ機構とを設定し、マスタ機構によって管理される共有メモリが複数のプロセッサから連続したメモリとしてアクセスされるために、マスタ機構が複数のプロセッサにアドレスのオフセット値を通知するプロセッサ管理方法が提案される。本発明の一側面によれば、安価であり、かつ高性能なシステムをユーザに提供できるという効果を奏する。以下に添付図面を参照して、開示のプロセッサ管理方法の実施の形態を詳細に説明する。なお、下記説明では、プロセッサ管理方法を適用したシステムについて説明を行う。図1は、本実施の形態にかかるシステム100の破損前と破損後の動作を示す説明図である。符号101で示す説明図では、複数のプロセッサを有するシステム100の破損前の状態を示しており、符号102で示す説明図では、システム100の破損後の状態を示している。始めに、符号101で示す図の説明を行う。システム100は、ディスプレイユニット103と、キーボードユニット104を含む。ディスプレイユニット103は、ディスプレイ105を含むユニットである。キーボードユニット104は、キーボード106を含むユニットである。また、システム100は、独立して1つのコンピュータシステムとして動作可能であるドメイン単位で分割されている。具体的には、ディスプレイユニット103にはドメイン1070が含まれ、キーボードユニット104にはドメイン1071、ドメイン1072が含まれる。以下、接尾記号となる0~2が付与されたハードウェアは、対応するドメイン107内に含まれるハードウェアであることを示す。同様に、0~2が付与されたソフトウェアは、対応するドメイン107内のCPUCentralProcessingUnitによって実行されるソフトウェアであることを示す。ドメイン107には、SoCSystem-on-a-Chip108、メモリ109が含まれる。具体的には、ドメイン1070にはSoC1080とメモリ1090が含まれ、ドメイン1071にはSoC1081とメモリ1091が含まれ、ドメイン1072にはSoC1082とメモリ1092が含まれる。なお、ドメイン107、SoC108、メモリ109の詳細については、図2にて後述する。なお、SoC108は、単なる携帯電話機能を実現する簡易的なSoCを想定している。簡易的なSoCであるため、SoC108のコストは低く抑えることができる。またドメイン1070~ドメイン1072は、バス110で接続されている。バス110は、たとえば、フレキシブルケーブル等を採用することができる。または、ドメイン1070~ドメイン1072の接続方法は、有線でなく無線であってもよい。たとえば、ドメイン1070~ドメイン1072は、IEEE802.15.1規格に代表される近接無線通信部を含み、近接無線通信部によってドメイン間通信を行ってもよい。また、ドメイン1070~ドメイン1072は、仮想的に1つのコンピュータシステムをユーザに提供するOSを実行する。これにより、システム100は、3ドメインを含んだシステムとなる。たとえば、SoC1080~SoC1082内にCPUが1つずつ存在する場合、システム100は3つのCPUを有するシステム100となる。なお、図1では、ドメイン1070内のCPUに、システム100を管理するマスタ機構が設定され、ドメイン1071、ドメイン1072のCPUに、自身を管理するローカルマスタ機構が設定された場合を想定している。また、メモリ1090~メモリ1092は、連続した共有メモリ空間となるように物理アドレスからのオフセット値が設定されている。具体的なオフセット値については、図4にて後述する。オフセット値によって、メモリ1090の論理アドレスは0x000~0x0ffとなり、メモリ1091の論理アドレスは0x100~0x1ffとなり、メモリ1092の論理アドレスは0x200~0x2ffとなる。最終的に、メモリ1090~メモリ1092は、論理アドレス0x000~0x2ffを各ドメインに提供することができる。このように、システム100は、各ドメインのメモリサイズが小さくとも、複数のドメインを接続することで、各ドメインに、より広いアドレスを提供することができる。広いアドレスを利用できるようになったシステム100は、同時に多くのアプリケーションソフトウェア以下、アプリと称するを起動することができ、高性能なサービスをユーザに提供できる。また、ドメイン1070~ドメイン1072は、相互に他のドメインを診断している。具体的には、ドメイン1070は、ドメイン1071とドメイン1072を診断し、ドメイン1071は、ドメイン1070とドメイン1072を診断し、ドメイン1072は、ドメイン1070とドメイン1071を診断している。これにより、ドメイン1070~ドメイン1072のうちいずれかのドメインに障害が発生した場合、他のドメインは障害の発生を検出できる。なお、具体的な診断方法としては、図9にて後述する。なお、符号101に示す図では、ドメイン1070~ドメイン1072は正常動作しているため、診断OKとなる。続けて、符号102で示す図の説明を行う。符号102で示すシステム100は、システム100に加えられた衝撃等により、ディスプレイユニット103とキーボードユニット104との結合部分が破損した状態である。さらに、システム100は、衝撃によってSoC1081が破損した状態である。SoC1081が破損した結果、ドメイン1071は、コンピュータシステムとして動作不可能な状態である。なお、バス110は、断線が発生しておらず、ドメイン1070とドメイン1072間の通信を行える状態である。ドメイン1071の診断結果がNGとなり、障害が発生したという情報は、ドメイン1070による診断、またドメイン1072による診断によって検出される。検出を受けたシステム100は、3ドメインから2ドメインの動作に切り替える。これにより、システム100は、障害発生時に、機能や性能の制限を最小限にしつつ、継続的に利用することができる。システム100のハードウェア図2は、システム100のハードウェアを示すブロック図である。図2において、システム100は、ディスプレイ105と、キーボード106と、ドメイン1070~ドメイン1072と、フラッシュROMRead‐OnlyMemory201と、フラッシュROMコントローラ202と、フラッシュROM203と、を含む。また、ドメイン1070には、CPU2040と、ペリフェラル2050と、電力制御回路2060と、DBBDigitalBaseBand2070と、自己診断回路2080、メモリ1090を含む。なお、図2で示すシステム100は、3つのドメインを含むが、2以上のドメインを含んでいてもよい。また、メモリ1090、CPU2040~自己診断回路2080は、SoC内部バス2090で接続されている。同様に、ドメイン1071には、メモリ1091、CPU2041~自己診断回路2081を含み、SoC内部バス2091で接続されている。また、ドメイン1072には、メモリ1092、CPU2042~自己診断回路2082を含み、SoC内部バス2092で接続されている。また、ドメイン1070について、SoC1080は、CPU2040~DBB2070を含み、自己診断回路2080とメモリ1090は、SoC1080の外部に存在する。ドメイン1071、ドメイン1072についても同様である。以下、ドメイン1070に含まれるハードウェアについて説明を行うが、ドメイン1071、ドメイン1072に含まれるハードウェアも同様の機能を有する。CPU2040は、システム100の全体の制御を司る。ペリフェラル2050は、CPU2040以外の周辺機器を示している。たとえば、ペリフェラル2050は、GPUGraphicsProcessingUnitであったり、DMACDirectMemoryAccessControllerであってもよい。または、ペリフェラル2050は、ディスプレイ105等を制御するコントローラであったりしてもよい。電力制御回路2060は、CPU2040、ペリフェラル2050、DBB2070の電力を制御する回路である。さらに、電力制御回路2060は、SoC1080の外部にある自己診断回路2080と、メモリ1090の電力を制御してもよい。たとえば、電力制御回路2060は、ペリフェラル2050が未使用である場合に、ペリフェラル2050に提供する電力を停止してもよい。DBB2070は、通信、通話機能を実行する通話装置である。具体的に、DBB2070は、通信相手を特定する機能や、データに誤り制御符号を付与するといった機能を有する。また、DBB2070は、通信回線を通じてLANLocalAreaNetwork、WANWideAreaNetwork、インターネットなどのネットワークに接続され、ネットワークを介して他の装置に接続される。なお、DBB2070は、DBB2071、DBB2072とも通信可能である。自己診断回路2080は、ドメイン1070内の各装置が正常に動作しているかを診断する機能を有する回路である。たとえば、自己診断回路2080は、SoC1080内の電流、電圧、温度を測定し、異常値になった場合に診断NGとして出力する。なお、電流、電圧が異常値となる場合としては、たとえば、ドメイン1070への衝撃、または、装置内の劣化に伴って電気回路が短絡した場合、ドメイン1070に設計値を超える電流が流れる可能性がある。または、温度が異常値となる場合としては、ドメイン1070で実行中のソフトウェアによって、CPU2040が熱暴走した場合である。自己診断回路2080は、このような状態を検出し、診断NGとして出力する。メモリ1090は、データを記憶できる記憶装置である。たとえば、メモリ1090は、ROM、RAMRandomAccessMemory等である。たとえば、ROMは、ブートプログラムなどのプログラムを記憶している。また、RAMは、CPU2040のワークエリアとして使用される。なお、SoC内部バス2090は、CPU2040とワークエリアとなるメモリ1090を接続しており、CPU2040の能力を発揮させるため、高速転送が可能であることが好ましい。ディスプレイ105は、カーソル、アイコンあるいはツールボックスを始め、文書、画像、機能情報などのデータを表示する。ディスプレイ105は、たとえば、TFTThinFilmTransistor液晶ディスプレイなどを採用することができる。キーボード106は、文字、数字、各種指示などの入力のためのキーを有し、データの入力を行う。また、キーボード106は、タッチパネル式の入力パッドやテンキーなどであってもよい。フラッシュROM201は、読出し速度が高速なフラッシュROMであり、たとえば、NOR型フラッシュメモリである。フラッシュROM201は、OSOperatingSystemなどのシステムソフトウェアやアプリなどを記憶している。たとえば、OSを更新する場合、システム100は、DBB207を経由して新しいOSを受信し、フラッシュROM201に格納されている古いOSを、受信した新しいOSに更新する。フラッシュROMコントローラ202は、CPU2040~CPU2042の制御にしたがってフラッシュROM203に対するデータのリード/ライトを制御する。フラッシュROM203は、データの保存、運搬を主な目的としたフラッシュROMであり、たとえば、NAND型フラッシュメモリである。また、フラッシュROM203は、フラッシュROMコントローラ202の制御で書き込まれたデータを記憶する。データの具体例としては、システム100を使用するユーザがDBB207を通して取得した画像データ、映像データや、本実施の形態であるプロセッサ管理方法を実行するプログラムが格納されていてもよい。フラッシュROM203は、たとえば、メモリカード、SDカードなどを採用することができる。システム100の機能次に、システム100の機能について説明する。図3は、システム100の機能を示すブロック図である。システム100は、検出部311と、転送部312と、判断部313と、設定部314と、通知部315と、割当部316と、格納部317と、設定部318と、終了部319と、を含む。この制御部となる機能検出部311~終了部319は、記憶装置に記憶されたプログラムをCPU2040~CPU2042が実行することにより、その機能を実現する。記憶装置とは、具体的には、たとえば、図1、図2に示したメモリ109、フラッシュROM201、フラッシュROM203などである。なお、図3では、CPU2040がシステム100全体を制御することを想定している。それに関連して、図3では、各機能部のうち、検出部311、割当部316は、CPU2040~CPU2042が実行することを想定している。また、転送部312、設定部314、通知部315は、システム100全体を制御するCPU2040が実行することを想定している。また、判断部313、格納部317、設定部318、終了部319は、CPU2041、CPU2042が実行することを想定している。したがって、たとえば、CPU2041がシステム100全体を制御する場合、CPU2041が、転送部312、設定部314、通知部315を有していてもよい。また、システム100は、メモリ109内に格納されているマスタコンテキスト301、ミラーリングマスタコンテキスト302にアクセス可能である。マスタコンテキスト301は、システム100の運用時に要求される情報群が格納されている。たとえば、マスタコンテキスト301は、システムの起動情報、時刻情報、ペリフェラル205の設定情報、メモリ109に割り当てたオフセット値、重要なプロセスのコンテキスト情報等を格納している。ミラーリングマスタコンテキスト302は、マスタコンテキスト301と同内容が記憶されている。なお、ミラーリングマスタコンテキスト302は、転送部312、格納部317の機能により、マスタコンテキスト301と同内容を記憶するように維持される。また、マスタコンテキスト301、ミラーリングマスタコンテキスト302内には、ステータステーブル303が格納されている。ステータステーブル303は、自ドメイン内の診断情報として、診断時刻と診断結果が格納されている。ステータステーブル303の詳細については、図9にて後述する。検出部311は、他ドメイン107の障害を検出する機能を有する。たとえば、検出部3110~検出部3112は、他ドメイン107内の自己診断回路208に診断実行を要求して、診断結果を取得して他ドメイン107の障害を検出してもよい。また、検出部311は、マスタ機構のコンテキストデータにタイムスタンプまたは付随情報を所定周期毎に書き込み、タイムスタンプまたは付随情報に基づいて障害を検出してもよい。たとえば、検出部3110~検出部3112は、ステータステーブル3030に自身のドメインの診断結果を行った診断時刻と診断結果を1分毎に書き込む。書き込み後、検出部3110~検出部3112は、自ドメイン内のステータステーブル303の診断時刻と診断結果に基づいて障害を検出する。なお、ステータステーブル3030に書き込まれた内容は、転送部312、格納部317の機能により、自ドメイン内のステータステーブル303に格納される。具体的には、検出部3110~検出部3112は、診断時刻が所定周期以上経過したドメインが存在する場合、他ドメインの障害を検出する。または、検出部3110~検出部3112は、診断結果がNGとなったドメインが存在する場合、他ドメインの障害を検出する。なお、検出結果は、検出部311の機能を有するCPU204のレジスタ、キャッシュメモリ、メモリ109などの記憶領域に格納されてもよい。転送部312は、複数のプロセッサのうちの一のプロセッサ以外のプロセッサに更新されたコンテキストデータを転送する機能を有する。たとえば、転送部312は、マスタコンテキスト301のうち更新されたデータと、更新されたアドレスをCPU2041、CPU2042に通知する。なお、通知された結果は、CPU2040のレジスタ、キャッシュメモリ、メモリ1090などの記憶領域に格納されてもよい。判断部313は、検出部3111、検出部3112によって障害が検出されるときに、複数のプロセッサを管理する状態にあると判断する機能を有する。たとえば、判断部3132は、障害が検出された場合に、マスタ機構からの応答がない場合、ローカルマスタ機構を実行するCPUのうちいずれか一つのCPUを、複数のプロセッサを管理する状態にあると判断する。また、判断部313は、ローカルマスタ機構を実行するCPUを順位づけしておき、順位が最も高いCPUを複数のプロセッサを管理する状態にあると判断してもよい。また、判断部313は、さらに、マスタ機構に通知して障害がマスタ機構の障害であるか否かを判断してもよい。たとえば、判断部3132は、バス110を経由してマスタ機構に設定されたCPU2040からの応答の有無によって、マスタ機構の障害の可能性があることを判断する。さらに、判断部313は、マスタ機構への通知に対して応答がない場合に、マスタ機構が制御可能な通話装置へ発信してマスタ機構と切断された状態か否かを判断してもよい。具体的には、判断部313は、バス110を経由してCPU2040からの応答がない場合、DBB2070に発信してマスタ機構と切断された状態か否かを判断する。なお、判断結果は、判断部313の機能を有するCPU204のレジスタ、キャッシュメモリ、メモリ109などの記憶領域に格納されてもよい。設定部314は、複数のプロセッサのうちの一のプロセッサに複数のプロセッサを管理するマスタ機構を設定する機能を有する。たとえば、設定部314は、CPU2040~CPU2042のうちドメイン1070のCPU2040にマスタ機構を設定する。なお、マスタ機構が設定されたCPUは、マスタ機構スレッドを実行する。また、設定部314は、複数のプロセッサのうちの一のプロセッサ以外のプロセッサのそれぞれに、自身を管理するローカルマスタ機構と仮想マスタ機構とを設定する。たとえば、設定部314は、CPU2040~CPU2042のうちCPU2041とCPU2042に、ローカルマスタ機構と仮想マスタ機構を設定する。なお、ローカルマスタ機構が設定されたCPUは、ローカルマスタ機構を実行する。同様に、仮想マスタ機構が設定されたCPUは、仮想マスタ機構スレッドを実行する。また、設定部314は、検出部3110によって障害が検出されるときに、少なくとも一部の処理を停止させる設定を行う。具体的には、設定部314は、障害が検出されたドメインに対して、該当ドメインのメモリ109に割り当てたメモリ空間解放を設定する。さらに、設定部314は、該当ドメインのメモリ109への書き込み禁止を設定し、さらに該当ドメインへのスレッド生成禁止を設定する。なお、設定された情報は、メモリ109、フラッシュROM201等の記憶領域に記憶される。通知部315は、マスタ機構によって管理される共有メモリが複数のプロセッサから連続したメモリとしてアクセスされるために、マスタ機構が複数のプロセッサにアドレスのオフセット値を通知する機能を有する。たとえば、メモリ1090~メモリ1092の物理アドレスが0x00~0xffであることを想定する。このとき、通知部315は、CPU2040にオフセット値0を通知し、CPU2041にオフセット値0x100を通知し、CPU2042にオフセット値0x200を通知する。なお、通知されるオフセット値は、通知先CPUが管理するメモリ109に格納される。また、通知元となる、CPU2040のレジスタ、キャッシュメモリ、メモリ1090などの記憶領域にオフセット値が格納されてもよい。割当部316は、通知部315によってオフセット値が通知された後に、オフセット値に基づいて共有メモリをローカルマスタ機構が管理するメモリ領域へ割り当てる機能を有する。たとえば、割当部3160は、メモリ1090の物理アドレスに通知されたオフセット値0を加算して、メモリ1090の論理アドレスを0x000~0x0ffで割り当てる。同様に、割当部3161は、メモリ1091の物理アドレスに通知されたオフセット値0x100を加算して、メモリ1091の論理アドレスを0x100~0x1ffで割り当てる。また、割当部3162は、メモリ1092の物理アドレスに通知されたオフセット値0x200を加算して、メモリ1092の論理アドレスを0x200~0x2ffで割り当てる。なお、割り当てを行ったという情報は、割当部316の機能を有するCPU204のレジスタ、キャッシュメモリ、メモリ109などの記憶領域に格納されてもよい。格納部317は、転送部312から転送されるコンテキストデータをローカルマスタ機構が管理するメモリ領域に格納する機能を有する。たとえば、格納部3171は、更新されたコンテキストデータをミラーリングマスタコンテキスト3021に格納する。また、格納部317は、マスタ機構に設定されたブレークポイントを検出したときに、マスタ機構のコンテキストデータをローカルマスタ機構が管理するメモリ領域に格納してもよい。たとえば、格納部3171は、マスタコンテキスト301に設定されたブレークポイントに対するライトアクセスを検出したときに、更新されたコンテキストデータをミラーリングマスタコンテキスト3021に格納する。また、格納部317は、コンテキストデータをメモリ領域に格納する第1スレッドが実行される前に、前述のコンテキストデータがさらに更新されたコンテキストデータを格納する第2スレッドが実行されることが検出されるとき、第1スレッドを中止してもよい。たとえば、第1スレッドが、アドレス0x040に対して更新されたコンテキストデータを、ミラーリングマスタコンテキスト3021に格納するスレッドであることを想定する。このとき、格納部3171は、アドレス0x040に対してさらに更新されたコンテキストデータをミラーリングマスタコンテキスト3021に格納する第2スレッドが実行されることが検出されると、第1スレッドの処理を中止する。なお、格納を行ったという結果は、格納部317の機能を有するCPU204のレジスタ、キャッシュメモリ、メモリ109などの記憶領域に格納されてもよい。設定部318は、判断部313によって複数のプロセッサを管理する状態にあると判断されるとき、ローカルマスタ機構を新たなマスタ機構に設定する機能を有する。たとえば、設定部3181は、CPU2041がCPU2040~CPU2042を管理する状態にあると判断されるときに、CPU2041で実行するローカルマスタ機構を新たなマスタ機構に設定する。なお、設定結果は、設定部318の機能を有するCPU204のレジスタ、キャッシュメモリ、メモリ109などの記憶領域に格納されてもよい。終了部319は、判断部313によってマスタ機構と切断された状態であると判断された場合に、ローカルマスタ機構に設定されたプロセッサの動作を終了する機能を有する。たとえば、終了部3192は、バス110が切断され、CPU2040と切断された状態であると判断された場合に、CPU2042をシャットダウンし、動作を終了する。また、シャットダウンとなる対象は、ローカルマスタ機構に設定されたプロセッサが含まれるドメイン内の全ての装置に対してであってもよい。動作を終了するという履歴は、フラッシュROM201等の記憶領域に格納されてもよい。以上、システム100は、プロセッサと記憶領域とを含むドメインの集合のうち、システム100を制御する特定のドメインの障害を、ドメインの集合のうち特定のドメイン以外の他のドメインによって検出する検出部311を含む。さらに、システム100は、特定のドメイン内の記憶領域に記憶された自システムのコンテキストを、制御結果が更新されるたびに、他のドメインの記憶領域へ転送する転送部312を含む。検出部311によって特定のドメインの障害が検出された場合、システム100は、転送部312によって他のドメインの記憶領域に転送されたコンテキストを用いて、他のドメインを、自システムを制御する新たな特定のドメインに設定する設定部318を含む。図4は、システム100のソフトウェアを示すブロック図である。システム100は、図2で示したハードウェアを用いて、図4で示すソフトウェアを実行する。CPU2040は、OSが提供するソフトウェアとして、カーネル4010と、マスタ機構スレッド4020と、OS管理部403と、通信連携部404と、スケジューラ405とを実行する。また、CPU2041は、カーネル4011と、仮想マスタ機構スレッド4061と、ローカルマスタ機構スレッド4071と、OS管理部403とを実行する。同様に、CPU2042は、カーネル4012と、仮想マスタ機構スレッド4062と、ローカルマスタ機構スレッド4072と、OS管理部403を実行する。また、OS管理部403は、プロセス管理部408、メモリ管理部409を含む。また、システム100は、OSの機能を利用して、ユーザにサービスを提供するアプリとして、プロセス410~プロセス413を実行している。なお、CPU2040がプロセス410を実行し、CPU2041がプロセス411、プロセス412を実行し、CPU2042がプロセス413を実行している。カーネル401は、CPU2040~CPU2042を制御するプログラムである。カーネル401は、OSの中核の機能であり、たとえば、システム100のリソースを管理し、スレッドなどのソフトウェアがハードウェアにアクセスできるようにする。また、カーネル401は、CPU2040~CPU2042のうち、いずれか1つのCPUをマスタCPUに設定し、マスタ機構スレッド402を起動させ、その他のCPUに仮想マスタ機構スレッド406、ローカルマスタ機構スレッド407を起動させる。以降の説明では、マスタ機構スレッド402を実行しているCPUが含まれるドメイン107をマスタドメインと定義し、ローカルマスタ機構スレッド407を実行しているCPUが含まれるドメイン107をスレーブドメインと定義する。また、カーネル401は、スレーブドメイン群に対して順位づけを行う。たとえば、カーネル401は、ドメイン1071をスレーブドメイン順位1と設定し、ドメイン1072をスレーブドメイン順位2と設定する。なお、ドメイン107内でのマスタドメイン設定、およびスレーブドメイン設定は、ドメイン1070~ドメイン1072のうち、いずれのドメイン107がマスタドメインとなってもよい。たとえば、マスタドメインは、設計時点にて設計者によって設定されていてもよい。また、システム100は、マスタドメインを、ディスプレイ105にメインメニューを表示するドメイン107に設定してもよい。なお、SoC内部バス209はバス110より高速である。このように、カーネル401は、システム100を、仮想的なマルチコアプロセッサシステムとして、ユーザに提供する。また、カーネル401によって1つの仮想的なマルチコアプロセッサシステムとなったシステム100は、CPUに専用のメモリを有するという、分散メモリ型のマルチコアプロセッサシステムという形態になる。マスタ機構スレッド402は、システム100全体の動作を制御するプログラムである。具体的に、マスタ機構スレッド402は、ペリフェラル2050~ペリフェラル2052、ディスプレイ105、キーボード106、フラッシュROMコントローラ202等の初期化処理を行ったり、時刻の設定処理を行ったりする。なお、マスタ機構スレッド402は、システム100の起動情報、時刻情報、ペリフェラル2050~ペリフェラル2052等の情報、また、OS管理部403による実行結果を、マスタコンテキスト301に記録する。OS管理部403は、システム100を1コンピュータシステムとして提供するために、ドメイン107内ローカルの機能を有する。OS管理部403は前述の機能を満たすために、プロセス管理部408、メモリ管理部409を含む。具体的には、CPU2040は、プロセス管理部4080とメモリ管理部4090を実行する。同様に、CPU2041は、プロセス管理部4081とメモリ管理部4091を実行し、CPU2042は、プロセス管理部4082とメモリ管理部4092を実行する。通信連携部404は、マスタドメインが実行する機能であり、自ドメインのDBB207と連携して通信機能を行う機能を有する。図4の例では、通信連携部404は、DBB2070と連携して通信機能を実行する。なお、他ドメインのDBB207は、使用しないため電源の供給を受けていない状態である。スケジューラ405は、システム100内のドメイン1070~ドメイン1072に割り当てるプロセスを決定する機能を有する。プロセスとは、CPUの処理するプログラムの実行単位である。具体的に、スケジューラ405は、プロセス410をドメイン1070に割り当て、プロセス411とプロセス412をドメイン1071に割り当て、プロセス413をドメイン1072に割り当てる。仮想マスタ機構スレッド406は、マスタ機構スレッド402が更新するマスタコンテキストを自ドメイン内のメモリ109にミラーリングする機能を有する。ミラーリングの形式としては、下記2つの方法が適用可能である。1つ目の処理方法は、ドメイン107間で同期を取り、マスタドメインが更新部分をスレーブドメインに通知する処理である。2つ目の処理方法は、ドメイン107間で同期を取らず、マスタドメインが更新部分をスレーブドメインに通知後他の処理に移り、スレーブドメインは、通知を受けて更新部分を反映する処理である。マスタコンテキスト転送処理1、マスタコンテキスト転送処理2の詳細については、図13、図14にて後述する。ローカルマスタ機構スレッド407は、スレーブドメイン内の管理を行うスレッドである。たとえば、ローカルマスタ機構スレッド4071、ローカルマスタ機構スレッド4072は、マスタ機構スレッド4020から通知された処理内容を実行し、ログとして記録する。また、マスタ機構スレッド402とローカルマスタ機構スレッド407は、自己診断回路208から診断OKの通知を受け取り、自ドメインが動作中であることを他ドメインのマスタ機構スレッド402、またはローカルマスタ機構スレッド407に通知する。さらに、マスタ機構スレッド402とローカルマスタ機構スレッド407は、他ドメインが診断OKか否かを判断する。なお、具体的には、マスタ機構スレッド402とローカルマスタ機構スレッド407は、ハードチェックスレッドを起動し、ハードチェックスレッドが定期的に自己診断回路208に診断を実行させる。また、ハードチェックスレッドは、自己診断回路208によって診断OKを受けたドメインを生存ドメインに設定する。また、ハードチェックスレッドは、自己診断回路208によって診断NGを受けたドメイン、または所定周期を経過しても自己診断回路208によって診断が実行されていないドメインを障害ドメインに設定する。また、具体的な他ドメインの診断判断方法については、図9にて後述する。プロセス管理部408は、ドメイン107に割り当てられたプロセスを管理する機能を有する。プロセス管理部408の動作モードは、マスタモードとスレーブモードが存在する。スレーブモードで動作するプロセス管理部408は、自ドメインに割り当てられたプロセスの生成、実行、終了を管理する。また、マスタモードで動作するプロセス管理部4080は、スレーブモードで動作する機能に加えて、システム100のハードウェア等のリソースを管理する。たとえば、スレーブモードで動作するプロセス管理部4081は、ドメイン1071に割り当てられたプロセス411とプロセス412を時分割にしたがってCPU2041に割り当てる。また、マスタモードで動作するプロセス管理部4080は、たとえば、フラッシュROMコントローラ202へのアクセス権を、プロセス413に付与する。メモリ管理部409は、メモリ1090~メモリ1092を仮想共有メモリ空間414としてプロセス410~プロセス413に提供する機能を有する。たとえば、メモリ1090、メモリ1091、メモリ1092の物理アドレスが0x00~0xffであると想定する。このとき、メモリ管理部4090は、メモリ1090の論理アドレスを、メモリ1091の物理アドレスにオフセット値±0を加算した0x000~0x0ffとしてプロセス410に提供する。さらに、メモリ管理部4090は、メモリ1091の論理アドレスを、メモリ1091の物理アドレスにオフセット値0x100を加算した0x100~0x1ffとしてプロセス410に提供する。さらに、メモリ管理部4090は、メモリ1092の論理アドレスを、メモリ1091の物理アドレスにオフセット値0x200を加算した0x200~0x2ffとしてプロセス410に提供する。これにより、メモリ管理部4090は、プロセス410に論理アドレスを0x000~0x2ffとなる仮想共有メモリ空間414を提供することができる。同様に、メモリ管理部4091、メモリ管理部4092も、メモリ1090の論理アドレスを、物理アドレスにオフセット値±0を加算した値でプロセス410~プロセス413に提供する。続けて、メモリ管理部4091、メモリ管理部4092は、メモリ1091の論理アドレスを、物理アドレスにオフセット値0x100を加算した値でプロセス410~プロセス413に提供する。最後に、メモリ管理部4091、メモリ管理部4092は、メモリ1092の論理アドレスを、物理アドレスにオフセット値0x200を加算した値でプロセス410~プロセス413に提供する。これにより、メモリ管理部4091、メモリ管理部4092も、プロセス410~プロセス413に論理アドレスを0x00~0x2ffとなる仮想共有メモリ空間414を提供することができる。なお、オフセット値の設定方法としては、たとえば、メモリ管理部409は、マスタドメインのメモリ109の論理アドレスを0x00から開始するアドレスに設定する。もし、マスタドメインのメモリ109の物理アドレスが0x00より大きいアドレスで開始する場合、メモリ管理部409は、論理アドレス0x00となるオフセット値を設定する。続けて、メモリ管理部409は、スレーブドメイン順位1のメモリ109の論理アドレスのオフセット値を、マスタドメインのメモリ109の論理アドレスの終了アドレスに設定する。以下、メモリ管理部409は、スレーブドメイン順位nのメモリ109の論理アドレスのオフセット値を、スレーブドメイン順位n-1のメモリ109の論理アドレスの終了アドレスに設定する。なお、nは1以上の整数である。以下、図4に示したソフトウェアの機能を利用して、図5A~図8Bにて、ドメイン107のいずれかが破損した場合の検出動作および復元動作を説明する。図5A、図5Bは、スレーブドメイン破損時による障害ドメイン検出動作を示す説明図である。図5Aでは、システム100が破損された状態を示している。図5Aに示すシステム100は、プロセス411によって生成された画面をディスプレイ105に表示中に、スレーブドメインとなるドメイン1071が破損した状態を示している。このとき、図5Bで示すマスタ機構スレッド4020とローカルマスタ機構スレッド4072は、ドメイン1071が障害ドメインとなったことを検出する。検出後、スレーブドメインに属するローカルマスタ機構スレッド4072は、バス110を経由して、マスタドメインが生存ドメインであるかを確認する。図5Aに示すシステム100は、マスタドメインとなるドメイン1070が生存ドメインであるため、ローカルマスタ機構スレッド4072は、障害ドメイン検出時の処理を終了し、通常処理を続行する。また、マスタドメインに属するマスタ機構スレッド4020は、破損したドメイン1071を障害ドメインとして検出すると、復元動作に移行する。後述する図6A、図6Bにて、スレーブドメイン破損後の復元動作について説明する。図6A、図6Bは、スレーブドメイン破損後の復元動作を示す説明図である。図6Aに示すシステム100は、スレーブドメインとなるドメイン1071が破損し障害ドメインとなったことを、マスタドメインに属するマスタ機構スレッド4020が検出した状態である。検出後、マスタ機構スレッド4020は、ドメイン1071に属するメモリ1091の論理アドレス0x100~0x1ffを書き込み禁止に設定する。書き込み禁止に設定することで、たとえばドメイン1071がソフトウェア暴走によって障害ドメインとなった場合に、システム100は、暴走中のソフトウェアによるメモリ破壊、自動リセットによるメモリクリアを防止できる。なお、メモリ1091への読み込みについては許可される。これにより、たとえばドメイン1071で暴走していないソフトウェアがメモリ1091に出力したデータを、生存ドメインで実行中のソフトウェアが読み込むことが可能になるため、生存ドメインで実行中のソフトウェアの処理を継続することができる。次に、マスタ機構スレッド4020は、障害ドメインへのスレッド生成禁止処理を実行する。なお、障害ドメインへのスレッド生成禁止は、障害ドメインが修復されるまで継続される。これにより、システム100は、2ドメインで動作を継続できる。たとえば、ユーザは、システム100のうち破損したドメインを含むユニットを修理にだしつつ、残ったユニットでシステム100を稼働し続ける、といった運用が可能になる。図6Aの例では、システム100は、図5Aにて示したプロセス411を終了し、メインメニューをディスプレイ105に表示している。図7A、図7Bは、マスタドメイン破損時の動作を示す説明図である。図7Aに示すシステム100は、ディスプレイユニット103に衝撃等が入り、マスタドメインとなるドメイン1070が破損した状態を示している。このとき、図7Bで示すローカルマスタ機構スレッド4071とローカルマスタ機構スレッド4072は、ドメイン1070が破損し、ドメイン1070が障害ドメインとなったことを検出する。検出後、ローカルマスタ機構スレッド4071、ローカルマスタ機構スレッド4072は、それぞれ、バス110を経由して、マスタドメインの生存確認を行う。図7Bに示すシステム100ではマスタドメインとなるドメイン1070が破損しているため、バス110を経由した生存確認は失敗する。続けて、ローカルマスタ機構スレッド4071、ローカルマスタ機構スレッド4072は、DBB207を利用して、マスタドメインの生存確認を行う。これにより、システム100は、バス110が断線したためマスタドメインと通信が行えなくなっている状態か否かを判断できる。具体的なDBB207を利用した生存確認とは、ローカルマスタ機構スレッド4071が、DBB2071から、DBB2070に対して通信発信する。ローカルマスタ機構スレッド4071は、発信に対して応答があればマスタドメインが生存していると判断し、発信に対して応答がなければマスタドメインが破損していると判断する。同様に、ローカルマスタ機構スレッド4072は、DBB2072から、DBB2070に対して通信発信することで、マスタドメインの生存確認を行う。図7Bに示すシステム100ではマスタドメインとなるドメイン1070が破損しているため、DBB2070は、DBB2071とDBB2072に対する通信発信に応答できない。したがって、ローカルマスタ機構スレッド4071とローカルマスタ機構スレッド4072は、マスタドメインが破損していると判断する。判断後、スレーブドメインの順位が最上位となるドメイン1071が、新たなマスタドメインとして運用を続行することになる。具体的に、ローカルマスタ機構スレッド4071は、仮想マスタ機構スレッド4061を終了し、ローカルマスタ機構スレッド4071の出力先として、ミラーリングマスタコンテキスト3021を新たなマスタコンテキストに設定する。続けて、ローカルマスタ機構スレッド4071は、ローカルマスタ機構スレッド4071をマスタ機構スレッド4021として起動処理を実行する。これにより、システム100は、スレーブドメインであったドメイン1071をマスタドメインとして設定し、運用を続行することができる。図8A、図8Bは、分離状態で破損した場合の動作を示す説明図である。図8Aに示すシステム100は、スレーブドメインとなるドメイン1071とバス110が破損した状態を示している。なお、図8Aでは、バス110が有線であり、バス110が切断された状態を示している。もし、バス110として無線が採用されていた場合、図8Aに示すシステム100は、近接無線通信部が破損し、ドメイン間通信が行えない状態として想定する。このとき、図8Bに示すマスタ機構スレッド4020とローカルマスタ機構スレッド4072は、ドメイン1071の破損を検出する。検出後、スレーブドメインに属するローカルマスタ機構スレッド4072は、バス110を経由して、マスタドメインが生存しているかを確認する。図8Bに示すシステム100には、マスタドメインとなるドメイン1070が生存しているが、バス110が切断されているため、ローカルマスタ機構スレッド4072は、ドメイン1070の生存を確認できず、生存していないと判断する。続けて、ローカルマスタ機構スレッド4072は、DBB2072を利用して、マスタドメインの生存確認を行う。図8Bに示すシステム100ではマスタドメインとなるドメイン1070が生存しているため、DBB2072に対する通信発信に応答できる。したがって、ローカルマスタ機構スレッド4072は、マスタドメインが生存していると判断する。これにより、ローカルマスタ機構スレッド4072はバス110が断線したためマスタドメインと通信が行えなくなっている状態であると判断する。この状態では、ドメイン1072は、マスタドメインとなるドメイン1070の指示を受けることができなくなるため、シャットダウンし、動作を終了する。なお、マスタドメインとバス110に障害が発生し、分離状態となる場合もありうる。たとえば、図8Bの状態で、ドメイン1071がマスタドメインと設定されており、ドメイン1070がスレーブドメイン順位1と設定されており、ドメイン1072がスレーブドメイン順位2と設定された状態を想定する。このとき、スレーブドメイン順位1であるドメイン1070が新たなマスタドメインとなり、起動処理を再実行する。起動時に、ドメイン1070は、スレーブドメイン順位2であったドメイン1072と通信できないため、起動処理時にシステム100から切り離されることになる。図9は、ステータステーブル303の記憶内容の一例を示す説明図である。なお、図9で示すステータステーブル303は、現在時刻が12:34:00以降の状態を示している。ステータステーブル303は、ドメイン種別、診断時刻、診断結果という3つのフィールドを含む。ドメイン種別フィールドには、ドメイン107の種別として、マスタドメインか、スレーブドメインか、またスレーブドメインであればスレーブドメイン順位が格納される。なお、ドメイン種別フィールドは、ドメイン107が一意に特定できればどのような値であってもよいので、たとえば、ドメイン107のIDIDentificationであってもよい。診断時刻フィールドには、自己診断回路208が診断を行った時刻が格納される。診断結果フィールドには、自己診断回路208による診断結果が格納される。たとえば、システム100は、所定周期となる1分毎に自己診断回路208にて診断を行うことを想定している。この状態で、図9に示すステータステーブル303について、マスタドメインの自己診断回路208が、12:34:00にマスタドメインを診断し、診断結果がOKであることを示している。同様に、スレーブドメイン順位1の自己診断回路208が、12:34:00にスレーブドメイン順位1を診断し、診断結果がOKであることを示している。また、スレーブドメイン順位2の自己診断回路208が、12:33:00にスレーブドメイン順位2を診断し、診断結果がOKであることを示している。また、スレーブドメイン順位2について12:34:00に診断が行われていないため、マスタドメインとスレーブドメイン順位1は、スレーブドメイン順位2が障害ドメインとなったことを検出する。また、図9には図示していないが、自己診断回路208の診断の結果、診断結果がNGとなり、診断結果フィールドにNGが記載される場合も存在する。このような場合も、他ドメインは診断結果フィールドにNGと記載されているドメインを障害ドメインとして検出する。図10は、起動処理を示すフローチャートである。システム100は、電源投入されるステップS1001と、マスタドメイン、スレーブドメイン順位1~スレーブドメイン順位nをブート開始するステップS1002~ステップS1004。以降、マスタドメインがステップS1005~ステップS1009を実行し、スレーブドメイン順位1がステップS1010~ステップS1014を実行し、スレーブドメイン順位nがステップS1015~ステップS1019を実行する。なお、スレーブドメイン順位nによるステップS1015~ステップS1019の処理は、ステップS1010~ステップS1014と等しいため、説明を省略する。マスタドメインは、仮想共有メモリ空間414を初期化するステップS1005。初期化後、マスタドメインは、アドレスのオフセット値を通知するステップS1006。通知後、マスタドメインは、メモリ109の物理アドレスからのオフセット値で設定される論理アドレスにメモリ109を割り当てるステップS1007。割り当て後、マスタドメインは、プロセス管理部408をマスタモードで起動しステップS1008、さらに、マスタ機構スレッド402を起動しステップS1009、起動処理を終了する。マスタドメインは、起動処理終了後、運用時処理に遷移する。また、スレーブドメイン順位1は、オフセット値の通知を受け付けたか否かを判断するステップS1010。オフセット値の通知を受け付けていない場合ステップS1010:No、スレーブドメイン順位1は、再度ステップS1010の処理を実行する。オフセット値の通知を受け付けた場合ステップS1010:Yes、スレーブドメイン順位1は、メモリ109の物理アドレスからのオフセット値で設定される論理アドレスにメモリ109を割り当てるステップS1011。割り当て後、スレーブドメイン順位1は、プロセス管理部408をスレーブモードで起動するステップS1012。続けて、スレーブドメイン順位1は、仮想マスタ機構スレッド406を起動しステップS1013、さらに、ローカルマスタ機構スレッド407を起動しステップS1014、起動処理を終了する。スレーブドメイン順位1は、起動処理終了後、運用時処理に遷移する。起動処理が終了した、マスタドメイン、スレーブドメインは、運用時処理に遷移する。図11、図12では、マスタドメイン、スレーブドメインの運用時処理を説明する。マスタドメインは、運用時処理をマスタ機構スレッド402による機能によって実行する。同様に、スレーブドメインは、運用時処理をローカルマスタ機構スレッド407、仮想マスタ機構スレッド406による機能によって実行する。また、ステップS1103、ステップS1104、ステップS1109、ステップS1110の処理は、スレーブドメイン順位1~スレーブドメイン順位nのうち、いずれかのスレーブドメインが実行する。図11では、説明の簡略化のため、スレーブドメイン順位1が実行すると仮定して説明を行う。なお、図12で示すステップS1201、ステップS1204、ステップS1205の処理は、スレーブドメイン順位1~スレーブドメイン順位n全てのスレーブドメインが実行する。図11は、マスタドメイン、スレーブドメインの運用時処理を示すフローチャートその1である。マスタ機構スレッド402は、他ドメインへのメモリアクセスが発生したか否かを判断するステップS1101。他ドメインへのメモリアクセスが発生した場合ステップS1101:Yes、マスタ機構スレッド402は、メモリ管理部409により、他ドメインのメモリ109へのアクセス要求を通知するステップS1102。ステップS1103、ステップS1104では、他ドメインがスレーブドメイン順位1である場合を想定する。ローカルマスタ機構スレッド4071は、自ドメインへのメモリアクセス要求を受け付けたか否かを判断するステップS1103。メモリアクセス要求を受け付けた場合ステップS1103:Yes、ローカルマスタ機構スレッド4071は、メモリアクセス応答を行いステップS1104、要求元に応答の結果をマスタ機構スレッド402に送信する。応答の結果を送信後、またはメモリアクセス要求を受け付けていない場合ステップS1103:No、ローカルマスタ機構スレッド4071は、ステップS1109の処理に移行する。アクセスに対する応答受信後、または他ドメインへのメモリアクセスが発生していない場合ステップS1101:No、マスタ機構スレッド402は、ユーザの操作を受け付けたかを判断するステップS1105。操作を受け付けた場合ステップS1105:Yes、マスタ機構スレッド402は、ユーザの操作受付処理を実行するステップS1106。なお、具体的なユーザの操作受付処理とは、たとえば、キーボード106の操作によってGUI上で選択されたアプリの起動処理、またはアプリの終了処理等を実行する。操作受付処理を実行後、マスタ機構スレッド402は、ユーザの操作によってスレッド生成要求が発生したか否かを判断するステップS1107。スレッド生成要求が発生した場合ステップS1107:Yes、マスタ機構スレッド402は、スケジューラ405により、いずれかのスレーブドメインへスレッド生成要求を通知するステップS1108。なお、スケジューラ405によるドメインの選択方法は、たとえば、スレーブドメイン順位1~スレーブドメイン順位n内のCPU204のうち、最も負荷の低いCPUを含むドメインであってもよい。図11では、スレーブドメイン順位1に通知した場合を想定する。ローカルマスタ機構スレッド4071は、自ドメインへのスレッド生成要求を受け付けたか否かを判断するステップS1109。スレッド生成要求を受け付けた場合ステップS1109:Yes、ローカルマスタ機構スレッド4071は、スレッド生成処理を行うステップS1110。生成終了後、またはスレッド生成要求を受け付けていない場合ステップS1109:No、ローカルマスタ機構スレッド4071は、図12で示すステップS1204に移行する。スレッド生成要求通知後か、スレッド生成要求が発生していない場合ステップS1107:Noか、または操作を受け付けていない場合ステップS1105:No、マスタ機構スレッド402は、ステップS1201の処理に移行する。図12は、マスタドメイン、スレーブドメインの運用時処理を示すフローチャートその2である。マスタ機構スレッド402、仮想マスタ機構スレッド4061~仮想マスタ機構スレッド406nは、マスタコンテキスト転送処理を実行するステップS1201。マスタコンテキスト転送処理の詳細は、図13、図14にて後述する。処理終了後、マスタ機構スレッド402は、所定周期が経過したかを判断するステップS1202。所定周期が経過した場合ステップS1202:Yes、マスタ機構スレッド402は、ハードチェックスレッド処理マスタを実行するステップS1203。ハードチェックスレッド処理マスタの詳細は、図15にて後述する。処理終了後、または所定周期が経過していない場合ステップS1202:No、マスタ機構スレッド402は、ステップS1101の処理に移行する。仮想マスタ機構スレッド4061~仮想マスタ機構スレッド406nは、マスタコンテキスト転送処理の終了後、再びステップS1201の処理を実行する。また、ローカルマスタ機構スレッド4071~ローカルマスタ機構スレッド407nは、所定周期が経過したか否かを判断するステップS1204。所定周期が経過した場合ステップS1204:Yes、ローカルマスタ機構スレッド4071~ローカルマスタ機構スレッド407nは、ハードチェックスレッド処理スレーブを実行するステップS1205。処理終了後、または所定周期が経過していない場合ステップS1204:No、ローカルマスタ機構スレッド4071~ローカルマスタ機構スレッド407nは、ステップS1103の処理に移行する。図13、図14では、マスタコンテキスト転送処理の説明を行う。システム100が実行するマスタコンテキスト転送処理は、図13に示すマスタコンテキスト転送処理1か、または図14に示すマスタコンテキスト転送処理2のいずれか一方の処理が適用される。図13は、マスタコンテキスト転送処理1を示すフローチャートである。マスタ機構スレッド402は、マスタコンテキスト301に対する書込イベントが発生したかを判断するステップS1301。書込イベントが発生した場合ステップS1301:Yes、マスタ機構スレッド402は、メモリ更新要求を仮想マスタ機構スレッド4061~仮想マスタ機構スレッド406nに通知するステップS1302。通知後、マスタ機構スレッド402は、バリア同期を発行し、メモリロックするステップS1303。なお、バリア同期を行ったマスタ機構スレッド402は、同一のバリア同期グループとなる仮想マスタ機構スレッド4061~仮想マスタ機構スレッド406nがバリア同期を実行するまで待機する。具体的に、マスタ機構スレッド402は、仮想マスタ機構スレッド4061がステップS1305の処理を実行し、かつ、仮想マスタ機構スレッド406nがステップS1307を実行するまで待機する。続けて、仮想マスタ機構スレッド4061は、メモリ更新要求を受け付けたか否かを判断するステップS1304。メモリ更新要求を受け付けていない場合ステップS1304:No、仮想マスタ機構スレッド4061は、再びステップS1304の処理を実行する。メモリ更新要求を受け付けている場合ステップS1304:Yes、仮想マスタ機構スレッド4061は、バリア同期を発行し、メモリロックするステップS1305。同様に、仮想マスタ機構スレッド406nも、ステップS1306、ステップS1307を実行する。なお、ステップS1306、ステップS1307の処理は、ステップS1304、ステップS1305の処理と等しいため、説明を省略する。マスタ機構スレッド402、仮想マスタ機構スレッド4061~仮想マスタ機構スレッド406n全てがバリア同期を発行した場合、マスタ機構スレッド402は、更新されたマスタコンテキストデータを転送するステップS1308。転送先は、仮想マスタ機構スレッド4061~仮想マスタ機構スレッド406nとなる。転送後、マスタ機構スレッド402は、メモリアンロックし、バリア同期を発行するステップS1309。続けて、仮想マスタ機構スレッド4061は、受信したマスタコンテキストデータをミラーリングマスタコンテキスト3021に格納しステップS1310、格納後、メモリアンロックし、バリア同期を発行するステップS1311。同様に、仮想マスタ機構スレッド406nは、受信したマスタコンテキストデータをミラーリングマスタコンテキスト302nに格納しステップS1312、格納後、メモリアンロックし、バリア同期を発行するステップS1313。マスタ機構スレッド402、仮想マスタ機構スレッド4061~n全てがバリア同期を発行した場合、マスタ機構スレッド402、仮想マスタ機構スレッド4061~仮想マスタ機構スレッド406nは、マスタコンテキスト転送処理1を終了する。また、書込イベントが発生していない場合ステップS1301:No、マスタ機構スレッド402は、マスタコンテキスト転送処理1を終了する。このように、マスタコンテキスト転送処理1は、マスタコンテキスト301内の同期部分の転送領域を更新箇所に絞ることで、データ転送量を抑えることを実現している。なお、マスタコンテキスト転送処理1は、メモリロック期間が発生するため、バス110の転送速度が高速であることが好ましい。図14は、マスタコンテキスト転送処理2を示すフローチャートである。なお、図14の説明において、仮想マスタ機構スレッド4061~仮想マスタ機構スレッド406nによって実行されるステップS1403~ステップS1405の処理は同一である。したがって、図14の説明では、仮想マスタ機構スレッド4061の実行例を想定して説明する。マスタ機構スレッド402は、マスタコンテキスト301に対する書込イベントが発生したか否かを判断するステップS1401。書込イベントが発生した場合ステップS1401:Yes、マスタ機構スレッド402は、マスタコンテキスト301を更新するステップS1402。更新後、または書込イベントが発生していない場合ステップS1401:No、マスタ機構スレッド402は、マスタコンテキスト転送処理2を終了する。また、仮想マスタ機構スレッド4061は、マスタコンテキスト301の記憶領域に、ブレークポイントを設定するステップS1403。なお、ステップS1403で設定するブレークポイントは、ライトアクセスに反応するブレークポイントであることが好ましい。また、ブレークポイントの設定後、仮想マスタ機構スレッド4061は、ブレークポイントに対してライトアクセスが発生したか否か判断するステップS1404。ライトアクセスが発生していない場合ステップS1404:No、仮想マスタ機構スレッド4061は、再びステップS1404の処理に移行する。ライトアクセスが発生した場合ステップS1404:Yes、仮想マスタ機構スレッド4061は、ライトアクセスが発生した転送領域アドレスと更新されたマスタコンテキストデータを引数として、コンテキストデータ転送スレッドを生成し起動するステップS1405。起動後、仮想マスタ機構スレッド4061は、マスタコンテキスト転送処理2を終了する。なお、コンテキストデータ転送スレッドは、ステップS1405が実行されるたびに新たに生成される。また、コンテキストデータ転送スレッドは各ドメインで個別に生成される。以下の説明では、仮想マスタ機構スレッド4061が属するスレーブドメインで起動されたコンテキストデータ転送スレッドであることを想定して説明を行う。新たに起動されたコンテキストデータ転送スレッドは、自身のスレッドIDと、転送領域アドレスを、転送領域管理テーブルに格納するステップS1406。なお、転送領域管理テーブルは、スレッドIDフィールドと、転送領域アドレスフィールドを含むテーブルである。格納後、コンテキストデータ転送スレッドは、転送領域アドレスが一致する既存のコンテキストデータ転送スレッドが存在するか否かを判断するステップS1407。既存のコンテキストデータ転送スレッドが存在する場合ステップS1407:Yes、コンテキストデータ転送スレッドは、既存のコンテキストデータ転送スレッドの終了通知を発行するステップS1408。具体的な発行方法としては、コンテキストデータ転送スレッドは、OS等が提供しているAPI群のうちスレッドを終了するAPIを、転送領域管理テーブルのスレッドIDを引数として実行する。既存のコンテキストデータ転送スレッドが存在しない場合ステップS1407:No、コンテキストデータ転送スレッドは、受信したマスタコンテキストデータをミラーリングマスタコンテキスト3021に格納するステップS1409。格納後、コンテキストデータ転送スレッドは、転送領域管理テーブルから自身のスレッドIDが設定されたレコードを削除しステップS1410、スレッド実行を終了する。このように、マスタコンテキスト転送処理2は、バス110の転送速度が遅く、頻繁にステータステーブル303が更新される場合でも対応可能である。具体的に、マスタコンテキスト転送処理2を適用したシステム100は、受信したマスタコンテキストデータをミラーリングマスタコンテキスト3021に格納する前に、マスタコンテキストが書き換わってもよい。図15は、ハードチェックスレッドマスタの処理を示すフローチャートである。図15では、マスタドメインで実行されるハードチェックスレッドの処理を示す。ハードチェックスレッドは、障害ドメイン検出処理を実行するステップS1501。障害ドメイン検出処理の詳細は、図17にて後述する。処理後、ハードチェックスレッドは、障害ドメインが検出されたか否かを判断するステップS1502。障害ドメインが検出された場合ステップS1502:Yes、ハードチェックスレッドは、障害ドメインのメモリ109に割り当てた仮想メモリ空間解放を設定するステップS1503。続けて、ハードチェックスレッドは、障害ドメインのメモリ109への書き込み禁止を設定しステップS1504、さらに障害ドメインへのスレッド生成禁止を設定しステップS1505、スレッド実行を終了する。なお、障害ドメインが複数検出される場合も存在する。この場合、ハードチェックスレッドは、検出された全ての障害ドメインに対して、ステップS1503~ステップS1505の処理を実行する。また、障害ドメインが検出されなかった場合ステップS1502:No、ハードチェックスレッドは、スレッド実行を終了する。図16は、ハードチェックスレッドスレーブ処理を示すフローチャートである。図16では、スレーブドメイン順位1~スレーブドメイン順位nで実行されるハードチェックスレッドの処理を示す。ハードチェックスレッドは、障害ドメイン検出処理を実行するステップS1601。障害ドメイン検出処理の詳細は、図17にて後述する。処理後、ハードチェックスレッドは、障害ドメインが検出されたか否かを判断するステップS1602。障害ドメインが検出された場合ステップS1602:Yes、ハードチェックスレッドは、マスタドメインがバス110を経由して通信可能か否かを判断するステップS1603。なお、通信可能か否かの判断方法として、ハードチェックスレッドは、100プロセッサ間通信であるIPCInterProcessorCommunication等のAPIを用いて判断することができる。マスタドメインが通信可能でない場合ステップS1603:No、ハードチェックスレッドは、自ドメインのDBB207をアクティベートしステップS1604、マスタドメインのDBB207に通信発信するステップS1605。なお、各ドメインのDBB207は、それぞれ固有のIDを有しており、固有のIDを用いて発信することで、システム100内の他のDBB207に発信することができる。発信後、ハードチェックスレッドは、マスタドメインから応答があったか否かを判断するステップS1606。マスタドメインから応答があった場合ステップS1606:Yes、ハードチェックスレッドは、自ドメインをシャットダウンするステップS1607。ステップS1607の処理後、自ドメインをシャットダウンするため、ハードチェックスレッドは、スレッド実行を終了する。なお、ステップS1606:Yesとなった場合とは、マスタドメインと物理的に切断されてしまったケースである。マスタドメインから応答がない場合ステップS1606:No、ハードチェックスレッドは、自ドメインが最高位の生存ドメインか否かを判断するステップS1608。自ドメインが最高位の生存ドメインである場合ステップS1608:Yes、ハードチェックスレッドは、仮想マスタ機構スレッド406を終了させるステップS1609。なお、ステップS1608:Yesとなった場合とは、マスタドメインが障害ドメインとなり、自ドメインがマスタドメインの代替となるケースである。続けて、ハードチェックスレッドは、ローカルマスタ機構スレッド407にミラーリングマスタコンテキスト302を括り付けるステップS1610。具体的に、ハードチェックスレッドは、ローカルマスタ機構スレッド407がアクセスするデータを、ローカルマスタ機構スレッド407が出力していたログからミラーリングマスタコンテキスト302へと切り替える。括り付け後、ハードチェックスレッドは、ローカルマスタ機構スレッド407を新たなマスタ機構スレッド402として起動するステップS1611。なお、新たなマスタ機構スレッド402は、起動処理として、ステップS1005の処理から実行を開始する。起動後、ハードチェックスレッドは、スレッド実行を終了する。自ドメインが最高位の生存ドメインでない場合ステップS1608:No、ハードチェックスレッドは、スレッド実行を終了する。なお、ステップS1608:Noとなった場合とは、マスタドメインが障害ドメインとなり、他のスレーブドメインがマスタドメインとなり、自ドメインは引き続きスレーブドメインとして動作するケースである。マスタドメインが通信可能である場合ステップS1603:Yes、ハードチェックスレッドは、スレッド実行を終了する。ステップS1603:Yesとなった場合とは、スレーブドメインのいずれかが障害ドメインとなったケースである。障害ドメインが検出されていない場合ステップS1602:No、ハードチェックスレッドは、スレッド実行を終了する。図17は、障害ドメイン検出処理を示すフローチャートである。障害ドメイン検出処理は、マスタドメイン、スレーブドメイン順位1~スレーブドメイン順位nが実行するハードチェックスレッドにて実行される。ハードチェックスレッドは、自ドメイン内の自己診断回路208を起動し、診断実行させるステップS1701。続けて、ハードチェックスレッドは、ステータステーブル3030のうち、ドメイン種別フィールドが自ドメインであるレコードを選択するステップS1702。選択後、ハードチェックスレッドは、自己診断回路208の結果を、選択したレコードの診断結果フィールドに書き込むステップS1703。書き込み後、ハードチェックスレッドは、自ドメイン内のステータステーブル303のレコードのうち、診断結果がNGとなるレコードが存在するかを判断するステップS1704。NGとなるレコードが存在する場合ステップS1704:Yes、ハードチェックスレッドは、存在したレコードに対するドメインを障害ドメインとして検出するステップS1705。障害ドメインを検出後、またはNGとなるレコードが存在しない場合ステップS1704:No、ハードチェックスレッドは、診断時刻フィールドが所定周期以上更新されていないレコードが存在するか否かを判断するステップS1706。所定周期以上更新されていないレコードが存在しない場合ステップS1706:No、ハードチェックスレッドは、障害ドメイン検出処理を終了する。または所定周期以上更新されていないレコードが存在する場合ステップS1706:Yes、ハードチェックスレッドは、存在したレコードに対するドメインを障害ドメインとして検出するステップS1707。出力後、ハードチェックスレッドは、障害ドメイン検出処理を終了する。以上説明したように、プロセッサ管理方法によれば、安価なSoCとメモリを含むドメイン群でシステムを構築し、各ドメインのメモリにオフセット値を設定してメモリ空間を連結する。これにより、プロセッサ管理方法を適用したシステムは、各ドメインは広いメモリ空間を利用でき、安価で高性能なシステムをユーザに提供できる。メモリ空間が広くなることで、システムは複数のアプリを同時に実行することが容易になる。また、プロセッサ管理方法によれば、更新されたコンテキストデータをマスタドメインからスレーブドメインに転送し、スレーブドメイン内のメモリに格納してもよい。これにより、マスタドメインに障害が発生した場合、スレーブドメインは、自身のメモリ内にコンテキストデータを用いて、システムを続行することができる。さらに、システムは、更新箇所に絞れるため、転送量を抑えることができる。また、プロセッサ管理方法によれば、マスタドメイン内に設定したブレークポイントに対するライトアクセスを検出したときに、ブレークポイントに対する更新されたコンテキストデータをスレーブドメイン内のメモリに格納してもよい。これにより、マスタドメインに障害が発生した場合、スレーブドメインは、自身のメモリ内にコンテキストデータを用いて、システムを続行することができる。さらに、システムの形態が、ドメイン間のバスが遅く、頻繁にマスタコンテキストが変更になる場合でも対応することができる。また、プロセッサ管理方法によれば、ブレークポイントに対するデータをスレーブドメイン内のメモリに格納する第1スレッドが実行完了する前に、同一のアドレスに対してメモリに格納する第2スレッドを検出した場合、第1スレッドの処理を中止してもよい。これにより、ブレークポイントを利用した更新方法の場合について、余計な処理を行わずに済ませることができる。また、プロセッサ管理方法によれば、他ドメインの障害を検出してもよい。これにより、マスタドメインの障害、または、ドメイン間のバスに障害が発生したことを検出することができる。また、プロセッサ管理方法によれば、自ドメインの診断結果と診断時刻を、マスタコンテキストに書き込み、転送された自ドメイン内のミラーリングされたマスタコンテキスト内の診断結果と診断時刻に基づいて、他ドメインの障害を検出してもよい。これにより、ドメインの診断回数を最小限に抑え、他ドメインの診断結果を参照することができる。また、プロセッサ管理方法によれば、障害が検出されるとき、マスタドメインは障害となったドメインに対して、一部の処理を停止してもよい。具体的には、マスタドメインは、該当ドメインのメモリに割り当てたメモリ空間解放を設定する。これにより、システムは、障害ドメインのメモリが新たに使用されることを防止することができる。また、マスタドメインは、該当ドメインのメモリへの書き込み禁止を設定する。これにより、システムは、該当ドメイン内で暴走中のアプリによるメモリ破壊、または、自動リセットによるメモリクリアを回避できる。また、マスタドメインは、該当ドメインへのスレッド生成禁止を設定する。これにより、システムは、アプリを正常に実行できないドメインを避けてアプリを割り当てることができる。また、プロセッサ管理方法によれば、障害が検出されるときに、ローカルマスタ機構がマスタ機構に通知して障害がマスタ機構の障害であるか否かを判断する。さらに、プロセッサ管理方法によれば、マスタ機構の障害であるときに、ローカルマスタ機構が複数のプロセッサを管理する状態にあるか否かを判断してもよい。これにより、プロセッサ管理方法を適用したシステムは、マスタドメインの障害時に、スレーブドメインの中から、次にドメインとなるドメインを判断することができる。また、プロセッサ管理方法によれば、マスタドメインへの通知に対して応答がない場合、マスタドメインのDBBへ発信してマスタ機構と切断された状態か否かを判断し、切断された状態であれば、自身のドメインの動作を終了してもよい。これにより、マスタドメインが動作しているにも関わらず、障害により分離状態となってしまった場合、分離されたドメインが動作し続けることがなくなり、無駄な消費電力を削減することができる。また、プロセッサ管理方法によれば、複数のプロセッサを管理する状態にあると判断されるとき、スレーブドメインを新たなマスタドメインに設定してもよい。これにより、プロセッサ管理方法を適用したシステムは、障害発生時に対して、新たなマスタドメインの実行により機能や性能の制限を最小限にしつつ、継続的に利用することができる。また、これらの動作により、プロセッサ管理方法を適用したシステムを使用するユーザは、障害発生したドメインを含むユニットを修理サービスなどに預けつつ、一方で、残余のドメインにより継続的にシステムを利用することができる。なお、本実施の形態で説明したプロセッサ管理方法は、予め用意されたプログラムをパーソナルコンピュータやワークステーション、携帯電話等のコンピュータで実行することにより実現することができる。本プロセッサ管理方法を実行するプログラムは、ハードディスク、フレキシブルディスク、CD-ROM、MO、DVD、SDカード等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本プロセッサ管理方法を実行するプログラムは、インターネット等のネットワークを介して配布してもよい。