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.
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