Table of Contents
What is Relocation in Memory Management ?
In this tutorial we will discuss about relocation in memory management or relocation in Operating System. Here in this post today we will learn about relocation introduction, memory management techniques , different types of relocation such as static relocation and dynamic relocation .
Some time conceptual questions are asked from this topic in GATE(CS/IT) or UGC NET(CS) Exam. Students who are preparing for these exam are requested to prepare this topic very well.
Frequently Asked Questions
Apart from the knowledge of Relocation Concept this tutorial will also help the computer science graduate to get the answer of the following questions.
- What is program relocatability ?
- What is relocation ?
- what is static relocation ?
- what is dynamic relocation ?
- what are advantages and disadvantages of dynamic relocation ?
- What is memory management unit ?
- what is physical address or physical mailing address?
- what is difference between virtual address and physical address ?
- what is relocation register ?
Let’s start with the definition of relocation.
Relocation Concepts
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.
- Memory management technique in which system stores and retrieves data from secondary storage for use in main memory is called paging technique in memory management.
- In reality, the program may be loaded at different memory locations, which are called physical addresses.
- Relocation is 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 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 does not convert these relocatable addresses into absolute addresses.
CPU generate any logical or virtual address then this logical address you can be considered this logical address as the relocatable address.
This virtual address is going to map its corresponding physical address by memory management unit.
Relocation Types in Memory Management
Generally, there are two types of relocation in memory management.
(1) 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.
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.
(2) 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.
Figure : 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.
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).
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.
Loading and Linking in Memory Management
Loading and Linking is another basic concept in memory management. The meaning or definition of loading and linking in memory management are defined as follow
Dynamic Loading
- Dynamic loading is a process of loading the library in memory at run time.
- Basic concept behind the dynamic loading is that a routine is loaded in memory only when it is needed. Routine is not loaded in memory until it is called.
Dynamic Linking
- The linking which is performed at run time is known as dynamic linking. This is not performed when the .exe file is created.
- Dynamic linking requires support from operating system.
- Library which link dynamically is known as DLL dynamic linking library.
Static Linking
- In case of static linking all modules or program are loaded in memory before calling instead of runtime.
Conclusion
In this tutorial we have learned about the concept of relocation in memory management. If the you have any query related to this topic then please feel free to ask in comment section. I will try to solve your query.
To read more tutorial of operating system concepts related click the link given below.
Study Material – Operating System Tutorials
Also Read a Special Article of Different Wireless Sensor Network Architecture
Types of wireless sensor networks
I kindly request to readers please give your feedback and suggestion. If you find any mistake in this tutorial then comment.
If you want to add or contribute some more information to this tutorial then mai us at the email id computersciencejunction@gmail.com
Don’t stop learning and practice.
Previous Tutorial – Bare Machine and resident Monitor in Operating System
Next Tutorial – Memory Protection in Contiguous Allocation
If you find this page useful then please Like and Share the post on Facebook, Twitter, LinkedIn through their icons as given below.
.