- when a program is linked, the linker must know at what address the program will begin in the memory
- In order to provide basic protection among programs sharing the memory, partitioning techniques use a hardware capability known as memory address mapping, or address translation
- suppose that the first instruction is a call to a procedure at absolute address 100 within the binary file produced by the linker
- if this program is loaded in partition 1 (at address 100 K, see the Fig. 4.4), that instruction will jump to to absolute address 100, which is inside the operating system
- what is needed is a call to 100K+100
- this problem is known as the relocation problem
possible solution is is to modify the instructions as the program loaded into memory
- relocation during loading does not solve the protection problem
- A solution to both the relocation and protection problems is to equip the machine with two special hardware registers, called the base and limits registers
Figure 4.5:
Address Translation.
|
2004-05-25