JP5694170B2 - 選択的に軽減を使用してエラーを低減するメモリー管理技術 - Google Patents
選択的に軽減を使用してエラーを低減するメモリー管理技術 Download PDFInfo
- Publication number
- JP5694170B2 JP5694170B2 JP2011529101A JP2011529101A JP5694170B2 JP 5694170 B2 JP5694170 B2 JP 5694170B2 JP 2011529101 A JP2011529101 A JP 2011529101A JP 2011529101 A JP2011529101 A JP 2011529101A JP 5694170 B2 JP5694170 B2 JP 5694170B2
- Authority
- JP
- Japan
- Prior art keywords
- memory
- mitigation
- memory operation
- software module
- module
- 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
Links
- 230000000116 mitigating effect Effects 0.000 title claims description 434
- 238000005516 engineering process Methods 0.000 title description 3
- 230000000694 effects Effects 0.000 claims description 180
- 238000000034 method Methods 0.000 claims description 163
- 230000009471 action Effects 0.000 claims description 13
- 230000008569 process Effects 0.000 description 75
- 239000003550 marker Substances 0.000 description 19
- 238000012360 testing method Methods 0.000 description 11
- 230000002776 aggregation Effects 0.000 description 10
- 238000004220 aggregation Methods 0.000 description 10
- 238000001514 detection method Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 8
- 238000010200 validation analysis Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 230000003111 delayed effect Effects 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 230000003993 interaction Effects 0.000 description 4
- 230000002085 persistent effect Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 230000002411 adverse Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000003116 impacting effect Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 230000005415 magnetization Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000006386 memory function Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/366—Software debugging using diagnostics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error 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/0706—Error 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/073—Error 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 memory management context, e.g. virtual memory or cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error 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/0766—Error or fault reporting or storing
- G06F11/0778—Dumping, i.e. gathering error/state information after a fault for later diagnosis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error 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/0766—Error or fault reporting or storing
- G06F11/0787—Storage of error reports, e.g. persistent data storage, storage using memory protection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error 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/0793—Remedial or corrective actions
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Debugging And Monitoring (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
Description
用可能な種々の「デバッグ」ツールが存在する。ワシントン州レドモンドのマイクロソフトコーポレーションから入手可能なVisual Studio等のソフトウェア開発アプリケーションの中には、内蔵ツール等のツールを備えるものがある。Visual Studioでは、開発者が、試験時に、ページヒープ機能を備えることができるアプリケーション検証ツール機能を有効にする選択をすることができる。ページヒープを使用して、試験対象のアプリケーションについてのメモリーの割り当ておよび使用状況を監視することにより、バッファオーバーランおよびアンダーランを含む何種かのメモリーエラーを検出することができる。ページヒープでは、ある量の確保された追加メモリー(「非アクセス可能ページ」と呼ぶ)が、ヒープメモリーの割り当て部分(通常の「ユーザー割り当て」ページ)の後に配置され、アプリケーション検証ツール機能を有効にして、非アクセス可能ページに情報が書き込まれるとそのことを検出する。そのようにして、デバッグツールは、エラーを特定し、開発者に報告することができる。
とを認識した。
[0013]添付図面は一定の縮尺での図示を意図していない。図面では、様々な図に示された同一またはほぼ同一の各構成要素は同様の参照符号で表される。図を見やすくするために、すべての図面ですべての構成要素に符号が付されているとは限らない。
ない場合よりも多くのメモリーを使用する。また、メモリー操作がメモリー管理モジュールに受け取られた時に調べて軽減活動が利用可能であるかどうかを判定すると、それらのメモリー操作に応答するのにかかる時間が増大し、結果としてアプリケーションの実行時間が増大する。本出願人らは、メモリーマネージャーを呼び出すすべてのソフトウェアモジュール(「呼び出し側ソフトウェアモジュール」)に、メモリーエラーにつながるプログラミングバグがある訳ではないため、このような実行への悪影響は、これまでメモリーエラーを経験したことが検出されているかどうかに応じて呼び出し側ソフトウェアモジュールに選択的に軽減活動を適用することによって緩和できることを認識および理解した。したがって、本明細書には、アプリケーションのインスタンスである特定の呼び出し側ソフトウェアモジュールごとに異なる動作モードでメモリー操作を行う技術が記載され、動作モードは、アプリケーションのためのメモリー操作に軽減活動が適用される第1のモード、およびアプリケーションに軽減活動が適用されない第2のモード等である。
のような判定を行うために使用できる例示的な検査を記載し、その検査の結果を使用して、メモリー管理モジュールが特定の呼び出し側ソフトウェアモジュールに対して動作する際のモードを制御することができる。
システムに管理されるアプリケーションのコンポーネントとして、またはオペレーティングシステムを持たないコンピューティングデバイスで実行されるモジュールとして実装することが可能である。さらに、メモリー管理モジュールに要求を発行するソフトウェアモジュール(「呼び出し側ソフトウェアモジュール」)は、プロセッサーによって実行可能な命令の適切な構成であってよい。一部の実装では、ソフトウェアモジュールは、ユーザーアプリケーションのインスタンス、オペレーティングシステムのコンポーネント、サービスもしくはデーモン、または他の適切なソフトウェアモジュールであってよい。各ソフトウェアモジュールは、下記のように1つまたは複数の「機能モジュール」であってよい。
にされることができる。そして軽減モジュールは、メモリー管理モジュールと連携して、メモリーエラーが呼び出し側ソフトウェアモジュールに負の影響を与える可能性を低減するのに役立ち得る1つまたは複数の軽減活動に従ってメモリー操作を行うことができる。メモリー管理モジュールの動作モードは、好ましくはソフトウェアモジュールごとに独立しており、またメモリー管理ユニットは、ある呼び出し側ソフトウェアモジュールには第1のモードでメモリー操作を行い、別の呼び出し側ソフトウェアモジュールには第2のモードで別のメモリー操作を行ってよいことを理解されたい。
作することが可能であり、すべての実装が本明細書に記載のすべての原理に従って動作することが可能であるとは限らないことを理解されたい。
、媒体へのデータの記録過程中に何らかの方式で変更されることが可能な少なくとも1つの物理構造を持つ有形記憶媒体を指すことを理解されたい。例えば、記録の過程中にコンピューター可読媒体の物理構造の一部の磁化状態を変更することができる。いくつかのそのような実施形態では、本明細書に記載の原理に従って動作する技術を実装するコンピューター実行可能命令は、1つまたは複数の独立型機能モジュール(例えばメモリー管理モジュール)として実装することができる。
術の1つまたは複数を行うように、任意の適当な方式で実装することができる。上記のように、本明細書に記載の技術の一部の実装では、メモリー管理モジュール110は、呼び出し側ソフトウェアモジュールによってメモリー操作が要求されると1つまたは複数の軽減活動を行う働きをすることが可能な軽減モジュール112を備えることができる。軽減モジュール112は、軽減活動を必要としていることが検出されたソフトウェアモジュールだけに軽減活動が行われるように、呼び出し側ソフトウェアモジュール単位で選択的に適用されてよい。したがって、そのような実装で検出および有効化を行うために、オペレーティングシステム108はさらに、コンピューティングデバイス100内のソフトウェアモジュールの実行を監視する軽減有効化モジュール114を備えることができる。ただし、代替の実装では、軽減モードは、コンピューティングデバイス900の管理者等によって手動で有効または無効にすることができ、そのような実装では、軽減有効化モジュールは備えなくてよい。軽減モジュール112および軽減有効化モジュール114を含む図1に示すモジュールは、下記の例示的技術を含めて、本明細書に記載の原理に従って適当な方式で動作するように適合することができる。
および設定218の検討を含めて、適当な動作を含むことができる。データストア212は、永続的な方式で格納することができ、軽減有効化モジュール114が無効化またはシャットダウンされた場合、後に再有効化されると、それまでに行われた決定についての情報を含む、過去に収集された情報にアクセスすることができる。
とを理解されたい)。メモリー管理モジュール110が軽減モードで動作すべきと判定された場合は、軽減モジュール112が有効にされ、メモリー操作を行う要求をブロック306で受け取る。
ッサーの場合は、追加割り当てメモリーは32バイト(すなわち4バイトが要求された場合、合計割り当て量は36バイト)、64ビットプロセッサーの場合は、追加割り当てメモリーは48バイトとすることができる。任意の適切な量の追加メモリーをブロック404で割り当ててよい。
44で動作が無視された場合は、プロセス400Dは終了する。
うかに基づいて、アプリケーション単位で選択的に適用することができる。軽減モードを選択的に有効にし、軽減活動の有効性を評価するための軽減有効化モジュール114の例示的実装を説明することができる。ただし、本発明の実施形態はこの点で限定されないため、軽減有効化モジュール114は、軽減モジュール112のコンポーネントとして等、任意の適当な方式で実装できることを理解されたい。
軽減有効化モジュール114の担当として図示するが、いくつかの代替実装では、それらの機能は、Microsoft WindowsオペレーティングシステムのWindows診断インフラストラクチャ(WDI)モジュール等の、オペレーティングシステム108の別のモジュールによって行うことができ、軽減有効化モジュール114は、WDIモジュールを監視して、メモリーエラーが検出された時にその旨を判定する、またはメモリーエラーが検出された時にWDIモジュールから通知されることができる。
、図5に関連して説明した遅延解放プロセス500によってなど、任意の方式で行ってよい。ブロック714でメモリーが解放されると、プロセスは終了する。
ウェアモジュールに選択された値、または他の適切な値であってよい。一部の実装では、下記のように、初期値は、対象アプリケーションについてのエラー軽減の成功に関する履歴データに基づくことができる。一例示的実装では、軽減チケット値は整数であってよく、ソフトウェアモジュールに対して軽減モードが有効にされる時、初期化された値は7とすることができる。
0で実行されるソフトウェアモジュールに関する情報、ならびにソフトウェアモジュールによって経験されたエラーおよび軽減モジュール112によってとられた成功した軽減活動についての情報を収集する、適切な機能モジュールであってよい。エラー報告クライアント902は、ネットワークアダプター904を使用してその情報を集約サーバーを含む適切な宛先に送信することができる。
ュールの状態についての情報を従来のエラー報告クライアントよりも多く取得し、これまでに可能であったよりも多くの詳細な情報を集約サーバーに提供することができる。従来はエラーの報告はクラッシュがトリガーとなっていたが、他の適切なトリガーを使用してよく、それには、単に時間の経過をトリガーとして、クラッシュが発生しない場合でも格納された軽減情報をエラー報告サービスに転送できるようにすることが含まれる。
告クライアント902は、構成データを軽減有効化モジュール116に提供することができ、軽減有効化モジュールは、軽減データストア212の規則および設定データ218を更新することができる。データストア212を更新すると、軽減有効化モジュール114は、次いで規則および設定を適用して、コンピューティングデバイス900で実行されるソフトウェアモジュールに軽減モードを選択的に有効化し、プロセスが終了する。規則および設定の適用は任意の適当な方式で行われてよい。例えば、構成データが初期軽減チケット値を含む場合は、ソフトウェアモジュールに軽減モードを有効にすると、軽減有効化モジュール114は、そのソフトウェアモジュールの軽減チケット値を、構成データに含まれる値に初期化することができる。
[0128]例えば、利用可能なすべての軽減が適用されるか、または軽減がまったく適用されないかの2つの動作モードについて記載している。実施形態によっては、利用可能な軽
減のすべてではなく一部が適用される中間の選択肢が可能であり得ることを理解されたい。
Claims (16)
- コンピューターシステムに生じる(encountered by a computer system)メモリーエラーの頻度(frequency)を低下させる(reducing)方法であって、
呼び出し側ソフトウェアモジュール(calling software module)(200)から、メモリー操作(memory operation)の実行要求(request for execution)を受け取る(302)ステップと、
前記呼び出し側ソフトウェアモジュールによって要求されるメモリー操作の実行時に1つまたは複数の軽減活動(mitigation actions)が適用される(applied)べきかどうかを判定する(determining)(304)ステップと、
前記1つまたは複数の軽減活動が適用されるべき場合は、前記メモリー操作の結果メモリーエラーが発生(occurring)する可能性(likelihood)を低減する働きをし得る(may serve to)少なくとも1つの軽減活動を適用する(310)ステップと、
前記軽減活動に従って前記メモリー操作を実行する(312、314)ステップと
を含み、
前記軽減活動に従って前記メモリー操作を実行するステップは、前記軽減活動が、前記メモリー操作を実行すべきでないと示す時は、前記メモリー操作を実行しない(436、444)ステップを含む、
方法であって、
前記メモリー操作の実行要求は、前記呼び出し側ソフトウェアモジュールに第1の量(amount)のメモリーを割り当てる(allocated)要求であり、前記軽減活動に従って前記メモリー操作を実行するステップは、前記第1の量のメモリーより大きい第2の量のメモリーを割り当てる(404)ステップを含む、
方法。 - コンピューターシステムに生じる(encountered by a computer system)メモリーエラーの頻度(frequency)を低下させる(reducing)方法であって、
呼び出し側ソフトウェアモジュール(calling software module)(200)から、メモリー操作(memory operation)の実行要求(request for execution)を受け取る(302)ステップと、
前記呼び出し側ソフトウェアモジュールによって要求されるメモリー操作の実行時に1つまたは複数の軽減活動(mitigation actions)が適用される(applied)べきかどうかを判定する(determining)(304)ステップと、
前記1つまたは複数の軽減活動が適用されるべき場合は、前記メモリー操作の結果メモリーエラーが発生(occurring)する可能性(likelihood)を低減する働きをし得る(may serve to)少なくとも1つの軽減活動を適用する(310)ステップと、
前記軽減活動に従って前記メモリー操作を実行する(312、314)ステップと
を含み、
前記軽減活動に従って前記メモリー操作を実行するステップは、前記軽減活動が、前記メモリー操作を実行すべきでないと示す時は、前記メモリー操作を実行しない(436、444)ステップを含む、
方法であって、
前記メモリー操作の実行要求は、前記呼び出し側ソフトウェアモジュールに割り当てられたメモリーを解放する(free)要求であり、前記軽減活動に従って前記メモリー操作を実行するステップは、前記メモリー操作を後の時に(at a later time)行う(434)ステップを含む、
方法。 - 前記メモリー操作を前記後の時に行うステップは、前記呼び出し側ソフトウェアモジュールに割り当てられた前記メモリー操作の実行要求を、解放すべき(to be freed)メモリーの待ち行列(queue)に加え(adding)(508)、前記メモリー操作の実行要求が前記待ち行列の先頭(top)に達した(reaches)時に前記メモリー操作を行って前記メモリーを解放する(512)ステップを含む、請求項2に記載の方法。
- コンピューターシステムに生じる(encountered by a computer system)メモリーエラーの頻度(frequency)を低下させる(reducing)方法であって、
呼び出し側ソフトウェアモジュール(calling software module)(200)から、メモリー操作(memory operation)の実行要求(request for execution)を受け取る(302)ステップと、
前記呼び出し側ソフトウェアモジュールによって要求されるメモリー操作の実行時に1つまたは複数の軽減活動(mitigation actions)が適用される(applied)べきかどうかを判定する(determining)(304)ステップと、
前記1つまたは複数の軽減活動が適用されるべき場合は、前記メモリー操作の結果メモリーエラーが発生(occurring)する可能性(likelihood)を低減する働きをし得る(may serve to)少なくとも1つの軽減活動を適用する(310)ステップと、
前記軽減活動に従って前記メモリー操作を実行する(312、314)ステップと
を含み、
前記軽減活動に従って前記メモリー操作を実行するステップは、前記軽減活動が、前記メモリー操作を実行すべきでないと示す時は、前記メモリー操作を実行しない(436、444)ステップを含む、
方法であって、
前記軽減活動は、前記メモリー操作の入力情報が正しい(correct)かどうかの判定(432)であり、前記軽減活動に従って前記メモリー操作を実行するステップは、前記入力情報が正しくない場合は前記メモリー操作を実行しない(436)ステップを含む、
方法。 - 前記メモリー操作は、ヒープメモリー(heap memory)に作用する(affecting)メモリー操作であり、前記入力情報が正しいかどうかを判定するステップは、前記入力情報がヒープメモリーのアドレスを含むかどうかを判定するステップを含む、請求項4に記載の方法。
- コンピューターシステムに生じる(encountered by a computer system)メモリーエラーの頻度(frequency)を低下させる(reducing)方法であって、
呼び出し側ソフトウェアモジュール(calling software module)(200)から、メモリー操作(memory operation)の実行要求(request for execution)を受け取る(302)ステップと、
前記呼び出し側ソフトウェアモジュールによって要求されるメモリー操作の実行時に1つまたは複数の軽減活動(mitigation actions)が適用される(applied)べきかどうかを判定する(determining)(304)ステップと、
前記1つまたは複数の軽減活動が適用されるべき場合は、前記メモリー操作の結果メモリーエラーが発生(occurring)する可能性(likelihood)を低減する働きをし得る(may serve to)少なくとも1つの軽減活動を適用する(310)ステップと、
前記軽減活動に従って前記メモリー操作を実行する(312、314)ステップと
を含み、
前記軽減活動に従って前記メモリー操作を実行するステップは、前記軽減活動が、前記メモリー操作を実行すべきでないと示す時は、前記メモリー操作を実行しない(436、444)ステップを含む、
方法であって、
前記呼び出し側ソフトウェアモジュールについて、前記1つまたは複数の軽減活動が適用されるべきかどうかを判定するステップは、メモリー管理モジュールに関連付けられたデータストア(a data store)(218)内のエントリーを調べるステップを含み、前記エントリーは、前記呼び出し側ソフトウェアモジュールに関連付けられている(associated with)、
方法。 - 前記メモリー管理モジュールに関連付けられたデータストアは、前記メモリー管理モジュールと対話する(interacting with)軽減有効化(enablement)モジュール(114)に関連付けられる、請求項6に記載の方法。
- 実行されると、コンピューティングデバイス(100)のオペレーティングシステム(108)のメモリー管理モジュール(110)を動作させる方法をコンピューター(102)に行わせるコンピューター実行可能命令が符号化された少なくとも1つのコンピューター可読記憶媒体(104)であって、前記方法は、
前記メモリー管理モジュールにより、第1の呼び出し側ソフトウェアモジュールからの、第1のメモリー操作を実行する第1の要求と、第2の呼び出し側ソフトウェアモジュールからの、第2のメモリー操作を実行する第2の要求とを受け取る(302)ステップと、
前記メモリー管理モジュールに関連付けられたデータストア(218)内の少なくとも1つの第1のエントリーを調べ(304)て、前記第1の呼び出し側ソフトウェアモジュールによって要求されるメモリー操作の実行時に1つまたは複数の軽減活動が適用されるべきかどうかを判定するステップと、
前記メモリー管理モジュールに関連付けられた前記データストア(218)内の少なくとも1つの第2のエントリーを調べ(304)て、前記第2の呼び出し側ソフトウェアモジュールによって要求されるメモリー操作の実行時に1つまたは複数の軽減活動が適用されるべきかどうかを判定するステップと、
部分的には、メモリーエラーが発生する可能性を低減する働きをし得る少なくとも1つの軽減活動を適用することにより、前記第1のメモリー操作を実行する(312、314)ステップと、
軽減活動を適用せずに前記第2のメモリー操作を実行する(316)ステップと
を含む、少なくとも1つのコンピューター可読記憶媒体。 - 前記第1の呼び出し側ソフトウェアモジュールは、第1のソフトウェアアプリケーションであり、前記第2の呼び出し側ソフトウェアモジュールは、前記第1のソフトウェアアプリケーションと異なる第2のソフトウェアアプリケーションである、請求項8に記載の少なくとも1つのコンピューター可読記憶媒体。
- 前記第1のメモリー操作は、前記呼び出し側ソフトウェアモジュールのためのメモリーの割り当てを直ちに解除する操作であり、前記少なくとも1つの軽減活動を適用することにより前記第1のメモリー操作を実行するステップは、前記メモリーの割り当てを解除する前記操作を将来の時に行う(434)ステップを含む、請求項8に記載の少なくとも1つのコンピューター可読記憶媒体。
- 前記将来の時は、事前に決められた時間量ではなく、前記メモリー操作を実行するステップは、前記メモリー操作の実行要求を待ち行列に入れて前記メモリー操作の実行要求が前記待ち行列の先頭に達した時に、前記メモリー操作を実行させる(512)ステップを含む、請求項10に記載の少なくとも1つのコンピューター可読記憶媒体。
- 前記第1のメモリー操作は、ある量のメモリーを前記第1の呼び出し側ソフトウェアモジュールに割り当てる操作であり、前記少なくとも1つの軽減活動を行うことによって前記第1のメモリー操作を実行するステップは、要求より多い量のメモリーを割り当てる(404)ステップを含む、請求項8に記載の少なくとも1つのコンピューター可読記憶媒体。
- 前記軽減活動に従って前記メモリー操作を実行するステップは、前記軽減活動が、前記メモリー操作を実行すべきでないと示す時は、前記メモリー操作を実行しない(436、444)ステップを含む、
請求項8に記載の方法。 - 複数のメモリー単位を有する少なくとも1つの記憶媒体(116)と、
少なくとも呼び出し側ソフトウェアモジュールおよびメモリー管理モジュール(110)を実行するように適合された少なくとも1つのプロセッサー(102)と
を備える装置であって、前記少なくとも1つのプロセッサーは、前記メモリー管理モジュールに関連する命令を実行して、
前記呼び出し側ソフトウェアモジュールから、前記複数のメモリー単位(units)の少なくとも1つに作用する(affect)メモリー操作の実行要求を受け取る(302)動作と、
前記呼び出し側ソフトウェアモジュールによって要求されるメモリー操作の実行時に1つまたは複数の軽減活動が適用されるべきかどうかを判定する(304)動作と、
前記1つまたは複数の軽減活動が適用されるべき場合は、前記メモリー操作の結果メモリーエラーが発生する可能性を低減する働きをし得る少なくとも1つの軽減活動を適用する(310)動作と、
前記軽減活動に従って前記メモリー操作を実行する(312、314)動作と
を行い、
前記軽減活動に従って前記メモリー操作を実行する動作は、前記メモリー操作を実行しない(436、444)動作を含む、
装置であって、
前記少なくとも1つの記憶媒体は、1つまたは複数の呼び出し側ソフトウェアモジュールによって要求されるメモリー操作に軽減活動を適用するかどうかについてのエントリー(218)を備える情報を格納し、
前記呼び出し側ソフトウェアモジュールによって要求されるメモリー操作の実行時に前記1つまたは複数の軽減活動が適用されるべきかどうかを判定する動作は、前記呼び出し側ソフトウェアモジュールに関連付けられた前記エントリーのうち少なくとも1つのエントリーを調査する動作を含む、
装置。 - 複数のメモリー単位を有する少なくとも1つの記憶媒体(116)と、
少なくとも呼び出し側ソフトウェアモジュールおよびメモリー管理モジュール(110)を実行するように適合された少なくとも1つのプロセッサー(102)と
を備える装置であって、前記少なくとも1つのプロセッサーは、前記メモリー管理モジュールに関連する命令を実行して、
前記呼び出し側ソフトウェアモジュールから、前記複数のメモリー単位(units)の少なくとも1つに作用する(affect)メモリー操作の実行要求を受け取る(302)動作と、
前記呼び出し側ソフトウェアモジュールによって要求されるメモリー操作の実行時に1つまたは複数の軽減活動が適用されるべきかどうかを判定する(304)動作と、
前記1つまたは複数の軽減活動が適用されるべき場合は、前記メモリー操作の結果メモリーエラーが発生する可能性を低減する働きをし得る少なくとも1つの軽減活動を適用する(310)動作と、
前記軽減活動に従って前記メモリー操作を実行する(312、314)動作と
を行い、
前記軽減活動に従って前記メモリー操作を実行する動作は、前記メモリー操作を実行しない(436、444)動作を含む、
装置であって、
前記軽減活動に従って前記メモリー操作を実行する動作は、前記メモリー操作の入力情報が正しいかどうかを判定し(432)、正しくない場合は、前記メモリー操作を実行しない(436)動作を含む、
装置。 - 複数のメモリー単位を有する少なくとも1つの記憶媒体(116)と、
少なくとも呼び出し側ソフトウェアモジュールおよびメモリー管理モジュール(110)を実行するように適合された少なくとも1つのプロセッサー(102)と
を備える装置であって、前記少なくとも1つのプロセッサーは、前記メモリー管理モジュールに関連する命令を実行して、
前記呼び出し側ソフトウェアモジュールから、前記複数のメモリー単位(units)の少なくとも1つに作用する(affect)メモリー操作の実行要求を受け取る(302)動作と、
前記呼び出し側ソフトウェアモジュールによって要求されるメモリー操作の実行時に1つまたは複数の軽減活動が適用されるべきかどうかを判定する(304)動作と、
前記1つまたは複数の軽減活動が適用されるべき場合は、前記メモリー操作の結果メモリーエラーが発生する可能性を低減する働きをし得る少なくとも1つの軽減活動を適用する(310)動作と、
前記軽減活動に従って前記メモリー操作を実行する(312、314)動作と
を行い、
前記軽減活動に従って前記メモリー操作を実行する動作は、前記メモリー操作を実行しない(436、444)動作を含む、
装置であって、
前記メモリー操作は、前記呼び出し側ソフトウェアモジュールに割り当てられたメモリーを解放する要求であり、前記軽減活動に従って前記メモリー操作を実行する動作は、前記メモリー操作を後の時に行う(434)動作を含む、
装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/238,600 US7949903B2 (en) | 2008-09-26 | 2008-09-26 | Memory management techniques selectively using mitigations to reduce errors |
US12/238,600 | 2008-09-26 | ||
PCT/US2009/056763 WO2010036526A2 (en) | 2008-09-26 | 2009-09-12 | Memory management techniques selectively using mitigations to reduce errors |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2012503825A JP2012503825A (ja) | 2012-02-09 |
JP5694170B2 true JP5694170B2 (ja) | 2015-04-01 |
Family
ID=42058924
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011529101A Expired - Fee Related JP5694170B2 (ja) | 2008-09-26 | 2009-09-12 | 選択的に軽減を使用してエラーを低減するメモリー管理技術 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7949903B2 (ja) |
EP (1) | EP2329384B1 (ja) |
JP (1) | JP5694170B2 (ja) |
CN (1) | CN102165426B (ja) |
WO (1) | WO2010036526A2 (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7937625B2 (en) * | 2008-09-26 | 2011-05-03 | Microsoft Corporation | Evaluating effectiveness of memory management techniques selectively using mitigations to reduce errors |
JP5703968B2 (ja) * | 2011-05-31 | 2015-04-22 | 富士電機株式会社 | プログラム開発支援装置およびそのプログラム |
US9940053B2 (en) | 2014-05-28 | 2018-04-10 | Nec Corporation | Information processing device, information processing system, memory management method, and program recording medium |
WO2016114789A1 (en) * | 2015-01-16 | 2016-07-21 | Hewlett Packard Enterprise Development Lp | Memory manager |
US10579494B2 (en) * | 2018-01-05 | 2020-03-03 | Nec Corporation | Methods and systems for machine-learning-based resource prediction for resource allocation and anomaly detection |
CN108062204A (zh) * | 2018-01-12 | 2018-05-22 | 江苏华存电子科技有限公司 | 一种强化数据可靠度的***和方法 |
CN117591267B (zh) * | 2024-01-17 | 2024-04-05 | 苏州元脑智能科技有限公司 | 一种任务处理方法、设备、介质及*** |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04367951A (ja) * | 1991-06-17 | 1992-12-21 | Fujitsu Ltd | メモリ滞留防止方式 |
JPH07121464A (ja) * | 1993-10-28 | 1995-05-12 | Hitachi Ltd | 記憶領域割当て制御方式 |
JPH1173364A (ja) * | 1997-08-29 | 1999-03-16 | Nec Corp | メモリバッファの管理方式 |
US6728907B1 (en) * | 2000-04-14 | 2004-04-27 | Microsoft Corporation | System and method for self-diagnosing system crashes |
JP2002108698A (ja) * | 2000-10-04 | 2002-04-12 | Nissin Electric Co Ltd | メモリ管理システム及びメモリ管理方法 |
JP2003288266A (ja) * | 2002-03-28 | 2003-10-10 | Fujitsu Ltd | メモリ割当方法及びそのプログラム |
US7325118B2 (en) * | 2003-09-30 | 2008-01-29 | Samsung Electronics, Co., Ltd. | Method and apparatus for executing dynamic memory management with object-oriented program |
US7191364B2 (en) * | 2003-11-14 | 2007-03-13 | Microsoft Corporation | Automatic root cause analysis and diagnostics engine |
US7350045B2 (en) * | 2003-12-31 | 2008-03-25 | Microsoft Corporation | Dynamic memory heap tagging |
US7409596B2 (en) * | 2004-09-02 | 2008-08-05 | International Business Machines Corporation | Apparatus and method for initializing diagnostic functions when specified run-time error criteria are satisfied |
US7519867B2 (en) * | 2004-12-21 | 2009-04-14 | National Instruments Corporation | Test executive which provides heap validity checking and memory leak detection for user code modules |
US7451387B2 (en) * | 2005-07-11 | 2008-11-11 | Alcatel Lucent | Autonomous method and apparatus for mitigating soft-errors in integrated circuit memory storage devices at run-time |
US7484132B2 (en) * | 2005-10-28 | 2009-01-27 | International Business Machines Corporation | Clustering process for software server failure prediction |
JP2008003945A (ja) * | 2006-06-23 | 2008-01-10 | Toshiba Corp | 監視制御システムとそのコンピュータ管理方法およびプログラム |
US20090210750A1 (en) * | 2008-02-19 | 2009-08-20 | Sas Institute Inc. | Systems And Methods For Identifying Memory Leaks In A Computer System |
-
2008
- 2008-09-26 US US12/238,600 patent/US7949903B2/en not_active Expired - Fee Related
-
2009
- 2009-09-12 EP EP09816698.6A patent/EP2329384B1/en active Active
- 2009-09-12 JP JP2011529101A patent/JP5694170B2/ja not_active Expired - Fee Related
- 2009-09-12 CN CN200980138420.3A patent/CN102165426B/zh active Active
- 2009-09-12 WO PCT/US2009/056763 patent/WO2010036526A2/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
CN102165426B (zh) | 2014-11-26 |
EP2329384A4 (en) | 2016-08-03 |
CN102165426A (zh) | 2011-08-24 |
EP2329384A2 (en) | 2011-06-08 |
WO2010036526A3 (en) | 2010-07-29 |
EP2329384B1 (en) | 2019-10-23 |
US20100083047A1 (en) | 2010-04-01 |
WO2010036526A2 (en) | 2010-04-01 |
JP2012503825A (ja) | 2012-02-09 |
US7949903B2 (en) | 2011-05-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5474982B2 (ja) | 選択的に軽減を使用してエラーを低減するメモリー管理技術の有効性の評価 | |
JP5694170B2 (ja) | 選択的に軽減を使用してエラーを低減するメモリー管理技術 | |
US9529694B2 (en) | Techniques for adaptive trace logging | |
US9098609B2 (en) | Health monitoring of applications in a guest partition | |
US6658654B1 (en) | Method and system for low-overhead measurement of per-thread performance information in a multithreaded environment | |
US7895483B2 (en) | Software memory leak analysis using memory isolation | |
US8132170B2 (en) | Call stack sampling in a data processing system | |
US9495115B2 (en) | Automatic analysis of issues concerning automatic memory management | |
JP5523550B2 (ja) | プラグイン安定性レベルに応じたプラグインの実行 | |
US8904063B1 (en) | Ordered kernel queue for multipathing events | |
US20080276129A1 (en) | Software tracing | |
US8140892B2 (en) | Configuration of memory management techniques selectively using mitigations to reduce errors | |
CN107566214B (zh) | 一种性能测试方法和装置 | |
US7334062B1 (en) | Technique to monitor application behavior and tune replication performance | |
US20120036501A1 (en) | Method and System for Capturing System and User Events Using Hardware Trace Devices | |
JP2015529927A (ja) | 訂正不能エラーを含むアドレス範囲の通知 | |
US8713538B2 (en) | Monitoring heap in real-time by a mobile agent to assess performance of virtual machine | |
US11119800B1 (en) | Detecting and mitigating hardware component slow failures | |
US7698598B1 (en) | Automatic generation of core files and automatic generation of support information with generation of core files | |
US8762960B2 (en) | Software probe minimization | |
US7707462B1 (en) | Non-disruptive generation of core files without reboot | |
CN113468020A (zh) | 内存监控方法、装置、电子设备及计算机可读存储介质 | |
Yuan et al. | Vits test suit: a micro-benchmark for evaluating performance isolation of virtualization systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120806 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20131127 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20131220 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140304 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140901 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20141114 |
|
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: 20150106 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150204 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5694170 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
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 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |