Nothing Special   »   [go: up one dir, main page]

JP5211751B2 - 計算機、ダンププログラムおよびダンプ方法 - Google Patents

計算機、ダンププログラムおよびダンプ方法 Download PDF

Info

Publication number
JP5211751B2
JP5211751B2 JP2008044419A JP2008044419A JP5211751B2 JP 5211751 B2 JP5211751 B2 JP 5211751B2 JP 2008044419 A JP2008044419 A JP 2008044419A JP 2008044419 A JP2008044419 A JP 2008044419A JP 5211751 B2 JP5211751 B2 JP 5211751B2
Authority
JP
Japan
Prior art keywords
priority
information
file
storage area
stored
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.)
Expired - Fee Related
Application number
JP2008044419A
Other languages
English (en)
Other versions
JP2009205254A (ja
Inventor
彰 菅原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2008044419A priority Critical patent/JP5211751B2/ja
Priority to US12/389,016 priority patent/US8131973B2/en
Publication of JP2009205254A publication Critical patent/JP2009205254A/ja
Application granted granted Critical
Publication of JP5211751B2 publication Critical patent/JP5211751B2/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
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、プログラムが異常終了した場合に、プログラムによって使用されていた記憶空間に記憶されている情報をファイルにダンプする計算機、ダンププログラムおよびダンプ方法に関し、特に、ダンプファイルのサイズを小さくしつつ、障害解析に必要な情報をダンプファイルに出力することができる計算機、ダンププログラムおよびダンプ方法に関する。
従来、電子計算機に搭載されているOS(Operating System)は、何らかの処理が異常終了すると、そのときのメモリイメージを磁気ディスク上に出力してダンプファイルを生成する。そして、システム管理者等は、所定の解析ツールを用いて、生成されたダンプファイルを解析することで障害の原因を究明する。
OSは、いつ処理が異常終了してもダンプファイルを生成できるように、磁気ディスク上にダンプファイルを生成するための所定の容量を確保しておく。この所定の容量とは、電子計算機に搭載されているメモリ容量に依存しており、メモリ容量が大きいほど大きくなる。
近年では、メモリ容量が増大しており、それに伴って、ダンプファイルのサイズも増大している。このことは、ユーザが利用できる磁気ディスク容量を減らしてしまうため、ダンプファイルのサイズを小さくすることが望まれている。ただし、単純にダンプファイルを小さくすると、障害解析時に必要な情報をダンプファイルに出力できなくなるので、障害解析時に必要な情報をダンプファイルに出力できる程度に、ダンプファイルのサイズを小さくすることが望まれている。
そこで、特許文献1には、所定のサイズに分割したメモリ領域に優先順位を設けて、優先順位の高いメモリ領域の順にダンプファイルに出力する技術が開示されている。また、特許文献2には、処理が異常終了する前から、常に様々な情報(処理の実行順序など)を所定の記憶部に収集しておき、処理が異常終了した場合に、収集しておいた情報に基づいて、必要な情報をダンプファイルに出力する技術が開示されている。これらの技術を用いれば、ダンプファイルのサイズを小さくしても、必要な情報をダンプファイルに出力し損ねる可能性が低くなる。
特開平2−047735号公報 特開平9−325903号公報
しかしながら、上記特許文献1に開示されている技術は、障害解析に必要となるメモリ情報量が多いと、ダンプファイルにすべての情報を出力できないおそれがあるという問題があった。すなわち、優先度の低いメモリ領域であっても障害解析に必要な情報となる場合もあり、上記特許文献1に開示されている技術のように、単にメモリ領域に優先順位を設けるだけでは、障害解析時に必要な情報をダンプファイルに出力しつつ、ダンプファイルのサイズを小さくするということは実現できなかった。
また、上記特許文献2に開示されている技術は、正常動作時に様々な情報を常に磁気ディスク上に保持しておく必要があるため、ダンプファイルのサイズを小さくすることができても、磁気ディスクの使用容量は小さくならないという問題があった。
本発明は、上述した従来技術による問題点を解消するためになされたものであり、ダンプファイルのサイズを小さくしつつ、障害解析に必要な情報をダンプファイルに出力することができる計算機、ダンププログラムおよびダンプ方法を提供することを目的とする。
上述した課題を解決し、目的を達成するために、本願に開示する計算機は、プログラムが異常終了した場合に、前記プログラムによって使用されていた記憶空間(実施例1〜3における「メモリ110」に相当する)に記憶されている情報をファイルにダンプする計算機であって、前記記憶空間を所定の領域に区切った記憶領域(実施例1〜3における「メモリ領域」に相当する)毎に、ファイルにダンプする順番を示す優先度を決定する優先度決定手段と、前記優先度決定手段によって決定された優先度の高い順番に、前記記憶領域に記憶されている情報を圧縮する圧縮手段と、前記圧縮手段によって圧縮された順番に、圧縮された情報を前記ファイルに出力するファイル出力手段とを備えたことを要件とする。
また、上記態様において、本願に開示する計算機は、前記記憶領域に対応づけて、該記憶領域に記憶されている情報が更新されたか否かを示す更新フラグと、該記憶領域に記憶されている情報が参照されたか否かを示す参照フラグとを記憶するページ管理テーブルをさらに備え、前記優先度決定手段は、前記ページ管理テーブルに基づいて、更新かつ参照された記憶領域の優先度を最も高くして、少なくとも更新または参照のいずれかがなされた記憶領域の優先度を二番目に高くすることを要件とする。
また、上記態様において、本願に開示する計算機は、前記優先度決定手段は、レジスタに記憶されているアドレスが示す記憶領域の優先度を高くすることを要件とする。
また、上記態様において、本願に開示する計算機は、前記優先度決定手段は、レジスタに記憶されていたアドレスの履歴を記憶するトレース情報に記憶されているアドレスが示す記憶領域の中で、最後に記憶されたアドレスが示す記憶領域ほど優先度を高くすることを要件とする。
なお、本願に開示する計算機の構成要素、表現または構成要素の任意の組合せを、方法、装置、システム、コンピュータプログラム、記録媒体、データ構造などに適用したものも、他の態様として有効である。
本願に開示した計算機によれば、ダンプファイルのサイズを小さくしつつ、障害解析に必要な情報をダンプファイルに出力することができるという効果を奏する。
以下に添付図面を参照して、本発明に係る計算機、ダンププログラムおよびダンプ方法の好適な実施の形態を詳細に説明する。なお、以下の実施例により本発明が限定されるものではない。
まず、実施例1に係る計算機100によるダンプ処理の概要について説明する。図1は、実施例1に係る計算機100によるダンプ処理の概要を説明するための図である。なお、以下の説明では、計算機100が、ページング方式によりメモリ空間を管理する例を示す。
計算機100は、計算機100上で動作するプログラムが異常終了した場合に、メモリ110に記憶されている情報をダンプファイル123に出力するダンプ処理を行う。実施例1に係る計算機100は、ダンプ処理を行う際、優先度決定基情報群10が有する各種情報に基づいて、メモリ領域毎に、ダンプファイル123にメモリ110内の情報を出力する順番である「優先度」を決定する。そして、計算機100は、優先度の高い順番に、メモリ領域に記憶されている情報を圧縮して、ダンプファイル123に出力する。
なお、ここでいう「メモリ領域」とは、メモリ110の記憶領域を所定のサイズ毎に分割した領域である。以下の説明では、メモリ110が、ページング方式における1ページ分に相当するサイズ毎(例えば、4KB)に分割された場合を示し、1ページが1つのメモリ領域であるとする。なお、メモリ110を区切る単位はこれに限られず、複数のページに相当するサイズ毎に区切ってもよいし、所定のサイズ毎に区切ってもよい。
上述した計算機100によるダンプ処理について、具体的に説明する。まず、優先度決定処理を行う際に用いる優先度決定基情報群10について説明する。同図に示すように、優先度決定基情報群10には、レジスタ140と、トレース情報112と、ページ管理テーブル150とが含まれる。
レジスタ140は、メモリ110上の記憶位置を示すアドレスを一時記憶するレジスタである。なお、レジスタにはいくつかの種類があり、各処理の演算結果や、演算に用いるデータ等を一時記憶するレジスタもあるが、レジスタ140は、メモリ110のアドレスを一時記憶するアドレスレジスタである。
計算機100は、レジスタ140に記憶されているアドレスが示すメモリ領域の優先度を高くする。レジスタ140には処理中の情報が記憶されるため、レジスタ140に記憶されているアドレスが示すメモリ領域は、障害解析を行う上で重要になる可能性が高い。したがって、レジスタ140に記憶されているアドレスが示すメモリ領域内の情報を優先的にダンプファイル123に出力することで、利用者は重要な情報を用いて障害解析を行うことができる。
トレース情報112は、各種プログラムが行った処理の履歴を記憶する。具体的には、トレース情報112は、計算機100で管理されているプログラム番号、レジスタ140に記憶されていた情報(アドレス)、処理日時等を含むレコードを時系列に記憶する。
計算機100は、トレース情報112に記憶されている各種情報に基づいて、レジスタ140に記憶されていたアドレスが示すメモリ領域の優先度を高くする。最近までレジスタ140に記憶されていた情報は、最近まで処理中だったことを意味するので、障害解析を行う上で重要になる可能性が高い。したがって、最近までレジスタ140に記憶されていたアドレスが示すメモリ領域内の情報を優先的にダンプファイル123に出力することで、利用者は重要な情報を用いて障害解析を行うことができる。
ページ管理テーブル150は、メモリ空間をページング方式により管理する場合に、一般に用いられるテーブルであり、ページ番号に対応付けて、メモリ110上の物理的な記憶位置を示す物理アドレスや、ページ番号に対応するメモリ領域(ページ)に記憶されている情報が更新または参照されたか否かを示すフラグ等を記憶する。
計算機100は、ページ管理テーブル150に記憶されている各種情報に基づいて、更新または参照された情報を記憶するメモリ領域の優先度を高くする。更新または参照された情報は、最近アクセスされたことを示すので、障害解析を行う上で重要になる可能性が高い。したがって、更新または参照された情報を優先的にダンプファイル123に出力することで、利用者は重要な情報を用いて障害解析を行うことができる。
そして、計算機100は、各メモリ領域について優先度を決定した後、優先度の高い順番に、メモリ領域に記憶されている情報を圧縮して、圧縮した情報をダンプファイル123に出力する。
図1に示した例では、計算機100は、ページ番号「0」のメモリ領域を、優先度「1」にしている。そして、計算機100は、ページ番号「1」のメモリ領域の優先度を「3」にしており、ページ番号「2」のメモリ領域の優先度を「4」にしており、ページ番号「3」のメモリ領域の優先度を「5」にしており、ページ番号「4」のメモリ領域の優先度を「2」にしている。なお、本明細書では、数字が小さいほど優先度が高いものとする。
そして、計算機100は、最初に、メモリ110の中で最も優先度の高いページ番号「0」のメモリ領域に記憶されている情報を圧縮してダンプファイル123に出力している。そして、次に優先度の高いページ番号「4」のメモリ領域に記憶されている情報を圧縮してダンプファイル123に出力している。同様にして、計算機100は、ページ番号「1」、ページ番号「2」の順にメモリ領域内の情報を圧縮してダンプファイル123に出力している。なお、計算機100は、ページ番号「3」のメモリ領域に記憶されている情報をダンプファイル123に出力していない。これは、ダンプファイル123の空き領域がなくなったためである。
このように、実施例1に係る計算機100は、各種プログラムが異常終了した場合に、かかるプログラムが使用していたメモリ領域上の情報を無条件でダンプファイル123に出力するのではなく、優先度決定基情報群10に含まれる各種情報に基づいて、メモリ領域毎に優先度を決定し、決定した優先度の順番にメモリ領域に記憶されている情報を圧縮して、空き領域がなくなるまでダンプファイル123に出力する。したがって、実施例1に係る計算機100では、ダンプファイル123のサイズを小さくしつつ、障害解析に必要な情報をダンプファイル123に出力することができる。
次に、実施例1に係る計算機100の構成について説明する。図2は、実施例1に係る計算機100の構成を示す機能ブロック図である。同図に示すように、計算機100は、パーソナルコンピュータ等の装置であり、メモリ110と、記憶部120と、CPU(Central Processing Unit)130とを有する。なお、図2では、計算機100によるダンプ処理と密接に関係のない機能部については図示を省略している。
メモリ110は、RAM(Random Access Memory)等のメモリであり、各種情報を記憶する。計算機100ではページング方式によりメモリ空間を管理しているため、図示しないメモリ管理部は、メモリ110に空き領域がない状態で新たなページを割り当てる必要がある場合、所定のページを後述するスワップ領域121にページアウトする。また、図示しないメモリ管理部は、ページアウトしたページを取得する必要がある場合、スワップ領域121からメモリ110の空き領域にページインする。
また、メモリ110は、プログラム111と、トレース情報112とを記憶する。プログラム111は、所定の処理を実現するためのプログラムであり、後述する演算部160によって実行される。トレース情報112は、プログラム111が行った処理の履歴を記憶し、プログラム111の番号と、レジスタ140に記憶されていた情報と、処理日時等を含むレコードを時系列に記憶する。なお、図2は、1つのプログラム111のみが実行されている例を示しているが、複数の異なるプログラムが実行されてもよい。
記憶部120は、磁気ディスク等の記憶媒体であり、スワップ領域121と、ダンプ領域122とを含む。スワップ領域121は、メモリ110によってページアウトされたページを記憶する。ダンプ領域122は、後述するダンプ制御部170によって生成されるダンプファイル123を記憶する。ダンプファイル123は、プログラム111が異常終了した場合に、メモリ110に記憶されている情報を記憶するファイルである。このダンプファイル123のサイズは、予めシステムに設定される情報に基づいて決定される。
CPU130は、計算機100を全体制御する演算装置であり、レジスタ140と、ページ管理テーブル150と、演算部160と、ダンプ制御部170とを有する。レジスタ140は、メモリ110上の記憶位置を示すアドレスを一時記憶するアドレスレジスタである。
ページ管理テーブル150は、ページング方式によりメモリ空間を管理する際に用いられるテーブルである。ページ管理テーブル150の一例を図3に示す。同図に示すように、ページ管理テーブル150は、ページ番号に対応付けて、物理アドレス、更新フラグ、参照フラグ、ページングフラグを記憶する。
ページ番号は、メモリ110を所定のサイズ毎に分割した単位であるページを識別するための番号を表す。物理アドレスは、ページ番号が示すページが記憶されているメモリ110上の物理的な記憶位置を表す。
更新フラグは、ページ番号が示すページが更新されたか否かを示すフラグである。同図では、更新フラグが「1」の場合、対応するページ番号が示すページが更新されたことを示し、更新フラグが「0」の場合、対応するページ番号が示すページが更新されていないことを示すこととする。
参照フラグは、ページ番号が示すページが参照されたか否かを示すフラグである。同図では、参照フラグが「1」の場合、対応するページ番号が示すページが参照されたことを示し、参照フラグが「0」の場合、対応するページ番号が示すページが参照されていないことを示すこととする。
ページングフラグは、ページ番号が示すページがメモリ110に記憶されているか否かを示すフラグである。言い換えれば、ページングフラグは、ページ番号が示すページがページアウトされているか否かを示すフラグである。同図では、ページングフラグが「1」の場合、対応するページ番号が示すページがメモリ110に記憶されていることを示し、ページングフラグが「0」の場合、対応するページ番号が示すページがページアウトされて、スワップ領域121に記憶されていることを示すこととする。
図3に示したページ管理テーブル150の1行目は、ページ番号「0」のメモリ領域が、物理アドレス「101」に記憶されており、更新されていないが(更新フラグ「0」)、参照されており(参照フラグ「1」)、メモリ110に記憶されている(ページングフラグ「1」)ことを示す。
また、図3に示したページ管理テーブル150の4行目は、ページ番号「3」のメモリ領域が、物理アドレス「102」に記憶されており、更新も参照もされておらず(更新フラグ「0」、参照フラグ「0」)、メモリ110に記憶されていない(ページングフラグ「0」)ことを示す。
演算部160は、各種処理を行う処理部であり、図2に示した例では、プログラム111を実行する。そして、演算部160は、プログラム111を実行して異常終了した場合に、異常終了したことを示す信号をダンプ制御部170へ出力する。
ダンプ制御部170は、演算部160が実行するプログラム111が異常終了した場合に、メモリ110に記憶されている情報をダンプファイル123に出力する処理部であり、初期化部171と、優先度決定部172と、圧縮部173と、ファイル出力部174とを有する。
初期化部171は、ダンプファイル123の管理領域を初期化する処理部である。具体的には、初期化部171は、演算部160からプログラム111が異常終了したことを示す信号を受け付けた場合に、メモリ110のサイズからダンプファイル123の管理領域のサイズを算出して、ダンプファイル123内に算出したサイズの管理領域を確保(初期化)する。
ここでいうダンプファイル123の管理領域とは、ダンプファイル123を解析する際に必要となる情報を記憶する領域であり、ダンプファイル123に出力した情報のページ番号、サイズ、オフセットから構成される。
優先度決定部172は、各メモリ領域の優先度を決定する処理部である。具体的には、優先度決定部172は、まず、レジスタ140に記憶されているアドレスを取得して、取得したアドレスが示すメモリ領域の優先度を最も高くする。
続いて、優先度決定部172は、トレース情報112に記憶されている「レジスタ140に記憶されていたアドレス」が示すメモリ領域の優先度を2番目に高くする。このとき、優先度決定部172は、トレース情報112に記憶されているすべてのレコードから「レジスタ140に記憶されていたアドレス」を取得するのではなく、トレース情報112に最後に記憶された所定の数のレコードからのみ「レジスタ140に記憶されていたアドレス」を取得する。これは、トレース情報112には、古いレコードも記憶されており、古い情報は障害解析を行う上で重要な情報とならない可能性があるからである。なお、優先度決定部172は、すでに優先度を設定したメモリ領域については、再度、優先度を設定しない。
なお、優先度決定部172は、トレース情報112に最後に記憶されたレコード内の「レジスタ140に記憶されていたアドレス」が示すメモリ領域ほど優先度を高くしてもよい。例えば、優先度決定部172は、トレース情報112に最後に記憶されたレコード内の「レジスタ140に記憶されていたアドレス」が示すメモリ領域の優先度を2番目に高くし、トレース情報112に最後から2番目に記憶されたレコード内の「レジスタ140に記憶されていたアドレス」が示すメモリ領域の優先度を3番目に高くしてもよい。
続いて、優先度決定部172は、ページ管理テーブル150を読み込み、各メモリ領域に記憶されている情報が更新または参照されたか否かを判断する。そして、優先度決定部172は、更新かつ参照されている情報を格納するメモリ領域の優先度を3番目に高くし、更新または参照のいずれかがなされている情報を格納するメモリ領域の優先度を4番目に高くする。なお、優先度決定部172は、すでに優先度を設定したメモリ領域については、再度、優先度を設定しない。このように、更新または参照されていない情報を、ダンプファイル123への出力対象外とすることで、ダンプファイル123に出力する情報量を削減することができる。
例えば、ページ管理テーブル150が図3に示した状態である場合、優先度決定部172は、更新フラグ「1」、かつ、参照フラグ「1」であるページ番号「1」のメモリ領域の優先度を3番目に高くする。そして、優先度決定部172は、更新フラグ「0」、かつ、参照フラグ「1」であるページ番号「0」のメモリ領域と、更新フラグ「1」、かつ、参照フラグ「0」であるページ番号「2」のメモリ領域の優先度を4番目に高くする。
なお、上述した例では、優先度決定部172は、まず、レジスタ140に記憶されている情報により決定されるメモリ領域の優先度を最も高くして、続いて、トレース情報112に記憶されている情報により決定されるメモリ領域の優先度を2番目に高くして、続いて、ページ管理テーブル150に記憶されている情報により決定されるメモリ領域の優先度を3番目、4番目に高くしたが、この順番に優先度を決定しなくてもよい。例えば、優先度決定部172は、まず、ページ管理テーブル150に記憶されている情報により決定される優先度を1番目、2番目に高くして、続いて、レジスタ140に記憶されている情報により決定されるメモリ領域の優先度を3番目に高くして、続いて、トレース情報112に記憶されている情報により決定されるメモリ領域の優先度を4番目に高くしてもよい。
圧縮部173は、優先度決定部172によって決定された優先度の高い順番に、メモリ領域に記憶されている情報を圧縮する処理部である。具体的には、圧縮部173は、まず、最も優先度の高いメモリ領域に記憶されている情報を圧縮し、その後、圧縮処理が終了したことを示す信号をファイル出力部174へ出力する。続いて、圧縮部173は、2番目に優先度の高いメモリ領域に記憶されている情報を圧縮し、圧縮処理が終了したことを示す信号をファイル出力部174へ出力する。圧縮部173は、後述するファイル出力部174から、ダンプファイル123に空き領域がなくなったことを示す信号を受け付けるまで、優先度の高い順番にメモリ領域に記憶されている情報を圧縮する処理を繰り返す。
また、圧縮部173は、圧縮対象の情報がスワップ領域121にページアウトされている場合、スワップ領域121から対象のページをメモリ110にページインした後に、ページインした情報を圧縮する。圧縮部173は、ページ管理テーブル150のページングフラグに基づいて、圧縮対象の情報がスワップ領域121にページアウトされているか否かを判断する。
ファイル出力部174は、圧縮部173によって圧縮された順番に、圧縮された情報をダンプファイル123に出力する処理部である。具体的には、ファイル出力部174は、圧縮部173から圧縮処理が終了したことを示す信号を受け付けた場合に、圧縮された情報のサイズを測定する。そして、ファイル出力部174は、圧縮された情報をダンプファイル123に出力するとともに、出力した情報のページ番号、サイズ、オフセットをダンプファイル123内の管理領域に記憶させる。そして、ファイル出力部174は、ダンプファイル123に、さらに情報を出力するための空き領域があるかを確認し、空き領域がない場合は、ダンプファイル123に空き領域がないことを示す信号を圧縮部173へ出力する。
なお、ダンプファイル123内の管理領域に、ページ番号、サイズ、オフセットを記憶させるのは、圧縮後の情報は一定のサイズではないからである。すなわち、解析ツールがダンプファイル123を解析する場合に、管理領域に記憶されている各種情報に基づいて、圧縮された情報を展開できるようにするためである。
次に、実施例1に係る計算機100によるダンプ処理について説明する。図4は、実施例1に係る計算機100によるダンプ処理手順を示すフローチャートである。同図に示すように、計算機100の初期化部171は、演算部160からプログラム111が異常終了したことを示す信号を受け付けた場合(ステップS101肯定)、メモリ110のサイズからダンプファイル123の管理領域のサイズを算出して、ダンプファイル123内に算出したサイズの管理領域を確保(初期化)する(ステップS102)。その後、優先度決定部172は、各メモリ領域の優先度を決定する優先度決定処理を行う(ステップS103)。なお、優先度決定部172による優先度決定処理は、後述する。
そして、圧縮部173は、優先度決定部172によって決定された優先度の最も高いメモリ領域のページ番号を取得する(ステップS104)。そして、圧縮部173は、取得したページ番号に対応するページ管理テーブル150のページングフラグに基づいて、取得したページ番号が示すページがスワップ領域121にページアウトされた情報であると判断した場合(ステップS105肯定)、かかるページをスワップ領域121からメモリ110にページインする(ステップS106)。そして、圧縮部173は、メモリ110にページインした情報を圧縮する(ステップS107)。
一方、取得したページ番号が示すページがスワップ領域121にページアウトされた情報でないと判断した場合(ステップS105否定)、圧縮部173は、かかるページ番号のメモリ領域に記憶されている情報を圧縮する(ステップS107)。そして、圧縮部173は、圧縮処理が終了したことを示す信号をファイル出力部174へ出力する。
圧縮部173から圧縮処理が終了したことを示す信号を受け付けたファイル出力部174は、圧縮された情報のサイズを計測した後、圧縮された情報をダンプファイル123に出力するとともに(ステップS108)、ダンプファイル123に出力した情報のページ番号、サイズ、オフセットをダンプファイル123内の管理領域に記憶させる(ステップS109)。
そして、ファイル出力部174は、メモリ110に記憶されているすべて情報をダンプファイル123に出力した場合(ステップS110肯定)、処理を終了する。また、ファイル出力部174は、メモリ110に記憶されているすべて情報をダンプファイル123に出力していない場合であっても(ステップS110否定)、ダンプファイル123に空き領域がなくなった場合(ステップS111否定)、ダンプファイル123に空き領域がないことを示す信号を圧縮部173へ出力して処理を終了する。
一方、メモリ110のすべて情報をダンプファイル123に出力しておらず(ステップS110否定)、かつ、ダンプファイル123に空き領域がある場合(ステップS111肯定)、圧縮部173は、優先度が2番目に高いメモリ領域のページ番号を取得する(ステップS104)。そして、圧縮部173およびファイル出力部174は、上述した圧縮処理およびファイル出力処理を行う(ステップS105〜S109)。圧縮部173およびファイル出力部174は、メモリ110に記憶されているすべて情報をダンプファイル123に出力するか(ステップS110肯定)、または、ダンプファイル123に空き領域がなくなるまで(ステップS111否定)、優先度の高いメモリ領域の順番に、圧縮処理およびファイル出力処理(ステップS104〜S109)を繰り返す。
次に、図2に示した優先度決定部172による優先度決定処理について説明する。図5は、図2に示した優先度決定部172による優先度決定処理手順を示すフローチャートである。同図に示すように、計算機100の優先度決定部172は、レジスタ140に記憶されているアドレスを取得して(ステップS201)、取得したアドレスが示すメモリ領域の優先度を最も高くする(ステップS202)。
続いて、優先度決定部172は、トレース情報112から「レジスタ140に記憶されていたアドレス」を取得して(ステップS203)、取得したアドレスが示すメモリ領域の優先度を2番目に高くする(ステップS204)。
続いて、優先度決定部172は、ページ管理テーブル150を読み込み(ステップS205)、更新かつ参照されている情報を格納するメモリ領域の優先度を3番目に高くし(ステップS206)、更新または参照のいずれかがなされている情報を格納するメモリ領域の優先度を4番目に高くする(ステップS207)。
上述してきたように、実施例1に係る計算機100は、レジスタ140と、トレース情報112と、ページ管理テーブル150とに記憶されている情報に基づいて、各メモリ領域の優先度を決定し、決定した優先度の順番にメモリ領域に記憶されている情報を圧縮して、ダンプファイル123に出力するように構成したので、ダンプファイル123のサイズを小さくしつつ、障害解析に必要な情報をダンプファイル123に出力することができる。
なお、上記実施例1では、圧縮部173がメモリ領域に記憶されている情報を必ず圧縮する例を示したが、圧縮部173は、優先度の高いメモリ領域に記憶されている情報は圧縮しないように構成してもよい。
かかる場合における計算機100によるダンプ処理について説明する。図6は、優先度の高いメモリ領域に記憶されている情報を圧縮しない場合における計算機100によるダンプ処理手順を示すフローチャートである。なお、ここでは、図4に示した処理手順と同様の処理手順については、その説明を省略する。
同図に示すように、計算機100の初期化部171は、演算部160から異常終了したことを示す信号を受け付けた場合(ステップS301肯定)、メモリ110のサイズからダンプファイル123の管理領域のサイズを求めて、ダンプファイル123を初期化する(ステップS302)。このとき、初期化部171は、ページ番号、サイズ、オフセットに加えて、ダンプファイル123に出力する情報が圧縮されているか否かを示す圧縮フラグから構成されるように管理領域を初期化する。以下の説明では、圧縮フラグが「1」の場合、ダンプファイル123に出力された情報が圧縮されていることを示し、圧縮フラグが「0」の場合、ダンプファイル123に出力された情報が圧縮されていないことを示すこととする。
そして、圧縮部173は、図4を用いて説明したように、優先度決定部172によって決定された優先度の高い順に、メモリ領域のページ番号を取得する(ステップS304)。取得したページ番号が示すページがスワップ領域121にページアウトされた情報であると判断した場合(ステップS305肯定)、圧縮部173は、かかるページをページインする(ステップS306)。
そして、圧縮部173は、現在処理しているメモリ領域の優先度が所定の閾値よりも高い場合(ステップS307肯定)、メモリ110にページインした情報を圧縮せずに、圧縮処理が終了したことを示す信号をファイル出力部174へ出力する。かかる信号を受け付けたファイル出力部174は、圧縮されていない情報をダンプファイル123に出力する(ステップS309)。
そして、ファイル出力部174は、ダンプファイル123の管理領域に、ダンプファイル123に出力した情報のページ番号、サイズ、オフセット、および、圧縮フラグを記憶させる(ステップS310)。なお、ここでは、ファイル出力部174は、ダンプファイル123の管理領域に、圧縮フラグとして「0」を記憶させる。
一方、現在処理しているメモリ領域の優先度が所定の閾値よりも低い場合(ステップS307否定)、圧縮部173は、ページインした情報を圧縮して(ステップS308)、圧縮処理が終了したことを示す信号をファイル出力部174へ出力する。かかる信号を受け付けたファイル出力部174は、圧縮された情報をダンプファイル123に出力する(ステップS309)。
そして、ファイル出力部174は、ダンプファイル123の管理領域に、ダンプファイル123に出力した情報のページ番号、サイズ、オフセット、および、圧縮フラグを記憶させる(ステップS310)。なお、ここでは、ファイル出力部174は、ダンプファイル123の管理領域に、圧縮フラグとして「1」を記憶させる。
メモリ領域のページ番号が示すページがスワップ領域121にページアウトされた情報でない場合についても(ステップS305否定)、圧縮部173は、現在処理しているメモリ領域の優先度が所定の閾値よりも高い場合(ステップS307肯定)、メモリ領域に記憶されている情報を圧縮せずに、圧縮処理が終了したことを示す信号をファイル出力部174へ出力する。
図7に、優先度の高いメモリ領域に記憶されている情報を圧縮しない場合におけるダンプファイル123の一例を示す。同図に示した例では、優先度「2」までのメモリ領域に記憶されている情報は圧縮せずにダンプファイル123に出力する。具体的には、優先度が「1」であるページ番号「0」のメモリ領域に記憶されている情報を圧縮せずにダンプファイル123に出力している。そして、優先度が「2」であるページ番号「4」のメモリ領域に記憶されている情報についても圧縮せずにダンプファイル123に出力している。そして、優先度が「3」であるページ番号「1」のメモリ領域に記憶されている情報は圧縮してダンプファイル123に出力している。
このように、優先度の高いメモリ領域に記憶されている情報は圧縮しないように構成することで、ダンプファイル123の解析時に、圧縮された情報を解凍する時間を省くことができるので、利用者は障害解析を即座に行うことができる。
また、上述した圧縮するか否かを決める優先度の閾値を変更することで、ダンプファイル123に出力する情報をすべて圧縮しないようにすることもできる。その結果、障害解析を迅速に行うことが優先されるシステムにも計算機100によるダンプ処理を適用することができる。なお、ダンプファイル123に出力する情報をすべて圧縮しないようにする場合、ダンプファイル123に出力される情報のサイズは等しくなる。このため、ダンプファイル123の管理領域には、ページ番号を記憶させるだけでよい。
ところで、上記実施例1では、優先度決定部172は、レジスタ140、トレース情報112、ページ管理テーブル150に記憶されている情報に基づいて、各メモリ領域の優先度を決定する例を示したが、優先度決定部172は、異常終了時の事象に応じて、各メモリ領域の優先度を決定するようにしてもよい。そこで、実施例2では、異常終了時の事象に応じて、各メモリ領域の優先度を決定する例について説明する。
図8は、実施例2に係る計算機200の構成を示す機能ブロック図である。なお、ここでは、図2に示した構成部位と同様の機能を有する部位には同一符号を付すこととして、その詳細な説明を省略する。
同図に示すように、記憶部220は、図2に示した記憶部120と比較して、優先度テーブル221を新たに有する。優先度テーブル221の一例を図9に示す。同図に示すように、優先度テーブル221は、異常コードに対応付けて、各メモリ領域の優先度を記憶する。
異常コードは、プログラム111の異常終了時の事象を識別するためのコードである。この異常コードは、プログラム111の異常終了時に演算部160からダンプ制御部170に通知される信号に含まれる。優先度は、ページ番号毎に、ダンプファイル123にダンプする順番を示す番号である。
図9に示した優先度テーブル221の1行目は、異常コードが「0001」の場合、ページ番号「1」のメモリ領域の優先度が「1」であり、ページ番号「5」のメモリ領域の優先度が「2」であり、ページ番号「3」のメモリ領域の優先度が「3」であり、ページ番号「4」のメモリ領域の優先度が「4」であることを示す。なお、同図に示した優先度「×」は、対応するページ番号を、ダンプファイル123に出力する必要がないことを示す。具体的には、同図に示した例では、異常コードが「0001」の場合、ページ番号「2」を、ダンプファイル123に出力する必要がないことを示す。
この優先度テーブル221は、計算機200の提供後であっても更新可能であるため、計算機200の提供後にメモリ領域の優先度を柔軟に変更することができる。
ダンプ制御部270は、図2に示したダンプ制御部170が有する初期化部171および優先度決定部172と比較して、初期化部271および優先度決定部272の処理が異なる。初期化部271は、ダンプファイル123を初期化するとともに、演算部160から受け付けた異常コードを、優先度決定部272へ出力する。
優先度決定部272は、優先度テーブル221に記憶されている情報に基づいて、各メモリ領域の優先度を決定する。具体的には、優先度決定部272は、初期化部271から異常コードを受け付けた場合に、かかる異常コードと一致するレコードを優先度テーブル221から取得する。そして、優先度決定部272は、取得したレコードに記憶されている情報に基づいて、メモリ領域の優先度を決定する。
図9に示した例では、優先度決定部272は、初期化部271から異常コード「0003」を受け付けた場合、同図に示した優先度テーブル221から、異常コード「0003」に対応するレコードを取得する。そして、優先度決定部272は、ページ番号「1」のメモリ領域の優先度を「1」にし、ページ番号「2」のメモリ領域の優先度を「2」にし、ページ番号「5」のメモリ領域の優先度を「3」にし、ページ番号「4」のメモリ領域の優先度を「4」にし、ページ番号「3」のメモリ領域の優先度を「5」にする。
次に、図8に示した優先度決定部272による優先度決定処理について説明する。図10は、図8に示した優先度決定部272による優先度決定処理手順を示すフローチャートである。同図に示すように、計算機200の優先度決定部272は、初期化部271から受け付けた異常コードと一致するレコードを優先度テーブル221から取得する(ステップS401)。そして、優先度決定部272は、取得したレコードに記憶されている情報に基づいて、メモリ領域の優先度を決定する(ステップS402)。
上述してきたように、実施例2に係る計算機200は、優先度テーブル221に記憶されている情報に基づいて、各メモリ領域の優先度を決定するように構成したので、計算機200の提供後にメモリ領域の優先度を柔軟に変更することができる。
ところで、上記実施例1および2では、計算機100または200は、優先度の高い順番に、ダンプファイル123の空き領域がなくなるまでメモリ110の情報を出力する例を示したが、障害解析を行う上で必要となるすべての情報を確実にダンプファイル123に出力できるように圧縮率を変更するように構成してもよい。そこで、実施例3では、障害解析を行う上で必要となるすべての情報を確実にダンプファイル123に出力できるように圧縮率を変更する例について説明する。
図11は、実施例3に係る計算機300の構成を示す機能ブロック図である。なお、ここでは、図8に示した構成部位と同様の機能を有する部位には同一符号を付すこととして、その詳細な説明を省略する。
同図に示すように、ダンプ制御部370は、図8に示したダンプ制御部270と比較して、シミュレーション部331を新たに有する。シミュレーション部331は、優先度決定部272によって決定された優先度に基づいて、ダンプファイル123に必要な情報をすべて出力できるか否かをシミュレーションする処理部である。
具体的には、シミュレーション部331は、優先度決定部272によって決定された優先度の順番に、メモリ領域に記憶されている情報を低い圧縮率により圧縮する。そして、所望のメモリ領域内の情報をすべて圧縮した後、圧縮後のすべての情報の合計サイズと、ダンプファイル123のサイズ(管理領域のサイズを減算したサイズ)とを比較する。
そして、圧縮後のすべての情報の合計サイズが、ダンプファイル123のサイズより小さい場合、シミュレーション部331は、かかる圧縮率によりメモリ領域内の情報を圧縮すれば、所望の情報をダンプファイル123にすべて出力できることを示す情報を圧縮部173へ出力する。かかる情報を受け付けた圧縮部173は、受け付けた圧縮率によりメモリ領域内の情報を圧縮する。
一方、圧縮後のすべての情報の合計サイズが、ダンプファイル123のサイズより大きい場合、シミュレーション部331は、圧縮率を少し高くして、再度、メモリ領域内の情報を圧縮する。そして、シミュレーション部331は、圧縮後のすべての情報の合計サイズと、ダンプファイル123のサイズとを比較する。このようにして、シミュレーション部331は、圧縮率を徐々に高くしながら、所望の情報をダンプファイル123にすべて出力できる最低限の圧縮率を探査する。
上述してきたように、実施例3に係る計算機300は、シミュレーション部331が、所望の情報をダンプファイル123にすべて出力できる最低限の圧縮率を探査するように構成したので、所望の情報をダンプファイル123にすべて出力することができる。また、情報を圧縮する圧縮率が可能な限り低くなるので、ダンプファイル123の解析時に、圧縮されている情報を解凍する時間が短くなり、その結果、利用者は障害解析を即座に行うことができる。これは、一般に、圧縮率が低いほど解凍時間が短くなるからである。
なお、上記実施例1〜3では、計算機100、200および300について説明したが、図2、図8および図11に示した計算機100、200および300の構成は、本発明の要旨を逸脱しない範囲で種々に変更することができる。例えば、計算機100のダンプ制御部170が有する機能をソフトウェアとして実装し、これをコンピュータで実行することにより、計算機100と同等の機能を実現することもできる。以下に、ダンプ制御部170が有する機能をソフトウェアとして実装したダンププログラム1071を実行するコンピュータの一例を示す。
図12は、ダンププログラム1071を実行するコンピュータ1000を示す機能ブロック図である。このコンピュータ1000は、各種演算処理を実行するCPU1010と、ユーザからのデータの入力を受け付ける入力装置1020と、各種情報を表示するモニタ1030と、記録媒体からプログラム等を読み取る媒体読取り装置1040と、ネットワークを介して他のコンピュータとの間でデータの授受を行うネットワークインターフェース装置1050と、各種情報を一時記憶するRAM1060と、ハードディスク装置1070とをバス1080で接続して構成される。
そして、ハードディスク装置1070には、図2に示したダンプ制御部170と同様の機能を有するダンププログラム1071と、ダンプファイル123とが記憶される。なお、図12は、計算機100のダンプ制御部170が有する機能をソフトウェアとして実装したダンププログラム1071の例について示しているが、計算機200のダンプ制御部270が有する機能をソフトウェアとして実装したダンププログラムの場合、ハードディスク装置1070には、図8に示した優先度テーブルに対応するデータが記憶される。
そして、CPU1010がダンププログラム1071をハードディスク装置1070から読み出してRAM1060に展開することにより、ダンププログラム1071は、ダンププロセス1061として機能するようになる。そして、ダンププロセス1061は、CPU1010により実行された各種プログラムが異常終了した場合に、メモリの内容をハードディスク装置1070にダンプファイル123として記憶させる。
なお、上記のダンププログラム1071は、必ずしもハードディスク装置1070に格納されている必要はなく、CD−ROM等の記憶媒体に記憶されたこのプログラムを、コンピュータ1000が読み出して実行するようにしてもよい。また、公衆回線、インターネット、LAN(Local Area Network)、WAN(Wide Area Network)等を介してコンピュータ1000に接続される他のコンピュータ(またはサーバ)等にこのプログラムを記憶させておき、コンピュータ1000がこれらからプログラムを読み出して実行するようにしてもよい。
以上の実施例1〜3を含む実施形態に関し、更に以下の付記を開示する。
(付記1)プログラムが異常終了した場合に、前記プログラムによって使用されていた記憶空間に記憶されている情報をファイルにダンプする計算機であって、
前記記憶空間を所定の領域に区切った記憶領域毎に、ファイルにダンプする順番を示す優先度を決定する優先度決定手段と、
前記優先度決定手段によって決定された優先度の高い順番に、前記記憶領域に記憶されている情報を圧縮する圧縮手段と、
前記圧縮手段によって圧縮された順番に、圧縮された情報を前記ファイルに出力するファイル出力手段と
を備えたことを特徴とする計算機。
(付記2)前記記憶領域に対応づけて、該記憶領域に記憶されている情報が更新されたか否かを示す更新フラグと、該記憶領域に記憶されている情報が参照されたか否かを示す参照フラグとを記憶するページ管理テーブルをさらに備え、
前記優先度決定手段は、前記ページ管理テーブルに基づいて、更新かつ参照された記憶領域の優先度を最も高くして、少なくとも更新または参照のいずれかがなされた記憶領域の優先度を二番目に高くすることを特徴とする付記1に記載の計算機。
(付記3)前記優先度決定手段は、レジスタに記憶されているアドレスが示す記憶領域の優先度を高くすることを特徴とする付記1または2に記載の計算機。
(付記4)前記優先度決定手段は、レジスタに記憶されていたアドレスの履歴を記憶するトレース情報に記憶されているアドレスが示す記憶領域の中で、最後に記憶されたアドレスが示す記憶領域ほど優先度を高くすることを特徴とする付記1〜3のいずれか一つに記載の計算機。
(付記5)前記記憶領域に対応付けて、優先度を記憶する優先度記憶手段をさらに備え、
前記優先度決定手段は、前記優先度記憶手段に記憶されている優先度に従って、前記記憶領域の優先度を決定することを特徴とする付記1に記載の計算機。
(付記6)前記圧縮手段は、前記優先度決定手段によって決定された優先度が所定の閾値よりも高い記憶領域に記憶されている情報は圧縮せずに、前記優先度決定手段によって決定された優先度が所定の閾値よりも低い記憶領域に記憶されている情報は圧縮することを特徴とする付記1〜5のいずれか一つに記載の計算機。
(付記7)プログラムが異常終了した場合に、前記プログラムによって使用されていた記憶空間に記憶されている情報をファイルにダンプするダンププログラムであって、
前記記憶空間を所定の領域に区切った記憶領域毎に、ファイルにダンプする順番を示す優先度を決定する優先度決定手順と、
前記優先度決定手順によって決定された優先度の高い順番に、前記記憶領域に記憶されている情報を圧縮する圧縮手順と、
前記圧縮手順によって圧縮された順番に、圧縮された情報を前記ファイルに出力するファイル出力手順と
をコンピュータに実行させることを特徴とするダンププログラム。
(付記8)前記優先度決定手順は、前記記憶領域に対応づけて該記憶領域に記憶されている情報が更新されたか否かを示す更新フラグと、該記憶領域に記憶されている情報が参照されたか否かを示す参照フラグとを記憶するページ管理テーブルに基づいて、更新かつ参照された記憶領域の優先度を最も高くして、少なくとも更新または参照のいずれかがなされた記憶領域の優先度を二番目に高くすることを特徴とする付記7に記載のダンププログラム。
(付記9)前記優先度決定手順は、レジスタに記憶されているアドレスが示す記憶領域の優先度を高くすることを特徴とする付記7または8に記載のダンププログラム。
(付記10)前記優先度決定手順は、レジスタに記憶されていたアドレスの履歴を記憶するトレース情報に記憶されているアドレスが示す記憶領域の中で、最後に記憶されたアドレスが示す記憶領域ほど優先度を高くすることを特徴とする付記7〜9のいずれか一つに記載のダンププログラム。
(付記11)前記優先度決定手順は、前記記憶領域に対応付けて優先度を記憶する優先度記憶手段に記憶されている優先度に従って、前記記憶領域の優先度を決定することを特徴とする付記7に記載のダンププログラム。
(付記12)前記圧縮手順は、前記優先度決定手順によって決定された優先度が所定の閾値よりも高い記憶領域に記憶されている情報は圧縮せずに、前記優先度決定手順によって決定された優先度が所定の閾値よりも低い記憶領域に記憶されている情報は圧縮することを特徴とする付記7〜11のいずれか一つに記載のダンププログラム。
(付記13)プログラムが異常終了した場合に、前記プログラムによって使用されていた記憶空間に記憶されている情報をファイルにダンプするダンプ方法であって、
前記記憶空間を所定の領域に区切った記憶領域毎に、ファイルにダンプする順番を示す優先度を決定する優先度決定工程と、
前記優先度決定工程によって決定された優先度の高い順番に、前記記憶領域に記憶されている情報を圧縮する圧縮工程と、
前記圧縮工程によって圧縮された順番に、圧縮された情報を前記ファイルに出力するファイル出力工程と
を含んだことを特徴とするダンプ方法。
(付記14)前記優先度決定工程は、前記記憶領域に対応づけて該記憶領域に記憶されている情報が更新されたか否かを示す更新フラグと、該記憶領域に記憶されている情報が参照されたか否かを示す参照フラグとを記憶するページ管理テーブルに基づいて、更新かつ参照された記憶領域の優先度を最も高くして、少なくとも更新または参照のいずれかがなされた記憶領域の優先度を二番目に高くすることを特徴とする付記13に記載のダンプ方法。
(付記15)前記優先度決定工程は、レジスタに記憶されているアドレスが示す記憶領域の優先度を高くすることを特徴とする付記13または14に記載のダンプ方法。
(付記16)前記優先度決定工程は、レジスタに記憶されていたアドレスの履歴を記憶するトレース情報に記憶されているアドレスが示す記憶領域の中で、最後に記憶されたアドレスが示す記憶領域ほど優先度を高くすることを特徴とする付記13〜15のいずれか一つに記載のダンプ方法。
(付記17)前記優先度決定工程は、前記記憶領域に対応付けて優先度を記憶する優先度記憶手段に記憶されている優先度に従って、前記記憶領域の優先度を決定することを特徴とする付記13に記載のダンプ方法。
(付記18)前記圧縮工程は、前記優先度決定工程によって決定された優先度が所定の閾値よりも高い記憶領域に記憶されている情報は圧縮せずに、前記優先度決定工程によって決定された優先度が所定の閾値よりも低い記憶領域に記憶されている情報は圧縮することを特徴とする付記13〜17のいずれか一つに記載のダンプ方法。
実施例1に係る計算機によるダンプ処理の概要を説明するための図である。 実施例1に係る計算機の構成を示す機能ブロック図である。 ページ管理テーブルの一例を示す図である。 実施例1に係る計算機によるダンプ処理手順を示すフローチャートである。 図2に示した優先度決定部による優先度決定処理手順を示すフローチャートである。 優先度の高いメモリ領域に記憶されている情報を圧縮しない場合における計算機によるダンプ処理手順を示すフローチャートである。 優先度の高いメモリ領域に記憶されている情報を圧縮しない場合におけるダンプファイルの一例を示す図である。 実施例2に係る計算機の構成を示す機能ブロック図である。 優先度テーブルの一例を示す図である。 図8に示した優先度決定部による優先度決定処理手順を示すフローチャートである。 実施例3に係る計算機の構成を示す機能ブロック図である。 ダンププログラムを実行するコンピュータを示す機能ブロック図である。
符号の説明
10 優先度決定基情報群
100 計算機
110 メモリ
111 プログラム
112 トレース情報
120 記憶部
121 スワップ領域
122 ダンプ領域
123 ダンプファイル
130 CPU
140 レジスタ
150 ページ管理テーブル
160 演算部
170 ダンプ制御部
171 初期化部
172 優先度決定部
173 圧縮部
174 ファイル出力部
200 計算機
220 記憶部
221 優先度テーブル
270 ダンプ制御部
271 初期化部
272 優先度決定部
300 計算機
331 シミュレーション部
370 ダンプ制御部
1000 コンピュータ
1010 CPU
1020 入力装置
1030 モニタ
1040 媒体読取り装置
1050 ネットワークインターフェース装置
1060 RAM
1061 ダンププロセス
1070 ハードディスク装置
1071 ダンププログラム
1080 バス

Claims (7)

  1. プログラムが異常終了した場合に、前記プログラムによって使用されていた記憶空間に記憶されている情報をファイルにダンプする計算機であって、
    前記記憶空間を所定の領域に区切った記憶領域に対応づけて、該記憶領域に記憶されている情報が更新されたか否かを示す更新フラグと、該記憶領域に記憶されている情報が参照されたか否かを示す参照フラグとを記憶するページ管理テーブルと、
    前記ページ管理テーブルに記憶される更新フラグと参照フラグとに基づいて、前記記憶領域毎に、ファイルにダンプする順番を示す優先度を決定する優先度決定手段と、
    前記優先度決定手段によって決定された優先度の高い順番に、前記記憶領域に記憶されている情報を圧縮する圧縮手段と、
    前記圧縮手段によって圧縮された順番に、圧縮された情報を前記ファイルに出力するファイル出力手段と
    を備えたことを特徴とする計算機。
  2. 記優先度決定手段は、前記ページ管理テーブルに基づいて、更新かつ参照された記憶領域の優先度を最も高くして、少なくとも更新または参照のいずれかがなされた記憶領域の優先度を二番目に高くすることを特徴とする請求項1に記載の計算機。
  3. 前記優先度決定手段は、レジスタに記憶されているアドレスが示す記憶領域の優先度を高くすることを特徴とする請求項1または2に記載の計算機。
  4. 前記優先度決定手段は、レジスタに記憶されていたアドレスの履歴を記憶するトレース情報に記憶されているアドレスが示す記憶領域の中で、最後に記憶されたアドレスが示す記憶領域ほど優先度を高くすることを特徴とする請求項1〜3のいずれか一つに記載の計算機。
  5. 前記記憶領域に対応付けて、優先度を記憶する優先度記憶手段をさらに備え、
    前記優先度決定手段は、前記優先度記憶手段に記憶されている優先度をさらに用いて、前記記憶領域の優先度を決定することを特徴とする請求項1に記載の計算機。
  6. プログラムが異常終了した場合に、前記プログラムによって使用されていた記憶空間に記憶されている情報をファイルにダンプするダンププログラムであって、
    前記記憶空間を所定の領域に区切った記憶領域に対応づけて、該記憶領域に記憶されている情報が更新されたか否かを示す更新フラグと、該記憶領域に記憶されている情報が参照されたか否かを示す参照フラグとを記憶するページ管理テーブルを参照し、前記ページ管理テーブルに記憶される更新フラグと参照フラグとに基づいて、前記記憶領域毎に、ファイルにダンプする順番を示す優先度を決定する優先度決定手順と、
    前記優先度決定手順によって決定された優先度の高い順番に、前記記憶領域に記憶されている情報を圧縮する圧縮手順と、
    前記圧縮手順によって圧縮された順番に、圧縮された情報を前記ファイルに出力するファイル出力手順と
    をコンピュータに実行させることを特徴とするダンププログラム。
  7. プログラムが異常終了した場合に、前記プログラムによって使用されていた記憶空間に記憶されている情報をファイルにダンプするダンプ方法であって、
    前記記憶空間を所定の領域に区切った記憶領域に対応づけて、該記憶領域に記憶されている情報が更新されたか否かを示す更新フラグと、該記憶領域に記憶されている情報が参照されたか否かを示す参照フラグとを記憶するページ管理テーブルを参照し、前記ページ管理テーブルに記憶される更新フラグと参照フラグとに基づいて、前記記憶領域毎に、ファイルにダンプする順番を示す優先度を決定する優先度決定工程と、
    前記優先度決定工程によって決定された優先度の高い順番に、前記記憶領域に記憶されている情報を圧縮する圧縮工程と、
    前記圧縮工程によって圧縮された順番に、圧縮された情報を前記ファイルに出力するファイル出力工程と
    を含んだことを特徴とするダンプ方法。
JP2008044419A 2008-02-26 2008-02-26 計算機、ダンププログラムおよびダンプ方法 Expired - Fee Related JP5211751B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008044419A JP5211751B2 (ja) 2008-02-26 2008-02-26 計算機、ダンププログラムおよびダンプ方法
US12/389,016 US8131973B2 (en) 2008-02-26 2009-02-19 Priority determination when dumping files

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008044419A JP5211751B2 (ja) 2008-02-26 2008-02-26 計算機、ダンププログラムおよびダンプ方法

Publications (2)

Publication Number Publication Date
JP2009205254A JP2009205254A (ja) 2009-09-10
JP5211751B2 true JP5211751B2 (ja) 2013-06-12

Family

ID=40999453

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008044419A Expired - Fee Related JP5211751B2 (ja) 2008-02-26 2008-02-26 計算機、ダンププログラムおよびダンプ方法

Country Status (2)

Country Link
US (1) US8131973B2 (ja)
JP (1) JP5211751B2 (ja)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5359601B2 (ja) * 2009-06-25 2013-12-04 富士通株式会社 ダンプ出力制御装置、ダンプ出力制御プログラム、ダンプ出力制御方法
US20110225458A1 (en) * 2010-03-09 2011-09-15 Microsoft Corporation Generating a debuggable dump file for an operating system kernel and hypervisor
US20110225459A1 (en) * 2010-03-09 2011-09-15 Microsoft Corporation Generating a debuggable dump file for a virtual machine
CN102203718B (zh) * 2011-05-26 2013-08-28 华为技术有限公司 内存转储处理方法和装置及内存转储系统
GB2497777A (en) * 2011-12-21 2013-06-26 Ibm Diagnostic file containing an image of a system section or a summarized error report of the section.
JP5948416B2 (ja) * 2012-07-03 2016-07-06 富士通株式会社 情報処理装置、情報保存処理プログラム及び情報保存処理方法
US9043653B2 (en) * 2012-08-31 2015-05-26 International Business Machines Corporation Introspection of software program components and conditional generation of memory dump
GB2506614A (en) 2012-10-03 2014-04-09 Ibm Extracting core data for a summary dump file based upon most recent trace data entries
GB2507505A (en) 2012-10-31 2014-05-07 Ibm Recording dump data of a computer process which provides trace data
US9003226B2 (en) * 2012-11-14 2015-04-07 International Business Machines Corporation Core file limiter for abnormally terminating processes
US9164821B2 (en) 2012-12-14 2015-10-20 International Business Machines Corporation Performing diagnostic tracing of an executing application to identify suspicious pointer values
US10565099B2 (en) * 2012-12-28 2020-02-18 Apple Inc. Methods and apparatus for compressed and compacted virtual memory
US9430415B2 (en) 2013-06-14 2016-08-30 Globalfoundries Inc. Concurrent dumping of large address space
JP6094677B2 (ja) * 2013-07-31 2017-03-15 富士通株式会社 情報処理装置、メモリダンプ方法、およびメモリダンププログラム
JP6287055B2 (ja) 2013-10-24 2018-03-07 富士通株式会社 情報処理装置、情報収集方法および情報収集プログラム
JP6221702B2 (ja) * 2013-12-05 2017-11-01 富士通株式会社 情報処理装置、情報処理方法、及び情報処理プログラム
GB2528485B (en) * 2014-07-23 2016-05-18 Ibm Reducing size of diagnostic data downloads
US9442791B2 (en) 2014-11-07 2016-09-13 International Business Machines Corporation Building an intelligent, scalable system dump facility
US20160098203A1 (en) * 2014-12-18 2016-04-07 Mediatek Inc. Heterogeneous Swap Space With Dynamic Thresholds
JP6604241B2 (ja) 2016-03-09 2019-11-13 富士通株式会社 情報処理システム、情報処理装置、情報処理方法およびプログラム
US20200026659A1 (en) * 2017-11-20 2020-01-23 Nutanix, Inc. Virtualized memory paging using random access persistent memory devices

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63221436A (ja) * 1987-03-11 1988-09-14 Nec Corp 計算機プログラムの履歴順スナツプダンプ方式
JPH0247735A (ja) 1988-08-08 1990-02-16 Nec Corp 計算機装置
JPH02304640A (ja) * 1989-05-19 1990-12-18 Nec Corp メモリダンプ収集方式
JPH03147147A (ja) * 1989-11-02 1991-06-24 Fujitsu Ltd ダンプ処理方式
US5559978A (en) * 1992-10-14 1996-09-24 Helix Software Company, Inc. Method for increasing the efficiency of a virtual memory system by selective compression of RAM memory contents
JPH09325903A (ja) 1996-04-01 1997-12-16 Mitsubishi Electric Corp 障害記録方式
JP2001256082A (ja) * 2000-03-13 2001-09-21 Nec Soft Ltd メモリダンプ採取方式および方法
US6681348B1 (en) * 2000-12-15 2004-01-20 Microsoft Corporation Creation of mini dump files from full dump files
US7171651B1 (en) * 2002-11-26 2007-01-30 Microsoft Corporation Method and system for remotely controlling the reporting of events occurring within a computer system
JP2004234181A (ja) * 2003-01-29 2004-08-19 Nec Soft Ltd ダンプ採取方式、ダンプ採取方法、及びプログラム
WO2005089400A2 (en) * 2004-03-17 2005-09-29 Riverstone Networks, Inc. Managing process state information in an operating system environment
US7840850B2 (en) * 2005-04-11 2010-11-23 Hewlett-Packard Development Company, L.P. Data processing system for logging memory access data
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
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
US7818616B2 (en) * 2007-07-25 2010-10-19 Cisco Technology, Inc. Warm reboot enabled kernel dumper

Also Published As

Publication number Publication date
US20090216967A1 (en) 2009-08-27
JP2009205254A (ja) 2009-09-10
US8131973B2 (en) 2012-03-06

Similar Documents

Publication Publication Date Title
JP5211751B2 (ja) 計算機、ダンププログラムおよびダンプ方法
CN111352861B (zh) 内存压缩方法、装置及电子设备
US10409502B2 (en) Method and apparatus for writing metadata into cache
CN111324303B (zh) Ssd垃圾回收方法、装置、计算机设备及存储介质
CN107403089B (zh) 基于应用程序的资源篡改识别方法和装置
CN108733306B (zh) 一种文件合并方法及装置
US6195107B1 (en) Method and system for utilizing virtual memory in an embedded system
CN111125033B (zh) 一种基于全闪存阵列的空间回收方法及系统
CN107665098B (zh) 信息处理方法、存储设备及计算机存储介质
CN111881012A (zh) 一种日志记录方法、装置、设备及存储介质
CN109496292A (zh) 一种磁盘管理方法、磁盘管理装置及电子设备
CN112182010B (zh) 脏页刷新方法和装置、存储介质和电子设备
CN109213450B (zh) 一种基于闪存阵列的关联元数据删除方法、装置及设备
JP5217155B2 (ja) ファイル圧縮自動判定方式および方法、並びに、プログラム
CN114996173B (zh) 一种管理存储设备写操作的方法和装置
KR100456736B1 (ko) 플래시 메모리를 구비한 디지털 기기의 부팅 시간 단축 방법
CN115407943A (zh) 一种内存转储文件生成方法、装置、设备及可读存储介质
CN115639971A (zh) 数据写入方法、装置、电子设备、存储介质及程序产品
US20210208945A1 (en) Information processing apparatus, information processing method, and computer readable medium
CN110780820A (zh) 一种连续存储空间确定方法、装置及电子设备和存储介质
CN110865772A (zh) 保护系统数据物理块擦除计数值的方法、装置、计算机设备及存储介质
US7376806B2 (en) Efficient maintenance of memory list
US20060129520A1 (en) System and method for automatically updating a program in a computer
CN116150111A (zh) 内核崩溃日志的保存方法、装置、介质以及电子设备
CN113850046A (zh) 验证实例生成方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101018

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111215

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120724

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120919

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: 20130129

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130211

R150 Certificate of patent or registration of utility model

Ref document number: 5211751

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20160308

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees