Next: About this document
Up: No Title
Previous: Memory Management and Address
Question : Can multiple programs share physical memory
without hardware translation ?
- Yes : when program is copied into memory its addresses (loads, stores,
branches, jumps) are changed to use the addresses of where program is placed
in memory
- The linker-loader - which does the resolving
- Unix ld works this way : compiler generates a .o file
with code that starts at location 0. How is an actual executable created
from this ?
- Go through each .o file, and change addresses to point to where each module
goes in the larger program (compiler oriented)
- With linker-loader no protection: one program's bugs can cause others
to crash
![figure130](img8.gif)
Figure 8: Multiple User Programs in Memory
![figure135](img9.gif)
Figure 9: Use of Base and Bound Register
- Bound Register keeps check no unauthorised locations are referenced
- Base Register helps to determine virtual address
Omer F Rana
Tue Feb 11 19:21:10 GMT 1997