JP2007529827A - オペレーティングシステム環境でのプロセス状態情報の管理 - Google Patents

オペレーティングシステム環境でのプロセス状態情報の管理 Download PDF

Info

Publication number
JP2007529827A
JP2007529827A JP2007504078A JP2007504078A JP2007529827A JP 2007529827 A JP2007529827 A JP 2007529827A JP 2007504078 A JP2007504078 A JP 2007504078A JP 2007504078 A JP2007504078 A JP 2007504078A JP 2007529827 A JP2007529827 A JP 2007529827A
Authority
JP
Japan
Prior art keywords
state information
core
process state
application
kernel
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2007504078A
Other languages
English (en)
Other versions
JP4937902B2 (ja
Inventor
バラクリシュナン,シィルマルパシィ
ベルヴィッチ,アーテム
Original Assignee
リヴァーストーン ネットワークス インコーポレーテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by リヴァーストーン ネットワークス インコーポレーテッド filed Critical リヴァーストーン ネットワークス インコーポレーテッド
Publication of JP2007529827A publication Critical patent/JP2007529827A/ja
Application granted granted Critical
Publication of JP4937902B2 publication Critical patent/JP4937902B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0715Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a system implementing multitasking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0748Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a remote unit communicating with a single-box computer node experiencing an error/fault
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0778Dumping, i.e. gathering error/state information after a fault for later diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/545Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/481Exception handling

Abstract

プロセス状態情報を管理する技術が、アプリケーションクラッシュの発生時にカーネル空間からユーザ空間にプロセス状態情報を転送することと、カーネルレベルではなくユーザレベルでコアファイルを作成することとを含む。カーネルレベルではなくユーザレベルでプロセス状態情報を処理することで、カーネルコードを使用してコアファイルを作成、管理するシステムに比べ、コアファイルの作成および管理により柔軟性が与えられる。ユーザレベルのコアダンプアプリケーションは、利用可能な永久記憶容量を有する他のシステムにコアファイルを送るようにプログラムされてよい。さらに、コアダンプアプリケーションは、コアファイルの作成中に、プロセス状態情報を圧縮するように、かつ/またはプロセス状態情報から特定の情報だけを抽出するようにプログラムされてよい。

Description

本出願は、2004年3月17日出願の米国仮出願第60/554,036号の利益を享受する権利を有する。
本発明は一般に、コンピュータのオペレーティングシステムに関し、より詳細には、オペレーティングシステム環境でプロセス状態情報を管理する技術に関する。
UNIX(登録商標)ライクオペレーティングシステムの特徴の1つは、プロセス毎にアドレス空間を保護することである。基本的に、すべてのアプリケーション(すなわちプロセス)はそれ自体のアドレス空間で走り、あるアプリケーションが、そのアプリケーションに属すのでないアドレス空間にアクセスしようとする試み(すなわちメモリアドレス違反)はいずれも、そのアプリケーションの異常終了を引き起こす。アプリケーションの異常終了はまた、違法命令、バスエラー、あるいはユーザが生成する終了信号によっても起こることがある。アプリケーションの異常終了が生じると、オペレーティングシステムのカーネル内の一装置によって、プロセス状態情報をローカルの永久記憶装置へ書込む、すなわちローカルの永久記憶装置への「ダンプ」が生じる。ローカルの永久記憶装置に書き込まれたファイルは通常、「core」または「<programname>.core」と命名され、一般には「コアファイル」または単に「コア」と呼ばれる。コアファイルをローカルの永久記憶装置に保存するプロセスは、多くの場合「コアダンプ」または「クラッシュダンプ」と呼ばれる。
従来技術のオペレーティングシステムでは、オペレーティングシステムのカーネルがコアファイルを作成し、そのコアファイルをローカル永久記憶装置に格納するコアダンプ装置を含む。コアダンプ装置は、コアファイルをフラッシュメモリ、ハードディスク、あるいはリムーバブル記憶装置に格納することができる。カーネルによるコアファイルの作成、およびカーネルを利用したコアファイルのローカルの永久記憶装置への格納がうまく機能するのは、利用可能なローカル記憶容量が潤沢にあるシステムにおいてである。しかし、ネットワーク機器(例えば、ルータや交換機)、組込みシステム(例えば、生体電子工学装置、電話音声交換機、航空機制御装置)、電気器具(例えば、ロボット、移動通信装置)など多くのコンピュータシステムで、ローカル永久記憶容量は十分ではない。具体的には、かかるシステムの多くが、コアファイルの格納に使用できる、十分なフラッシュメモリ容量を、あるいはハードディスクやリムーバブル記憶媒体などの大容量ローカル記憶装置を備えていない。これらのタイプのコンピュータシステムにおける永久記憶容量は限られているが、それでもなお、アプリケーションクラッシュをデバッグできるように、コアファイルを作成、保存できることが望ましい。
以上のことを考慮すると、必要とされるのは、柔軟であって、限られたローカル記憶容量しかもたないコンピュータシステムに適用できる、プロセス状態情報を管理する技術である。
プロセス状態情報を管理する技術が、アプリケーションクラッシュの発生時にカーネル空間からユーザ空間にプロセス状態情報を転送(pushing)すること、そしてカーネルレベルではなくユーザレベルでコアファイルを作成することとを含む。カーネルレベルではなくユーザレベルでプロセス状態情報を処理することで、カーネルコードを使用してコアファイルを作成、管理するシステムに比べ、コアファイルの作成および管理により柔軟性が与えられる。ユーザレベルのコアダンプアプリケーションは、利用可能な永久記憶容量を有する他のシステムにコアファイルを送るようにプログラムされてよい。さらに、コアダンプアプリケーションは、コアファイルの作成中に、プロセス状態情報を圧縮するように、かつ/またはプロセス状態情報から特定の情報だけを抽出するようにプログラムされてよい。
本発明の他の態様および利点は、以下の詳細な説明を、例によって本発明の原理を示す添付の図面と併せ読めば明らかとなろう。
説明を通じて同様の参照番号は同様の要素を識別するために使用されてよい。
図1は、オペレーティングシステムを走らせるコンピュータシステム100を示す。このコンピュータシステムは、ユーザ空間104とカーネル空間106とに論理的に分けられたメモリ102を含む。図1の実施形態では、メモリはランダムアクセスメモリ(RAM)などの揮発性メモリである。
ユーザ空間104はアプリケーションを走らせるために用意される。このアプリケーションはユーザレベルで走り、実行時に有用な機能を実施するアプリケーションであればいかなるアプリケーションを含んでもよい。図1の例では、アプリケーションには、アプリケーションA、BおよびC110、ならびにコアダンプアプリケーション112が含まれる。アプリケーションA、BおよびCの具体的な機能は、本発明にとって重要でない。コアダンプアプリケーションの機能については、以下でより詳細に説明する。
カーネル空間106は、オペレーティングシステムのカーネル114を走らせるために用意される。当技術分野で知られているように、カーネルは、例えばメモリ管理、プロセス管理、およびプロセス間通信などを含むオペレーティングシステムのコアサービスを実施するオペレーティングシステムコードの一部である。図1に示すカーネルは、コア転送装置(core push device)116を含み、この装置については以下でより詳細に説明する。
説明のため、実行されているアプリケーションをプロセスと呼ぶ。プロセスに対応するユーザ空間104のメモリ102の内容をプロセス情報と呼ぶ。プロセス情報は、カーネルに格納された状態情報、プロセススタック情報、データ領域(例えばプロセスデータセクション)、およびメモリマップ領域を含むことができる。プロセスに対応するカーネル空間106に格納された情報をプロセス状態情報と呼ぶ。プロセス状態情報はスタックポインタ、ルーチン変数、ロードされた動作命令、レジスタアドレス、プロセススタック、データ領域、およびメモリマップ領域を含むことができる。
典型的なオペレーティングシステムでは、カーネルは、アプリケーションフォルトに応答してコアファイルを作成し、そのコアファイルをフラッシュメモリ、ローカルハードディスク、あるいはリムーバブル記憶媒体などのローカル永久記憶装置に保存するコアダンプ装置を含む。この技術は、コアファイルを保存するに十分な利用可能なローカル永久記憶容量がある場合に限り、うまく機能する。コアファイルを保存するのに十分な利用可能なローカル永久記憶容量がない場合、コアファイルは切り捨てられることもあれば、あるいは単に作成されないこともある。本発明によれば、アプリケーション実行中にフォルトが発生すると、図1のコア転送装置116がプロセス状態情報をユーザ空間104に転送し、図1のコアダンプアプリケーション112がユーザレベルでコアファイルを作成する。カーネルレベルではなくユーザレベルでプロセス状態情報を処理することで、カーネルコードを使用してコアファイルを作成、管理するシステムに比べ、コアファイルの作成および管理により柔軟性が与えられる。ユーザレベルのコアダンプアプリケーションは、利用可能な永久記憶容量を有する他のシステムにコアファイルを送るようにプログラムされてよい。さらに、コアダンプアプリケーションは、コアファイルの作成中に、プロセス状態情報を圧縮するように、かつ/またはプロセス処理情報から特定の情報だけを抽出するようにプログラムされてよい。
次に図1および2を参照しながら、コアファイル作成の基本動作をより詳細に説明する。図1を参照すると、アプリケーションA110が実行中であると仮定されている。アプリケーションAの実行中に、ユーザレベルでプロセス情報が作成され、カーネルレベルに伝達され、カーネルレベルでプロセス状態情報が作成される。アプリケーションAの実行中にフォルト状態(すなわちアプリケーションクラッシュ)が生じると、コア転送装置116がアクティブになり、カーネル空間106からユーザ空間104にプロセス状態情報を転送する。具体的には、プロセス状態情報が、まずローカル永久記憶装置に格納されることなく、カーネル空間からユーザ空間に直接転送される。プロセス状態情報がユーザ空間に転送されると、コアダンプアプリケーション112が、転送されたプロセス状態情報からコアファイルを作成する。次いで、コアダンプアプリケーションは、永久に格納でき、デバッグのためにアクセスすることのできる場所にコアファイル、あるいはそのコピーを送ることができる。
図2は、メモリ102のユーザ空間104およびカーネル空間106に関連して、プロセス情報120、プロセス状態情報122、およびコアファイル124を示している。具体的には、図2は、ユーザレベルのプロセス情報がカーネルレベルでプロセス状態情報になり、カーネルレベルのプロセス状態情報が使用されてユーザレベルでコアファイルを形成することを示している。図2はまた、通常とは異なり、コアファイルがカーネルレベルで作成されてローカル永久メモリにすぐに格納されるのではないことを示している。
図1に戻ると、コアダンプアプリケーション112は、プロセス状態情報からコアファイルを作成するプロセスにおいて、多くの異なる動作を実施することができる。第1の例では、コアダンプアプリケーションはプロセス状態情報を圧縮してコアファイルを作成する。プロセス状態情報を圧縮するのに用いられる具体的な圧縮技術は本発明にとって重要でない。第2の例では、コアダンプアプリケーションは、コアファイルに含まれるプロセス状態情報の総量を制御する。第3の例では、コアダンプアプリケーションは、プロセス状態情報が保存される順序を変更する。例えば、コアダンプアプリケーションは、コアファイル作成中にプロセス状態情報の一部が失われざるを得ない場合やコアファイルが後作業で切り捨てられる場合にレジスタおよびスタック情報が失われることのないように、レジスタおよびスタック情報に優先権を与える。第4の例では、コアダンプアプリケーションは、プロセス状態情報から所望の特定の情報だけを抽出してコアファイルに含める。例えば、コアダンプアプリケーションは、データセグメントあるいは特定のユーザ構成領域(user configured fields)だけを抽出することができる。
コアダンプアプリケーション112はまた、コアファイルが作成されると、そのコアファイルに対して様々な管理動作を実施することもできる。第1の例では、コアダンプアプリケーションは、他のシステムにコアファイルを送る。例えば、コアファイルは、利用可能な記憶容量および/またはデバッグ機能を有する遠隔システムに送られてよい。第2の例では、コアダンプアプリケーションは、揮発性メモリまたは永久記憶装置を含んでよいローカル記憶装置にコアファイルを送る。図3は、コアファイルがユーザレベルでコアダンプアプリケーション112によって作成された後、そのコアファイルを管理するためのいくつかのオプションを示している。図3に示すコンピュータシステムは、ローカル永久記憶装置130およびインターフェース(I/F)132を含む。ローカル永久記憶装置は、破線131で示すコアファイルのローカルな永久記憶を可能にする。インターフェースは、破線133で示すコアファイルの他のコンピュータシステム、例えば利用可能な永久記憶容量および/またはデバッグ機能を有するコンピュータシステムへの転送を可能にする。コアダンプアプリケーションはまた、複数の場所にコアファイルを送ることができる。図3のコンピュータシステムはローカル永久記憶装置およびインターフェースの両方を示しているが、コンピュータシステムはローカル永久記憶装置だけ、あるいはインターフェースだけを含むものであってもよい。
コアダンプアプリケーション112は、コアファイルの管理に関連して他の動作を実施することもできる。第1の例では、コアダンプアプリケーションは、新しいコアファイル用に余地を空けるために削除されてよい先に格納されているコアファイルを識別する。例えば、先に格納されているコアファイルは、先入れ先出しベースで永久記憶装置から削除されてよい。
コアダンプアプリケーション112は、上記で識別された動作のいかなる組合せでも実施できることを理解されたい。コアダンプアプリケーションによって実施される具体的な動作は、実装時固有(implementation−specific)である。
一実施形態では、図1および3に示したコンピュータシステムに類似のコンピュータシステムが、分散アーキテクチャをもつネットワーク交換装置および/または経路指定装置の諸要素となっている。図4は、制御モジュール142、交換ファブリック144、および2つのポートインターフェースモジュール146(ポートインターフェースAおよびB)を含む例示的なネットワーク交換装置および/または経路指定装置(本明細書ではネットワークノード140と呼ぶ)を示している。このネットワークノードは、制御モジュールおよび2つのポートインターフェースがそれぞれ、独自の独立オペレーティングシステムを走らせるので、分散アーキテクチャをもつものとする。
ネットワークノード140は、多くの場合データグラムと呼ばれる離散セグメントのトラフィックを処理する。一実施形態では、ネットワークノードは、第2層(L2)、第3層(L3)、および/または第4層(L4)のヘッダ情報を用いてネットワークノード内のトラフィックを送るイーサネット(登録商標)交換機/ルータであり、この場合のネットワーク「層」は、国際標準化機構(the International Standardization Organization:ISO)によって定義されたOSIモデル(Open System Interconnection (OSI) model)に記載されている。ネットワークノードは、イーサネット(登録商標)、非同期転送モード(asynchronous transfer mode:ATM)、同期型光ネットワーク(synchronous optical network:SONET)、およびフレームリレイなどのネットワークプロトコルをサポートするポートインターフェースを含むことができる。図にはイーサネット(登録商標)ベースの交換機/ルータが示してあるが、コアファイルを作成、管理するための本明細書で開示された技術は、分散アーキテクチャを利用するどのネットワークノードに適用されてもよい。
図4を参照すると、ネットワークノード140の制御モジュール142が、ネットワーク管理機能やプロトコル実装機能など様々な機能をサポートしている。制御モジュールによって実施される機能例には、構成コマンドの実施、タイミング制御の提供、オペレーティングシステムおよびアプリケーションソフトウェアコードの配布、ハードウェアテーブルのプログラミング、システム情報の提供、ユーザインターフェースのサポート、ハードウェア変更の管理、ならびにバス管理が含まれる。交換ファブリック144は、制御モジュールとポートインターフェース146との間のデータパス(例えば制御モジュールからポートインターフェースへのデータパスやポートインターフェースからポートインターフェースへのデータパス)を提供する。交換ファブリックは、例えば、共用メモリ、共用バス、および交差マトリクス(crosspoint matrices)を含むことができる。ポートインターフェースは、ネットワークノードへのトラフィックの受取り、トラフィックのバッファ、決定事項の転送(making forwarding decisions)、およびネットワークノードからのトラフィックの伝送などの機能を実施する。ポートインターフェースは、他のネットワークノードへの接続をサポートする1つまたは複数のポートを含む。
制御モジュール142およびポートインターフェース146は、独自の中央処理装置(CPU)148および150と、メモリ152および154と、インターフェース(I/F)156と、オペレーティングシステム158および160と、アプリケーション162および164とを含む独立コンピュータシステムである。各独立コンピュータシステム内のCPUは、多機能プロセッサおよび/またはアプリケーション固有プロセッサ(application−specific processor:ASP)を含んでよい。プロセッサの例には、IBM(商標)のPowerPC(商標)プロセッサファミリおよびIntel(商標)のx86プロセッサファミリ(商標)が含まれる。制御モジュール内のメモリは、読取り専用メモリ(ROM)、フラッシュメモリ、およびRAMを含んでよい。制御モジュールには、ハードディスクドライブなどの大容量永久記憶装置166が含まれる。ポートインターフェースは、制御モジュールと違って永久記憶装置が含まれていないので、その記憶容量は制御モジュールの記憶容量よりはるかに少ない。
制御モジュール142およびポートインターフェース146のインターフェース156により、制御モジュールとポートインターフェースとが互いに通信できるようになる。一実施形態では、制御モジュールとポートインターフェースとが互いにバックプレーン(図示せず)を介して通信する。
制御モジュール142およびポートインターフェース146のオペレーティングシステム158および160は、それぞれのモジュールのCPU、メモリ、およびアプリケーションの間を結ぶブリッジを提供する。分散アーキテクチャをもつネットワークノードで使用されるオペレーティングシステムの例には、NetBSD、Linux、およびvxWORKSなどのよく知られたオペレーティングシステムが含まれる。図には示していないが、CPUおよびオペレーティングシステムは、他のハードウェア(例えば内容参照可能メモリ(content addressable memory:CAM)やアプリケーション固有集積回路(application−specific integrated circuits:ASICs))によってサポートされてもよい。
独立コンピュータシステム(すなわち制御モジュール142およびポートインターフェース146)上に常駐するアプリケーション162および164は、ネットワークノード140に必要な様々なタスクを実施するソフトウェアベースのアプリケーションである。ネットワークノードの独立コンピュータシステムにロードされるアプリケーションの例には、L2ラーニング、仮想LAN(virtual local area network:VLAN)管理、スパニングツリープロトコル(spanning tree protocol:STP)、およびリンクアグリゲーション制御プロトコル(link aggregation control protocol:LACP)などのL2プロトコルと、オープンショーテストパスファースト(open shortest path first:OSPF)、ボーダゲートウェイプロトコル(border gateway protocol:BGP)、インターミーディエイトシステムトゥインターミーディエイトシステム(intermediate system−to−intermediate system:ISIS)、およびマルチプロトコルラベルスイッチング(multiprotocol label switching:MPLS)などのL3プロトコルが含まれるが、ただしそれだけに限られるわけではない。各モジュールのCPU148および150、メモリ152および154、オペレーティングシステム158および160、ならびにアプリケーション162および164は、説明のために図4では別個の機能ユニットとして示されているが、当技術分野で知られているように、これら機能ユニットは動作的にも機能的にも統合されている。さらに、CPU、メモリ、オペレーティングシステム、およびアプリケーションからなる、いくつかの例が示されているが、これらの例が完全なリストを意味するわけでは決してない。
上記で説明したように、ネットワークノード140のポートインターフェース146は低容量のメモリ(例えば、ROM、フラッシュメモリ、RAM)を有するだけで、永久記憶装置は備えていない。しかし、ポートインターフェースは機能可能なオペレーティングシステム160およびアプリケーション164を備える独立コンピュータシステムであるため、必ずアプリケーションクラッシュが生じる。アプリケーションクラッシュが生じた場合、デバッグ用にコアファイルを保存できることが望ましい。本発明の一実施形態によれば、図5に示すように、ネットワークノードのポートインターフェースが、カーネルレベルにコア転送装置116を、ユーザレベルにコアダンプアプリケーション112を備えるように構成されている。このコア転送装置およびコアダンプアプリケーションは、図1〜3を参照しながら上記で説明したコア転送装置およびコアダンプアプリケーションに類似している。アプリケーション実行中のフォルト状態(すなわちアプリケーションクラッシュ)に応答して、ポートインターフェースのコア転送装置がプロセス状態情報をユーザ空間104に転送し、コアダンプアプリケーションが転送されたプロセス状態情報からコアファイルを作成する。次いで、コアファイルは制御モジュール142(図4)に送られ、そこでコアファイルが永久記憶装置166に格納されてよい。制御モジュールの永久記憶装置から、コアファイルがデバッグのために保持、使用されてよい。コアファイルのコピーは、アグリゲーションおよび/またはデバッグのためにネットワークノード140から遠隔コンピュータシステムに送られてよい。コアファイルは、ネットワークノードを介して伝達される他のデータと同様にパケット化されたデータとして、ポートインターフェースの1つを介して遠隔コンピュータシステムに送られてよい。一実施形態では、制御モジュールが指定された遠隔コンピュータシステムに自動的にコアファイルを送る。他の実施形態では、コアファイルは必要に応じて遠隔コンピュータによりアクセスされる。例えば、システム管理者は、遠隔システムの管理者アプリケーションを介して、格納されているコアファイルへのアクセス権を必要に応じて得ることができる。
一実施形態では、図4のネットワークノードは、筐体ベースのネットワークノードであり、その中の制御モジュール、交換ファブリック、およびポートインターフェースは個別のリムーバブルモジュールである。
図6はオペレーティングシステム環境でプロセス状態情報を管理する方法の処理流れ図であり、この場合、オペレーティングシステムによって使用されるメモリがカーネル空間とユーザ空間に分けられる。ブロック200で、第1アプリケーションが実行される。ブロック202で、第1アプリケーションの実行時フォルトが識別される。ブロック204で、第1アプリケーションの実行時フォルトの識別に応答して、プロセス状態情報がカーネル空間からユーザ空間に与えられる。
以上、本発明の特定の実施形態を説明し図に示してきたが、本発明は、本明細書で説明し図に示した特定の形態あるいは部位の構成に限られるわけではない。本発明は特許請求の範囲によってのみ限定される。
オペレーティングシステムを走らせ、カーネルレベルにコア転送装置を、ユーザレベルにコアダンプアプリケーションを含む、コンピュータシステムを示す図である。 プロセス情報、プロセス状態情報、ならびに図1のメモリのユーザ空間およびカーネル空間に関連してコアファイルを示す図である。 コアダンプアプリケーションによってユーザレベルでコアファイルが作成された後、コアファイルを管理するいくつかのオプションを示す図である。 制御モジュール、交換ファブリック、および2つのポートインターフェースを含む例示的なネットワーク交換装置および/または経路指定装置を示す図である。 図4のポートインターフェースから制御モジュールへのコアファイルの転送を示す図である。 プロセス状態情報を管理する方法の処理流れ図である。

Claims (20)

  1. オペレーティングシステム環境でプロセス状態情報を管理するシステムであって、オペレーティングシステムで使用されるメモリがカーネル空間とユーザ空間とに分けられており、前記システムが、
    コア転送装置を含むカーネルと、
    第1アプリケーションと、
    コアダンプアプリケーションとを含み、
    前記第1アプリケーションが、前記ユーザ空間を使用して実行時にある機能を提供するように構成され、
    前記コア転送装置が、カーネル空間を使用して第1アプリケーションの実行に関連したフォルト状態に応答し、そしてカーネル空間からユーザ空間にプロセス状態情報を与えるように構成され、
    前記コアダンプアプリケーションが、ユーザ空間を使用してカーネル空間からユーザ空間に与えられた前記プロセス状態情報からコアファイルを作成するように構成されていることを特徴とするシステム。
  2. 前記プロセス状態情報がカーネル空間からユーザ空間に直接与えられることを特徴とする請求項1に記載のシステム。
  3. 前記カーネルと前記第1アプリケーションと前記コアダンプアプリケーションとがネットワークノードの第1モジュールにロードされることを特徴とする請求項1に記載のシステム。
  4. 前記コアダンプアプリケーションが、前記ネットワークノードの第2モジュールに前記コアファイルを送るようにさらに構成されていることを特徴とする請求項3に記載のシステム。
  5. 前記第1および第2モジュールは筐体ベースのネットワークノードのリムーバブルモジュールであることを特徴とする請求項4に記載のシステム。
  6. 前記コア転送装置はカーネルレベルのソフトウェアコードであることを特徴とする請求項1に記載のシステム。
  7. 前記コアダンプアプリケーションはユーザレベルのソフトウェアコードであることを特徴とする請求項1に記載のシステム。
  8. 前記コア転送装置はカーネルレベルのソフトウェアコードであり、前記コアダンプアプリケーションはユーザレベルのソフトウェアコードであることを特徴とする請求項1に記載のシステム。
  9. オペレーティングシステムで使用されるメモリがカーネル空間とユーザ空間とに分けられる、オペレーティングシステム環境でプロセス状態情報を管理する方法であって、
    第1アプリケーションを実行するステップと、
    前記第1アプリケーションの実行時フォルトを識別するステップと、
    前記第1アプリケーションの実行時フォルトの識別に応答して、カーネル空間からユーザ空間にプロセス状態情報を与えるステップとを含むことを特徴とする方法。
  10. 前記プロセス状態情報が前記ユーザ空間に直接与えられることを特徴とする請求項9に記載の方法。
  11. 前記カーネル空間からユーザ空間にプロセス状態情報を与えるステップは、プロセス状態情報をコアダンプアプリケーションに与えるステップを含み、さらに、前記ユーザ空間に与えられた前記プロセス状態情報からコアファイルを作成するステップを含むことを特徴とする請求項9に記載の方法。
  12. 前記ユーザ空間でコアファイルを作成するステップをさらに含み、前記コアファイルが前記カーネル空間から与えられた前記プロセス状態情報から作成されることを特徴とする請求項9に記載の方法。
  13. 前記コアファイルを前記ユーザ空間から遠隔システムに送るステップをさらに含むことを特徴とする請求項12に記載の方法。
  14. 前記プロセス状態情報からコアファイルを作成するステップをさらに含み、前記コアファイルを作成するステップは前記プロセス状態情報を圧縮するステップを含むことを特徴とする請求項9に記載の方法。
  15. 前記プロセス状態情報からコアファイルを作成するステップをさらに含み、前記コアファイルを作成するステップは前記プロセス状態情報の所望の部分を抽出するステップを含むことを特徴とする請求項9に記載の方法。
  16. 前記プロセス状態情報からコアファイルを作成するステップをさらに含み、前記コアファイルを作成するステップは前記プロセス状態情報の順序を変更するステップを含むことを特徴とする請求項9に記載の方法。
  17. 独立オペレーティングシステムを走らせる複数のモジュールを備える分散アーキテクチャを有するネットワークノードでプロセス状態情報を管理する方法において、独立オペレーティングシステムの各々で使用されるメモリがカーネル空間とユーザ空間とに分けられており、カーネルはカーネルレベルで動作し、そしてアプリケーションがユーザレベルで動作するものであり、前記方法が、
    第1アプリケーションの実行時フォルトを第1モジュールで識別することと、
    前記第1アプリケーションの実行時フォルトの識別に応答して、前記カーネル空間から前記ユーザ空間にプロセス状態情報を与えるステップと、
    前記ユーザ空間に与えられた前記プロセス状態情報から前記ユーザレベルでコアファイルを作成するステップと、
    前記コアファイルを前記ユーザ空間から第2モジュールに送るステップとを含むことを特徴とする方法。
  18. 前記プロセス状態情報がユーザ空間に直接与えられることを特徴とする請求項17に記載の方法。
  19. プロセス状態情報を前記カーネル空間から前記ユーザ空間に与えるステップは、プロセス状態情報をコアダンプアプリケーションに与えるステップを含むことを特徴とする請求項17に記載の方法。
  20. 前記コアファイルを第2モジュールの永久記憶装置に格納するステップをさらに含むことを特徴とする請求項17に記載の方法。
JP2007504078A 2004-03-17 2005-03-16 オペレーティングシステム環境でのプロセス状態情報の管理 Expired - Fee Related JP4937902B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US55403604P 2004-03-17 2004-03-17
US60/554,036 2004-03-17
PCT/US2005/008808 WO2005089400A2 (en) 2004-03-17 2005-03-16 Managing process state information in an operating system environment

Publications (2)

Publication Number Publication Date
JP2007529827A true JP2007529827A (ja) 2007-10-25
JP4937902B2 JP4937902B2 (ja) 2012-05-23

Family

ID=34994317

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007504078A Expired - Fee Related JP4937902B2 (ja) 2004-03-17 2005-03-16 オペレーティングシステム環境でのプロセス状態情報の管理

Country Status (4)

Country Link
US (1) US7240240B2 (ja)
EP (1) EP1745381A2 (ja)
JP (1) JP4937902B2 (ja)
WO (1) WO2005089400A2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009128975A (ja) * 2007-11-20 2009-06-11 Fujitsu Ltd ネットワークロギング処理プログラム,情報処理システムおよびネットワークロギング情報自動退避方法
JP2009289116A (ja) * 2008-05-30 2009-12-10 Fujitsu Ltd 異常検出方法、異常検出プログラム及び情報処理装置
JP2012084069A (ja) * 2010-10-14 2012-04-26 Hitachi Ltd 計算機システム及び障害情報収集方法
JP2020140529A (ja) * 2019-02-28 2020-09-03 株式会社リコー 情報処理装置、情報処理方法、及びプログラム

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4528144B2 (ja) * 2005-01-26 2010-08-18 富士通株式会社 メモリダンププログラムのブート方法、機構及びプログラム
JP4545619B2 (ja) * 2005-03-15 2010-09-15 富士通株式会社 ネットワークシステム、レイヤ3通信装置、レイヤ2通信装置および経路選択方法
US8745199B1 (en) 2005-06-01 2014-06-03 Netapp, Inc. Method and apparatus for management and troubleshooting of a processing system
US8375386B2 (en) 2005-06-29 2013-02-12 Microsoft Corporation Failure management for a virtualized computing environment
US7778205B2 (en) * 2005-08-30 2010-08-17 Cisco Technology, Inc. System and method for implementing virtual ports within ring networks
US8088011B2 (en) * 2005-11-08 2012-01-03 Microsoft Corporation Dynamic debugging dump for game console
US7496794B1 (en) * 2006-01-13 2009-02-24 Network Appliance, Inc. Creating lightweight fault analysis records
US8639896B2 (en) * 2006-08-02 2014-01-28 International Business Machines Corporation Locating and altering sensitive information in core dumps
US7698305B2 (en) * 2006-12-01 2010-04-13 Microsoft Corporation Program modification and loading times in computing devices
US7698598B1 (en) * 2007-04-24 2010-04-13 Netapp, Inc. Automatic generation of core files and automatic generation of support information with generation of core files
FI120422B (fi) * 2007-07-02 2009-10-15 Tellabs Oy Menetelmä ja laitteita muutoslokin kompressoimiseksi käyttäen flash-transaktioita
US7818616B2 (en) * 2007-07-25 2010-10-19 Cisco Technology, Inc. Warm reboot enabled kernel dumper
FR2926375B1 (fr) * 2008-01-11 2010-02-12 Airbus France Procede d'execution d'une application informatique, kit et aeronef associes
FR2927434B1 (fr) * 2008-02-07 2011-04-08 Bull Sas Procede, systeme et produit programme d'ordinateur pour la gestion d'une interruption d'execution d'une application executable dans au moins un repertoire d'un systeme informatique
JP5211751B2 (ja) * 2008-02-26 2013-06-12 富士通株式会社 計算機、ダンププログラムおよびダンプ方法
US20100023479A1 (en) * 2008-07-24 2010-01-28 Inernational Business Machines Corporation Hexadecimal file fast decompression method
US8166349B2 (en) * 2008-12-18 2012-04-24 Vmware, Inc. Communicating with USB devices after a computer system crash
KR101658485B1 (ko) * 2009-06-18 2016-09-22 삼성전자주식회사 휴대용 단말기에서 디버깅을 위한 부팅 방법 및 장치
JP5440073B2 (ja) * 2009-09-30 2014-03-12 富士通株式会社 情報処理装置,情報処理装置の制御方法および制御プログラム
US8145942B2 (en) * 2010-03-29 2012-03-27 International Business Machines Corporation Methods and systems for troubleshooting remote systems through recreation of remote system scenarios
CN103339608A (zh) * 2011-01-31 2013-10-02 汤姆逊许可公司 诊断信息日志记录
CN102508713B (zh) * 2011-10-12 2015-01-28 杭州华三通信技术有限公司 进程启动方法及装置
GB2503439A (en) * 2012-06-26 2014-01-01 Ibm Method of restarting a software system that has unintentional shutdown.
US20140181040A1 (en) * 2012-12-21 2014-06-26 Zetta, Inc. Client application software for on-line backup and disaster recovery
US9348533B2 (en) * 2013-03-14 2016-05-24 Microsoft Technology Licensing, Llc Memory image capture via memory write from a running system
US9235497B2 (en) 2013-03-27 2016-01-12 Intel Corporation Method and system for detecting concurrency programming errors in kernel modules and device drivers
US9483341B2 (en) * 2014-01-02 2016-11-01 Red Hat, Inc. Applying security label on kernel core crash file
US20150264116A1 (en) * 2014-03-14 2015-09-17 Ira Weiny Scalable Address Resolution
IN2014DE00764A (ja) * 2014-03-14 2015-09-18 Netapp Inc
US9836343B2 (en) 2014-03-17 2017-12-05 Microsoft Technology Licensing, Llc Framework for user-mode crash reporting
US9740551B2 (en) 2014-12-02 2017-08-22 International Business Machines Corporation Enhanced restart of a core dumping application
US10025650B2 (en) 2015-09-17 2018-07-17 International Business Machines Corporation Determining a trace of a system dump
US10146625B2 (en) * 2015-10-28 2018-12-04 Dell Products L.P. Systems and methods for intelligent data manager for offloading of bulk data transfers
US10216562B2 (en) * 2016-02-23 2019-02-26 International Business Machines Corporation Generating diagnostic data
CN106775487A (zh) * 2016-12-27 2017-05-31 郑州云海信息技术有限公司 一种多路径存储故障的处理方法和装置
CN107645546B (zh) * 2017-09-12 2021-07-06 深圳Tcl新技术有限公司 基于安卓系统的文件监听方法、智能设备及存储介质
CN109002485A (zh) * 2018-06-25 2018-12-14 郑州云海信息技术有限公司 一种core文件的管理方法、装置和存储介质
US11481240B2 (en) 2018-11-30 2022-10-25 International Business Machines Corporation Capturing traces of virtual machine objects combined with correlated system data
US11360839B1 (en) * 2021-02-26 2022-06-14 Quanta Computer Inc. Systems and methods for storing error data from a crash dump in a computer system

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08320809A (ja) * 1995-05-25 1996-12-03 Hitachi Ltd 外乱プロセス排除方式
JP2001034510A (ja) * 1999-07-22 2001-02-09 Mitsubishi Electric Corp クラッシュダンプ管理装置及びクラッシュダンプ管理方法
US20020078404A1 (en) * 2000-12-20 2002-06-20 Vachon Andre F. System and method for remotely creating a physical memory snapshot over a serial bus
JP2002202901A (ja) * 2000-12-15 2002-07-19 Microsoft Corp フルダンプファイルからのミニダンプファイルの作成
US6738926B2 (en) * 2001-06-15 2004-05-18 Sun Microsystems, Inc. Method and apparatus for recovering a multi-threaded process from a checkpoint
US6832266B1 (en) * 2000-02-07 2004-12-14 Sun Microsystems, Inc. Simplified microkernel application programming interface

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5339406A (en) * 1992-04-03 1994-08-16 Sun Microsystems, Inc. Reconstructing symbol definitions of a dynamically configurable operating system defined at the time of a system crash
US5999933A (en) * 1995-12-14 1999-12-07 Compaq Computer Corporation Process and apparatus for collecting a data structure of a memory dump into a logical table
US6202090B1 (en) 1997-12-11 2001-03-13 Cisco Technology, Inc. Apparatus and method for downloading core file in a network device
US6094530A (en) * 1998-04-29 2000-07-25 Intel Corporation Remotely monitoring execution of a program
US6226761B1 (en) * 1998-09-24 2001-05-01 International Business Machines Corporation Post dump garbage collection
US6437788B1 (en) * 1999-07-16 2002-08-20 International Business Machines Corporation Synchronizing graphics texture management in a computer system using threads
US6523141B1 (en) * 2000-02-25 2003-02-18 Sun Microsystems, Inc. Method and apparatus for post-mortem kernel memory leak detection
US6601184B1 (en) 2000-03-14 2003-07-29 Novell, Inc. System crash network access

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08320809A (ja) * 1995-05-25 1996-12-03 Hitachi Ltd 外乱プロセス排除方式
JP2001034510A (ja) * 1999-07-22 2001-02-09 Mitsubishi Electric Corp クラッシュダンプ管理装置及びクラッシュダンプ管理方法
US6832266B1 (en) * 2000-02-07 2004-12-14 Sun Microsystems, Inc. Simplified microkernel application programming interface
JP2002202901A (ja) * 2000-12-15 2002-07-19 Microsoft Corp フルダンプファイルからのミニダンプファイルの作成
US20020078404A1 (en) * 2000-12-20 2002-06-20 Vachon Andre F. System and method for remotely creating a physical memory snapshot over a serial bus
US6738926B2 (en) * 2001-06-15 2004-05-18 Sun Microsystems, Inc. Method and apparatus for recovering a multi-threaded process from a checkpoint

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009128975A (ja) * 2007-11-20 2009-06-11 Fujitsu Ltd ネットワークロギング処理プログラム,情報処理システムおよびネットワークロギング情報自動退避方法
JP2009289116A (ja) * 2008-05-30 2009-12-10 Fujitsu Ltd 異常検出方法、異常検出プログラム及び情報処理装置
JP2012084069A (ja) * 2010-10-14 2012-04-26 Hitachi Ltd 計算機システム及び障害情報収集方法
JP2020140529A (ja) * 2019-02-28 2020-09-03 株式会社リコー 情報処理装置、情報処理方法、及びプログラム
JP7279415B2 (ja) 2019-02-28 2023-05-23 株式会社リコー 情報処理装置、情報処理方法、及びプログラム

Also Published As

Publication number Publication date
US7240240B2 (en) 2007-07-03
US20050210077A1 (en) 2005-09-22
WO2005089400A3 (en) 2007-01-11
JP4937902B2 (ja) 2012-05-23
WO2005089400A2 (en) 2005-09-29
EP1745381A2 (en) 2007-01-24

Similar Documents

Publication Publication Date Title
JP4937902B2 (ja) オペレーティングシステム環境でのプロセス状態情報の管理
US6847645B1 (en) Method and apparatus for controlling packet header buffer wrap around in a forwarding engine of an intermediate network node
US7685330B2 (en) Method for efficient determination of memory copy versus registration in direct access environments
US7979548B2 (en) Hardware enforcement of logical partitioning of a channel adapter's resources in a system area network
US6829685B2 (en) Open format storage subsystem apparatus and method
US6928478B1 (en) Method and apparatus for implementing a MAC address pool for assignment to a virtual interface aggregate
US7818628B1 (en) Fast port failover in a network switch
US6981025B1 (en) Method and apparatus for ensuring scalable mastership during initialization of a system area network
US7657787B2 (en) Method of restoring communication state of process
US8619552B2 (en) Virtual router with a priority value per port
US6754219B1 (en) Modular routing system
EP1154601A1 (en) Modular routing system with Routing Application Programm Interface (API)
US6901594B1 (en) Apparatus and method for establishing communication between applications
US6757289B1 (en) Apparatus and method for managing communication between a failed application and other executing applications
US7092401B2 (en) Apparatus and method for managing work and completion queues using head and tail pointers with end-to-end context error cache for reliable datagram
US20030105931A1 (en) Architecture for transparent mirroring
JP2022509645A (ja) 分解されたネットワーク要素を含む論理ルータ
US7409432B1 (en) Efficient process for handover between subnet managers
US20020198927A1 (en) Apparatus and method for routing internet protocol frames over a system area network
US7636772B1 (en) Method and apparatus for dynamic retention of system area network management information in non-volatile store
US8468495B2 (en) Use of metadata for seamless updates
JP4071098B2 (ja) ネットワークフィルタドライバのためのアーキテクチャおよびランタイム環境
JP6740543B2 (ja) 通信装置、システム、ロールバック方法及びプログラム
US20070233867A1 (en) Method and apparatus for preserving MAC addresses across a reboot
US7581163B1 (en) Detection of corrupted memory pointers within a packet-processing device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080312

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20110114

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110527

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110601

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110901

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110908

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111201

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111226

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120105

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120130

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120222

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150302

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4937902

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees