(57)【要約】  プロセス状態情報を管理する技術が、アプリケーションクラッシュの発生時にカーネル空間からユーザ空間にプロセス状態情報を転送することと、カーネルレベルではなくユーザレベルでコアファイルを作成することとを含む。カーネルレベルではなくユーザレベルでプロセス状態情報を処理することで、カーネルコードを使用してコアファイルを作成、管理するシステムに比べ、コアファイルの作成および管理により柔軟性が与えられる。ユーザレベルのコアダンプアプリケーションは、利用可能な永久記憶容量を有する他のシステムにコアファイルを送るようにプログラムされてよい。さらに、コアダンプアプリケーションは、コアファイルの作成中に、プロセス状態情報を圧縮するように、かつ／またはプロセス状態情報から特定の情報だけを抽出するようにプログラムされてよい。
2007529827.tif 000002
【特許請求の範囲】
【請求項１】
オペレーティングシステム環境でプロセス状態情報を管理するシステムであって、オペレーティングシステムで使用されるメモリがカーネル空間とユーザ空間とに分けられており、前記システムが、
コア転送装置を含むカーネルと、
第１アプリケーションと、
コアダンプアプリケーションとを含み、
前記第１アプリケーションが、前記ユーザ空間を使用して実行時にある機能を提供するように構成され、
前記コア転送装置が、カーネル空間を使用して第１アプリケーションの実行に関連したフォルト状態に応答し、そしてカーネル空間からユーザ空間にプロセス状態情報を与えるように構成され、
前記コアダンプアプリケーションが、ユーザ空間を使用してカーネル空間からユーザ空間に与えられた前記プロセス状態情報からコアファイルを作成するように構成されていることを特徴とするシステム。
【請求項２】
前記プロセス状態情報がカーネル空間からユーザ空間に直接与えられることを特徴とする請求項１に記載のシステム。
【請求項３】
前記カーネルと前記第１アプリケーションと前記コアダンプアプリケーションとがネットワークノードの第１モジュールにロードされることを特徴とする請求項１に記載のシステム。
【請求項４】
前記コアダンプアプリケーションが、前記ネットワークノードの第２モジュールに前記コアファイルを送るようにさらに構成されていることを特徴とする請求項３に記載のシステム。
【請求項５】
前記第１および第２モジュールは筐体ベースのネットワークノードのリムーバブルモジュールであることを特徴とする請求項４に記載のシステム。
【請求項６】
前記コア転送装置はカーネルレベルのソフトウェアコードであることを特徴とする請求項１に記載のシステム。
【請求項７】
前記コアダンプアプリケーションはユーザレベルのソフトウェアコードであることを特徴とする請求項１に記載のシステム。
【請求項８】
前記コア転送装置はカーネルレベルのソフトウェアコードであり、前記コアダンプアプリケーションはユーザレベルのソフトウェアコードであることを特徴とする請求項１に記載のシステム。
【請求項９】
オペレーティングシステムで使用されるメモリがカーネル空間とユーザ空間とに分けられる、オペレーティングシステム環境でプロセス状態情報を管理する方法であって、
第１アプリケーションを実行するステップと、
前記第１アプリケーションの実行時フォルトを識別するステップと、
前記第１アプリケーションの実行時フォルトの識別に応答して、カーネル空間からユーザ空間にプロセス状態情報を与えるステップとを含むことを特徴とする方法。
【請求項１０】
前記プロセス状態情報が前記ユーザ空間に直接与えられることを特徴とする請求項９に記載の方法。
【請求項１１】
前記カーネル空間からユーザ空間にプロセス状態情報を与えるステップは、プロセス状態情報をコアダンプアプリケーションに与えるステップを含み、さらに、前記ユーザ空間に与えられた前記プロセス状態情報からコアファイルを作成するステップを含むことを特徴とする請求項９に記載の方法。
【請求項１２】
前記ユーザ空間でコアファイルを作成するステップをさらに含み、前記コアファイルが前記カーネル空間から与えられた前記プロセス状態情報から作成されることを特徴とする請求項９に記載の方法。
【請求項１３】
前記コアファイルを前記ユーザ空間から遠隔システムに送るステップをさらに含むことを特徴とする請求項１２に記載の方法。
【請求項１４】
前記プロセス状態情報からコアファイルを作成するステップをさらに含み、前記コアファイルを作成するステップは前記プロセス状態情報を圧縮するステップを含むことを特徴とする請求項９に記載の方法。
【請求項１５】
前記プロセス状態情報からコアファイルを作成するステップをさらに含み、前記コアファイルを作成するステップは前記プロセス状態情報の所望の部分を抽出するステップを含むことを特徴とする請求項９に記載の方法。
【請求項１６】
前記プロセス状態情報からコアファイルを作成するステップをさらに含み、前記コアファイルを作成するステップは前記プロセス状態情報の順序を変更するステップを含むことを特徴とする請求項９に記載の方法。
【請求項１７】
独立オペレーティングシステムを走らせる複数のモジュールを備える分散アーキテクチャを有するネットワークノードでプロセス状態情報を管理する方法において、独立オペレーティングシステムの各々で使用されるメモリがカーネル空間とユーザ空間とに分けられており、カーネルはカーネルレベルで動作し、そしてアプリケーションがユーザレベルで動作するものであり、前記方法が、
第１アプリケーションの実行時フォルトを第１モジュールで識別することと、
前記第１アプリケーションの実行時フォルトの識別に応答して、前記カーネル空間から前記ユーザ空間にプロセス状態情報を与えるステップと、
前記ユーザ空間に与えられた前記プロセス状態情報から前記ユーザレベルでコアファイルを作成するステップと、
前記コアファイルを前記ユーザ空間から第２モジュールに送るステップとを含むことを特徴とする方法。
【請求項１８】
前記プロセス状態情報がユーザ空間に直接与えられることを特徴とする請求項１７に記載の方法。
【請求項１９】
プロセス状態情報を前記カーネル空間から前記ユーザ空間に与えるステップは、プロセス状態情報をコアダンプアプリケーションに与えるステップを含むことを特徴とする請求項１７に記載の方法。
【請求項２０】
前記コアファイルを第２モジュールの永久記憶装置に格納するステップをさらに含むことを特徴とする請求項１７に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、２００４年３月１７日出願の米国仮出願第６０／５５４，０３６号の利益を享受する権利を有する。
【０００２】
本発明は一般に、コンピュータのオペレーティングシステムに関し、より詳細には、オペレーティングシステム環境でプロセス状態情報を管理する技術に関する。
【背景技術】
【０００３】
ＵＮＩＸ（登録商標）ライクオペレーティングシステムの特徴の１つは、プロセス毎にアドレス空間を保護することである。基本的に、すべてのアプリケーション（すなわちプロセス）はそれ自体のアドレス空間で走り、あるアプリケーションが、そのアプリケーションに属すのでないアドレス空間にアクセスしようとする試み（すなわちメモリアドレス違反）はいずれも、そのアプリケーションの異常終了を引き起こす。アプリケーションの異常終了はまた、違法命令、バスエラー、あるいはユーザが生成する終了信号によっても起こることがある。アプリケーションの異常終了が生じると、オペレーティングシステムのカーネル内の一装置によって、プロセス状態情報をローカルの永久記憶装置へ書込む、すなわちローカルの永久記憶装置への「ダンプ」が生じる。ローカルの永久記憶装置に書き込まれたファイルは通常、「ｃｏｒｅ」または「＜ｐｒｏｇｒａｍｎａｍｅ＞．ｃｏｒｅ」と命名され、一般には「コアファイル」または単に「コア」と呼ばれる。コアファイルをローカルの永久記憶装置に保存するプロセスは、多くの場合「コアダンプ」または「クラッシュダンプ」と呼ばれる。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従来技術のオペレーティングシステムでは、オペレーティングシステムのカーネルがコアファイルを作成し、そのコアファイルをローカル永久記憶装置に格納するコアダンプ装置を含む。コアダンプ装置は、コアファイルをフラッシュメモリ、ハードディスク、あるいはリムーバブル記憶装置に格納することができる。カーネルによるコアファイルの作成、およびカーネルを利用したコアファイルのローカルの永久記憶装置への格納がうまく機能するのは、利用可能なローカル記憶容量が潤沢にあるシステムにおいてである。しかし、ネットワーク機器（例えば、ルータや交換機）、組込みシステム（例えば、生体電子工学装置、電話音声交換機、航空機制御装置）、電気器具（例えば、ロボット、移動通信装置）など多くのコンピュータシステムで、ローカル永久記憶容量は十分ではない。具体的には、かかるシステムの多くが、コアファイルの格納に使用できる、十分なフラッシュメモリ容量を、あるいはハードディスクやリムーバブル記憶媒体などの大容量ローカル記憶装置を備えていない。これらのタイプのコンピュータシステムにおける永久記憶容量は限られているが、それでもなお、アプリケーションクラッシュをデバッグできるように、コアファイルを作成、保存できることが望ましい。
【０００５】
以上のことを考慮すると、必要とされるのは、柔軟であって、限られたローカル記憶容量しかもたないコンピュータシステムに適用できる、プロセス状態情報を管理する技術である。
【課題を解決するための手段】
【０００６】
プロセス状態情報を管理する技術が、アプリケーションクラッシュの発生時にカーネル空間からユーザ空間にプロセス状態情報を転送（ｐｕｓｈｉｎｇ）すること、そしてカーネルレベルではなくユーザレベルでコアファイルを作成することとを含む。カーネルレベルではなくユーザレベルでプロセス状態情報を処理することで、カーネルコードを使用してコアファイルを作成、管理するシステムに比べ、コアファイルの作成および管理により柔軟性が与えられる。ユーザレベルのコアダンプアプリケーションは、利用可能な永久記憶容量を有する他のシステムにコアファイルを送るようにプログラムされてよい。さらに、コアダンプアプリケーションは、コアファイルの作成中に、プロセス状態情報を圧縮するように、かつ／またはプロセス状態情報から特定の情報だけを抽出するようにプログラムされてよい。
【０００７】
本発明の他の態様および利点は、以下の詳細な説明を、例によって本発明の原理を示す添付の図面と併せ読めば明らかとなろう。
説明を通じて同様の参照番号は同様の要素を識別するために使用されてよい。
【発明を実施するための最良の形態】
【０００８】
図１は、オペレーティングシステムを走らせるコンピュータシステム１００を示す。このコンピュータシステムは、ユーザ空間１０４とカーネル空間１０６とに論理的に分けられたメモリ１０２を含む。図１の実施形態では、メモリはランダムアクセスメモリ（ＲＡＭ）などの揮発性メモリである。
【０００９】
ユーザ空間１０４はアプリケーションを走らせるために用意される。このアプリケーションはユーザレベルで走り、実行時に有用な機能を実施するアプリケーションであればいかなるアプリケーションを含んでもよい。図１の例では、アプリケーションには、アプリケーションＡ、ＢおよびＣ１１０、ならびにコアダンプアプリケーション１１２が含まれる。アプリケーションＡ、ＢおよびＣの具体的な機能は、本発明にとって重要でない。コアダンプアプリケーションの機能については、以下でより詳細に説明する。
【００１０】
カーネル空間１０６は、オペレーティングシステムのカーネル１１４を走らせるために用意される。当技術分野で知られているように、カーネルは、例えばメモリ管理、プロセス管理、およびプロセス間通信などを含むオペレーティングシステムのコアサービスを実施するオペレーティングシステムコードの一部である。図１に示すカーネルは、コア転送装置（ｃｏｒｅ  ｐｕｓｈ  ｄｅｖｉｃｅ）１１６を含み、この装置については以下でより詳細に説明する。
【００１１】
説明のため、実行されているアプリケーションをプロセスと呼ぶ。プロセスに対応するユーザ空間１０４のメモリ１０２の内容をプロセス情報と呼ぶ。プロセス情報は、カーネルに格納された状態情報、プロセススタック情報、データ領域（例えばプロセスデータセクション）、およびメモリマップ領域を含むことができる。プロセスに対応するカーネル空間１０６に格納された情報をプロセス状態情報と呼ぶ。プロセス状態情報はスタックポインタ、ルーチン変数、ロードされた動作命令、レジスタアドレス、プロセススタック、データ領域、およびメモリマップ領域を含むことができる。
【００１２】
典型的なオペレーティングシステムでは、カーネルは、アプリケーションフォルトに応答してコアファイルを作成し、そのコアファイルをフラッシュメモリ、ローカルハードディスク、あるいはリムーバブル記憶媒体などのローカル永久記憶装置に保存するコアダンプ装置を含む。この技術は、コアファイルを保存するに十分な利用可能なローカル永久記憶容量がある場合に限り、うまく機能する。コアファイルを保存するのに十分な利用可能なローカル永久記憶容量がない場合、コアファイルは切り捨てられることもあれば、あるいは単に作成されないこともある。本発明によれば、アプリケーション実行中にフォルトが発生すると、図１のコア転送装置１１６がプロセス状態情報をユーザ空間１０４に転送し、図１のコアダンプアプリケーション１１２がユーザレベルでコアファイルを作成する。カーネルレベルではなくユーザレベルでプロセス状態情報を処理することで、カーネルコードを使用してコアファイルを作成、管理するシステムに比べ、コアファイルの作成および管理により柔軟性が与えられる。ユーザレベルのコアダンプアプリケーションは、利用可能な永久記憶容量を有する他のシステムにコアファイルを送るようにプログラムされてよい。さらに、コアダンプアプリケーションは、コアファイルの作成中に、プロセス状態情報を圧縮するように、かつ／またはプロセス処理情報から特定の情報だけを抽出するようにプログラムされてよい。
【００１３】
次に図１および２を参照しながら、コアファイル作成の基本動作をより詳細に説明する。図１を参照すると、アプリケーションＡ１１０が実行中であると仮定されている。アプリケーションＡの実行中に、ユーザレベルでプロセス情報が作成され、カーネルレベルに伝達され、カーネルレベルでプロセス状態情報が作成される。アプリケーションＡの実行中にフォルト状態（すなわちアプリケーションクラッシュ）が生じると、コア転送装置１１６がアクティブになり、カーネル空間１０６からユーザ空間１０４にプロセス状態情報を転送する。具体的には、プロセス状態情報が、まずローカル永久記憶装置に格納されることなく、カーネル空間からユーザ空間に直接転送される。プロセス状態情報がユーザ空間に転送されると、コアダンプアプリケーション１１２が、転送されたプロセス状態情報からコアファイルを作成する。次いで、コアダンプアプリケーションは、永久に格納でき、デバッグのためにアクセスすることのできる場所にコアファイル、あるいはそのコピーを送ることができる。
【００１４】
図２は、メモリ１０２のユーザ空間１０４およびカーネル空間１０６に関連して、プロセス情報１２０、プロセス状態情報１２２、およびコアファイル１２４を示している。具体的には、図２は、ユーザレベルのプロセス情報がカーネルレベルでプロセス状態情報になり、カーネルレベルのプロセス状態情報が使用されてユーザレベルでコアファイルを形成することを示している。図２はまた、通常とは異なり、コアファイルがカーネルレベルで作成されてローカル永久メモリにすぐに格納されるのではないことを示している。
【００１５】
図１に戻ると、コアダンプアプリケーション１１２は、プロセス状態情報からコアファイルを作成するプロセスにおいて、多くの異なる動作を実施することができる。第１の例では、コアダンプアプリケーションはプロセス状態情報を圧縮してコアファイルを作成する。プロセス状態情報を圧縮するのに用いられる具体的な圧縮技術は本発明にとって重要でない。第２の例では、コアダンプアプリケーションは、コアファイルに含まれるプロセス状態情報の総量を制御する。第３の例では、コアダンプアプリケーションは、プロセス状態情報が保存される順序を変更する。例えば、コアダンプアプリケーションは、コアファイル作成中にプロセス状態情報の一部が失われざるを得ない場合やコアファイルが後作業で切り捨てられる場合にレジスタおよびスタック情報が失われることのないように、レジスタおよびスタック情報に優先権を与える。第４の例では、コアダンプアプリケーションは、プロセス状態情報から所望の特定の情報だけを抽出してコアファイルに含める。例えば、コアダンプアプリケーションは、データセグメントあるいは特定のユーザ構成領域（ｕｓｅｒ  ｃｏｎｆｉｇｕｒｅｄ  ｆｉｅｌｄｓ）だけを抽出することができる。
【００１６】
コアダンプアプリケーション１１２はまた、コアファイルが作成されると、そのコアファイルに対して様々な管理動作を実施することもできる。第１の例では、コアダンプアプリケーションは、他のシステムにコアファイルを送る。例えば、コアファイルは、利用可能な記憶容量および／またはデバッグ機能を有する遠隔システムに送られてよい。第２の例では、コアダンプアプリケーションは、揮発性メモリまたは永久記憶装置を含んでよいローカル記憶装置にコアファイルを送る。図３は、コアファイルがユーザレベルでコアダンプアプリケーション１１２によって作成された後、そのコアファイルを管理するためのいくつかのオプションを示している。図３に示すコンピュータシステムは、ローカル永久記憶装置１３０およびインターフェース（Ｉ／Ｆ）１３２を含む。ローカル永久記憶装置は、破線１３１で示すコアファイルのローカルな永久記憶を可能にする。インターフェースは、破線１３３で示すコアファイルの他のコンピュータシステム、例えば利用可能な永久記憶容量および／またはデバッグ機能を有するコンピュータシステムへの転送を可能にする。コアダンプアプリケーションはまた、複数の場所にコアファイルを送ることができる。図３のコンピュータシステムはローカル永久記憶装置およびインターフェースの両方を示しているが、コンピュータシステムはローカル永久記憶装置だけ、あるいはインターフェースだけを含むものであってもよい。
【００１７】
コアダンプアプリケーション１１２は、コアファイルの管理に関連して他の動作を実施することもできる。第１の例では、コアダンプアプリケーションは、新しいコアファイル用に余地を空けるために削除されてよい先に格納されているコアファイルを識別する。例えば、先に格納されているコアファイルは、先入れ先出しベースで永久記憶装置から削除されてよい。
【００１８】
コアダンプアプリケーション１１２は、上記で識別された動作のいかなる組合せでも実施できることを理解されたい。コアダンプアプリケーションによって実施される具体的な動作は、実装時固有（ｉｍｐｌｅｍｅｎｔａｔｉｏｎ−ｓｐｅｃｉｆｉｃ）である。
【００１９】
一実施形態では、図１および３に示したコンピュータシステムに類似のコンピュータシステムが、分散アーキテクチャをもつネットワーク交換装置および／または経路指定装置の諸要素となっている。図４は、制御モジュール１４２、交換ファブリック１４４、および２つのポートインターフェースモジュール１４６（ポートインターフェースＡおよびＢ）を含む例示的なネットワーク交換装置および／または経路指定装置（本明細書ではネットワークノード１４０と呼ぶ）を示している。このネットワークノードは、制御モジュールおよび２つのポートインターフェースがそれぞれ、独自の独立オペレーティングシステムを走らせるので、分散アーキテクチャをもつものとする。
【００２０】
ネットワークノード１４０は、多くの場合データグラムと呼ばれる離散セグメントのトラフィックを処理する。一実施形態では、ネットワークノードは、第２層（Ｌ２）、第３層（Ｌ３）、および／または第４層（Ｌ４）のヘッダ情報を用いてネットワークノード内のトラフィックを送るイーサネット（登録商標）交換機／ルータであり、この場合のネットワーク「層」は、国際標準化機構（ｔｈｅ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｓｔａｎｄａｒｄｉｚａｔｉｏｎ  Ｏｒｇａｎｉｚａｔｉｏｎ：ＩＳＯ）によって定義されたＯＳＩモデル（Ｏｐｅｎ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｃｏｎｎｅｃｔｉｏｎ  （ＯＳＩ）  ｍｏｄｅｌ）に記載されている。ネットワークノードは、イーサネット（登録商標）、非同期転送モード（ａｓｙｎｃｈｒｏｎｏｕｓ  ｔｒａｎｓｆｅｒ  ｍｏｄｅ：ＡＴＭ）、同期型光ネットワーク（ｓｙｎｃｈｒｏｎｏｕｓ  ｏｐｔｉｃａｌ  ｎｅｔｗｏｒｋ：ＳＯＮＥＴ）、およびフレームリレイなどのネットワークプロトコルをサポートするポートインターフェースを含むことができる。図にはイーサネット（登録商標）ベースの交換機／ルータが示してあるが、コアファイルを作成、管理するための本明細書で開示された技術は、分散アーキテクチャを利用するどのネットワークノードに適用されてもよい。
【００２１】
図４を参照すると、ネットワークノード１４０の制御モジュール１４２が、ネットワーク管理機能やプロトコル実装機能など様々な機能をサポートしている。制御モジュールによって実施される機能例には、構成コマンドの実施、タイミング制御の提供、オペレーティングシステムおよびアプリケーションソフトウェアコードの配布、ハードウェアテーブルのプログラミング、システム情報の提供、ユーザインターフェースのサポート、ハードウェア変更の管理、ならびにバス管理が含まれる。交換ファブリック１４４は、制御モジュールとポートインターフェース１４６との間のデータパス（例えば制御モジュールからポートインターフェースへのデータパスやポートインターフェースからポートインターフェースへのデータパス）を提供する。交換ファブリックは、例えば、共用メモリ、共用バス、および交差マトリクス（ｃｒｏｓｓｐｏｉｎｔ  ｍａｔｒｉｃｅｓ）を含むことができる。ポートインターフェースは、ネットワークノードへのトラフィックの受取り、トラフィックのバッファ、決定事項の転送（ｍａｋｉｎｇ  ｆｏｒｗａｒｄｉｎｇ  ｄｅｃｉｓｉｏｎｓ）、およびネットワークノードからのトラフィックの伝送などの機能を実施する。ポートインターフェースは、他のネットワークノードへの接続をサポートする１つまたは複数のポートを含む。
【００２２】
制御モジュール１４２およびポートインターフェース１４６は、独自の中央処理装置（ＣＰＵ）１４８および１５０と、メモリ１５２および１５４と、インターフェース（Ｉ／Ｆ）１５６と、オペレーティングシステム１５８および１６０と、アプリケーション１６２および１６４とを含む独立コンピュータシステムである。各独立コンピュータシステム内のＣＰＵは、多機能プロセッサおよび／またはアプリケーション固有プロセッサ（ａｐｐｌｉｃａｔｉｏｎ−ｓｐｅｃｉｆｉｃ  ｐｒｏｃｅｓｓｏｒ：ＡＳＰ）を含んでよい。プロセッサの例には、ＩＢＭ（商標）のＰｏｗｅｒＰＣ（商標）プロセッサファミリおよびＩｎｔｅｌ（商標）のｘ８６プロセッサファミリ（商標）が含まれる。制御モジュール内のメモリは、読取り専用メモリ（ＲＯＭ）、フラッシュメモリ、およびＲＡＭを含んでよい。制御モジュールには、ハードディスクドライブなどの大容量永久記憶装置１６６が含まれる。ポートインターフェースは、制御モジュールと違って永久記憶装置が含まれていないので、その記憶容量は制御モジュールの記憶容量よりはるかに少ない。
【００２３】
制御モジュール１４２およびポートインターフェース１４６のインターフェース１５６により、制御モジュールとポートインターフェースとが互いに通信できるようになる。一実施形態では、制御モジュールとポートインターフェースとが互いにバックプレーン（図示せず）を介して通信する。
【００２４】
制御モジュール１４２およびポートインターフェース１４６のオペレーティングシステム１５８および１６０は、それぞれのモジュールのＣＰＵ、メモリ、およびアプリケーションの間を結ぶブリッジを提供する。分散アーキテクチャをもつネットワークノードで使用されるオペレーティングシステムの例には、ＮｅｔＢＳＤ、Ｌｉｎｕｘ、およびｖｘＷＯＲＫＳなどのよく知られたオペレーティングシステムが含まれる。図には示していないが、ＣＰＵおよびオペレーティングシステムは、他のハードウェア（例えば内容参照可能メモリ（ｃｏｎｔｅｎｔ  ａｄｄｒｅｓｓａｂｌｅ  ｍｅｍｏｒｙ：ＣＡＭ）やアプリケーション固有集積回路（ａｐｐｌｉｃａｔｉｏｎ−ｓｐｅｃｉｆｉｃ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔｓ：ＡＳＩＣｓ））によってサポートされてもよい。
【００２５】
独立コンピュータシステム（すなわち制御モジュール１４２およびポートインターフェース１４６）上に常駐するアプリケーション１６２および１６４は、ネットワークノード１４０に必要な様々なタスクを実施するソフトウェアベースのアプリケーションである。ネットワークノードの独立コンピュータシステムにロードされるアプリケーションの例には、Ｌ２ラーニング、仮想ＬＡＮ（ｖｉｒｔｕａｌ  ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ：ＶＬＡＮ）管理、スパニングツリープロトコル（ｓｐａｎｎｉｎｇ  ｔｒｅｅ  ｐｒｏｔｏｃｏｌ：ＳＴＰ）、およびリンクアグリゲーション制御プロトコル（ｌｉｎｋ  ａｇｇｒｅｇａｔｉｏｎ  ｃｏｎｔｒｏｌ  ｐｒｏｔｏｃｏｌ：ＬＡＣＰ）などのＬ２プロトコルと、オープンショーテストパスファースト（ｏｐｅｎ  ｓｈｏｒｔｅｓｔ  ｐａｔｈ  ｆｉｒｓｔ：ＯＳＰＦ）、ボーダゲートウェイプロトコル（ｂｏｒｄｅｒ  ｇａｔｅｗａｙ  ｐｒｏｔｏｃｏｌ：ＢＧＰ）、インターミーディエイトシステムトゥインターミーディエイトシステム（ｉｎｔｅｒｍｅｄｉａｔｅ  ｓｙｓｔｅｍ−ｔｏ−ｉｎｔｅｒｍｅｄｉａｔｅ  ｓｙｓｔｅｍ：ＩＳＩＳ）、およびマルチプロトコルラベルスイッチング（ｍｕｌｔｉｐｒｏｔｏｃｏｌ  ｌａｂｅｌ  ｓｗｉｔｃｈｉｎｇ：ＭＰＬＳ）などのＬ３プロトコルが含まれるが、ただしそれだけに限られるわけではない。各モジュールのＣＰＵ１４８および１５０、メモリ１５２および１５４、オペレーティングシステム１５８および１６０、ならびにアプリケーション１６２および１６４は、説明のために図４では別個の機能ユニットとして示されているが、当技術分野で知られているように、これら機能ユニットは動作的にも機能的にも統合されている。さらに、ＣＰＵ、メモリ、オペレーティングシステム、およびアプリケーションからなる、いくつかの例が示されているが、これらの例が完全なリストを意味するわけでは決してない。
【００２６】
上記で説明したように、ネットワークノード１４０のポートインターフェース１４６は低容量のメモリ（例えば、ＲＯＭ、フラッシュメモリ、ＲＡＭ）を有するだけで、永久記憶装置は備えていない。しかし、ポートインターフェースは機能可能なオペレーティングシステム１６０およびアプリケーション１６４を備える独立コンピュータシステムであるため、必ずアプリケーションクラッシュが生じる。アプリケーションクラッシュが生じた場合、デバッグ用にコアファイルを保存できることが望ましい。本発明の一実施形態によれば、図５に示すように、ネットワークノードのポートインターフェースが、カーネルレベルにコア転送装置１１６を、ユーザレベルにコアダンプアプリケーション１１２を備えるように構成されている。このコア転送装置およびコアダンプアプリケーションは、図１〜３を参照しながら上記で説明したコア転送装置およびコアダンプアプリケーションに類似している。アプリケーション実行中のフォルト状態（すなわちアプリケーションクラッシュ）に応答して、ポートインターフェースのコア転送装置がプロセス状態情報をユーザ空間１０４に転送し、コアダンプアプリケーションが転送されたプロセス状態情報からコアファイルを作成する。次いで、コアファイルは制御モジュール１４２（図４）に送られ、そこでコアファイルが永久記憶装置１６６に格納されてよい。制御モジュールの永久記憶装置から、コアファイルがデバッグのために保持、使用されてよい。コアファイルのコピーは、アグリゲーションおよび／またはデバッグのためにネットワークノード１４０から遠隔コンピュータシステムに送られてよい。コアファイルは、ネットワークノードを介して伝達される他のデータと同様にパケット化されたデータとして、ポートインターフェースの１つを介して遠隔コンピュータシステムに送られてよい。一実施形態では、制御モジュールが指定された遠隔コンピュータシステムに自動的にコアファイルを送る。他の実施形態では、コアファイルは必要に応じて遠隔コンピュータによりアクセスされる。例えば、システム管理者は、遠隔システムの管理者アプリケーションを介して、格納されているコアファイルへのアクセス権を必要に応じて得ることができる。
【００２７】
一実施形態では、図４のネットワークノードは、筐体ベースのネットワークノードであり、その中の制御モジュール、交換ファブリック、およびポートインターフェースは個別のリムーバブルモジュールである。
【００２８】
図６はオペレーティングシステム環境でプロセス状態情報を管理する方法の処理流れ図であり、この場合、オペレーティングシステムによって使用されるメモリがカーネル空間とユーザ空間に分けられる。ブロック２００で、第１アプリケーションが実行される。ブロック２０２で、第１アプリケーションの実行時フォルトが識別される。ブロック２０４で、第１アプリケーションの実行時フォルトの識別に応答して、プロセス状態情報がカーネル空間からユーザ空間に与えられる。
【００２９】
以上、本発明の特定の実施形態を説明し図に示してきたが、本発明は、本明細書で説明し図に示した特定の形態あるいは部位の構成に限られるわけではない。本発明は特許請求の範囲によってのみ限定される。
【図面の簡単な説明】
【００３０】
【図１】オペレーティングシステムを走らせ、カーネルレベルにコア転送装置を、ユーザレベルにコアダンプアプリケーションを含む、コンピュータシステムを示す図である。
【図２】プロセス情報、プロセス状態情報、ならびに図１のメモリのユーザ空間およびカーネル空間に関連してコアファイルを示す図である。
【図３】コアダンプアプリケーションによってユーザレベルでコアファイルが作成された後、コアファイルを管理するいくつかのオプションを示す図である。
【図４】制御モジュール、交換ファブリック、および２つのポートインターフェースを含む例示的なネットワーク交換装置および／または経路指定装置を示す図である。
【図５】図４のポートインターフェースから制御モジュールへのコアファイルの転送を示す図である。
【図６】プロセス状態情報を管理する方法の処理流れ図である。
【図１】
2007529827.tif 000003
【図２】
2007529827.tif 000004
【図３】
2007529827.tif 000005
【図４】
2007529827.tif 000006
【図５】
2007529827.tif 000007
【図６】
2007529827.tif 000008
【国際調査報告】
2007529827.tif 000009
2007529827.tif 000010