Introduction and 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.
Technical Details
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 document for more details.
- Areas can now be reduced in size according to memory pressures. Introduced with RISC OS 4.00. See the Shrinkable dynamic areas document for more details.
- Areas can now contain non-contiguous areas of allocated space. Introduced with RISC OS 4.00. See the Sparse Dynamic Areas document for more details.
- Areas can now request that they be allocated memory from DMA-able memory. Introduced with RISC OS 4.04. See the DMA-able dynamic areas document for more details.
- Areas can now be locked to prevent resizes or deletion. Introduced with Select 1. See the Lockable Dynamic Areas document for more details.
- Areas can now manage OS_Heap storage within the dynamic area. Introduced with Select 1. See the Dynamic areas with automatic heap extension document 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 Physical Mapping of Dynamic Areas document for more details.
- Areas can now be created which can fix up aborts. Introduced with Kernel 8.19. See the Abort-Trapping dynamic areas document 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 Domain-based dynamic areas document for more details.
- Areas can now be made 'invisible' to the user. Introduced with Kernel 9.02. See the Non-User-Visible Dynamic Areas document for more details.
- Areas can now be created to use specified pages which are fixed at creation. Introduced with Kernel 9.09. See the Fixed page dynamic areas document 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 system dynamic areas document.