(57)【要約】      （修正有）【課題】外部の記憶装置を用いなくとも多くのロギング情報を記憶する。【解決手段】情報処理装置は、今回の単位期間に係るロギング情報を記憶する第１領域１１１及び次回の単位期間に係るロギング情報を記憶する第２領域１１２を含む第１記憶部１１０と、第１記憶部から転送されるロギング情報を記憶する第２記憶部１２０と、第２記憶部から転送されるロギング情報を記憶する記憶部であって、ロギング情報を記憶するための時間長が第１記憶部及び第２記憶部よりも長くなり易く、第１記憶部及び第２記憶部よりも記憶容量が大きい第３記憶部１３０とを備える。処理部１００は、単位期間における処理部の使用率を算出する算出部１０３と、算出部が算出した使用率が所定値以上の場合、第１記憶部に記録されたロギング情報を第２記憶部へ転送させ、使用率が所定値より小さい場合、第２記憶部から第３記憶部にロギング情報を転送させる転送制御部１０２を備える。【選択図】図２
2019160155.tif 000002
【特許請求の範囲】
【請求項１】
処理手段が単位期間に実行したプロセスの順序を特定するためのロギング情報を前記単位期間毎に記憶する記憶手段であって、今回の前記単位期間に係る前記ロギング情報を記憶する第１領域および次回の前記単位期間に係る前記ロギング情報を記憶する第２領域を含む第１記憶手段と、
前記第１記憶手段から転送される前記ロギング情報を記憶する第２記憶手段と、
前記第２記憶手段から転送される前記ロギング情報を記憶する記憶手段であって、前記ロギング情報を記憶するための時間長が前記第１記憶手段および前記第２記憶手段よりも長くなり易く、前記第１記憶手段および前記第２記憶手段よりも記憶容量が大きい第３記憶手段と、
前記単位期間における前記処理手段の使用率を算出する算出手段と、
前記算出手段が算出した前記使用率が所定値以上の場合、前記第１記憶手段に記録された前記ロギング情報を前記第２記憶手段へ転送させ、前記使用率が前記所定値より小さい場合、前記第２記憶手段から前記第３記憶手段に前記ロギング情報を転送させる転送制御手段と、を備えることを特徴とする情報処理装置。
【請求項２】
前記第３記憶手段は、前記ロギング情報を揮発的に記憶し、
前記転送制御手段は、予め定められた外部転送契機が成立した場合、前記第３記憶手段が記憶する前記ロギング情報を外部記憶装置に転送させることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記外部転送契機には、電源の供給が停止されることが含まれることを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記第２記憶手段が記憶可能な残りのデータ量が多いほど、前記第１記憶手段から前記第２記憶手段へ前記ロギング情報が転送されることとなる前記処理手段の前記使用率を低く変更可能な変更手段を備えることを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記第２記憶手段が記憶可能な残りのデータ量が少ないほど、前記第２記憶手段から前記第３記憶手段へ前記ロギング情報が転送されることとなる前記処理手段の前記使用率を高く変更可能な変更手段を備えることを特徴とする請求項１に記載の情報処理装置。
【請求項６】
前記第２記憶手段が記憶可能な残りのデータ量が少ないほど、前記ロギング情報を前記第３記憶手段に転送するためのプロセスの優先度を高く変更可能な変更手段を備えることを特徴とする請求項１に記載の情報処理装置。
【請求項７】
処理手段が単位期間に実行したプロセスの順序を特定するためのロギング情報を前記単位期間毎に第１記憶手段に記憶するステップであって、今回の前記単位期間に係る前記ロギング情報を、前記第１記憶手段の第１領域に記憶し、次回の前記単位期間に係る前記ロギング情報を、前記第１記憶手段の第２領域に記憶するステップと、
前記第１記憶手段から転送される前記ロギング情報を第２記憶手段に記憶するステップと、
前記ロギング情報を記憶するための時間長が前記第１記憶手段および前記第２記憶手段よりも長くなり易く、前記第１記憶手段および前記第２記憶手段よりも記憶容量が大きい第３記憶手段に、前記第２記憶手段から転送される前記ロギング情報を記憶するステップと、
前記単位期間における前記処理手段の使用率を算出するステップと、
前記使用率が所定値以上の場合、前記第１記憶手段に記録された前記ロギング情報を前記第２記憶手段へ転送させ、前記使用率が前記所定値より小さい場合、前記第２記憶手段から前記第３記憶手段に前記ロギング情報を転送させるステップと、を備えることを特徴とする情報処理方法。
【請求項８】
前記請求項７に記載の情報処理方法における各ステップをコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法、及びプログラムに関する。
【背景技術】
【０００２】
従来から、情報処理装置が実行するプロセスのスイッチングの態様（プロセスの実行順序）をロギングする技術が採用される。例えば、特許文献１には、プロセスのスイッチングの態様を特定可能なロギング情報を記憶する技術が開示される。以上の特許文献１では、情報処理装置の動作に異常が生じた場合、デバッグ作業においてロギング情報を解析することで、当該異常の原因を特定できる場合がある。
【０００３】
プロセスの切替は頻繁（１ミリ秒〜１０ミリ秒毎）に実行され、ロギング情報のデータ量は大きくなる。したがって、ロギング情報を記憶（蓄積）する記憶手段のデータ容量は比較的大きい必要がある。従来から、情報処理装置にロギング装置（外部装置）を接続可能な構成として、ロギング装置の記憶部にロギング情報を記憶する技術が採用される。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来から、ロギング装置を用いなくともロギング情報を蓄積できる構成が要望されていた。以上の事情を考慮して、本発明は、以上の要望に応じることを目的とする。
【課題を解決するための手段】
【０００５】
上記課題を解決するたに、請求項１記載の発明は、処理手段が単位期間に実行したプロセスの順序を特定するためのロギング情報を単位期間毎に記憶する記憶手段であって、今回の単位期間に係るロギング情報を記憶する第１領域および次回の単位期間に係るロギング情報を記憶する第２領域を含む第１記憶手段と、第１記憶手段から転送されるロギング情報を記憶する第２記憶手段と、第２記憶手段から転送されるロギング情報を記憶する記憶手段であって、ロギング情報を記憶するための時間長が第１記憶手段および第２記憶手段よりも長くなり易く、第１記憶手段および第２記憶手段よりも記憶容量が大きい第３記憶手段と、単位期間における処理手段の使用率を算出する算出手段と、算出手段が算出した使用率が所定値以上の場合、第１記憶手段に記録されたロギング情報を第２記憶手段へ転送させ、使用率が所定値より小さい場合、第２記憶手段から第３記憶手段にロギング情報を転送させる転送制御手段と、を備えることを特徴とする。
【発明の効果】
【０００６】
本発明によれば、外部の記憶装置（例えば上述のロギング装置）を用いなくとも、第３記憶手段に多くのロギング情報を記憶することができる。
【図面の簡単な説明】
【０００７】
【図１】情報処理装置の一例のハードウェア構成を説明するための図である。
【図２】情報処理装置の一例の機能ブロック図である。
【図３】ログ情報の一例の概念図である。
【図４】第１記憶部に記憶されたロギング情報の一例の概念図である。
【図５】ロギング情報が転送される契機の一例を説明するための図である。
【図６】第１記憶部にロギング情報が記憶されるまでの一例を説明するための図である。
【図７】第２記憶部へロギング情報が転送されるまでの一例を説明するための図である。
【図８】第３記憶部へロギング情報が転送されるまでの一例を説明するための図である。
【図９】処理部の第１転送制御処理および第２転送制御処理のフローチャートである。
【図１０】第２実施形態を説明するための図である。
【図１１】第３実施形態を説明するための図である。
【図１２】第４実施形態から第６実施形態における変更処理のフローチャートである。
【発明を実施するための形態】
【０００８】
以下、本発明を図面に示した実施形態により詳細に説明する。
【０００９】
図１は、情報処理装置１０のハードウェア構成を説明するための図である。図１に示す通り、情報処理装置１０は、ＣＰＵ（Central Processing Unit）１１、ＲＯＭ（Read Only Memory）１２、ＢＵＦ（Buff）１３、ＢＵＦ１４、ＲＡＭ（Random Access Memory）１５、ＨＤＤ（Hard Disk Drive）１６、ＮＶＲＡＭ（Non Volatile RAM）１７およびＩ／Ｆ１８を含む。各構成は、例えばデータバスを介して互いに通信可能である。なお、情報処理装置１０のハードウェア構成は適宜に変更できる。
【００１０】
ＣＰＵ１１は、プログラムを実行することで各種の機能（例えば、後述の処理部１００）を実現する。本実施形態では、ＣＰＵ１１は複数個のＣＰＵを含む。なお、ＣＰＵ１１に替えてＭＰＵ（Micro Processing Unit）をプロセッサとして採用してもよい。ＲＯＭ１２は、ＣＰＵ１１が実行するプログラムを含む各種の情報を不揮発的に記憶する。ＲＯＭ１２が記憶するプログラムは、オペレーティングシステム（ＯＳ）および各種のアプリケーションプログラムを含む。
【００１１】
例えば、プリント機能、コピー機能およびスキャナ機能を有する複合機（ＭＦＰ：Multifunction Peripheral）に情報処理装置１０が設けられた構成を想定する。以上の情報処理装置１０のＲＯＭ１２は、アプリケーションプログラムとして、プリント機能を実現するプログラム、コピー機能を実現するプログラム、スキャナ機能を実現するプログラムを記憶する。
【００１２】
オペレーティングシステムは、各プロセスに必要なリソースを割当てる。各プロセスが干渉しあった場合、システム障害（例えばデッドロック）が生じ得る。また、ＲＯＭ１２が記憶するプログラムは、後述のロギングプロセスを実行するためのプログラムが含まれる。ＲＡＭ１５は、ＣＰＵ１１がプログラムを実行する場合に参照される情報が一時的に記憶される。Ｉ／Ｆ１８は、ＳＤカード１９（外部装置）との通信を可能にする。ＮＶＲＡＭ１７は、各種の情報を不揮発的に記憶する。
【００１３】
ＢＵＦ１３は、各種の情報を揮発的に記憶する。ＢＵＦ１３の記憶容量は例えば１２８ＫＢ（キロバイト）である。また、ＢＵＦ１３には、ロギング情報が逐次記憶される。ロギング情報は、単位期間（１００ｍｓ）で実行されたプロセスの実行順序を特定可能な情報である。情報処理装置１０のデバッグ作業において、ロギング情報が解析される。ＢＵＦ１３は、後述の第１記憶部１１０として機能する。
【００１４】
ＢＵＦ１４は、各種の情報を揮発的に記憶する。ＢＵＦ１４の記憶容量は上述のＢＵＦ１３より大きい。具体的には、ＢＵＦ１４の記憶容量は８ＭＢ（メガバイト）である。予め定められた契機で、ＢＵＦ１３のロギング情報がＢＵＦ１４へ転送される。ＢＵＦ１４は、ＢＵＦ１３から転送されたロギング情報を記憶（蓄積）する。ただし、ＢＵＦ１４は、情報処理装置１０への電源の供給が停止した場合、ロギング情報を保持できない。なお、ＢＵＦ１４の記憶容量をＢＵＦ１３の記憶容量以下としてもよい。ＢＵＦ１４は、後述の第２記憶部１２０として機能する。
【００１５】
ＨＤＤ１６は、各種の情報を不揮発的に記憶する。ＨＤＤ１６の記憶容量は、ＢＵＦ１３およびＢＵＦ１４より大きい。具体的には、ＨＤＤ１６の記憶容量は２５６ＭＢである。また、ＨＤＤ１６に情報を記憶するのに要する時間長は、当該情報をＢＵＦ１３またはＢＵＦ１４に記憶するのに要する時間長より長くなり易い。すなわち、ＨＤＤ１６への情報の書込み速度は、ＢＵＦ１３およびＢＵＦ１４の書込み速度より遅い。
【００１６】
予め定められた契機で、ＢＵＦ１４のロギング情報がＨＤＤ１６へ転送される。ＨＤＤ１６は、ＢＵＦ１４から転送されたロギング情報を記憶（蓄積）する。ＨＤＤ１６は、情報処理装置１０への電源の供給が停止した場合であってもロギング情報を保持できる。デバッグ作業では、ＨＤＤ１６に蓄積されたロギング情報が読み出されて解析される。ＨＤＤ１６は、後述の第３記憶部１３０として機能する。
【００１７】
図２は、本実施形態における情報処理装置１０の機能ブロック図である。図２に示す通り、情報処理装置１０は、処理部１００、第１記憶部１１０、第２記憶部１２０および第３記憶部１３０を含む。以上の各構成は、上述のＣＰＵ１１がプログラムを実行することで実現される。
【００１８】
処理部１００（処理手段）は、各種のプロセスを実行する。具体的には、処理部１００は、上述のオペレーションシステムおよびアプリケーションプログラムのプロセスを含む各種のプロセスを実行する。また、各種のプロセスには、上述のロギング情報の転送を制御するプロセス、ロギング情報を実際に転送するプロセス、および、処理部１００（ＣＰＵ１１）の使用率を算出するためのプロセスを含む。
【００１９】
各種のプロセスには優先度が付与される。具体的には、リアルタイムプライオリティ、ユーザプライオリティおよびアイドルプライオリティを含む優先度がプロセスの各々に付与される。リアルタイムプライオリティのプロセスはユーザプライオリティのプロセスより優先して実行され、ユーザプライオリティのプロセスはアイドルプライオリティのプロセスより優先して実行される。アイドルプライオリティのプロセスは、他に実行するプロセスが無い場合に実行され、ＣＰＵの処理量を実質的に増加させない。
【００２０】
図２に示す通り、処理部１００は、ロギング実行部１０１、転送制御部１０２、算出部１０３およびプロセス実行部１０４を含む。ロギング実行部１０１は、ロギング情報を第１記憶部１１０に記憶させるためのロギングプロセスを実行する。具体的には、ロギング実行部１０１は、予め定められた時間間隔でログ情報（後述の図３参照）を生成し、第１記憶部１１０に記憶させる。ロギング情報は、複数のログ情報で構成される（後述の図４参照）。
【００２１】
本実施形態では、ロギング実行部１０１は、１０ｍｓ（ミリ秒）毎にログ情報を生成する。また、ロギング情報は、１０個のログ情報で構成される。以上の構成では、１００ｍｓの期間（以下「単位期間」という）毎に、１個のロギング情報が第１記憶部１１０に記憶される。なお、ログ情報が生成される契機は適宜に変更できる。例えば、１個のプロセスが終了する毎に１個のログ情報が生成される構成としてもよい。また、プログラムにおける１個のスレッドが実行される毎に１個のログ情報が生成される構成としてもよい。
【００２２】
図３は、ログ情報の概念図である。図３に示す通り、ログ情報は、タイムスタンプ、ＣＰＵ−ＩＤ、プロセス−ＩＤ、プロセス名、スレッド−ＩＤおよびスレッド名を含む。タイムスタンプは、例えば６４バイトのデータであり、当該ログ情報が生成された時刻を示す。プロセス−ＩＤは、例えば２バイトのデータであり、当該ログ情報の生成時点で実行していたプロセスを特定可能な情報である。
【００２３】
スレッド−ＩＤは、例えば２バイトのデータであり、当該ログ情報の生成時点で実行していたスレッドを特定可能な情報である。ＣＰＵ−ＩＤは、例えば１バイトのデータであり、当該ログ情報のプロセス−ＩＤで特定されるプロセスを実行していたＣＰＵを特定可能な情報である。プロセス名は、例えば１６バイトのデータであり、プロセス−ＩＤで特定されるプロセスの名称を示す。スレッド名は、例えば１６バイトのデータであり、スレッド−ＩＤで特定されるスレッドの名称を示す。以上のログ情報を構成する各情報を表示可能な表示装置を設けてもよい。
【００２４】
図２に説明を戻す。処理部１００の転送制御部１０２は、第１記憶部１１０が記憶するロギング情報を第２記憶部１２０へ転送するためのプロセス、および、第２記憶部１２０が記憶するロギング情報を第３記憶部１３０へ転送するためのプロセスを実行する。
【００２５】
処理部１００の算出部１０３は、今回の単位期間における処理部１００の使用率を算出する。具体的には、算出部１０３は、今回の単位期間におけるロギング情報から使用率を算出する。
【００２６】
例えば、今回の単位期間のロギング情報（各ログ情報の各プロセスＩＤ）で特定される全て（１０個）のプロセスが、アイドルプライオリティのプロセス（実質的に処理量を増加させないプロセス）の場合、当該単位期間における処理部１００の使用率は０％である。また、今回の単位期間のロギング情報で特定されるプロセスに、アイドルプライオリティのプロセスが９個含まれ、リアルタイムプライオリティまたはユーザプライオリティのプロセスが１個含まれる場合、処理部１００の使用率は１０％である。
【００２７】
処理部１００のプロセス実行部１０４は、上述のロギング実行部１０１、転送制御部１０２および算出部１０３のプロセス以外のプロセスを実行する。例えば、プロセス実行部１０４は、アプリケーションプログラムのプロセスを実行する。
【００２８】
第１記憶部１１０は、ロギング情報を記憶する。具体的には、第１記憶部１１０は、第１領域１１１および第２領域１１２を含む。仮に、今回の単位期間でロギング情報が第１領域１１１に記憶された場合、次回の単位期間ではロギング情報が第２領域１１２に記憶される。一方、今回の単位期間でロギング情報が第２領域１１２に記憶された場合、次回の単位期間ではロギング情報が第１領域１１１に記憶される。すなわち、第１記憶部１１０は、連続する２回の単位期間のロギング情報を記憶する。
【００２９】
第２記憶部１２０は、第１記憶部１１０から転送されたロギング情報を記憶（蓄積）する。具体的には、今回の単位期間における処理部１００の使用率が閾値ＮＡ（本発明の「所定値」）以上の場合、転送制御部１０２は、第１記憶部１１０に記録されたロギング情報を第２記憶部１２０へ転送させる。
【００３０】
本実施形態では、処理部１００の使用率が１００％以上の場合（閾値ＮＡ＝１００）、転送制御部１０２は、第１記憶部１１０に記録されたロギング情報を第２記憶部１２０へ転送させる。ただし、閾値ＮＡが１００％より小さい構成としてもよい。閾値ＮＡは、例えば、ＮＶＲＡＭ１７に記憶される。
【００３１】
第３記憶部１３０は、第２記憶部１２０から転送されたロギング情報を記憶（蓄積）する。具体的には、今回の単位期間における処理部１００の使用率が１００％（上述の閾値ＮＡ。本発明の「所定値」）より小さい場合、転送制御部は、第２記憶部１２０に記録されたロギング情報を第３記憶部１３０へ転送させる。
【００３２】
本実施形態では、処理部１００の使用率が閾値ＮＢ以下の場合、ロギング情報が第３記憶部１３０へ転送される。具体的には、処理部１００の使用率が１０％以下の場合（閾値ＮＢ＝１０）、転送制御部１０２は、第２記憶部１２０に記録されたロギング情報を第３記憶部１３０へ転送させる。ただし、閾値ＮＢは適宜に変更可能である。例えば、閾値ＮＢが閾値ＮＡと同じであってもよい。閾値ＮＢは、例えば、ＮＶＲＡＭ１７に記憶される。
【００３３】
以上の本実施形態によれば、外部の記憶装置を用いなくとも、第３記憶部１３０に多くのロギング情報を記憶することができる。
【００３４】
図４は、第１記憶部１１０に記憶されたロギング情報の具体例の概念図である。図４では、単位期間Ａ（１００ｍｓ）および単位期間Ｂ（１００ｍｓ）において、プロセスＰおよびプロセスＫが交互に実行された場合の具体例を示す。プロセスＰはアプリケーションプログラムのプロセスを想定し、プロセスＫはオペレーティングシステム（カーネル）のプロセスを想定する。プロセスＰは、スレッド１からスレッド６を少なくとも含む。プロセスＫは、スレッド１およびスレッド２を含む。
【００３５】
プロセスＰおよびプロセスＫは、リアルタイムプライオリティまたはユーザプライオリティのプロセスである。図４の具体例では、単位期間Ａおよび単位期間Ｂにおいて、アイドルプライオリティのプロセスのログ情報が記憶されない場合を想定する。以上の場合、単位期間Ａでの処理部１００の使用率は１００％になる。同様に、単位期間Ｂでの処理部１００の使用率は１００％になる。
【００３６】
本実施形態では、例えば、プロセス−ＩＤがプロセスＰ、スレッド−ＩＤがスレッドｎ（ｎは正の整数）のログ情報をログ情報「Ｐ、ｎ」と記載する場合がある。また、プロセスＩＤがプロセスＫ、スレッドＩＤがスレッドｎ（ｎは正の整数）のログ情報をログ情報「Ｋ、ｎ」と記載する場合がある。
【００３７】
図４の具体例では、単位期間Ａにおいて、プロセスＰのスレッド１、プロセスＰのスレッド２、プロセスＰのスレッド３、プロセスＫのスレッド１、プロセスＰのスレッド４、プロセスＫのスレッド１、プロセスＰのスレッド２、プロセスＰのスレッド３、プロセスＫのスレッド２、プロセスＰのスレッド４の順に実行された場合を想定する。
【００３８】
以上の場合、単位期間Ａのロギング情報は、ログ情報「Ｐ、１」、ログ情報「Ｐ、２」、ログ情報「Ｐ、３」、ログ情報「Ｋ、１」、ログ情報「Ｐ、４」、ログ情報「Ｋ、１」、ログ情報「Ｐ、２」、ログ情報「Ｐ、３」、ログ情報「Ｋ、２」およびログ情報「Ｐ、４」で構成される。本実施形態の各図（図４、図６、図７、図８）では、第１領域１１１に記憶されたログ情報を、記憶された順に右側方向に示す。
【００３９】
また、図４の具体例では、単位期間Ｂにおいて、プロセスＰのスレッド５、プロセスＰのスレッド６、プロセスＫのスレッド２、プロセスＫのスレッド１、プロセスＰのスレッド１、プロセスＰのスレッド２、プロセスＫのスレッド１、プロセスＰのスレッド３、プロセスＰのスレッド４、プロセスＰのスレッド６の順に実行された場合を想定する。
【００４０】
以上の場合、単位期間Ｂのロギング情報は、ログ情報「Ｐ、５」、ログ情報「Ｐ、６」、ログ情報「Ｋ、２」、ログ情報「Ｋ、１」、ログ情報「Ｐ、１」、ログ情報「Ｐ、２」、ログ情報「Ｋ、１」、ログ情報「Ｐ、３」、ログ情報「Ｐ、４」およびログ情報「Ｐ、６」で構成される。本実施形態の各図（図４、図６、図７、図８）では、第２領域１１２に記憶されたログ情報を、記憶された順に右側方向に示す。
【００４１】
図５は、ロギング情報が転送される契機を説明するための図である。上述した通り、第１記憶部１１０の第１領域１１１または第２領域１１２には、ログ情報が常時（１０ｍｓ毎に）記憶される（図５のＳａ１）。また、今回の単位期間で第１領域１１１にログ情報が記憶された場合、次回の単位期間で第２領域１１２にログ情報が記憶される。一方、今回の単位期間で第２領域１１２にログ情報が記憶された場合、次回の単位期間で第１領域１１１にログ情報が記憶される。
【００４２】
今回の単位期間の処理部１００の使用率が１００％である場合、第１記憶部１１０からロギング情報が第２記憶部１２０に転送される（図５のＳａ２）。詳細には後述するが、今回の単位期間の処理部１００の使用率が１００％である場合、今回の単位期間のロギング情報に加え、前回の単位期間のロギング情報、および、次回の単位期間のロギング情報が第１記憶部１１０から第２記憶部１２０に送信される。
【００４３】
ところで、処理部１００の使用率が１００％の単位期間でロギング情報を転送する構成では、ロギング情報を転送するためのプロセスが他のプロセスに影響する（例えば他のプロセスの終了が遅延する）不都合が生じ易い。以上の不都合は、ロギング情報を第２記憶部１２０に書込む速度が遅い場合に顕在化し易い。
【００４４】
以上の事情を考慮して、本実施形態では、処理部１００の使用率が１００％の単位期間でロギング情報が転送される第２記憶部１２０を、データの書込み速度が比較的速いＢＵＦ１４とした。以上の本実施形態では、例えば第２記憶部１２０を、データの書込み速度がＢＵＦよりも遅い記憶装置（例えば、ＨＤＤ）とした構成と比較して、上述の不都合が抑制されるという効果が奏せられる。
【００４５】
第２記憶部１２０に記憶されたロギング情報は第３記憶部１３０に転送される（図５のＳａ３）。上述した通り、第３記憶部１３０はＨＤＤ１６で構成される。したがって、第３記憶部１３０のロギング情報は不揮発的に記憶され、情報処理装置１０への電源が遮断された場合であっても、当該ロギング情報が保持される。しかし、ＨＤＤにロギング情報を書き込む場合、例えばＢＵＦにロギング情報を書き込む場合と比較して、長い時間長を要する。したがって、第３記憶部１３０をＨＤＤとした構成では、ＨＤＤにロギング情報を書き込むプロセスが他のプロセスに影響する不都合が生じ易い。
【００４６】
以上の事情を考慮して、本実施形態では、処理部１００の使用率が１０％以下の単位期間において、ロギング情報が第３記憶部１３０に転送される。すなわち、処理部１００が実行しているプロセスが比較的少ない期間において、ロギング情報を第３記憶部１３０に転送するプロセス（以下「転送プロセス」という）が実行される。
【００４７】
以上の構成によれば、例えば、転送プロセスが処理部１００の使用率に関係なく実行される構成と比較して、転送プロセスが他のプロセスに影響を与える不都合が抑制される。なお、詳細には後述するが、転送プロセスは、アイドルプライオリティのプロセスＩＤＬＥ１として単位期間の最後に実行される。
【００４８】
図６は、第１記憶部１１０（第１領域１１１、第２領域１１２）にロギング情報が記憶されるまでの具体例を説明するための図である。本実施形態では、例えばＮ回目（Ｎは正の整数）の単位期間を「単位期間Ｎ」と記載する。図６には、Ｎ回目（今回）の単位期間Ｎにおいて、第２領域１１２にログ情報が記憶されている具体例を示す。以上の場合、第１領域１１１のログ情報（ロギング情報）は、Ｎ−１回目（前回）の単位期間Ｎ−１で記憶されたものである。
【００４９】
図６の具体例では、単位期間Ｎ−１のロギング情報に、上述のプロセスＰおよびプロセスＫに加え、プロセスＩＤＬＥのログ情報が含まれる場合を想定する。上述した通り、プロセスＰおよびプロセスＫは、リアルタイムプライオリティまたはユーザプライオリティのプロセスである。一方、プロセスＩＤＬＥはアイドルプライオリティのプロセス（処理部１００の使用率を増加させないプロセス）である。本実施形態では、プロセスＩＤＬＥのログ情報をログ情報「ＩＤＬＥ」と記載する場合がある。
【００５０】
図６の具体例では、単位期間Ｎが開始されてから７０ｍｓが経過した時点を示す。以上の場合、図６に示す通り、７個のログ情報が第２領域１１２に記憶される。上述した通り、ロギング情報は、１０個のログ情報で構成される。すなわち、図６の具体例では、ロギング情報の一部が第２領域１１２に記憶された状態とも換言される。図６に示す時点から３０ｍｓが経過した場合、第２領域１１２に１０個のログ情報が記憶され、第２領域１１２にロギング情報が記憶される。
【００５１】
図７（ａ）から図７（ｃ）は、第１記憶部１１０から第２記憶部１２０へロギング情報が転送されるまでの一例を説明するための図である。図７（ａ）は、Ｎ回目の単位期間Ｎが終了した直後において第１記憶部１１０に記憶されるロギング情報（Ｘ、Ｙ）の概念図である。図７（ａ）の具体例では、Ｎ−１回目の単位期間Ｎ−１における処理部１００の使用率が１００％でない場合を想定する。
【００５２】
図７（ａ）の具体例では、単位期間Ｎにおいて第２領域１１２にログ情報が記憶される。以上の場合、単位期間Ｎが終了すると、第２領域１１２のロギング情報Ｙを用いて、単位期間Ｎにおける処理部１００の使用率が算出される。図７（ａ）に示す通り、単位期間Ｎにおいて、アイドルプライオリティのプロセスＩＤＬＥが実行された場合のログ情報「ＩＤＬＥ」は記憶されない。したがって、図７（ａ）の具体例では、単位期間Ｎにおける処理部１００の使用率は１００％である。
【００５３】
図７（ｂ）は、上述の図７（ａ）の具体例の直後において第１記憶部１１０に記憶されるロギング情報の概念図である。上述した通り、今回の単位期間Ｎにおいて、処理部１００の使用率が１００％の場合、ロギング情報が第２記憶部１２０に転送される。具体的には、今回の単位期間Ｎにおいて、処理部１００の使用率が１００％の場合、前回の単位期間Ｎ−１において記憶されたロギング情報Ｘが第２記憶部１２０に送信される。
【００５４】
図７（ｂ）の具体例では、前回の単位期間Ｎ−１において第１領域１１１にロギング情報Ｘが記憶されている。したがって、処理部１００の使用率が１００％である単位領域Ｎが終了した場合、単位領域Ｎ−１で記憶された第１領域１１１のロギング情報Ｘが第２記憶部１２０に転送される。本実施形態では、図７（ｂ）に示す通り、第２記憶部１２０に転送したロギング情報は、第１記憶部１１０から消去される。ただし、第２記憶部１２０に転送したロギング情報が第１記憶部１１０から消去されない構成としてもよい。
【００５５】
図７（ｃ）は、上述の図７（ｂ）の具体例において、Ｎ＋１回目の単位期間Ｎ＋１が終了した直後の第１記憶部１１０に記憶されるロギング情報（Ｙ、Ｚ）の概念図である。単位期間Ｎにおいて第２領域１１２にロギング情報Ｙが記憶された場合、次回の単位期間Ｎ＋１では、第１領域１１１にロギング情報Ｚが記憶される。以上の場合、単位期間Ｎ＋１が終了した時点で、単位期間Ｎ＋１における処理部１００の使用率を第１領域１１１のロギング情報Ｚから算出する。図７（ｃ）の具体例では、単位期間Ｎ＋１における処理部１００の使用率が６０％である場合を想定する。
【００５６】
前回の単位期間における処理部１００の使用率が１００％の場合であって、今回の単位期間における処理部１００の使用率が１００％未満の場合、前回の単位期間のロギング情報、および、今回の単位期間のロギング情報を第１記憶部１１０から第２記憶部１２０に転送する。例えば、図７（ｃ）の具体例では、今回の単位期間Ｎ＋１における処理部１００の使用率は１００％未満であり、前回の単位期間Ｎにおける処理部１００の使用率は１００％である。以上の場合、単位期間Ｎ＋１のロギング情報Ｚおよび単位期間Ｎのロギング情報Ｙの双方が転送される。
【００５７】
以上の説明から理解される通り、今回の単位期間（例えば図７の単位期間Ｎ）において処理部１００の使用率が１００％であった場合、今回の単位期間のロギング情報（図７のＹ）に加え、前回の単位期間（単位期間Ｎ−１）のロギング情報（図７のＸ）および前回の単位期間のロギング情報（図７のＺ）のロギング情報が第２記憶部１２０に転送される。
【００５８】
ところで、システム障害の原因を特定するため、第２記憶部１２０（第３記憶部１３０）に全ての単位期間のロギング情報が転送され解析可能な構成が理想である。しかし、以上の構成では、大容量の第２記憶部１２０を使用する必要があり、コストが増加するという不都合がある。以上の事情を考慮して、本実施形態では、第１記憶部１１０に記憶されたロギング情報のうち処理部１００の使用率が１００％の単位期間のロギング情報を抜粋して転送する構成とした。以上の構成によれば、全てのロギング情報が第２記憶部１２０に転送される構成と比較して、上述の不都合を抑制できる。
【００５９】
しかし、一部のロギング情報が解析可能になる構成では、システム障害の原因を特定するために解析すべきロギング情報が転送されないという不都合が想定される。以上の事情を考慮して、本実施形態では、処理部１００の使用率が１００％の単位期間のロギング情報が転送され解析可能になる構成とした。
【００６０】
処理部１００の使用率が大きい期間ほど、システム障害が発生し易いという事情がある。したがって、処理部１００の使用率が１００％の単位期間のロギング情報が転送される構成では、処理部１００の使用率が１００％の単位期間のロギング情報が転送されない構成と比較して、システム障害の原因の特定に要するロギング情報が転送されないという不都合が抑制される。
【００６１】
また、本実施形態では、処理部１００の使用率が１００％の単位期間に加え、当該単位期間の前後の単位期間のロギング情報が第２記憶部１２０に転送される。以上の構成によれば、仮に、処理部１００の使用率が１００％の単位期間の直前にシステム障害の原因が生じたとしても、当該原因を特定できる。また、処理部１００の使用率が１００％の単位期間の直後にシステム障害の原因が生じたとしても、当該原因を特定できる。
【００６２】
図７（ｄ）は、第１記憶部１１０から第２記憶部１２０へロギング情報が転送されない場合の一例を説明するための図である。図７（ｄ）の具体例は、今回の単位期間Ｍが終了した直後に第１記憶部１１０に記憶されるロギング情報が示される。
【００６３】
図７（ｄ）の具体例では、前回の単位期間Ｍ−１のロギング情報Ａには、ログ情報「ＩＤＬＥ」が４個含まれる。したがって、単位期間Ｍ−１における処理部１００の使用率は６０％である。また、今回の単位期間Ｍのロギング情報Ｂには、ログ情報「ＩＤＬＥ」が５個含まれる。したがって、単位期間Ｍにおける処理部１００の使用率は５０％である。
【００６４】
また、図７（ｄ）の具体例では、前々回の単位期間Ｍ−２および次回の単位期間Ｍ＋１における処理部１００の使用率が１００％未満である場合を想定する。以上の場合、ロギング情報Ａおよびロギング情報Ｂは第２記憶部１２０に転送されない。２回先の単位期間Ｍ＋１においてログ情報を記憶する場合、今回の単位期間Ｍにおけるログ情報が上書きされる。
【００６５】
図８は、第２記憶部１２０から第３記憶部１３０へロギング情報が転送される場合の具体例を説明するための図である。上述した通り、第１記憶部１１０から第２記憶部１２０へは、処理部１００の使用率が１００％の場合にロギング情報が転送される。一方、第２記憶部１２０から第３記憶部１３０へは、処理部１００の使用率が１０％未満の場合にロギング情報が転送される。
【００６６】
本実施形態では、アイドルプライオリティのプロセスＩＤＬＥは、プロセスＩＤＬＥ０およびプロセスＩＤＬＥ１を含む。処理部１００は、リアルタイムプライオリティのプロセスまたはユーザプライオリティのプロセスを実行しない場合、原則、プロセスＩＤＬＥ０を実行する。
【００６７】
一方、処理部１００は、単位期間が終了する場合、プロセスＩＤＬＥ１（転送プロセス）を実行する。ただし、今回の単位期間の最後にプロセスＩＤＬＥより優先度が高いプロセス（リアルタイムプライオリティのプロセスまたはユーザプライオリティのプロセス）が実行される場合、今回の単位期間においてプロセスＩＤＬＥ１は実行されない。プロセスＩＤＬＥ１では、単位期間における処理部１００の使用率が判定される。プロセスＩＤＬＥ１において、使用率が１０％以下であると判断された場合、ロギング情報が第３記憶部１３０へ転送される。
【００６８】
ところで、仮に１回のプロセスＩＤＬＥ１において、第３記憶部１３０に転送可能なロギング情報の個数に上限を設けない構成を想定する。以上の構成では、第２記憶部１２０から第３記憶部１３０へ大量のロギング情報が一度に転送され、全てのロギング情報を第３記憶部１３０に書込む処理に過度な時間長を要する場合がある。以上の場合、第３記憶部１３０にロギング情報を書込む処理が他の処理に影響する不都合が生じ得る。
【００６９】
以上の事情を考慮して、本実施形態では、プロセスＩＤＬＥ１において、第２記憶部１２０から第３記憶部１３０に転送可能なロギング情報の個数に上限を設ける。例えば、１回のプロセスＩＤＬＥ１において、最大で３２個のロギングデータが第３記憶部１３０に転送可能な構成が好適である。以上の構成によれば、上述の不都合が抑制されるという効果が奏せられる。
【００７０】
図８の具体例では、単位期間Ｌ−１における処理部１００の使用率は２０％である。したがって、単位期間Ｌ−１におけるプロセスＩＤＬＥ１では、ロギング情報が第３記憶部１３０へ転送されない。一方、単位期間Ｌ−１における処理部１００の使用率は１０％である。したがって、単位期間ＬにおけるプロセスＩＤＬＥ１では、ロギング情報が第３記憶部１３０へ転送される。
【００７１】
図９（ａ）および図９（ｂ）は、処理部１００の第１転送制御処理および第２転送制御処理のフローチャートである。第１転送制御処理および第２転送制御処理は、例えばオペレーティングシステム（カーネル）により実行される処理に含まれる。
【００７２】
図９（ａ）は、第１転送制御処理のフローチャートである。第１転送制御処理により、第１記憶部１１０から第２記憶部１２０へロギング情報が転送される。第１転送制御処理は、例えば、予め定められた時間間隔で発生するクロック割込みが所定回数発生する毎に実行される。具体的には、第１転送制御処理は、１０ｍｓ毎に実行される。すなわち、１回の単位期間で１０回の第１転送制御処理が実行される。ただし、第１転送制御処理が他の契機で実行される構成としてもよい。
【００７３】
第１転送制御処理を開始すると、処理部１００は、次回に実行するプロセスを決定する（Ｓ１１）。具体的には、ステップＳ１１では、次回に実行するプロセスに加え、当該プロセスのうち何れのスレッドを実行するかが決定される。処理部１００は、ステップＳ１１で決定したプロセスおよびスレッドに応じたログ情報を生成し、第１記憶部１１０に格納する（Ｓ１２）。
【００７４】
ログ情報を第１記憶部１１０に格納した後に、処理部１００は、今回の単位期間が終了したか否かを判定する（Ｓ１３）。具体的には、ステップＳ１３において、前回の単位期間が終了したと判断されてから約１００ｍｓが経過したか否かが判断される。今回の単位期間が終了していなと判断した場合（Ｓ１３：ＮＯ）、処理部１００は、第１転送制御処理を終了する。
【００７５】
一方、今回の単位期間が終了したと判断した場合（Ｓ１３：ＹＥＳ）、処理部１００は、今回の単位期間における処理部１００の使用率を算出する（Ｓ１４）。その後、処理部１００は、今回の単位期間における処理部１００の使用率が１００％であるか否かを判定する（Ｓ１５）。
【００７６】
ステップＳ１５において、今回の単位期間における処理部１００の使用率が１００％であると判断した場合（Ｓ１５：ＹＥＳ）、処理部１００は、前回の単位期間におけるロギング情報を第２記憶部１２０に転送し（Ｓ１６）、第１転送制御処理を終了する。
【００７７】
一方、今回の単位期間における処理部１００の使用率が１００％ではないと判断した場合（Ｓ１５：ＮＯ）、処理部１００は、前回の単位期間における処理部１００の使用率が１００％であるか否かを判定する（Ｓ１７）。前回の単位期間における処理部１００の使用率が１００％であると判断した場合（Ｓ１８：ＹＥＳ）、処理部１００は、前回の単位期間におけるロギング情報および今回の単位期間におけるロギング情報を第２記憶部１２０に転送する（Ｓ１８）。
【００７８】
以上の構成によれば、処理部１００の使用率が１００％である単位期間の直前の単位期間のロギング情報が上述のステップＳ１６で第２記憶部１２０へ転送され、且つ、処理部１００の使用率が１００％である単位期間のロギング情報および処理部１００の使用率が１００％である単位期間の直後の単位期間のロギング情報が上述のステップＳ１８で第２記憶部１２０へ転送される。
【００７９】
一方、前回の単位期間における処理部１００の使用率が１００％ではないと判断した場合（Ｓ１８：ＮＯ）、処理部１００は、第１転送処理を終了する。すなわち、前回および今回の連続した単位期間の双方において、処理部１００の使用率が１００％ではない場合、今回の第１転送制御処理ではロギング情報が転送されない。
【００８０】
図９（ｂ）は、第２転送制御処理のフローチャートである。第２転送制御処理により、第２記憶部１２０から第３記憶部１３０へロギング情報が転送される。第２転送制御処理は、上述のプロセスＩＤＬＥ１で実行される。第２転送制御処理を開始すると、処理部１００は、上述のステップＳ１４と同様に、今回の単位期間における処理部１００の使用率を算出する（Ｓ２１）。その後、処理部１００は、今回の単位期間における処理部１００の使用率が１０％以下であるか否かを判定する（Ｓ２２）。
【００８１】
ステップＳ２２において、今回の単位期間における処理部１００の使用率が１０％以下ではないと判断した場合（Ｓ２２：ＮＯ）、処理部１００は第２転送制御処理を終了する。一方、今回の単位期間における処理部１００の使用率が１０％以下であると判断した場合（Ｓ２２：ＹＥＳ）、処理部１００は、第２記憶部１２０に記憶されたロギング情報を第３記憶部１３０に転送する（Ｓ２３）。
【００８２】
上述した通り、第２記憶部１２０から第３記憶部１３０に一度に転送されるロギング情報の個数には上限が設けられる。具体的には、処理部１００は、第２記憶部１２０に記憶されたロギング情報が３２個以下の場合、全てのロギング情報を第３記憶部１３０へ転送する。
【００８３】
一方、第２記憶部１２０に記憶されたロギング情報が３２個より多い場合、処理部１００は、当該ロギング情報のうち古い順に３２個のロギング情報が選択され、第３記憶部１３０へ転送する。今回の第２転送制御処理（Ｓ２３）で転送れなかった第２記憶部１２０のロギング情報は、次回以降の第２転送制御処理で転送される。ロギング情報を第３記憶部１３０に転送した後に、処理部１００は、第２転送制御処理を終了する。
【００８４】
＜第２実施形態＞
本発明の第２実施形態から第６実施形態を以下に説明する。なお、以下に例示する各形態において作用や機能が第１実施形態と同等である要素については、第１実施形態の説明で参照した符号を流用して各々の詳細な説明を適宜に省略する。
【００８５】
図１０は、第２実施形態を説明するための図である。第２実施形態では、上述の第１実施形態と同様に、ロギング情報が第１記憶部１１０（第１領域１１１、第２領域１１２）に記憶される（図１０のＳｂ１）。また、第２実施形態では、上述の第１実施形態と同様に、処理部１００の使用率が閾値ＮＡ（第１実施形態では１００％）の場合、第１記憶部１１０から第２記憶部１２０にロギング情報が転送され（図１０のＳｂ２）、処理部１００の使用率が閾値ＮＢ（第１実施形態では１０％）以下の場合、第２記憶部１２０から第３記憶部１３０にロギング情報が転送される（図１０のＳｂ３）。
【００８６】
上述の第１実施形態では、ＨＤＤ１６を第３記憶部１３０として機能させた。第２実施形態では、ＲＡＭＤＩＳＫを第３記憶部１３０として機能させる点において、第１実施形態と相違する。例えば２５６ＭＢのデータ容量のＲＡＭＤＩＳＫが採用され得る。ＲＡＭＤＩＳＫは、各種の情報を揮発的に記憶する。
【００８７】
以上の第２実施形態によれば、ＨＤＤを具備しない情報処理装置１０であっても、デバッグ作業で解析するためのロギング情報をＲＡＭＤＩＳＫに蓄積できる。しかし、ＲＡＭＤＩＳＫは、情報処理装置１０への電源の供給が停止した場合、ロギング情報を保持できないという不都合がある。
【００８８】
以上の事情を考慮して、第２実施形態では、ＲＡＭＤＩＳＫに蓄積されたロギング情報を、予め定められた外部転送契機で外部記憶装置に転送させる構成を採用した。以上の構成によれば、デバッグ作業に必要なロギング情報を外部記憶装置に記憶させることができる。外部記憶装置としては、例えば、第１実施形態におけるＳＤカード１９（図１参照）が好適に採用される。ただし、ＳＤカード１９以外を外部記憶装置として採用してもよい。
【００８９】
第２実施形態では、ＳＤカード１９が情報処理装置１０に接続された場合、外部転送契機が成立し、ＲＡＭＤＩＳＫのロギング情報がＳＤカード１９に転送される（図１０のＳｂ４）。具体的には、ＳＤカード１９が情報処理装置１０に接続された場合、ＲＡＭＤＩＳＫのロギング情報をＳＤカード１９に転送するためのプロセスが自動的に実行され、ロギング情報がＳＤカード１９に転送される。ただし、ＳＤカード１９が情報処理装置１０に接続され、且つ、ユーザの操作が受付けられた場合、ロギング情報がＳＤカード１９に転送される構成としてもよい。
【００９０】
ロギング情報をＲＡＭＤＩＳＫに転送する外部転送契機は適宜に設定できる。例えば、予め定められた時間間隔（例えば１時間毎）で、ロギング情報をＲＡＭＤＩＳＫに転送してもよい。また、単位期間における処理部１００の使用率が予め定められた数値以下の場合、ロギング情報をＲＡＭＤＩＳＫに転送してもよい。さらに、情報処理装置１０への電源の供給が停止する場合、ロギング情報をＲＡＭＤＩＳＫに転送してもよい。
【００９１】
＜第３実施形態＞
図１１は、第３実施形態を説明するための図である。第３実施形態では、上述の第１実施形態および第２実施形態と同様に、ロギング情報が第１記憶部１１０に記憶され（図１１のＳｃ１）、処理部１００の使用率が閾値ＮＡの場合、第１記憶部１１０から第２記憶部１２０にロギング情報が転送され（図１１のＳｃ２）、処理部１００の使用率が閾値ＮＢ以下の場合、第２記憶部１２０から第３記憶部１３０にロギング情報が転送される（図１１のＳｃ３）。
【００９２】
第３実施形態の情報処理装置１０は、上述の第２実施形態と同様に、ＲＡＭＤＩＳＫが設けられ、該ＲＡＭＤＩＳＫが第３記憶部１３０として機能する。また、第３実施形態の情報処理装置１０は、ＮＡＮＤ型フラッシュメモリを具備する。例えばデータ容量が２５６ＭＢ以上のＮＡＮＤ型フラッシュメモリが好適に採用される。ＮＡＮＤ型フラッシュメモリは、各種の情報を不揮発的に記憶できる。
【００９３】
第３実施形態では、情報処理装置１０への電源の供給が停止する場合、ＲＡＭＤＩＳＫのロギング情報がＮＡＮＤ型フラッシュメモリに転送される。以上の第３実施形態によれば、ＮＡＮＤ型フラッシュメモリに蓄積されたロギング情報によりデバッグ作業ができる。また、第３実施形態によれば、ＨＤＤを具備しない情報処理装置１０であっても、ロギング情報を不揮発的に記憶する記憶装置に蓄積することができる。
【００９４】
＜第４実施形態＞
第４実施形態では、上述の第１実施形態と同様に、ロギング情報が第１記憶部１１０に記憶され、処理部１００の使用率が閾値ＮＡ以上の場合、第１記憶部１１０から第２記憶部１２０にロギング情報が転送され、処理部１００の使用率が閾値ＮＢ以下の場合、第２記憶部１２０から第３記憶部１３０にロギング情報が転送される。
【００９５】
ところで、処理部１００の使用率が頻繁に閾値ＮＡを超える場合、第２記憶部１２０にロギング情報が短期間で大量に蓄積され得る。以上の場合、ロギング情報が第３記憶部１３０に転送される以前に、第２記憶部１２０でオーバーフローが生じる不都合が想定される。
【００９６】
以上の事情を考慮して、第４実施形態では、第２記憶部１２０が記憶可能な残りのデータ量（空き容量）が少ないほど、第２記憶部１２０から第３記憶部１３０へロギング情報が転送されることとなる処理部１００の使用率（閾値ＮＢ）を高く変更可能な構成とした。具体的には、第２記憶部１２０の空き容量（以下「空き容量Ｄｆ」という）が０ＭＢまで減少した場合（オーバーフローが生じた場合）、閾値ＮＢが加算される。
【００９７】
例えば、閾値ＮＢが１０％の期間において、空き容量Ｄｆが０ＭＢまで減少した場合、閾値ＮＢが２０％に加算される。閾値ＮＢが加算された場合、第２記憶部１２０から第３記憶部１３０にロギング情報が転送される契機が成立し易くなるため、第２記憶部１２０でオーバーフローが生じる不都合が抑制される。
【００９８】
図１２（ａ）は、第１変更処理のフローチャートである。第１変更処理は、例えば予め定められた時間間隔で処理部１００により実行される。ただし、第１変更処理が実行される契機は適宜に変更できる。第１変更処理を開始した場合、処理部１００は、第２記憶部１２０の空き容量Ｄｆが０ＭＢであるか否かを判定する（Ｓ３１）。第２記憶部１２０の空き容量Ｄｆが０ＭＢではないと判断した場合（Ｓ３１：ＮＯ）、処理部は、第１変更処理を終了する。
【００９９】
一方、第２記憶部１２０の空き容量Ｄｆが０ＭＢであると判断した場合（Ｓ３１：ＹＥＳ）、処理部１００は、閾値ＮＢ変更処理（Ｓ３２）を実行する。第４実施形態では、閾値ＮＢの初期値は例えば１０％に設定される。閾値ＮＢ変更処理では、閾値ＮＢに数値「１０」が加算される。ただし、閾値ＮＢが１００％に達している場合、閾値ＮＢは加算されない。
【０１００】
以上の第４実施形態では、第２記憶部１２０がオーバーフローし、デバッグ作業に必要なロギング情報が第３記憶部１３０に蓄積されないという不都合が抑制される。なお、閾値ＮＢは適宜に減算される。例えば、第２記憶部１２０から第３記憶部１３０へロギング情報が転送された場合、閾値ＮＢから数値「１０」が減算される構成としてもよい。また、第２記憶部１２０から第３記憶部１３０へロギング情報が転送された場合、閾値ＮＢが初期値（１０％）にリセットされる構成としてもよい。
【０１０１】
＜第５実施形態＞
第５実施形態では、上述の第１実施形態と同様に、ロギング情報が第１記憶部１１０に記憶され、処理部１００の使用率が閾値ＮＡ以上の場合、第１記憶部１１０から第２記憶部１２０にロギング情報が転送される。
【０１０２】
第１実施形態では、ロギング情報が転送される閾値ＮＡとして１００％を採用した。しかし、閾値ＮＡを１００％とした構成では、処理部１００の使用率が１００％に達しない場合のロギング情報が転送されない（蓄積されない）。しかし、例えば処理部の使用率が８０％を超えた場合のロギング情報であっても、デバッグ作業で解析を要する場合がある。ロギング情報が転送される閾値ＮＡが１００％で固定される構成では、解析可能となるロギング情報の範囲が狭すぎるという不都合（以下「第１の不都合」という）が生じ得る。
【０１０３】
以上の事情を考慮して、第５実施形態では、閾値ＮＡが１００％以下に変化可能な構成とした。閾値ＮＡが１００％より小さい場合、第１記憶部１１０から第２記憶部１２０にロギング情報が転送され易くなり、上述の第１の不都合が抑制される。
【０１０４】
ただし、閾値ＮＡが小さい場合、処理部１００の使用率が頻繁に閾値ＮＡを超え、第１記憶部１１０から頻繁にロギング情報が第２記憶部１２０に転送され、ロギング情報が第３記憶部１３０に転送される以前に、第２記憶部１２０でオーバーフローが生じる不都合（以下「第２の不都合」という）が生じ易くなる。
【０１０５】
以上の事情を考慮して、第５実施形態では、第２記憶部１２０の空き容量Ｄｆに応じて、閾値ＮＡを変化させる構成を採用した。具体的には、第２記憶部１２０の空き容量Ｄｆが多い程、閾値ＮＡが小さくなる（ロギング情報が第２記憶部１２０に転送され易くなる）構成とした。以上の構成によれば、上述の第２の不都合が抑制される。
【０１０６】
図１２（ｂ）は、第２変更処理のフローチャートである。第２変更処理は、例えば予め定められた時間間隔で処理部１００により実行される。ただし、第２変更処理が実行される契機は適宜に変更できる。第２変更処理を開始した場合、処理部１００は、第２記憶部１２０の空き容量Ｄｆが４ＭＢ以上であるか否かを判定する（Ｓ４１）。上述した通り、第２記憶部１２０（ＢＵＦ１４）のデータ容量は８ＭＢである。したがって、第２記憶部１２０に５０％以上の空きがあるか否かがステップＳ４１で判断されるとも換言される。
【０１０７】
第２記憶部１２０の空き容量Ｄｆが４ＭＢ以上であると判断した場合（Ｓ４１：ＹＥＳ）、処理部１００は、閾値ＮＡを８０％に変更する（Ｓ４２）。一方、第２記憶部１２０の空き容量Ｄｆが４ＭＢ以上ではないと判断した場合（Ｓ４１：ＮＯ）、処理部１００は、空き容量Ｄｆが２ＭＢ以上であるか否かを判定する（Ｓ４３）。空き容量Ｄｆが２ＭＢ以上であると判断した場合（Ｓ４３：ＹＥＳ）、処理部１００は、閾値ＮＡを９０％に変更する（Ｓ４４）。空き容量Ｄｆが２ＭＢ以上ではないと判断した場合（Ｓ４３：ＮＯ）、処理部１００は、閾値ＮＡを１００％に変更する（Ｓ４５）。
【０１０８】
以上の説明から理解される通り、第５実施形態では、第２記憶部１２０が記憶可能な残りのデータ量が少ないほど、第２記憶部１２０から第３記憶部１３０へロギング情報が転送されることとなる処理部１００の使用率（閾値ＮＡ）を高く変更可能である。以上の構成によれば、上述の第１の不都合を抑制するとともに、第２の不都合が抑制できる。
【０１０９】
なお、閾値ＮＡが変更される空き容量Ｄｆ（図１２（ｂ）の例では、８ＭＢ、２ＭＢ）は、適宜に変更してもよい。また、閾値ＮＡが変化する数値（図１２（ｂ）の例では、８０％、９０％、１００％）は、適宜に変更してもよい。
【０１１０】
＜第６実施形態＞
第６実施形態では、上述の第１実施形態と同様に、ロギング情報が第１記憶部１１０に記憶され、処理部１００の使用率が閾値ＮＡ以上の場合、第１記憶部１１０から第２記憶部１２０にロギング情報が転送され、処理部１００の使用率が閾値ＮＢ以下の場合、第２記憶部１２０から第３記憶部１３０にロギング情報が転送される。
【０１１１】
上述の第１実施形態では、第２記憶部１２０から第３記憶部１３０へロギング情報を転送するためのプロセスＩＤＬＥ１（転送プロセス）は、他のプロセスより優先度が低いアイドルプライオリティのプロセスである。
【０１１２】
しかし、以上の構成では、転送プロセスより優先度が高いプロセス（ユーザプライオリティのプロセスなど）が実行され続けた場合、転送プロセスが長期間に亘り実行されない場合がある。以上の場合、第２記憶部１２０に蓄積されたロギング情報が第３記憶部１３０に転送される以前に、第２記憶部１２０でオーバーフローが生じる不都合が想定される。
【０１１３】
以上の事情を考慮して、第６実施形態では、第２記憶部１２０の空き容量Ｄｆに応じて、転送プロセスの優先度を変化させる構成とした。具体的には、第２記憶部１２０の空き容量Ｄｆが少ない程、転送プロセスの優先度が高くなる構成とした。以上の構成によれば、第２記憶部１２０の空き容量Ｄｆが少ない程（オーバーフローが生じるまでの期間が短い程）、転送プロセスが実行され易くなる。したがって、第２記憶部１２０でオーバーフローが生じる不都合が抑制される。
【０１１４】
図１２（ｃ）は、第３変更処理のフローチャートである。第３変更処理は、例えば予め定められた時間間隔で処理部１００により実行される。ただし、第３変更処理が実行される契機は適宜に変更できる。
【０１１５】
第３変更処理を開始した場合、処理部１００は、第２記憶部１２０の空き容量Ｄｆが６．４ＭＢ以上であるか否かを判定する（Ｓ５１）。上述した通り、第２記憶部１２０（ＢＵＦ１４）のデータ容量は８ＭＢである。したがって、第２記憶部１２０に８０％以上の空きがあるか否かがステップＳ５１で判断されるとも換言される。
【０１１６】
第２記憶部１２０の空き容量Ｄｆが６．４ＭＢ以上であると判断した場合（Ｓ５１：ＹＥＳ）、処理部１００は、転送プロセスの優先度（Ｐｒ）をアイドルプライオリティ（Ｐｉ）に変更する（Ｓ５２）。一方、第２記憶部１２０の空き容量Ｄｆが６．４ＭＢ以上ではないと判断した場合（Ｓ５１：ＮＯ）、処理部１００は、空き容量Ｄｆが４ＭＢ以上であるか否かを判定する（Ｓ５３）。
【０１１７】
空き容量Ｄｆが４ＭＢ以上であると判断した場合（Ｓ５３：ＹＥＳ）、処理部１００は、転送プロセスの優先度（Ｐｒ）をユーザプライオリティの中間値（Ｐｕｍ）に変更する（Ｓ５４）。空き容量Ｄｆが４ＭＢ未満であると判断した場合（Ｓ５３：ＮＯ）、処理部１００は、転送プロセスの優先度（Ｐｒ）をユーザプライオリティの最高値（Ｐｕｈ）に変更する（Ｓ５５）。
【０１１８】
以上の構成によれば、第２記憶部１２０でオーバーフローが生じる不都合が抑制される。なお、転送プロセスの優先度が変更される空き容量Ｄｆ（図１２（ｃ）の例では、６．４ＭＢ、４ＭＢ）は、適宜に変更してもよい。また、転送プロセスの変更後の優先度（図１２（ｃ）の例では、Ｐｉ、Ｐｕｍ、Ｐｕｈ）は、適宜に変更してもよい。
【０１１９】
＜本実施形態の態様例の作用、効果のまとめ＞
＜第１態様＞
本態様の情報処理装置は、処理手段が単位期間に実行したプロセスの順序を特定にするためのロギング情報を単位期間毎に記憶する記憶手段であって、今回の単位期間に係るロギング情報を記憶する第１領域および次回の単位期間に係るロギング情報を記憶する第２領域を含む第１記憶手段と、第１記憶手段から転送されるロギング情報を記憶する第２記憶手段と、第２記憶手段から転送されるロギング情報を記憶する記憶手段であって、ロギング情報を記憶するための時間長が第１記憶手段および第２記憶手段よりも長くなり易く、第１記憶手段および第２記憶手段よりも記憶容量が大きい第３記憶手段と、単位期間における処理手段の使用率を算出する算出手段と、算出手段が算出した使用率が所定値以上の場合、第１記憶手段に記録されたロギング情報を第２記憶手段へ転送させ、使用率が所定値より小さい場合、第２記憶手段から第３記憶手段にロギング情報を転送させる転送制御手段と、を備えることを特徴とする。
本態様によれば、外部の記憶装置を用いなくとも、第３記憶手段に多くのロギング情報を記憶することができる。
【０１２０】
＜第２態様＞
本態様の情報処理装置は、第３記憶手段は、ロギング情報を揮発的に記憶し、転送制御手段は、予め定められた外部転送契機が成立した場合、第３記憶手段が記憶するロギング情報を外部記憶装置に転送させることを特徴とする。
本態様によれば、不揮発的にロギング情報を記憶する記憶手段（例えばＨＤＤ）が設けられない構成においても、デバッグ作業で解析するためのロギング情報を蓄積できる。
【０１２１】
＜第３態様＞
本態様の情報処理装置は、外部転送契機には、電源の供給が停止されることが含まれることを特徴とする。
本態様によれば、電源の供給が停止された契機で、ロギング情報が自動的に外部記憶装置に転送される。仮に、ロギング情報を外部記憶装置に転送するための操作（以下「転送操作」）が必要な構成では、電源の供給を停止する前に転送操作を忘れた場合、第３記憶手段に記憶されたロギング情報は保持されない不都合が生じ得る。本態様によれば、以上の不都合が抑制される。
【０１２２】
＜第４態様＞
本態様の情報処理装置は、第２記憶手段が記憶可能な残りのデータ量が多いほど、第１記憶手段から第２記憶手段へロギング情報が転送されることとなる処理手段の使用率を低く変更可能な変更手段を備えることを特徴とする。
本態様によれば、処理手段の使用率が低い場合のロギング情報をデバッグ作業のために蓄積できる。
【０１２３】
＜第５態様＞
本態様の情報処理装置は、第２記憶手段が記憶可能な残りのデータ量が少ないほど、第２記憶手段から第３記憶手段へロギング情報が転送されることとなる処理手段の使用率を高く変更可能な変更手段を備えることを特徴とする。
本態様によれば、第２記憶手段がオーバーフローする前に、第２記憶手段のロギング情報が第３記憶手段に転送され易くなる。
【０１２４】
＜第６態様＞
本態様の情報処理装置は、第２記憶手段が記憶可能な残りのデータ量が少ないほど、ロギング情報を第３記憶手段に転送するためのプロセスの優先度を高く変更可能な変更手段を備えることを特徴とする。
本態様によれば、第２記憶手段がオーバーフローする前に、第２記憶手段のロギング情報が第３記憶手段に転送され易くなる。
【０１２５】
＜第７態様＞
本態様の情報処理方法は、処理手段が単位期間に実行したプロセスの順序を特定にするためのロギング情報を単位期間毎に第１記憶手段に記憶するステップであって、今回の単位期間に係るロギング情報を、第１記憶手段の第１領域に記憶し、次回の単位期間に係るロギング情報を、第１記憶手段の第２領域に記憶するステップと、第１記憶手段から転送されるロギング情報を第２記憶手段に記憶するステップと、ロギング情報を記憶するための時間長が第１記憶手段および第２記憶手段よりも長くなり易く、第１記憶手段および第２記憶手段よりも記憶容量が大きい第３記憶手段に、第２記憶手段から転送されるロギング情報を記憶するステップと、単位期間における処理手段の使用率を算出するステップと、使用率が所定値以上の場合、第１記憶手段に記録されたロギング情報を第２記憶手段へ転送させ、使用率が所定値より小さい場合、第２記憶手段から第３記憶手段にロギング情報を転送させるステップと、を備えることを特徴とする。
本態様によれば、上述の第１態様と同様な効果が奏せられる。」
【０１２６】
＜第８態様＞
本態様のプログラムは、第７態様に記載の情報処理方法における各ステップをコンピュータに実行させることを特徴とする。
本態様によれば、上述の第１態様と同様な効果が奏せられる。
【符号の説明】
【０１２７】
１０…情報処理装置、１００…処理部、１０１…ロギング実行部、１０２…転送制御部、１０３…算出部、１０４…プロセス実行部、１１０…第１記憶領域、１１１…第１領域、１１２…第２領域、１２０…第２記憶装置、１３０…第３記憶部。
【先行技術文献】
【特許文献】
【０１２８】
【特許文献１】特開２０１０−３９８８４公報
【図１】
2019160155.tif 000003
【図２】
2019160155.tif 000004
【図３】
2019160155.tif 000005
【図４】
2019160155.tif 000006
【図５】
2019160155.tif 000007
【図６】
2019160155.tif 000008
【図７】
2019160155.tif 000009
【図８】
2019160155.tif 000010
【図９】
2019160155.tif 000011
【図１０】
2019160155.tif 000012
【図１１】
2019160155.tif 000013
【図１２】
2019160155.tif 000014