Definition
Memory Management
Memory management is the OS process of coordinating and handling memory, including allocating main memory (RAM) to processes and moving data between RAM and secondary storage.
Requirements
Partitioning
Dividing memory to accommodate multiple processes.
Relocation
Allowing code and data to be positioned flexibly in memory, as processes may move due to swapping or compaction.
Protection
Preventing processes from accessing or modifying other processes’ memory without permission. See Memory Protection.
Sharing
Allowing multiple processes to access the same physical frames:
- Shared Libraries: Mapping library code into multiple virtual address spaces
- Inter-process Communication: Communicating via shared memory
Performance
Minimising the overhead of address translation and management operations.
Evolution
Technique Progression
Memory management evolved from simple to advanced: