Logical/Virtual Address Space: Isolated addresses for a running program

Memory Management Goals

Requirements

  1. Relocation: Programmers shouldn’t worry about physical memory constraint (address translation, swapping)
  2. Protection: Prevent reading of another process’ memory
  3. Sharing: Control permission for shared blocks (e.g. glibc)
  4. Logical Organization: Map different sections (e.g. text, stack, heap, mmap files, libraries)
  5. Physical Organization: Manage flow of info between memory and disk

Address Binding

Address Binding: Linking variable names to physical address

Partitioning

Fixed Partitioning: Divide memory into fixed blocks, one process each block (e.g. 8MB each)

Dynamic Partitioning: When a program loads, a partition of the exact size needed is created