Memory management allows multiple processes to reside in memory simultaneously through memory allocation algorithms. There are two main approaches: fixed and variable partitioning. Fixed partitioning divides memory into equal or variable sized partitions, which can lead to internal and external fragmentation. Variable partitioning dynamically allocates memory blocks of varying sizes to processes using first fit, best fit, or worst fit allocation strategies. Compaction is needed with worst fit to consolidate free memory and reduce external fragmentation.