0
3.8kviews
Explain Functions of loader.

Mumbai University > Computer Engineering > Sem6 > System Programming and Compiler Construction

Marks: 5M

Year: May 2015, Dec 2015

1 Answer
1
70views

Loader

  • A loader is a system program, which takes the object code of a program as input and prepares it for execution.
  • Programmers usually define the Program to be loaded at some predefined location in the memory.
  • But this loading address given by the programmer is not be coordinated with the OS.
  • The loader does the job of coordinating with the OS to get initial loading address for the .EXE file and load it into the memory.

    Diagram

enter image description here

Loader Function: The loader performs the following functions:

1) Allocation

2) Linking

3) Relocation

4) Loading

Allocation:

  • Allocates the space in the memory where the object program would be loaded for Execution.
  • It allocates the space for program in the memory, by calculating the size of the program. This activity is called allocation.
  • In absolute loader allocation is done by the programmer and hence it is the duty of the programmer to ensure that the programs do not get overlap.
  • In reloadable loader allocation is done by the loader hence the assembler must supply the loader the size of the program.

Linking:

  • It links two or more object codes and provides the information needed to allow references between them.
  • It resolves the symbolic references (code/data) between the object modules by assigning all the user subroutine and library subroutine addresses. This activity is called linking.
  • In absolute loader linking is done by the programmer as the programmer is aware about the runtime address of the symbols.
  • In relocatable loader, linking is done by the loader and hence the assembler must supply to the loader, the locations at which the loading is to be done.

Relocation:

  • It modifies the object program by changing the certain instructions so that it can be loaded at different address from location originally specified.
  • There are some address dependent locations in the program, such address constants must be adjusted according to allocated space, such activity done by loader is called relocation.
  • In absolute Loader relocation is done by the assembler as the assembler is aware of the starting address of the program.
  • In relocatable loader, relocation is done by the loader and hence assembler must supply to the loader the location at which relocation is to be done.

Loading:

  • It brings the object program into the memory for execution.
  • Finally it places all the machine instructions and data of corresponding programs and subroutines into the memory. Thus program now becomes ready for execution, this activity is called loading.
  • In both the loaders (absolute, relocatable) Loading is done by the loader and hence the assembler must supply to the loader the object program.
Please log in to add an answer.