Overview of data paging, the next phase in Symbian's implementation of demand paging.
Writable data paging allows the demand paging of any user-side data (for example thread stacks and heaps). Writable data paging makes use of a fixed size backing store to page out data. The backing store may use a NAND flash partition or an embedded MMC (eMMC).
The aim of data paging is to enable more memory-hungry use cases without increasing the amount of physical RAM present in the device.
For example, data paging enables:
running applications that are not designed with the memory constraints of embedded devices in mind, for example applications ported from other environments with writable data paging (such as a PC).
running multiple applications at the same time where previously there would not have been enough memory.
However, writable data paging does have the following limitations:
It is only possible to page the following types of memory:
A single memory object (e.g. a heap, stack, DLL or chunk) is the smallest granularity at which paging can be configured
No attempt will be made to page kernel-side data
No attempt will be made to implement memory mapped files (e.g. posix's mmap)
No attempt will be made to implement any kind of paging on the emulator.
This document assumes that the reader is familiar with the concept of Demand Paging, and the existing implementation of ROM and code paging in Symbian platform.
Memory is managed in fixed size units called pages. The size of a page is usually determined by the hardware, and for ARM architectures this is 4K.
If a given page of memory is present in RAM it is said to be paged in (or just 'present'), as opposed to paged out.
The process of moving a page of memory from being paged out to being paged in.
The process of moving a page of memory from being paged in to being paged out.
The external media used to hold paged out pages is referred to as the swap area. This area may be much larger than physical RAM, although a factor of around twice as large is considered normal in existing systems.
The term working set is defined as the memory accessed during a given time period.
Pinning pages refers to paging in demand-paged memory and forcing it to remain in RAM until it is unpinned at a later time.
The following classes are affected by the use of writable data demand paging:
The following classes are involved in the use of threads and processes:
Class |
Description |
This class is used to handle threads. |
|
This class is used to handle processes. |
|
Used to specify the attributes of a new thread. |
These classes are used in handling memory:
Class |
Description |
Handle a chunk. |
|
A structure that specifies the type and properties of the chunk that is to be created. |
|
A structure that specifies the type and properties of a chunk with a heap within it. |
|
A set of functions that are used to create heaps. |
The following classes are used in client/server communication:
Copyright ©2010 Nokia Corporation and/or its subsidiary(-ies).
All rights
reserved. Unless otherwise stated, these materials are provided under the terms of the Eclipse Public License
v1.0.