Agenda

Address Spaces

Binaries have addresses hardcoded into them

When a program is executed:

If different binaries have conflicting addresses, how is this possible? They should not be able to simultaneously access the same physical memory…

Uniform process address spaces are an illusion created by the kernel

Hardware Address Translation

Primary goals

A simple implementation: Relocation

Kernel maintains the address of each process in PCB

Load base address into into MMU on each context switch Relocation = register access + addition

What about protection?