SPCC - Module - 4 - Loaders and Linkers (NEW)
SPCC - Module - 4 - Loaders and Linkers (NEW)
Construction
CSC 601
Subject Incharge
Varsha Shrivastava
Assistant Professor
email: [email protected]
Room No: 407
1
CSC 601 System Programming and
Compiler Construction
Module 4
Loaders and Linker
St. Francis Institute of Technology 5 Apr 2022 CSC 601:System Programming & Compiler Construction
Department of Computer Engineering Ms. Varsha Shrivastava 2
Contents as per syllabus
Introduction
Functions of loaders
Relocation and Linking concept
Different loading schemes
Relocating loader
Direct Linking Loader
Dynamic linking and loading.
St. Francis Institute of Technology 5 Apr 2022 CSC 601:System Programming & Compiler Construction
Department of Computer Engineering Ms. Varsha Shrivastava 3
Introduction
St. Francis Institute of Technology 5 Apr 2022 CSC 601:System Programming & Compiler Construction
Department of Computer Engineering Ms. Varsha Shrivastava 4
Linkers
St. Francis Institute of Technology 5 Apr 2022 CSC 601:System Programming & Compiler Construction
Department of Computer Engineering Ms. Varsha Shrivastava 5
Linker undergoes three task :
1. Searches the program to find library routines used by
program, e.g. printf(),sqrt(),strcat() etc.
2. Determines the memory locations that code from each
module will occupy and relocates its instructions by
adjusting absolute references. Relocation, which
modifies the object program so that it can be
loaded at an address different from the location
originally specified.
3. It combines two or more separate object programs and
supplies the information needed to allow references
between them
St. Francis Institute of Technology 5 Apr 2022 CSC 601:System Programming & Compiler Construction
Department of Computer Engineering Ms. Varsha Shrivastava 6
Linkers
St. Francis Institute of Technology 5 Apr 2022 CSC 601:System Programming & Compiler Construction
Department of Computer Engineering Ms. Varsha Shrivastava 7
Linkers
St. Francis Institute of Technology 5 Apr 2022 CSC 601:System Programming & Compiler Construction
Department of Computer Engineering Ms. Varsha Shrivastava 8
Loaders
St. Francis Institute of Technology 5 Apr 2022 CSC 601:System Programming & Compiler Construction
Department of Computer Engineering Ms. Varsha Shrivastava 9
Loaders
St. Francis Institute of Technology 5 Apr 2022 CSC 601:System Programming & Compiler Construction
Department of Computer Engineering Ms. Varsha Shrivastava 10
Loaders
St. Francis Institute of Technology 5 Apr 2022 CSC 601:System Programming & Compiler Construction
Department of Computer Engineering Ms. Varsha Shrivastava 11
Fundamental process (Function) of Loaders
St. Francis Institute of Technology 5 Apr 2022 CSC 601:System Programming & Compiler Construction
Department of Computer Engineering Ms. Varsha Shrivastava 12
Fundamental process (Function) of Loaders
St. Francis Institute of Technology 5 Apr 2022 CSC 601:System Programming & Compiler Construction
Department of Computer Engineering Ms. Varsha Shrivastava 13
Types of Loader
• Compile and Go Loader
• General Loader Scheme
• Absolute Loader
• Relocating Loaders
• Direct linking Loaders
• Dynamic linking and loading.
St. Francis Institute of Technology 5 Apr 2022 CSC 601:System Programming & Compiler Construction
Department of Computer Engineering Ms. Varsha Shrivastava 14
Types of Loader
• Example of Absolute Loader Program
Any Object Program contains 3 types of record
• Header Record (H Record)
• TEXT Record (T Record)
• END Record (E Record)
St. Francis Institute of Technology 5 Apr 2022 CSC 601:System Programming & Compiler Construction
Department of Computer Engineering Ms. Varsha Shrivastava 15
Loader-Relocating Loader
St. Francis Institute of Technology 5 Apr 2022 CSC 601:System Programming & Compiler Construction
Department of Computer Engineering Ms. Varsha Shrivastava 16
Loader-Relocating Loader
St. Francis Institute of Technology 5 Apr 2022 CSC 601:System Programming & Compiler Construction
Department of Computer Engineering Ms. Varsha Shrivastava 17
Loader-Relocating Loader
St. Francis Institute of Technology 5 Apr 2022 CSC 601:System Programming & Compiler Construction
Department of Computer Engineering Ms. Varsha Shrivastava 18
Loader-Relocating Loader
St. Francis Institute of Technology 5 Apr 2022 CSC 601:System Programming & Compiler Construction
Department of Computer Engineering Ms. Varsha Shrivastava 19
Loader-Relocating Loader
St. Francis Institute of Technology 5 Apr 2022 CSC 601:System Programming & Compiler Construction
Department of Computer Engineering Ms. Varsha Shrivastava 20
Loader-Relocating Loader
Relocation Meaning
bits
01 Half word is relocated relative to the
procedure segment
St. Francis Institute of Technology 5 Apr 2022 CSC 601:System Programming & Compiler Construction
Department of Computer Engineering Ms. Varsha Shrivastava 21
Loader-Relocating Loader
Note:
• For each external symbol the assembler generates
a four byte full word at the beginning of the
program, Containing EBCDIC characters for the
symbol
• But, for simplicity we assume symbols are not more
than 4 character long. These extra words are called
transfer vector
“Every reference to an external symbol is assigned
address of the corresponding transfer vector word”
St. Francis Institute of Technology 5 Apr 2022 CSC 601:System Programming & Compiler Construction
Department of Computer Engineering Ms. Varsha Shrivastava 22
Loader-Relocating Loader
Absolute Relative
Address Address
. .
. .
. .
400 0 BC 15,448
404 4 BC 15,526
408 8 ST 14,436
412 12 L 1,440
416 16 BAL 14,400
420 20 C 1,444
424 24 BC 7,404 Length = 48 bytes
428 28 L 4,436
432 32 BCR 15,14
436 36 (Temp Loc)
440 40 9
444 44 3
.
.
. SQRT Length = 78 bytes
.
526 ERR
.
.
St. Francis Institute of Technology 5 Apr 2022 CSC 601:System Programming & Compiler Construction
Department of Computer Engineering Ms. Varsha Shrivastava 23
Loader-Relocating Loader
Pros:
Relocation bits are used to solve the problem of
relocation , transfer vector is used to solve the problem
of linking & program length info to solve allocation.
Cons:
Not suited for loading external data.
Transfer vector increases the size
Does not facilitate access to data segments that can
be shared
St. Francis Institute of Technology 5 Apr 2022 CSC 601:System Programming & Compiler Construction
Department of Computer Engineering Ms. Varsha Shrivastava 24
Loader-Direct Linking Loader
St. Francis Institute of Technology 5 Apr 2022 CSC 601:System Programming & Compiler Construction
Department of Computer Engineering Ms. Varsha Shrivastava 25
Loader-Direct Linking Loader
• External Symbol Directory(ESD) cards contain
information about all symbols that are defined in the
present program, but they may be referenced
somewhere.
• It contains
• Reference No.
• Symbol Name
• TYPE
• Relative Location
• Length
St. Francis Institute of Technology 5 Apr 2022 CSC 601:System Programming & Compiler Construction
Department of Computer Engineering Ms. Varsha Shrivastava 26
Loader-Direct Linking Loader
• External Symbol Directory(ESD) cards contain
information about all symbols that are defined in the
present program, but they may be referenced
somewhere.
• It contains
TYPE
• Reference No. SD- Segment Definition
• Symbol Name LD- Local Definition
ER-External Reference
• TYPE
• Relative Location
• Length
St. Francis Institute of Technology 5 Apr 2022 CSC 601:System Programming & Compiler Construction
Department of Computer Engineering Ms. Varsha Shrivastava 27
Loader-Direct Linking Loader
• The Text Cars(TXT) cards contains the actual object
code translated version of source program.
• The Relocation and linkage Directory (RLD) card
contains information about those locations in the
program whose contents depends on the address at
which program is placed.
• The RLD Cards contains the following information:-
• The location of each constants that needs to be changed
due to relocation
• By What it has to be changed
• The operation to be performed
St. Francis Institute of Technology 5 Apr 2022 CSC 601:System Programming & Compiler Construction
Department of Computer Engineering Ms. Varsha Shrivastava 28
Loader-Direct Linking Loader
• Format of RLD
St. Francis Institute of Technology 5 Apr 2022 CSC 601:System Programming & Compiler Construction
Department of Computer Engineering Ms. Varsha Shrivastava 29
Loader-Direct Linking Loader
• It is a general relocating loader and most popular
loading scheme.
St. Francis Institute of Technology 5 Apr 2022 CSC 601:System Programming & Compiler Construction
Department of Computer Engineering Ms. Varsha Shrivastava 30
Loader-Direct Linking Loader
St. Francis Institute of Technology 5 Apr 2022 CSC 601:System Programming & Compiler Construction
Department of Computer Engineering Ms. Varsha Shrivastava 31
Loader-Direct Linking Loader
St. Francis Institute of Technology 09 Feb 2021 CSC 602:System Programming & Compiler Construction
Department of Computer Engineering Ms. Varsha Shrivastava 32
Loader-Direct Linking Loader
St. Francis Institute of Technology 09 Feb 2021 CSC 602:System Programming & Compiler Construction
Department of Computer Engineering Ms. Varsha Shrivastava 33
Loader-Direct Linking Loader
• External Symbol Directory(ESD) cards contain
information about all symbols that are defined in the
present program, but they may be referenced
somewhere.It contains
• Reference No.
• Symbol Name
• TYPE
• Relative Location
• Length
St. Francis Institute of Technology 09 Feb 2021 CSC 602:System Programming & Compiler Construction
Department of Computer Engineering Ms. Varsha Shrivastava 34
Loader-Direct Linking Loader
• External Symbol Directory(ESD) cards contain
information about all symbols that are defined in the
present program, but they may be referenced
somewhere.
• It contains
TYPE
• Reference No. SD- Segment Definition
• Symbol Name LD- Local Definition
ER-External Reference
• TYPE
• Relative Location
• Length
St. Francis Institute of Technology 09 Feb 2021 CSC 602:System Programming & Compiler Construction
Department of Computer Engineering Ms. Varsha Shrivastava 35
Loader-Direct Linking Loader
• The Text Cars(TXT) cards contains the actual object
code translated version of source program.
• The Relocation and linkage Directory (RLD) card
contains information about those locations in the
program whose contents depends on the address at
which program is placed.
• The RLD Cards contains the following information:-
• The location of each constants that needs to be changed
due to relocation
• By What it has to be changed
• The operation to be performed
St. Francis Institute of Technology 09 Feb 2021 CSC 602:System Programming & Compiler Construction
Department of Computer Engineering Ms. Varsha Shrivastava 36
Loader-Direct Linking Loader
• Format of RLD
St. Francis Institute of Technology 09 Feb 2021 CSC 602:System Programming & Compiler Construction
Department of Computer Engineering Ms. Varsha Shrivastava 37
Loader-Direct Linking Loader
• It is a general relocating loader and most popular
loading scheme.
St. Francis Institute of Technology 09 Feb 2021 CSC 602:System Programming & Compiler Construction
Department of Computer Engineering Ms. Varsha Shrivastava 38
Loader-Direct Linking Loader
St. Francis Institute of Technology 09 Feb 2021 CSC 602:System Programming & Compiler Construction
Department of Computer Engineering Ms. Varsha Shrivastava 39
Example-Direct Linking Loader
St. Francis Institute of Technology 09 Feb 2021 CSC 602:System Programming & Compiler Construction
Department of Computer Engineering Ms. Varsha Shrivastava 40
Example-Direct Linking Loader
Note :-
• Every instruction is of 4 bytes.
• PG1 occupies 59 bytes of memory
• PG2 occupies 36 bytes of memory
St. Francis Institute of Technology 09 Feb 2021 CSC 602:System Programming & Compiler Construction
Department of Computer Engineering Ms. Varsha Shrivastava 41
Example-Direct Linking Loader
St. Francis Institute of Technology 09 Feb 2021 CSC 602:System Programming & Compiler Construction
Department of Computer Engineering Ms. Varsha Shrivastava 42
Example-Direct Linking Loader
St. Francis Institute of Technology 09 Feb 2021 CSC 602:System Programming & Compiler Construction
Department of Computer Engineering Ms. Varsha Shrivastava 43
Example-Direct Linking Loader
St. Francis Institute of Technology 09 Feb 2021 CSC 602:System Programming & Compiler Construction
Department of Computer Engineering Ms. Varsha Shrivastava 44
Example-Direct Linking Loader
St. Francis Institute of Technology 09 Feb 2021 CSC 602:System Programming & Compiler Construction
Department of Computer Engineering Ms. Varsha Shrivastava 45
Example-Direct Linking Loader
St. Francis Institute of Technology 09 Feb 2021 CSC 602:System Programming & Compiler Construction
Department of Computer Engineering Ms. Varsha Shrivastava 46
Example-Direct Linking Loader
St. Francis Institute of Technology 09 Feb 2021 CSC 602:System Programming & Compiler Construction
Department of Computer Engineering Ms. Varsha Shrivastava 47
Example-Direct Linking Loader
Same way for PG2 Procedure
St. Francis Institute of Technology 09 Feb 2021 CSC 602:System Programming & Compiler Construction
Department of Computer Engineering Ms. Varsha Shrivastava 48
Example-Direct Linking Loader
HOW PG1 and PG2 get loaded in Main Memory
• LENGTH OF PG1 is
104+60=164
• LENGTH OF PG2 is
168+36
• Card 6 to 10 will be
loaded in Main
memory
St. Francis Institute of Technology 09 Feb 2021 CSC 602:System Programming & Compiler Construction
Department of Computer Engineering Ms. Varsha Shrivastava 49
Example-Direct Linking Loader
HOW PG1 and PG2 get loaded in Main Memory
104+20 =124
(104+30)+15 =149
(104+30)-(104+20)-3 =7
PG2= 168
(168+16)+168-(104+20)+4 =232
St. Francis Institute of Technology 09 Feb 2021 CSC 602:System Programming & Compiler Construction
Department of Computer Engineering Ms. Varsha Shrivastava 50
Example-Direct Linking Loader
St. Francis Institute of Technology 09 Feb 2021 CSC 602:System Programming & Compiler Construction
Department of Computer Engineering Ms. Varsha Shrivastava 51
Example-Direct Linking Loader
St. Francis Institute of Technology 09 Feb 2021 CSC 602:System Programming & Compiler Construction
Department of Computer Engineering Ms. Varsha Shrivastava 52
Example-Direct Linking Loader
St. Francis Institute of Technology 5 Apr 2022 CSC 601:System Programming & Compiler Construction
Department of Computer Engineering Ms. Varsha Shrivastava 54
Loader- Dynamic Loading
St. Francis Institute of Technology 5 Apr 2022 CSC 601:System Programming & Compiler Construction
Department of Computer Engineering Ms. Varsha Shrivastava 55
Loader- Dynamic Loading
St. Francis Institute of Technology 5 Apr 2022 CSC 601:System Programming & Compiler Construction
Department of Computer Engineering Ms. Varsha Shrivastava 56
Loader- Dynamic Loading
St. Francis Institute of Technology 5 Apr 2022 CSC 601:System Programming & Compiler Construction
Department of Computer Engineering Ms. Varsha Shrivastava 57
Loader- Dynamic Loading
St. Francis Institute of Technology 5 Apr 2022 CSC 601:System Programming & Compiler Construction
Department of Computer Engineering Ms. Varsha Shrivastava 58
Loader- Dynamic Loading
St. Francis Institute of Technology 5 Apr 2022 CSC 601:System Programming & Compiler Construction
Department of Computer Engineering Ms. Varsha Shrivastava 59
Loader- Dynamic Linking
St. Francis Institute of Technology 5 Apr 2022 CSC 601:System Programming & Compiler Construction
Department of Computer Engineering Ms. Varsha Shrivastava 60
Loader- Dynamic Loading & Linking
St. Francis Institute of Technology 5 Apr 2022 CSC 601:System Programming & Compiler Construction
Department of Computer Engineering Ms. Varsha Shrivastava 61
How does loader gets loaded
?
St. Francis Institute of Technology 5 Apr 2022 CSC 601:System Programming & Compiler Construction
Department of Computer Engineering Ms. Varsha Shrivastava 62
Answer: Bootstrap Loader
St. Francis Institute of Technology 5 Apr 2022 CSC 601:System Programming & Compiler Construction
Department of Computer Engineering Ms. Varsha Shrivastava 63
Bootstrap Loader
• Also known as bootstrapping, boot loader or boot
program.
St. Francis Institute of Technology 5 Apr 2022 CSC 601:System Programming & Compiler Construction
Department of Computer Engineering Ms. Varsha Shrivastava 64
Bootstrap Loader
St. Francis Institute of Technology 5 Apr 2022 CSC 601:System Programming & Compiler Construction
Department of Computer Engineering Ms. Varsha Shrivastava 65
University Questions
St. Francis Institute of Technology 5 Apr 2022 CSC 601:System Programming & Compiler Construction
Department of Computer Engineering Ms. Varsha Shrivastava 66
THE
END!
Have a nice
day!