What does 'relocation' mean? I am reading about Base &amp; 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:


U.C Berkeley L02/CS162:


  relocating loader



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?
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&minus;A. This is address relocation. A loader (a program loading another program to memory) which does this is called a relocating loader.