This document provides an introduction to memory management techniques in operating systems. It discusses the differences between logical and physical addresses, the role of the memory management unit (MMU) in mapping logical to physical addresses, and memory allocation schemes including static contiguous allocation with equal or unequal partitions, dynamic contiguous allocation, and non-contiguous allocation using paging and segmentation. It also covers dynamic relocation, hardware support via relocation and limit registers, swapping, and fragmentation. The goal of memory management is to efficiently allocate and deallocate memory to running processes.