Why is memory management needed?

Suppose we didn’t. This means we allow processes to directly write to physical addresses. Process A and B can write to the same physical memory address.

This means we need to consider ALL processes when accessing memory, rather than a process in isolation.

What we want is an address space unique to each process.

A naive approach is to set bounds on physical addresses, that way each address reference in our processes are relative to the lower bound in their physical addresses, and have a hard upper bound.

A = [0, 1024]
B = [1025, 2048]

# A
lw $1 5 # Translated to lw $1 (0 + 5)

# B
lw $1 5 # Translated to lw $1 (0 + 5)