"複数のプロセッサと、複数のプロセッサによって共有されるメモリと、I/Oを有し、汎用のOSの動作の下、該複数のプロセッサで複数の第1のプログラムを実行してI/O制御することができるマルチプロセッサシステムであって、該複数の第1のプログラムのそれぞれに対応して該メモリに確保された、該第1のプログラムの処理によって生じるデータを格納する複数のバッファと、前記汎用OSが動作しない状況下で、いずれかのプロセッサで実行される第2のプログラムを有し、該第2のプログラムの実行により、該第1のプログラムの処理によって生じた前記複数のバッファに格納されたデータを選択して、前記端末の画面に出力することを特徴とするマルチプロセッサシステム。前記第2のプログラムは、前記複数のバッファに格納されているデータを選択して、シリアルポートを介して前記端末の画面に表示出力し、その後、前記第3領域内のアドレスを更新することを特徴とする請求項1記載のマルチプロセッサシステム。該メモリに確保された、データが格納されている該バッファのアドレスを、該第1のプログラムの識別情報に対応付けて順に格納するアドレスリストを保持するアドレスリスト格納領域第1領域と、該メモリに確保された、該アドレスリスト格納領域の未使用領域の先頭アドレスを格納する未使用先頭アドレス格納領域第2領域と、該メモリに確保された、該アドレスリスト格納領域の最後に出力したデータのアドレスを格納する領域第3領域を有し、前記第1のプログラムの実行において、ロック処理を行って前記第2領域からアドレスを取得し、その後、該アドレスをインクリメントしてアンロック処理を行い、該第2の領域から取得したアドレスを基に、未使用領域の先頭アドレスを求めて、該第1領域の該先頭アドレスに、前記バッファの格納先のアドレスとプログラム識別情報を格納し、前記第2のプログラムの実行において、該第1領域に該先頭アドレスが追加されたことを監視し、該先頭アドレスに格納された該プログラム識別情報に対応するデータアドレスが指定する前記バッファからデータを読み出して、該端末の画面に表示出力し、その後、前記第3領域内のアドレスを更新することを特徴とする請求項1乃至3のいずれかの項記載のマルチプロセッサシステム。複数のプロセッサと、複数のプロセッサによって共有されるメモリと、I/Oを有し、汎用のOSの動作の下、該複数のプロセッサで複数の第1のプログラムを実行してI/O制御することができるマルチプロセッサシステムにおける入出力制御方法であって、該複数の第1のプログラムのそれぞれに対応して該メモリに確保された複数のバッファに、該第1のプログラムの処理によって生じるデータを格納するステップと、前記汎用OSが動作しない状況下で、いずれかのプロセッサで実行される第2のプログラム実行するステップと、該第2のプログラムの実行により、該第1のプログラムの処理によって生じた前記複数のバッファに格納されたデータを選択して、前記端末の画面に出力するステップと、を有することを特徴とする入出力制御方法。該メモリに確保された、データが格納されている該バッファのアドレスを、該第1のプログラムの識別情報に対応付けて順に格納するアドレスリストをアドレスリスト格納領域第1領域に保持するステップと、該メモリに確保された、該アドレスリスト格納領域の未使用領域の先頭アドレスを未使用先頭アドレス格納領域第2領域に格納するステップと、該メモリに確保された、該アドレスリスト格納領域の最後に出力したデータのアドレスを領域第3領域に格納するステップを有し、前記第1のプログラムの実行において、ロック処理を行って前記第2領域からアドレスを取得し、その後、該アドレスをインクリメントしてアンロック処理を行い、該第2の領域から取得したアドレスを基に、未使用領域の先頭アドレスを求めて、該第1領域の該先頭アドレスに、前記バッファの格納先のアドレスとプログラム識別情報を格納し、前記第2のプログラムの実行において、該該第1領域に該先頭アドレスが追加されたことを監視し、該先頭アドレスに格納された該プログラム識別情報に対応するデータアドレスが指定する前記バッファからデータを読み出して、該端末の画面に表示出力し、その後、前記第3領域内のアドレスを更新することを特徴とする請求項4記載の入出力制御方法。特許文献1等に記載の技術は、空き共有メモリのポインタを取得する処理時に排他処理が必要となり、ここでロック処理によるオーバーヘッドが発生する。そのため、ロック時間を短縮し、オーバーヘッドを削減した共有メモリの制御が望まれる。また、マルチプロセッサシステムで通常使用されているLinux等のOSは、通常、I/Oの負荷を軽減乃至吸収する機能を備えているので、試験プログラムがI/Oに擬似的な負荷を与えている場合でも、マルチプロセッサシステムのいずれのハードウェアの場所で負荷が軽減乃至吸収されているのか、分からないことがある。高性能なサーバシステムの負荷試験において、負荷の箇所が不明瞭となる状況は好ましくない。マルチプロセッサシステムにおけるI/Oの負荷試験では、汎用OSの影響を無くし、ハードウェアに対する正確な負荷の状況を把握することが望まれる。そこで、本発明の目的は、マルチプロセッサシステムにおける排他処理のオーバーヘッドを削減しながら、I/O制御を行うことにある。更にまた、本発明は、汎用のOSを用いないで、専用の制御プログラムを用いてI/O制御の結果生じるデータを端末の画面に出力することにある。本発明に係るマルチプロセッサシステムは、好ましくは、複数のプロセッサと、複数のプロセッサによって共有されるメモリと、I/Oを有し、汎用のOSの動作の下、該複数のプロセッサで複数の第1のプログラムを実行してI/O制御することができるマルチプロセッサシステムであって、該複数の第1のプログラムのそれぞれに対応して該メモリに確保された、該第1のプログラムの処理によって生じるデータを格納する複数のバッファと、前記汎用OSが動作しない状況下で、いずれかのプロセッサで実行される第2のプログラムを有し、該第2のプログラムの実行により、該第1のプログラムの処理によって生じた前記複数のバッファに格納されたデータを選択して、前記端末の画面に出力することを特徴とするマルチプロセッサシステムとして構成される。好ましい例では、前記第2のプログラムは、前記複数のバッファに格納されているデータを選択して、シリアルポートを介して前記端末の画面に表示出力し、その後、前記第3領域内のアドレスを更新する。また、好ましい例では、該メモリに確保された、データが格納されている該バッファのアドレスを、該第1のプログラムの識別情報に対応付けて順に格納するアドレスリストを保持するアドレスリスト格納領域第1領域と、該メモリに確保された、該アドレスリスト格納領域の未使用領域の先頭アドレスを格納する未使用先頭アドレス格納領域第2領域と、該メモリに確保された、該アドレスリスト格納領域の最後に出力したデータのアドレスを格納する領域第3領域を有し、前記第1のプログラムの実行において、ロック処理を行って前記第2領域からアドレスを取得し、その後、該アドレスをインクリメントしてアンロック処理を行い、該第2の領域から取得したアドレスを基に、未使用領域の先頭アドレスを求めて、該第1領域の該先頭アドレスに、前記バッファの格納先のアドレスとプログラム識別情報を格納し、前記第2のプログラムの実行において、該該第1領域に該先頭アドレスが追加されたことを監視し、該先頭アドレスに格納された該プログラム識別情報に対応するデータアドレスが指定する前記バッファからデータを読み出して、該端末の画面に表示出力し、その後、前記第3領域内のアドレスを更新する。本発明に係る入出力制御方法は、好ましくは、複数のプロセッサと、複数のプロセッサによって共有されるメモリと、I/Oを有し、汎用のOSの動作の下、該複数のプロセッサで複数の第1のプログラムを実行してI/O制御することができるマルチプロセッサシステムにおける入出力制御方法であって、該複数の第1のプログラムのそれぞれに対応して該メモリに確保された複数のバッファに、該第1のプログラムの処理によって生じるデータを格納するステップと、前記汎用OSが動作しない状況下で、いずれかのプロセッサで実行される第2のプログラム実行するステップと、該第2のプログラムの実行により、該第1のプログラムの処理によって生じた前記複数のバッファに格納されたデータを選択して、前記端末の画面に出力するステップと、を有することを特徴とする入出力制御方法として構成される。好ましい例では、該メモリに確保された、データが格納されている該バッファのアドレスを、該第1のプログラムの識別情報に対応付けて順に格納するアドレスリストをアドレスリスト格納領域第1領域に保持するステップと、該メモリに確保された、該アドレスリスト格納領域の未使用領域の先頭アドレスを未使用先頭アドレス格納領域第2領域に格納するステップと、該メモリに確保された、該アドレスリスト格納領域の最後に出力したデータのアドレスを領域第3領域に格納するステップを有し、前記第1のプログラムの実行において、ロック処理を行って前記第2領域からアドレスを取得し、その後、該アドレスをインクリメントしてアンロック処理を行い、該第2の領域から取得したアドレスを基に、未使用領域の先頭アドレスを求めて、該第1領域の該先頭アドレスに、前記バッファの格納先のアドレスとプログラム識別情報を格納し、前記第2のプログラムの実行において、該第1領域に該先頭アドレスが追加されたことを監視し、該先頭アドレスに格納された該プログラム識別情報に対応するデータアドレスが指定する前記バッファからデータを読み出して、該端末の画面に表示出力し、その後、前記第3領域内のアドレスを更新する。本発明によれば、マルチプロセッサシステムにおける排他処理によるオーバーヘッドを削減し、汎用のOSを用いないで、専用の制御プログラムを用いてI/Oの制御の結果生じるデータを端末の画面に出力することができる。より具体的に言えば、単一画面しか使用できない環境下のマルチプロセッサシステムにおいて、既にプログラムが実行されている状況でも、他のプログラムを追加で実行したり、コマンドを入力したり、過去のデータを時系列順に表示したり、選択したプログラムのデータを表示したりすることができる。また、各プログラムが排他的にシリアルポートを使用する場合を比較して、排他処理によるオーバーヘッドを削減することができる。以下、図面を参照して本発明の実施例について説明する。本実施例は、マルチプロセッサシステムにおいて、専用の制御プログラムの制御により実行中のプログラムの出力データの表示処理を行う例について示すものである。図1は、一実施例によるマルチプロセッサシステムの構成を示す。マルチプロセッサシステムは、複数図示では2台の命令プロセッサ102を有し、それぞれの命令プロセッサ102は主記憶メモリ103を持って、相互にバスで接続して構成される。各命令プロセッサ102は、複数図示では4つの演算処理装置CPUCOREともいう101を内蔵している。主記憶メモリ103には、種々のプログラムが格納され、これらのプログラムは、命令プロセッサ102内の各CPU101でそれぞれ独立して実行される。本発明において提唱される制御プログラム詳細は図2参照も同様に主記憶メモリ103に記憶され、いずれかのCPU101で実行される。各命令プロセッサ102は、共通のI/Oハブ104に接続され、I/Oハブ104はI/OコントローラハブControllerHub105及び複数のPCIEスイッチ111に接続されて、これらのユニット間でデータの送受信を行う。PCIEスイッチ111には、それぞれ4つのホストバスアダプタ112が接続され、ホストバスアダプタ112には、ディスク記憶装置のようなI/O113がそれぞれ接続されている。ここでは、ディスク記憶装置は論理的なユニットLUであり、1つ1つのLUがそれぞれ1つのI/Oを構成する。I/Oコントローラハブ105は、BMCBaseboardManagementController107を介してサービスプロセッサ108が接続される。サービスプロセッサ108にはネットワーク109を介して管理端末110が接続される。ここで、I/Oコントローラハブ105とサービスプロセッサ108の間はシリアルポート接続106により接続されている。管理端末110は、入力手段及び画面表示手段を有し、管理者等の操作によって種々の管理や制御動作を行わせることができる。本例では、I/Oに対する負荷試験を行い、その試験結果やI/Oの処理状況や監視状況を画面に表示することができる。負荷試験の場合、命令プロセッサ102のあるCPU101に試験プログラムを実行させて、I/Oハブ104、PCIEスイッチ111、HBA112を介してI/O113にデータの読み書きR/W動作を行わせる。このR/W動作中に、CPU101からI/O113の間のボトルネック箇所をチェックする。その試験の経過及び結果の状況は、管理端末110の画面に表示される。本発明では、特有の制御プログラムを用いて、I/O制御により生じる出力データを、排他的に管理端末110の画面に出力表示する制御動作を行う。図2は、一実施例における入出力制御のブロックを示す。図2において、プログラム202~204は、例えばI/O図1のI/Oハブ104~I/O113の構成部位を含むを負荷試験するためのプログラムであり、命令プロセッサ102のそれぞれ別のCPU101で実行される。各プログラム202~204は、出力データを格納する自分専用の出力バッファ2071~2073特に区別しないときは総じて207というを持っている。これらの出力バッファ207は主記憶メモリ103に確保される。いずれかの出力バッファ207のデータは負荷試験結果のデータであり、制御プログラム201の制御により、シリアル接続ポート106を介して管理端末110の画面210に表示される。換言すれば、汎用OSの下、プログラム202~204はそれぞれ別々のCPUで実行されてI/O制御を並列的に行うことができるが、そのI/O制御の結果生じる処理データを出力する場合には、制御プログラム201がプログラム202~204の処理データを排他的に順次出力するものである。制御プログラム201による制御は本発明に特徴的な機能であり、汎用のOSの実行無しに、いずれかのCPU101で実行される。制御プログラム201は、出力バッファ207内のデータを画面に出力するときに、主記憶メモリ103の排他制御を行いながら、I/Oの負荷試験の結果を管理端末110の画面に表示する。制御プログラム201の制御に当たり、出力データが格納されている出力バッファ207のメモリアドレスを時系列順に格納するアドレスリスト格納領域206と、アドレスリスト格納領域206の未使用領域の先頭アドレスを指す領域205と、アドレスリスト格納領域206の最後に表示したアドレスを指す領域211は、共有の主記憶メモリ103に確保される。これらの領域205、206,211をアクセスする場合、制御プログラム201は、他からのアクセスを規制すべく排他制御ロック、アンロック制御を行う。例えば、プログラム202によって処理され、出力バッファ2072に格納された出力データAを画面210に表示する場合、プログラム202は、出力バッファ2072の格納先のアドレスとプログラム識別番号を、アドレスリスト格納領域206の未使用領域先頭アドレス205から求めた未使用領域の先頭に格納する。そしてプログラム202は、未使用領域先頭アドレス205からデータを読み込む時、その読込み前にロック処理を行い、また未使用領域先頭アドレス205からデータを読込んだ後にインクリメントを行い、その後にアンロック処理を行う。プログラム203及び204による処理も同様である。即ち、プログラム203、204は、出力バッファ2073、2074内のデータB,Cを格納した後、出力データのアドレスとプログラム識別番号を、アドレスリスト格納領域206の未使用領域先頭アドレス205から求めた未使用領域の先頭に格納する。プログラム203,204も同様にして、未使用領域先頭アドレス205からデータの読込み前にロック処理を行い、また未使用領域先頭アドレス205からデータを読込んだ後にインクリメントを行い、その後にアンロック処理を行う。制御プログラム201は、アドレスリスト格納領域206にアドレスが追加されたか否かを未使用領域先頭アドレス205のポーリングによって常に監視しており、未使用領域先頭アドレス205が変化したことによってアドレスが追加されたことを検知すると、追加されたアドレスの指すデータ領域のデータを画面210に出力する。出力モードによっては、制御プログラムはプログラム識別番号も確認し、出力するデータの選別を行う。出力バッファ207に格納されたデータを画面に出力し終わったら、制御プログラム201は最後に表示したアドレスを更新し、次のプログラム識別番号のデータを出力できる状態にする。なお、この例では、プログラム202~204はI/Oを負荷試験するためのプログラムとしているが、これに限定されない。I/Oの負荷試験用プログラムに限らず、例えば、I/O制御の状況や結果を出力する必要があるI/O制御用のプログラムであってもよい。図3は、アドレスリスト206 ́の構成を示す。アドレスリスト格納領域206に記憶されるアドレスリスト206 ́は、プログラムを識別するプログラム識別番号と、出力データを格納しているアドレスを示す未使用先頭アドレスの組から構成される。図4は、プログラムによる処理データを選択する制御プログラム201内のコマンド処理のフローチャートである。制御プログラム201は、コマンド文字列を取得するとS401、データ表示コマンドであるか判定するS402。コマンド文字列には、出力バッファ207内のデータを画面210に表示するためのデータ表示コマンドの他に、例えばPCIE接続のデバイスを選択するためのPCIEコマンドや、HBAを起動するドライブコマンド等のコマンド他コマンドというがある。上記コマンドの判定の結果、データ表示コマンドでなければ他のコマンド処理へ分岐しS407、データ表示コマンドであれば、データの表示対象プログラムを選択するオプションの有無を確認するS403。表示対象プログラムの選択オプションが無い場合は、表示処理へ分岐しS406、出力選択プログラム番号が指定されている場合は出力選択プログラム番号リスト501の作成を行った後S404、表示処理へ分岐するS405。ここで、表示処理S406は、図7の全プログラムの出力データの表示を行う処理全データオプション無し表示処理Iを示し、表示処理S405は、図8の選択したプログラムの出力データの表示を行う処理選択的データ選択オプション有り表示処理IIを示す。図5は、出力選択プログラム番号リスト501の構成を示す。出力選択プログラム番号リスト501には、図4に示したコマンド文字列取得S401で取得されデータ表示コマンドに従って作成されたプログラム識別番号が、リスト構造で順次格納される。図6は、表示画面210に出力されるデータ表示コマンドの出力例を示す。コマンド例601は、表示対象プログラム番号指定コマンドでプログラム番号Aを指定した場合を示し、プログラムA202の出力したデータA1を表示し、最後に表示したアドレス211を更新する。コマンド例602は、表示対象プログラム番号指定コマンドでプログラム番号B及びCを指定した場合を示し、プログラムB203とプログラムC204の出力したデータB1及びデータC1を表示し、最後に表示したアドレス211を更新する。コマンド例603は、表示対象プログラム番号指定コマンドで各プログラムの表示を出力し続ける場合を示し、コマンド例602で表示されたデータ以降に追加された、データA2、データB2、データC2を出力し、入力モードへの切替えS705及びS807が検出されるまで新たに追加されるデータを継続的に表示し続ける。次に、図7のフローチャートを参照して、全プログラムの出力データの表示を行う即ちオプション選択無し処理動作について説明する。制御プログラム201は、まず、最後に表示したデータアドレス211を取得するS701。その後、出力データ格納先アドレスリストの未使用領域先頭アドレスと、最終表示出力データ格納先アドレス211とを比較するS702。その結果、終端に達していれば入力モードへの切り替え判定S705へ分岐する。一方、終端に達していなければ、アドレスリスト206 ́の出力データ格納先アドレスからデータを順次読み出して、図6に示すようなデータ表示を表示画面210に行いS703、表示したデータアドレスを最後に表示したデータのアドレス211として保存するS704。入力モードの切替判定S705では、データ表示の処理中に管理端末110からキー入力が発生して入力モード切替えが指定されたかを判定する。判定の結果、入力モード切替えが指定された場合、入力処理へ分岐するS706。一方、入力モード切替えが指定されていなければ、データアドレスリスト終端判定S702へ分岐する。入力処理S706は、図4の表示するプログラムのデータを選択する制御プログラム内コマンド処理を行う。次に、図8を参照して、選択したプログラムの出力データの表示を行う即ちオプション選択有り処理動作について説明する。制御プログラム201は、まず、最後に表示したデータアドレス及び出力選択プログラム番号を取得するS801。その後、出力データ格納先アドレスリスト未使用領域先頭と最終表示出力データ格納先アドレスと比較するS802。その結果、終端に達していれば入力モードへの切り替え判定S807へ分岐する。一方、終端に達していなければデータアドレスの出力元プログラム識別番号を取得するS803。次に、出力すべきデータかを出力選択プログラム番号リストと比較することで、出力判定を行うS804。その結果、出力選択プログラム番号と出力元プログラム識別番号が一致していなければ、入力モードへの切り替え判定S807へ分岐する。一方、両者が一致していれば、図6に示すようなデータ表示を表示画面210に行いS805、表示したデータアドレスを最後に表示したデータのアドレスとして保存するS806。入力モードへの切替判定S807では、データ表示の処理中にキー入力が発生して入力モード切替えが指定されていた場合、入力処理S808へ分岐する。一方、データ表示の処理中にキー入力が発生していなければ、データアドレスリスト終端判定S802へ分岐する。入力処理S808は、図4の表示するプログラムのデータを選択する制御プログラム内コマンド処理を示す。次に、図9を参照して、プログラムA~Cによる出力データの処理及びアドレスリスト206 ́への登録処理について説明する。プログラムA~Cの処理結果データを表示出力する処理に関して、例えばプログラムA202は、まず出力バッファ終端アドレスの取得と更新を行いS901、出力データを対応するデータバッファ207の終端へ書込むS902。次に、未使用領域先頭アドレス205を、他のプログラム203又は204が同時に参照及び更新してしまうことを防ぐために、プログラムA202は、ロック取得処理排他制御を行うS903。そして、ロックの取得ができたかを確認しS904、その結果、ロックが取得できていなかった場合はロック取得処理S903へ分岐してロックの再取得を試みる。一方、ロックが取得できていた場合は、未使用領域先頭アドレス205を取得するS905。次に、アドレスリスト206 ́に自プログラムAの識別番号とデータバッファアドレスを追加格納するS906。そして、データバッファ終端アドレスをインクリメントしてS907、データアドレスリスト書込みのためのロック開放処理を行うS908。"