(57)【要約】【課題】マルチプロセッサシステムにおける排他処理によるオーバーヘッドを削減し、汎用のＯＳを用いないで専用の制御プログラムを用いて、Ｉ／Ｏ制御の結果生じるデータを端末の画面に出力する。【解決手段】  複数のプロセッサと、複数のプロセッサによって共有されるメモリと、Ｉ／Ｏを有し、汎用のＯＳの動作の下、複数のプロセッサで複数の第１のプログラムを実行してＩ／Ｏ制御することができるマルチプロセッサシステムにおいて、複数の第１のプログラムのそれぞれに対応してメモリに確保された、第１のプログラムの処理によって生じるデータを格納する複数のバッファと、汎用ＯＳが動作しない状況下で、いずれかのプロセッサで実行される第２のプログラムを有し、第２のプログラムの実行により、第１のプログラムの処理によって生じた複数のバッファに格納されたデータを選択して、前記端末の画面に出力する。【選択図】  図２
2012226450.tif 000002
【特許請求の範囲】
【請求項１】
複数のプロセッサと、複数のプロセッサによって共有されるメモリと、Ｉ／Ｏを有し、汎用のＯＳの動作の下、該複数のプロセッサで複数の第１のプログラムを実行してＩ／Ｏ制御することができるマルチプロセッサシステムであって、
該複数の第１のプログラムのそれぞれに対応して該メモリに確保された、該第１のプログラムの処理によって生じるデータを格納する複数のバッファと、
前記汎用ＯＳが動作しない状況下で、いずれかのプロセッサで実行される第２のプログラムを有し、
該第２のプログラムの実行により、該第１のプログラムの処理によって生じた前記複数のバッファに格納されたデータを選択して、前記端末の画面に出力することを特徴とするマルチプロセッサシステム。
【請求項２】
前記第２のプログラムは、前記複数のバッファに格納されているデータを選択して、シリアルポートを介して前記端末の画面に表示出力し、その後、前記第３領域内のアドレスを更新すること
を特徴とする請求項１記載のマルチプロセッサシステム。
【請求項３】
該メモリに確保された、データが格納されている該バッファのアドレスを、該第１のプログラムの識別情報に対応付けて順に格納するアドレスリストを保持するアドレスリスト格納領域（第１領域）と、
該メモリに確保された、該アドレスリスト格納領域の未使用領域の先頭アドレスを格納する未使用先頭アドレス格納領域（第２領域）と、
該メモリに確保された、該アドレスリスト格納領域の最後に出力したデータのアドレスを格納する領域（第３領域）を有し、
前記第１のプログラムの実行において、ロック処理を行って前記第２領域からアドレスを取得し、その後、該アドレスをインクリメントしてアンロック処理を行い、該第２の領域から取得したアドレスを基に、未使用領域の先頭アドレスを求めて、該第１領域の該先頭アドレスに、前記バッファの格納先のアドレスとプログラム識別情報を格納し、
前記第２のプログラムの実行において、該第１領域に該先頭アドレスが追加されたことを監視し、該先頭アドレスに格納された該プログラム識別情報に対応するデータアドレスが指定する前記バッファからデータを読み出して、該端末の画面に表示出力し、その後、前記第３領域内のアドレスを更新することを特徴とする請求項１乃至３のいずれかの項記載のマルチプロセッサシステム。
【請求項４】
複数のプロセッサと、複数のプロセッサによって共有されるメモリと、Ｉ／Ｏを有し、汎用のＯＳの動作の下、該複数のプロセッサで複数の第１のプログラムを実行してＩ／Ｏ制御することができるマルチプロセッサシステムにおける入出力制御方法であって、
該複数の第１のプログラムのそれぞれに対応して該メモリに確保された複数のバッファに、該第１のプログラムの処理によって生じるデータを格納するステップと、
前記汎用ＯＳが動作しない状況下で、いずれかのプロセッサで実行される第２のプログラム実行するステップと、
該第２のプログラムの実行により、該第１のプログラムの処理によって生じた前記複数のバッファに格納されたデータを選択して、前記端末の画面に出力するステップと、
を有することを特徴とする入出力制御方法。
【請求項５】
該メモリに確保された、データが格納されている該バッファのアドレスを、該第１のプログラムの識別情報に対応付けて順に格納するアドレスリストをアドレスリスト格納領域（第１領域）に保持するステップと、
該メモリに確保された、該アドレスリスト格納領域の未使用領域の先頭アドレスを未使用先頭アドレス格納領域（第２領域）に格納するステップと、
該メモリに確保された、該アドレスリスト格納領域の最後に出力したデータのアドレスを領域（第３領域）に格納するステップを有し、
前記第１のプログラムの実行において、ロック処理を行って前記第２領域からアドレスを取得し、その後、該アドレスをインクリメントしてアンロック処理を行い、該第２の領域から取得したアドレスを基に、未使用領域の先頭アドレスを求めて、該第１領域の該先頭アドレスに、前記バッファの格納先のアドレスとプログラム識別情報を格納し、
前記第２のプログラムの実行において、該該第１領域に該先頭アドレスが追加されたことを監視し、該先頭アドレスに格納された該プログラム識別情報に対応するデータアドレスが指定する前記バッファからデータを読み出して、該端末の画面に表示出力し、その後、前記第３領域内のアドレスを更新することを特徴とする請求項４記載の入出力制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチプロセッサシステム及び入出力制御方法に係り、特にマルチプロセッサシステムにおいて、例えばＩ／Ｏ制御の状況を画面に出力表示するＩ／Ｏ制御における排他制御に関する。
【背景技術】
【０００２】
マルチプロセッサシステムは、複数のプロセッサ、複数のストレージ装置等のＩ／Ｏ及び共有メモリを有しており、あるプロセッサが共有メモリ又はＩ／Ｏへアクセスする場合、他のプロセッサから共通メモリ等へのアクセスを禁止する排他制御を行っている。
【０００３】
共有メモリの排他制御に関して、例えば、特許文献１には、共有メモリに記憶されたデータの更新処理と参照処理の待機による遅延を低減するために、複数のブロックに分割されたブロック毎にデータを記憶する共有メモリと、複数のブロックの状態を個別に示すポインタと、ポインタを排他する排他制御手段を有し、共有メモリを排他することなく、ブロックの状態に従いブロックに記憶されたデータの更新又は参照するアクセス手段を有する記憶装置ないし情報処理装置が記載されている。特許文献２にも同様に、共有メモリの参照、更新の一方の実行中であっても、参照、更新の他方にかかる応答時間の短縮を実現可能とする排他制御方法が記載されている。
【０００４】
また、コンピュータの分野例えば複数のサーバがストレージ（記憶装置）を共有する情報処理システムにおいて、ストレージに対して負荷やエラーを発生させて試験を行う方法が知られている（特許文献３）。複数のプロセッサでＩ／Ｏを共用するマルチプロセッサシステムでは通常ＬｉｎｕｘやＭｉｃｒｏｓｏｆｔ（登録商標）等のＯＳが使用されており、ストレージ装置等のＩ／Ｏの負荷試験に際してもそのＯＳの起動の下、試験プログラムをプロセッサで実行してＩ／Ｏに擬似的な負荷やエラーを発生させて、Ｉ／Ｏの性能やハードウェアのエラーの発生状況を検証している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−１１００６３号公報
【特許文献２】特開２００６−２７７６３４号公報
【特許文献３】特開２００５−１６５５５６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１等に記載の技術は、空き共有メモリのポインタを取得する処理時に排他処理が必要となり、ここでロック処理によるオーバーヘッドが発生する。そのため、ロック時間を短縮し、オーバーヘッドを削減した共有メモリの制御が望まれる。
【０００７】
また、マルチプロセッサシステムで通常使用されているＬｉｎｕｘ等のＯＳは、通常、Ｉ／Ｏの負荷を軽減乃至吸収する機能を備えているので、試験プログラムがＩ／Ｏに擬似的な負荷を与えている場合でも、マルチプロセッサシステムのいずれのハードウェアの場所で負荷が軽減乃至吸収されているのか、分からないことがある。高性能なサーバシステムの負荷試験において、負荷の箇所が不明瞭となる状況は好ましくない。マルチプロセッサシステムにおけるＩ／Ｏの負荷試験では、汎用ＯＳの影響を無くし、ハードウェアに対する正確な負荷の状況を把握することが望まれる。
【０００８】
そこで、本発明の目的は、マルチプロセッサシステムにおける排他処理のオーバーヘッドを削減しながら、Ｉ／Ｏ制御を行うことにある。
更にまた、本発明は、汎用のＯＳを用いないで、専用の制御プログラムを用いてＩ／Ｏ制御の結果生じるデータを端末の画面に出力することにある。
【課題を解決するための手段】
【０００９】
本発明に係るマルチプロセッサシステムは、好ましくは、複数のプロセッサと、複数のプロセッサによって共有されるメモリと、Ｉ／Ｏを有し、汎用のＯＳの動作の下、該複数のプロセッサで複数の第１のプログラムを実行してＩ／Ｏ制御することができるマルチプロセッサシステムであって、
該複数の第１のプログラムのそれぞれに対応して該メモリに確保された、該第１のプログラムの処理によって生じるデータを格納する複数のバッファと、前記汎用ＯＳが動作しない状況下で、いずれかのプロセッサで実行される第２のプログラムを有し、
該第２のプログラムの実行により、該第１のプログラムの処理によって生じた前記複数のバッファに格納されたデータを選択して、前記端末の画面に出力することを特徴とするマルチプロセッサシステムとして構成される。
【００１０】
好ましい例では、前記第２のプログラムは、前記複数のバッファに格納されているデータを選択して、シリアルポートを介して前記端末の画面に表示出力し、その後、前記第３領域内のアドレスを更新する。
また、好ましい例では、該メモリに確保された、データが格納されている該バッファのアドレスを、該第１のプログラムの識別情報に対応付けて順に格納するアドレスリストを保持するアドレスリスト格納領域（第１領域）と、
該メモリに確保された、該アドレスリスト格納領域の未使用領域の先頭アドレスを格納する未使用先頭アドレス格納領域（第２領域）と、
該メモリに確保された、該アドレスリスト格納領域の最後に出力したデータのアドレスを格納する領域（第３領域）を有し、
前記第１のプログラムの実行において、ロック処理を行って前記第２領域からアドレスを取得し、その後、該アドレスをインクリメントしてアンロック処理を行い、該第２の領域から取得したアドレスを基に、未使用領域の先頭アドレスを求めて、該第１領域の該先頭アドレスに、前記バッファの格納先のアドレスとプログラム識別情報を格納し、
前記第２のプログラムの実行において、該該第１領域に該先頭アドレスが追加されたことを監視し、該先頭アドレスに格納された該プログラム識別情報に対応するデータアドレスが指定する前記バッファからデータを読み出して、該端末の画面に表示出力し、その後、前記第３領域内のアドレスを更新する。
【００１１】
本発明に係る入出力制御方法は、好ましくは、複数のプロセッサと、複数のプロセッサによって共有されるメモリと、Ｉ／Ｏを有し、汎用のＯＳの動作の下、該複数のプロセッサで複数の第１のプログラムを実行してＩ／Ｏ制御することができるマルチプロセッサシステムにおける入出力制御方法であって、
該複数の第１のプログラムのそれぞれに対応して該メモリに確保された複数のバッファに、該第１のプログラムの処理によって生じるデータを格納するステップと、
前記汎用ＯＳが動作しない状況下で、いずれかのプロセッサで実行される第２のプログラム実行するステップと、
該第２のプログラムの実行により、該第１のプログラムの処理によって生じた前記複数のバッファに格納されたデータを選択して、前記端末の画面に出力するステップと、を有することを特徴とする入出力制御方法として構成される。
【００１２】
好ましい例では、該メモリに確保された、データが格納されている該バッファのアドレスを、該第１のプログラムの識別情報に対応付けて順に格納するアドレスリストをアドレスリスト格納領域（第１領域）に保持するステップと、
該メモリに確保された、該アドレスリスト格納領域の未使用領域の先頭アドレスを未使用先頭アドレス格納領域（第２領域）に格納するステップと、
該メモリに確保された、該アドレスリスト格納領域の最後に出力したデータのアドレスを領域（第３領域）に格納するステップを有し、
前記第１のプログラムの実行において、ロック処理を行って前記第２領域からアドレスを取得し、その後、該アドレスをインクリメントしてアンロック処理を行い、該第２の領域から取得したアドレスを基に、未使用領域の先頭アドレスを求めて、該第１領域の該先頭アドレスに、前記バッファの格納先のアドレスとプログラム識別情報を格納し、
前記第２のプログラムの実行において、該第１領域に該先頭アドレスが追加されたことを監視し、該先頭アドレスに格納された該プログラム識別情報に対応するデータアドレスが指定する前記バッファからデータを読み出して、該端末の画面に表示出力し、その後、前記第３領域内のアドレスを更新する。
【発明の効果】
【００１３】
本発明によれば、マルチプロセッサシステムにおける排他処理によるオーバーヘッドを削減し、汎用のＯＳを用いないで、専用の制御プログラムを用いてＩ／Ｏの制御の結果生じるデータを端末の画面に出力することができる。
より具体的に言えば、単一画面しか使用できない環境下のマルチプロセッサシステムにおいて、既にプログラムが実行されている状況でも、他のプログラムを追加で実行したり、コマンドを入力したり、過去のデータを時系列順に表示したり、選択したプログラムのデータを表示したりすることができる。また、各プログラムが排他的にシリアルポートを使用する場合を比較して、排他処理によるオーバーヘッドを削減することができる。
【図面の簡単な説明】
【００１４】
【図１】一実施例によるマルチプロセッサシステムの構成を示す図。
【図２】一実施例における入出力制御を示すブロック図。
【図３】一実施例におけるアドレスリスト格納領域２０６の構成を示す図。
【図４】一実施例における表示するプログラムのデータを選択する制御プログラム内コマンド処理のフローチャート。
【図５】一実施例における出力選択プログラム番号リストの構成を示す図。
【図６】一実施例におけるデータ表示コマンドとその出力例を示す図。
【図７】一実施例における全プログラムの出力データの表示を行う処理動作を示すフローチャート。
【図８】一実施例における選択したプログラムのデータの表示を行う処理動作を示すフローチャート。
【図９】一実施例におけるプログラムによる処理結果の表示及びアドレスリストへの登録動作を示すフローチャート。
【発明を実施するための形態】
【００１５】
以下、図面を参照して本発明の実施例について説明する。
本実施例は、マルチプロセッサシステムにおいて、専用の制御プログラムの制御により実行中のプログラムの出力データの表示処理を行う例について示すものである。
図１は、一実施例によるマルチプロセッサシステムの構成を示す。マルチプロセッサシステムは、複数（図示では２台）の命令プロセッサ１０２を有し、それぞれの命令プロセッサ１０２は主記憶メモリ１０３を持って、相互にバスで接続して構成される。各命令プロセッサ１０２は、複数（図示では４つ）の演算処理装置（ＣＰＵ（ＣＯＲＥともいう）１０１を内蔵している。主記憶メモリ１０３には、種々のプログラムが格納され、これらのプログラムは、命令プロセッサ１０２内の各ＣＰＵ１０１でそれぞれ独立して実行される。本発明において提唱される制御プログラム（詳細は図２参照）も同様に主記憶メモリ１０３に記憶され、いずれかのＣＰＵ１０１で実行される。
【００１６】
各命令プロセッサ１０２は、共通のＩ／Ｏハブ１０４に接続され、Ｉ／Ｏハブ１０４はＩ／Ｏコントローラハブ（Controller Hub）１０５及び複数のＰＣＩＥスイッチ１１１に接続されて、これらのユニット間でデータの送受信を行う。ＰＣＩＥスイッチ １１１には、それぞれ４つのホストバスアダプタ１１２が接続され、ホストバスアダプタ１１２には、ディスク記憶装置のようなＩ／Ｏ１１３がそれぞれ接続されている。ここでは、ディスク記憶装置は論理的なユニット（ＬＵ）であり、１つ１つのＬＵがそれぞれ１つのＩ／Ｏを構成する。
Ｉ／Ｏコントローラハブ１０５は、ＢＭＣ（Baseboard Management Controller）１０７を介してサービスプロセッサ１０８が接続される。サービスプロセッサ１０８にはネットワーク１０９を介して管理端末１１０が接続される。ここで、Ｉ／Ｏコントローラハブ １０５とサービスプロセッサ１０８の間はシリアルポート接続１０６により接続されている。管理端末１１０は、入力手段及び画面表示手段を有し、管理者等の操作によって種々の管理や制御動作を行わせることができる。本例では、Ｉ／Ｏに対する負荷試験を行い、その試験結果やＩ／Ｏの処理状況や監視状況を画面に表示することができる。負荷試験の場合、命令プロセッサ１０２のあるＣＰＵ１０１に試験プログラムを実行させて、Ｉ／Ｏハブ１０４、ＰＣＩＥスイッチ１１１、ＨＢＡ１１２を介してＩ／Ｏ１１３にデータの読み書き（Ｒ／Ｗ）動作を行わせる。このＲ／Ｗ動作中に、ＣＰＵ１０１からＩ／Ｏ１１３の間のボトルネック箇所をチェックする。その試験の経過及び結果の状況は、管理端末１１０の画面に表示される。本発明では、特有の制御プログラムを用いて、Ｉ／Ｏ制御により生じる出力データを、排他的に管理端末１１０の画面に出力（表示）する制御動作を行う。
【００１７】
図２は、一実施例における入出力制御のブロックを示す。
図２において、プログラム２０２〜２０４は、例えばＩ／Ｏ（図１のＩ／Ｏハブ１０４〜Ｉ／Ｏ１１３の構成部位を含む）を負荷試験するためのプログラムであり、命令プロセッサ１０２のそれぞれ別のＣＰＵ１０１で実行される。各プログラム２０２〜２０４は、出力データを格納する自分専用の出力バッファ２０７１〜２０７３（特に区別しないときは総じて２０７という）を持っている。これらの出力バッファ２０７は主記憶メモリ１０３に確保される。いずれかの出力バッファ２０７のデータは負荷試験結果のデータであり、制御プログラム２０１の制御により、シリアル接続ポート１０６を介して管理端末１１０の画面２１０に表示される。換言すれば、汎用ＯＳの下、プログラム２０２〜２０４はそれぞれ別々のＣＰＵで実行されてＩ／Ｏ制御を並列的に行うことができるが、そのＩ／Ｏ制御の結果生じる処理データを出力する場合には、制御プログラム２０１がプログラム２０２〜２０４の処理データを排他的に順次出力するものである。
【００１８】
制御プログラム２０１による制御は本発明に特徴的な機能であり、汎用のＯＳの実行無しに、いずれかのＣＰＵ１０１で実行される。制御プログラム２０１は、出力バッファ２０７内のデータを画面に出力するときに、主記憶メモリ１０３の排他制御を行いながら、Ｉ／Ｏの負荷試験の結果を管理端末１１０の画面に表示する。制御プログラム２０１の制御に当たり、出力データが格納されている出力バッファ２０７のメモリアドレスを時系列順に格納するアドレスリスト格納領域２０６と、アドレスリスト格納領域２０６の未使用領域の先頭アドレスを指す領域２０５と、アドレスリスト格納領域２０６の最後に表示したアドレスを指す領域２１１は、共有の主記憶メモリ１０３に確保される。これらの領域２０５、２０６，２１１をアクセスする場合、制御プログラム２０１は、他からのアクセスを規制すべく排他制御（ロック、アンロック制御）を行う。
【００１９】
例えば、プログラム２０２によって処理され、出力バッファ２０７２に格納された出力データＡを画面２１０に表示する場合、プログラム２０２は、出力バッファ２０７２の格納先のアドレスとプログラム識別番号を、アドレスリスト格納領域２０６の未使用領域先頭アドレス２０５から求めた未使用領域の先頭に格納する。そしてプログラム２０２は、未使用領域先頭アドレス２０５からデータを読み込む時、その読込み前にロック処理を行い、また未使用領域先頭アドレス２０５からデータを読込んだ後にインクリメントを行い、その後にアンロック処理を行う。プログラム２０３及び２０４による処理も同様である。即ち、プログラム２０３、２０４は、出力バッファ２０７３、２０７４内のデータＢ，Ｃを格納した後、出力データのアドレスとプログラム識別番号を、アドレスリスト格納領域２０６の未使用領域先頭アドレス２０５から求めた未使用領域の先頭に格納する。プログラム２０３，２０４も同様にして、未使用領域先頭アドレス２０５からデータの読込み前にロック処理を行い、また未使用領域先頭アドレス２０５からデータを読込んだ後にインクリメントを行い、その後にアンロック処理を行う。
【００２０】
制御プログラム２０１は、アドレスリスト格納領域２０６にアドレスが追加されたか否かを未使用領域先頭アドレス２０５のポーリングによって常に監視しており、未使用領域先頭アドレス２０５が変化したことによってアドレスが追加されたことを検知すると、追加されたアドレスの指すデータ領域のデータを画面２１０に出力する。出力モードによっては、制御プログラムはプログラム識別番号も確認し、出力するデータの選別を行う。出力バッファ２０７に格納されたデータを画面に出力し終わったら、制御プログラム２０１は最後に表示したアドレスを更新し、次のプログラム識別番号のデータを出力できる状態にする。
なお、この例では、プログラム２０２〜２０４はＩ／Ｏを負荷試験するためのプログラムとしているが、これに限定されない。Ｉ／Ｏの負荷試験用プログラムに限らず、例えば、Ｉ／Ｏ制御の状況や結果を出力する必要があるＩ／Ｏ制御用のプログラムであってもよい。
【００２１】
図３は、アドレスリスト２０６´の構成を示す。
アドレスリスト格納領域２０６に記憶されるアドレスリスト２０６´は、プログラムを識別するプログラム識別番号と、出力データを格納しているアドレスを示す未使用先頭アドレスの組から構成される。
【００２２】
図４は、プログラムによる処理データを選択する制御プログラム２０１内のコマンド処理のフローチャートである。
制御プログラム２０１は、コマンド文字列を取得すると（Ｓ４０１）、データ表示コマンドであるか判定する（Ｓ４０２）。コマンド文字列には、出力バッファ２０７内のデータを画面２１０に表示するためのデータ表示コマンドの他に、例えばＰＣＩＥ接続のデバイスを選択するためのＰＣＩＥコマンドや、ＨＢＡを起動するドライブコマンド等のコマンド（他コマンドという）がある。
上記コマンドの判定の結果、データ表示コマンドでなければ他のコマンド処理へ分岐し（Ｓ４０７）、データ表示コマンドであれば、データの表示対象プログラムを選択するオプションの有無を確認する（Ｓ４０３）。表示対象プログラムの選択オプションが無い場合は、表示処理へ分岐し（Ｓ４０６）、出力選択プログラム番号が指定されている場合は出力選択プログラム番号リスト５０１の作成を行った後（Ｓ４０４）、表示処理へ分岐する（Ｓ４０５）。ここで、表示処理（Ｓ４０６）は、図７の全プログラムの出力データの表示を行う処理（全データ（オプション無し）表示処理Ｉ）を示し、表示処理（Ｓ４０５）は、図８の選択したプログラムの出力データの表示を行う処理（選択的データ（選択オプション有り）表示処理II）を示す。
【００２３】
図５は、出力選択プログラム番号リスト５０１の構成を示す。
出力選択プログラム番号リスト５０１には、図４に示したコマンド文字列取得（Ｓ４０１）で取得されデータ表示コマンドに従って作成されたプログラム識別番号が、リスト構造で順次格納される。
【００２４】
図６は、表示画面２１０に出力されるデータ表示コマンドの出力例を示す。
コマンド例６０１は、表示対象プログラム番号指定コマンドでプログラム番号Ａを指定した場合を示し、プログラムＡ（２０２）の出力したデータＡ１を表示し、最後に表示したアドレス２１１を更新する。
コマンド例６０２は、表示対象プログラム番号指定コマンドでプログラム番号Ｂ及びＣを指定した場合を示し、プログラムＢ（２０３）とプログラムＣ（２０４）の出力したデータＢ１及びデータＣ１を表示し、最後に表示したアドレス２１１を更新する。
コマンド例６０３は、表示対象プログラム番号指定コマンドで各プログラムの表示を出力し続ける場合を示し、コマンド例６０２で表示されたデータ以降に追加された、データＡ２、データＢ２、データＣ２を出力し、入力モードへの切替えＳ７０５及びＳ８０７が検出されるまで新たに追加されるデータを継続的に表示し続ける。
【００２５】
次に、図７のフローチャートを参照して、全プログラムの出力データの表示を行う（即ちオプション選択無し）処理動作について説明する。
制御プログラム２０１は、まず、最後に表示したデータアドレス２１１を取得する（Ｓ７０１）。その後、出力データ格納先アドレスリストの未使用領域先頭アドレスと、最終表示出力データ格納先アドレス２１１とを比較する（Ｓ７０２）。その結果、終端に達していれば入力モードへの切り替え判定（Ｓ７０５）へ分岐する。一方、終端に達していなければ、アドレスリスト２０６´の出力データ格納先アドレスからデータを順次読み出して、図６に示すようなデータ表示を表示画面２１０に行い（Ｓ７０３）、表示したデータアドレスを最後に表示したデータのアドレス２１１として保存する（Ｓ７０４）。
【００２６】
入力モードの切替判定（Ｓ７０５）では、データ表示の処理中に管理端末１１０からキー入力が発生して入力モード切替えが指定されたかを判定する。判定の結果、入力モード切替えが指定された場合、入力処理へ分岐する（Ｓ７０６）。一方、入力モード切替えが指定されていなければ、データアドレスリスト終端判定（Ｓ７０２）へ分岐する。入力処理（Ｓ７０６）は、図４の表示するプログラムのデータを選択する制御プログラム内コマンド処理を行う。
【００２７】
次に、図８を参照して、選択したプログラムの出力データの表示を行う（即ちオプション選択有り）処理動作について説明する。
制御プログラム２０１は、まず、最後に表示したデータアドレス及び出力選択プログラム番号を取得する（Ｓ８０１）。その後、出力データ格納先アドレスリスト未使用領域先頭と最終表示出力データ格納先アドレスと比較する（Ｓ８０２）。その結果、終端に達していれば入力モードへの切り替え判定（Ｓ８０７）へ分岐する。一方、終端に達していなければデータアドレスの出力元プログラム識別番号を取得する（Ｓ８０３）。
次に、出力すべきデータかを出力選択プログラム番号リストと比較することで、出力判定を行う（Ｓ８０４）。その結果、出力選択プログラム番号と出力元プログラム識別番号が一致していなければ、入力モードへの切り替え判定（Ｓ８０７）へ分岐する。一方、両者が一致していれば、図６に示すようなデータ表示を表示画面２１０に行い（Ｓ８０５）、表示したデータアドレスを最後に表示したデータのアドレスとして保存する（Ｓ８０６）。
【００２８】
入力モードへの切替判定（Ｓ８０７）では、データ表示の処理中にキー入力が発生して入力モード切替えが指定されていた場合、入力処理（Ｓ８０８）へ分岐する。一方、データ表示の処理中にキー入力が発生していなければ、データアドレスリスト終端判定（Ｓ８０２）へ分岐する。入力処理（Ｓ８０８）は、図４の表示するプログラムのデータを選択する制御プログラム内コマンド処理を示す。
【００２９】
次に、図９を参照して、プログラムＡ〜Ｃによる出力データの処理及びアドレスリスト２０６´への登録処理について説明する。
プログラムＡ〜Ｃの処理結果データを表示出力する処理に関して、例えばプログラムＡ（２０２）は、まず出力バッファ終端アドレスの取得と更新を行い（Ｓ９０１）、出力データを対応するデータバッファ２０７の終端へ書込む（Ｓ９０２）。次に、未使用領域先頭アドレス２０５を、他のプログラム２０３又は２０４が同時に参照及び更新してしまうことを防ぐために、プログラムＡ（２０２）は、ロック取得処理（排他制御）を行う（Ｓ９０３）。そして、ロックの取得ができたかを確認し（Ｓ９０４）、その結果、ロックが取得できていなかった場合はロック取得処理（Ｓ９０３）へ分岐してロックの再取得を試みる。一方、ロックが取得できていた場合は、未使用領域先頭アドレス２０５を取得する（Ｓ９０５）。次に、アドレスリスト２０６´に自プログラムＡの識別番号とデータバッファアドレスを追加格納する（Ｓ９０６）。そして、データバッファ終端アドレスをインクリメントして（Ｓ９０７）、データアドレスリスト書込みのためのロック開放処理を行う（Ｓ９０８）。
【符号の説明】
【００３０】
１０１：ＣＰＵ  １０２：命令プロセッサ  １０３：主記憶メモリ  １０４：Ｉ／Ｏハブ  １０５：Ｉ／Ｏコントローラハブ  １０６：シリアル接続ポート  １０７：ＢＭＣ（Baseboard Management Controller）  １０８：サービスプロセッサ  １０９：ネットワーク  １１０：管理端末  １１１：ＰＣＩＥスイッチ  １１２：ホストバスアダプタ  １１３：Ｉ／Ｏ  ２０１：制御プログラム  ２０２〜２０４：試験プログラム  ２０５：出力データ格納先アドレスリスト未使用領域先頭アドレス格納領域  ２０６：アドレスリスト格納領域  ２０６´：アドレスリスト  ２０７２〜２０７３、２０７：出力バッファ  ２１０：表示画面  ２１１：最終表示出力データ格納先アドレス  ５０１：出力選択プログラム番号リスト
【図１】
2012226450.tif 000003
【図２】
2012226450.tif 000004
【図３】
2012226450.tif 000005
【図４】
2012226450.tif 000006
【図５】
2012226450.tif 000007
【図６】
2012226450.tif 000008
【図７】
2012226450.tif 000009
【図８】
2012226450.tif 000010
【図９】
2012226450.tif 000011