Memory Management:
- Address binding:
- Compile time addr binding: compiler knows the absolute address
- Load time addr binding: relative addr
- Execution time addr binding: move addr
- Dynamic loading: programmer decides
- Dynamic linking: load the func into memory when be called
- Overlays: if func1, func2 are exclusive, no need to load them at the same time