Loader Design Options Linkage Editors Dynamic Linking Bootstrap Loaders.

Презентация:



Advertisements
Похожие презентации
Loaders and Linkers CS Overview assembler –generates an object code in a predefined format »COFF (common object file format) »ELF (executable and.
Advertisements

HPC Pipelining Parallelism is achieved by starting to execute one instruction before the previous one is finished. The simplest kind overlaps the execution.
© 2009 Avaya Inc. All rights reserved.1 Chapter Two, Voic Pro Components Module Two – Actions, Variables & Conditions.
While its always a good idea to think outside the box when approaching a creative task, this is not always the case. For example, when working with teams,
© 2005 Cisco Systems, Inc. All rights reserved. BGP v Route Selection Using Policy Controls Using Multihomed BGP Networks.
© 2005 Cisco Systems, Inc. All rights reserved. BGP v Customer-to-Provider Connectivity with BGP Understanding Customer-to-Provider Connectivity.
© 2005 Cisco Systems, Inc. All rights reserved. BGP v Route Selection Using Policy Controls Applying Route-Maps as BGP Filters.
© 2005 Cisco Systems, Inc. All rights reserved. BGP v Customer-to-Provider Connectivity with BGP Connecting a Multihomed Customer to Multiple Service.
© 2006 Avaya Inc. All rights reserved. Embedded File Management and SD-Card Handling.
© Luxoft Training 2013 Annotations. © Luxoft Training 2013 Java reflection / RTTI // given the name of a class, get a "Class" object that // has all info.
1/27 Chapter 9: Template Functions And Template Classes.
Operator Overloading Customised behaviour of operators Chapter: 08 Lecture: 26 & 27 Date:
The Web The Internet. Level A2 Waystage Level A2 Waystage Listening (p.17) I can understand simple messages delivered at a relatively high speed (on every.
2005 Pearson Education, Inc. All rights reserved. 1 Object-Oriented Programming: Polymorphism.
© 2006 Cisco Systems, Inc. All rights reserved. BSCI v Implementing BGP Explaining BGP Concepts and Terminology.
Lecture # Computer Architecture Computer Architecture = ISA + MO ISA stands for instruction set architecture is a logical view of computer system.
USB Download Manual (v1.3) (GP2 Year 2010) LG Electronics/ LCD TV Division Feb. 17 th, Applied Models & Notice - File Copy - User Download Mode.
© 2005 Cisco Systems, Inc. All rights reserved.INTRO v Building a Simple Serial Network Understanding the OSI Model.
Copyright 2003 CCNA 4 Chapter 11 Scaling IP Addresses By Your Name.
In mathematics, the notion of permutation is used with several slightly different meanings, all related to the act of permuting (rearranging) objects.
Транксрипт:

Loader Design Options Linkage Editors Dynamic Linking Bootstrap Loaders

Difference between a linkage editor and a linking loader: –Linking loader performs all linking and relocation operations, including automatic library search, and loads the linked program into memory for execution. –Linkage editor produces a linked version of the program, which is normally written to a file or library for later execution. –A simple relocating loader (one pass) can be used to load the program into memory for execution. –The linkage editor performs relocation of all control sections relative to the start of the linked program. –The only object code modification necessary is the addition of an actual load address to relative values within the program. Linkage Editors

Difference between a linkage editor and a linking loader: –Linking loader Suitable when a program is reassembled for nearly every execution –In a program development and testing environment –When a program is used so infrequently that it is not worthwhile to store the assembled and linked version. –Linkage editor Suitable when a program is to be executed many times without being reassembled because resolution of external references and library searching are only performed once. Linkage Editors

Linking Loader vs. Linkage Editor

Additional Functions of Linkage Editors Replacement of subroutines in the linked program –For example: INCLUDE PLANNER(PROGLIB) DELETE PROJECT INCLUDE PROJECT(NEWLIB) REPLACE PLANNER(PROGLIB) Construction of a package for subroutines generally used together –There are a large number of cross-references between these subroutines due to their closely related functions. –For example: INCLUDE READR(FTNLIB) INCLUDE WRITER(FTNLIB) : SAVE FTNIO(SUBLIB) Specification of external references not to be resolved by automatic library search –Can avoid multiple storage of common libraries in programs. –Need a linking loader to combine the common libraries at execution time.

Address Binding Address Binding: –Symbolic Address (label) Machine Address Address Binding: –Assembling Time: 8051 –Load Time: 8086 –Run Time: Dynamic Linking Library Address Binding –Complexity, Flexibility

Linkage editors: before load time Linking loaders: at load time Dynamic linking: after load time –A scheme that postpones the linking function until execution time. –A subroutine is loaded and linked to the test of the program when it is first called. –Other names: dynamic loading, load on call Linking Time

Allows several executing programs to share one copy of a subroutine or library. Allows the implementation of the shared object and its methods to be determined at execution time in an object-oriented system Provides the ability to load the routines only when (and if) they are needed. –This can result in substantial savings of load time and memory space. –For example, error handling routines. Dynamic Linking Application

Subroutines to be dynamically loaded must be called via an operating system service request, e.g., load-and-call, instead of executing a JSUB instruction. The service request will be handled by a part of the OS, called the dynamic loader, which is kept in memory during execution of the program. The parameter of this request is the symbolic name of the routine to be called.. Implementation of Dynamic Linking

Example of Dynamic Linking Issue a load-and- call request Load the routine from the specified library

Second call to this subroutine may not require load operation. Jump to the loaded routine Jump back to the user program Jump back to the dynamic loader