diff -r 43e37759235e -r 51a74ef9ed63 Symbian3/SDK/Source/GUID-39A8FBC9-5FD6-4F92-B71E-5C5438ECFD46.dita --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Symbian3/SDK/Source/GUID-39A8FBC9-5FD6-4F92-B71E-5C5438ECFD46.dita Wed Mar 31 11:11:55 2010 +0100 @@ -0,0 +1,129 @@ + + + + + +OOM +Monitor OverviewThis section provides an overview of the functionality and the +architecture of the OOM Monitor component. +
Purpose

The +OOM Monitor Client API monitors the memory situations and handles out of memory +situations. OOM monitor is responsible to maintain good memory level in the +device. In case of low memory situation, OOM Monitor releases memory by closing +applications based on the priority defined. For information on priority, refer +to OOM Monitor Priority.

+
+
Key concepts
+ +
LOW_RAM_THRESHOLD
+

It is the minimum amount of free RAM that is specified for the device. +This value must be specified in the monitor configuration file.

+
+ +
GOOD_RAM_THRESHOLD
+

It is the required amount of free RAM that is specified for the device. +This value must be specified in the monitor configuration file.

+
+ +
Normal RAM rotation
+

Whenever the amount of free RAM decreases below LOW_RAM_THRESHOLD the +OOM Monitor releases RAM by closing applications based on the priorities. +This process is called as normal RAM rotation.

+
+

For information on OOM Monitor Priority and Optional RAM allocation, +refer to OOM Monitor +Concepts

+
Architecture

The +basic function of the OOM Monitor is to monitor the amount of free RAM in +the mobile device. Whenever the amount of free RAM decreases below a defined LOW_RAM_THRESHOLD threshold +value, the OOM Monitor is triggered. The OOM Monitor then releases RAM by +closing applications running on background in order to raise the amount of +free RAM above the defined GOOD_RAM_THRESHOLD value.

+ + + +
+
APIs

The +OOM Monitor Client API consists of ROomMonitorSession class. +The main functions of this class are:

+ + + +

Function

+

Description

+
+ +

RequestFreeMemory()

+

Requests the OOM monitor to allocate RAM.

+
+ +

SetOomPriority()

+

Sets the priority for an application as high, busy or normal. The +application priorities must be defined in TOomPriority variable.

+
+ +

RequestOptionalRam()

+

Requests the OOM monitor to allocate optional RAM.

+
+ + +

The OOM Monitor Client API also consists of COomMonitorPlugin class. +The main functions of this plug-in class are:

+ + + +

Function

+

Description

+
+ +

FreeRam()

+

Requests to release RAM when the system RAM level becomes low.

+
+ +

MemoryGood()

+

Called when the system RAM level improves to good from low RAM situation. +Once the memory level is good, the OOM plug-in can again start allocating +optional RAM.

+
+ + +
+
Typical Uses

Applications +can use the following functionality provided by the OOM Monitor component +to:

    +
  • Safely allocate large amount of RAM. For more information, refer to Requesting for Large Memory +Allocation.

  • +
  • Change its priority in order to protect itself from being closed by +the OOM Monitor. For more information, refer to Changing +the Priority.

  • +
  • Allocate optional RAM to applications when additional RAM is requested. +For more information, refer to Requesting +for Optional RAM Allocation.

  • +
  • Prevent OOM errors from happening by monitoring the amount of free +RAM in the system. When the amount of free RAM drops below the specified threshold +value, OOM Monitor automatically closes applications that are staying idle +in the background in order to give more RAM to the applications that are active. +For more information, refer to Out +of Memory Error.

  • +
  • Assign priority for each action that can be used to release RAM (i.e. +closing an application or calling an OOM plug-in). When releasing RAM, OOM +Monitor uses the priorities to determine the order of closing applications +and calling plug-ins. As a result RAM is always released by minimizing the +negative impact to the user, provided the priorities are correctly configured +for the device. For more information, refer to Priority +Configuration.

  • +
+
Related information
    +
  • OOM Monitor +Concepts

  • +
  • Using OOM Monitor

  • +
  • OOM Monitor +Reference

  • +
+
\ No newline at end of file