Page 126 - DCAP507_SYSTEM_SOFTWARE
P. 126
System Software
Notes If the program begins from the location x then to implement this program the program counter
of this machine should be loaded with the value x. Thus, the task of setting the initial value of the
program counter is to be performed by machine hardware. The bootstrap loader is a very small
program which is to be fixed in the ROM. The job of bootstrap loader is to load the essential
portion of the operating system in the main memory. The initial address at which the bootstrap
loader is to be loaded is usually the lowest (may be at 0th location) or the highest location.
8.2.4 Overlay Structures and Dynamic Loading
At times a program may need more storage space than the obtainable one implementation of
such program can be probable if all the segments are not needed at the same time to be present
in the main memory. In such situations only those segments are resident in the memory that is
in fact wanted at the time of execution But the question occurs what will happen if the needed
segment is not there in the memory? Obviously the execution process will be delayed until the
needed segment gets loaded in the memory. The overall effect of this is competence of execution
process gets degraded. The efficiency can then be enhanced by carefully choosing all the
interdependent segments. Of course the assembler can not do this task. Only the user can specify
such dependencies. The inter dependency of the segments can be declared by a tree like structure
called static overlay structures. The overlay structure comprises multiple root/nodes and edges.
Each node represents the segment. The specification of necessary amount of memory is also
essential in this structure. The two segments can lie concurrently in the main memory if they are
on the same path.
Example: Let us consider an example to recognize the concept. Numerous segments
along with their memory necessities is as shown below.
8.2.5 Dynamic Binders
In dynamic linking, the binder first makes a load module in which along with program code the
allocation and relocation information is accumulated. The loader just loads the main module in
the main memory. If any external reference to a subroutine comes, then the execution is suspended
120 LOVELY PROFESSIONAL UNIVERSITY