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)