This document provides an overview of memory management techniques in operating systems. It discusses contiguous memory allocation, paging, segmentation, and virtual memory. Paging divides memory into fixed-size blocks called frames and logical memory into pages of the same size. A page table maps logical to physical addresses through a page number and page offset. Hardware support for paging includes a translation lookaside buffer (TLB) to speed up address translation by caching recent translations. The document also covers memory protection, shared pages, and internal and external fragmentation in memory allocation schemes.