transfers programs into and out of memory, allocates free space between programs, and keeps track of memory usage
the os allocates memory for different programs open at the same time, keeping track of how much space is being used and how much is free
deals with making sure each program accesses the correct memory and deals with virtual memory