What is Relocation in Operating System?


In this Study Material for Gate Computer Science today we are going to tell about the relocation concept in Operating System. Here in this post today we will learn what is relocation ? different types of relocation like static relocation and dynamic relocation. Let's start with the definition of relocation.


Most of the time we hear the word program relocatability in memory management. what does it mean ? The term program relocatability refers to the ability to load and execute a given program into memory. In reality, the program may be loaded at different memory locations, which are called physical addresses


Relocation is to find a way to map virtual addresses into physical addresses. Depending on when and how the mapping from the virtual address space to the physical address space takes place in a given relocation scheme. 

When a process is loaded in main memory, since there are several instructions inside the process so here address of these different instructions inside the process are relocatable addresses. which are converted into actual addresses by the loader by the loader in software approach. But there is some problem with this approach suppose if a process is first loaded then remove and then after loaded again so in this situation loader will get confused.

 So to avoid this problem operating system use another method for relocation. Instead of using this load time binding operating system used runtime binding. Here runtime binding means it leaves these relocatable addresses as it is it does not convert these relocatable addresses into absolute addresses but when CPU generate any logical or virtual address then this logical address you can be considered this logical address as the relocatble address which is going to map its corresponding physical address by memory management unit.




Types of Relocation in Operating System



Generally, there are two types of relocation



      Static Relocation


The first basic method of relocation is static relocation. Static relocation is performed before or during the loading of the program into memory, by a relocating linker/ loader. In systems with static relocation, a swapped-out process must either be swapped back into the same partition from which it was evicted, or software relocation must be repeated whenever the process is to be loaded into a different partition.

Systems with static relocation are practically restricted to supporting only static binding of processes to partitions. This method is the slow process because it involves software translation. It is used only once before the initial loading of the program.

What happens exactly in this approach is that here operating system manages the memory address of a process to reflect its starting position in the memory. Once a process is assigned a starting address in memory it executes within the space it has been allocated. Once static relocation process has been completed operating system can no longer further relocate process until its terminate.  

(          Dynamic Relocation

Another method of relocation is dynamic relocation. In it, mapping from the virtual address space to the physical address space is performed at run-time. This runtime mapping from virtual address to physical address is performed by a hardware device known as memory management unit.

When the program is compiled or when a process is executed by CPU will generate the logical address. Put this address as LA and this logical address can never be less than zero, it has to be zero or more.

So whenever the CPU generates the logical address, you add this logical address with the base register (relocation register ) content and that gives you the physical address in the main memory where the instruction of that data will be found.



operating system study material for gate computer science

Figure 4: Dynamic relocation using relocation register.




It means in dynamic relocation operating system hardware add the relocation register value to the address generated by the compiler. This relocation register allows the translation to a physical address. Main advantage of using dynamic relocation is that operating system can easily move a process if necessary.A disadvantage of dynamic relocation approach is that it slow down due to some extra operation to be performed.

The value in the relocation register is added to every address generated by a user process at the time the address is sent to memory (see Figure 4). For example, if the base(relocation register content)  is at 14000, then an attempt by the user to address location 0 is dynamically relocated to location 14000 and an access to location 346 is mapped to location 14346.

User program deals with the logical address it never sees the physical address.

I hope this gate study material for computer science will be beneficial for computer science students.

Keywords: definition of relocation, what is static relocation, what is dynamic relocation, the difference between static and dynamic relocation, how relocation performs in the operating system? what is relocation register? advantages and disadvantages of dynamic relocation.

.