Address Spaces and Space Management

Stub. The address space abstraction and the memory API, address translation as the general mechanism behind memory virtualization, segmentation as an early/simple translation scheme, and free-space management — the allocator algorithms behind malloc/free.

· 1 min read · 139 words

Before paging, memory virtualization starts simpler: give each process its own address space (a private view of memory starting at 0), translate its addresses to physical ones via base-and-bounds or segmentation, and manage the resulting free/used space with an allocator. Covers the memory API (malloc/free and the bugs they invite), address translation as the general principle hardware and OS cooperate to implement, segmentation’s generalization of base-and-bounds to multiple, independently-relocatable regions, and the free-space management algorithms (best-fit, buddy allocation, etc.) that decide how to satisfy a variable-sized allocation request without excessive fragmentation.

Outline (TODO — flesh out each)

  • The address space abstraction
  • The memory API — malloc, free, common bugs
  • Address translation — base and bounds
  • Segmentation
  • Free space management — allocator algorithms, fragmentation

← All notes