Dynamic Loading and Dynamic Linking:
The word ‘loading’
means load the program or a module from secondary storage devices to main
memory. Loading are of two types. One is the compile-time loading and second one is runtime loading. All the routines
that are loaded in the main memory at the time of compilation is said
to be static loading or compile time
loading. The routines that are
loaded in the main memory at the time of execution or running is said
to be dynamic loading or runtime loading.
For ex: consider
the following program:
#include<stdio.h>
void main()
{
printf(“Welcome”);
}
Suppose the program occupies 1 KB in secondary storage. But
it occupies hundreds of KBs in main memory because, some routines and header
files should be loaded in main memory to execute that program. Generally, this
loading is done at the time of execution. The meaning of dynamic loading in a single statement can be stated as – “with dynamic loading, a routine is not
loaded until it is called”.
The main advantage of dynamic loading is that an unused
routine is never loaded. So, we can obtain better memory space utilization. This
scheme is particularly useful when large amounts of code are needed to handle
frequently occurring cases.
Fig: Execution stages of user program
The step by step execution of user program, linking the library files before the
execution is said to be static
linking. You can observe this linking in the above figure. Most operating
systems support only static linking. We can say the definition of dynamic
linking in a single statement as - “linking
is postponed until execution time”.
No comments:
Post a Comment