A form of Modularisation where modules are linked at load-time (and not before producing a combined executable as in Separate Compilation Modularisation).
Features
- Allows several programs to share the same module code in memory.
- This saves memory and speeds up loading.
- It allows linkable files to be loaded into memory where local addresses are resolved.
- Programs that use the module are compiled/linked to include a stub that runtime loads the module and builds a table of addresses of module entities. This table is used by the program to access the module entities by indirection.
- Module code has to be re-entrant, i.e. multiple invocations of the module must be able to safely run concurrently since multiple programs share it.
- Reference counting is used to determine when memory for a module can be freed.