1. abstraction, mechanism, policy: address space is abstracted into a private memory area per process for code, data, stack. mechanism allows for reading/writing/sharing, translation of address to physical address by hardware, and policy are the rules for doing so
3. indirection with virtual memory