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
   121   122   123   124   125   126   127   128   129   130   131