Dynamic Areas overview
The Dynamic Area system has been extended considerably since its introduction with RISC OS 3.5. Whilst the core features of the Dynamic Area system have remained, the extensions allow much greater control over memory management and allow some operations to be automated which had previously to be duplicated within many applications.
Dynamic area features
Individual dynamic areas have changed in the following ways since those documented within the RISC OS PRM 5a :
- Areas can be limited to set sizes when they request a maximum allocation size.
Introduced with RISC OS 4.00.
See the Clamps section for more details.
- Areas can now be reduced in size according to memory pressures.
Introduced with RISC OS 4.00.
See the ShrinkableDAs section for more details.
- Areas can now contain non-contiguous areas of allocated space.
Introduced with RISC OS 4.00.
See the SparseDAs section for more details.
- Areas can now request that they be allocated memory from DMA-able memory.
Introduced with RISC OS 4.04.
See the DMAableDAs section for more details.
- Areas can now be locked to prevent resizes or deletion.
Introduced with Select 1.
See the LockedDAs section for more details.
- Areas can now manage OS_Heap storage within the dynamic area.
Introduced with Select 1.
See the HeapDAs section for more details.
- Areas can now be created which refer to physical pages, rather than specific areas of RAM.
Introduced with Kernel 7.62.
See the PhysicalDAs section for more details.
- Areas can now be created which can fix up aborts.
Introduced with Kernel 8.19.
See the AbortableDAs section for more details.
- Areas can now be created which can be made inaccessible with a single system call.
Introduced with Kernel 8.20.
See the DomainDAs section for more details.
- Areas can now be made 'invisible' to the user.
Introduced with Kernel 9.02.
See the InvisibleDAs section for more details.
- Areas can now be created to use specified pages which are fixed at creation.
Introduced with Kernel 9.09
See the FixedPageDAs section for more details.
General dynamic areas
Dynamic areas have been created for system purposes, and others have been delegated from the Kernel to more suitable modules. More information can be found within the SystemDAs section.
|