This document provides an overview of memory management techniques in operating systems. It discusses contiguous memory allocation, segmentation, paging, and swapping. Contiguous allocation allocates processes to contiguous sections of memory which can lead to fragmentation issues. Segmentation divides memory into logical segments defined by segment tables. Paging divides memory into fixed-size pages and uses page tables to map virtual to physical addresses, avoiding external fragmentation. Swapping moves processes between main memory and disk to allow more processes to reside in memory than will physically fit. The document describes the hardware and data structures used to implement these techniques.