1
$\begingroup$

I am reading about Base & Bounds memory protection mechanism, and I noticed the use of the term 'relocation' in the context of address space, but failed to understand the meaning associated with it.

Below are some examples:

  1. U.C Berkeley L02/CS162:

    relocating loader

    enter image description here

  2. Wisconsin S15/CS537

    Each process appears to have a completely private memory of size equal to the bounds register plus 1. Processes are protected from each other. No address relocation is necessary when a process is loaded.

Furthermore, I searched for the term and found only the definition on Wikipedia that wasn't very clear to me.

Does anyone have any idea?

$\endgroup$
2
$\begingroup$

Relocation means moving stuff from one place to another. In your case, there is a program which contains some absolute addresses, which make sense if the program is located at a certain address A. If the program is loaded to a different address B, we need to update all of these addresses, translating them by B−A. This is address relocation. A loader (a program loading another program to memory) which does this is called a relocating loader.

$\endgroup$
  • $\begingroup$ Sorry, but I didn't understand what do you mean by "for one place to another", as well as "the problem". $\endgroup$ – Kais Jan 12 '18 at 18:58
  • $\begingroup$ Thanks for the update. In which case the program gets loaded to a different address B? Are you referring to another process? $\endgroup$ – Kais Jan 12 '18 at 20:03
  • $\begingroup$ The answer depends in principle on the operating system. I imagine that in modern OSs, this is always the case. Maybe DOS was different. $\endgroup$ – Yuval Filmus Jan 12 '18 at 20:06
  • $\begingroup$ Sorry, but I didn't understand what do you mean. Are A and B two different programs? $\endgroup$ – Kais Jan 12 '18 at 20:17
  • $\begingroup$ No, just two different addresses. The program doesn't know in advance where it would be loaded, that is, B. $\endgroup$ – Yuval Filmus Jan 12 '18 at 21:26

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.