Traditional Unix Virtual Memory Management Page Allocation Handed out by kernel Easy to enforce global resource limits Very simple Low Level Management Completely inside the kernel Used by nearly all subsystems Uses many subsystems Boundaries are often unclear; no formal protocols Eviction Policy Does not consult user-space applications Applies a global policy, typically an approximation of LRU, least recently used Very inefficient for many classes of applications Databases Garbage collectors Paging Kernel sends pages to the appropriate backing store No trust issues: all functionality is in the kernel