31
SYSTEM SOFTWARE TEAM 3 : Abdul Kalam Ashad.A– 13mx01 Darsini.R – 13mx07 Gowri Manohari.M – 13mx13 Manickkavalli. M - 13MX26 ASSIGNMENT PRESENTAION - I

Loaders

Embed Size (px)

DESCRIPTION

Loaders System Software

Citation preview

Page 1: Loaders

SYSTEM SOFTWARE

TEAM 3 :Abdul Kalam Ashad.A–

13mx01Darsini.R – 13mx07Gowri Manohari.M –

13mx13Manickkavalli. M - 13MX26

Sathasivam.R – 13mx41

ASSIGNMENT PRESENTAION - I

Page 2: Loaders
Page 3: Loaders

Components Of System Software – A walkthrough.

Introducing loader.

Basic Loader functions.

Steps involved in loading.

Loader Schemes.

Types of loaders.

CONTENTS

Page 4: Loaders

COMPILER Translates high-level language programs

into assembly language programs.

ASSEMBLER Converts assembly language programs

into object files.

Object files contain a combination of machine instructions, data, and information needed to place instructions properly in memory.

COMPONENTS OF SYSTEM SOFTWARE

Page 5: Loaders

LINKERTool that merges the object files produced by separate compilation or assembly and creates an executable.

LOADER Part of the OS that brings an executable file residing on disk into memory and starts it running.

Contd…

Page 6: Loaders

Contd..,

Page 7: Loaders

Loader is a system program that loads machine codes of a program into the system memory.

Loading a program involves reading the contents of executable file into memory. 

Once loading is complete, the operating system starts the program by passing control to the loaded program

WHAT IS A LOADER ?

Page 8: Loaders

LOADING - allocates memory location and brings the object program into memory for execution – done by Loader.

LINKING - combines two or more separate object programs and supplies the information needed to allow references between them – done by Linker.

RELOCATION - modifies the object program so that it can be loaded at an address different from the location originally specified – by Linking Loader.

BASIC LOADER FUNCTIONS

Page 9: Loaders

ROLE OF LOADER

Page 10: Loaders

Executable file’ s header is read to determine the size of text and data segments.

Instructions and data are copied into address space.

Arguments passed to the program are copied on the stack

STEPS INVOLVED IN LOADING

Page 11: Loaders

Machine registers including the stack pointer are initialized.

The control is transferred to a start-up routine that copies the program’ s arguments from the stack to registers and calls the program’ s main routine.

Contd…

Page 12: Loaders

“Compile-and-Go” LoadersGeneral Loader Scheme“COMPILE-AND-GO” LOADERS:Assembler will be running in one part of memory.

The assembled data & machine instructions are directly assigned into the memory locations.

Example : FORTRAN

LOADER SCHEMES

Page 13: Loaders

When the assembly is over, the control transfers to the starting instruction of the program.

The loader consists of an instruction to make this control transfer.

DISADVANTAGES :• Memory wastage due to the unavailability of assembler to the object program.

Contd…

Page 14: Loaders

Need to assemble the program every time it’s run.

Difficulty in handling if the source programs are in different languages.

Contd…

Page 15: Loaders

“COMPILE-AND-GO” LOADER SCHEME

Page 16: Loaders

Uses an object deck as intermediate data.

Here the loader accepts the assembled machine instructions and data in the object format and places it in the memory in an executable form.

ADVANTAGES :Smaller than assembler.No reassembly is needed.Possible to write subroutines in different

languages.

GENERAL LOADER SCHEME

Page 17: Loaders

GENERAL LOADER SCHEME

Page 18: Loaders

Absolute Loader.Bootstrap Loader. Relocating Loader (Relative Loader)

Linking Loader.

TYPES OF LOADERS

Page 19: Loaders

Absolute loader loads the object code to specified locations in the memory.

At the end the loader jumps to the specified address to begin execution of the loaded program.

ADVANTAGES : Simple and efficient.DISADVANTAGES : • The need for programmer to specify

the actual address.• Difficulty in using subroutine libraries.

ABSOLUTE LOADER

Page 20: Loaders

ROLE OF ABSOLUTE LOADER

Page 21: Loaders

When a computer is first turned on or restarted, a special type of absolute loader, called bootstrap loader is executed.

This bootstrap loads the first program to be run by the computer - usually an operating system.

The bootstrap itself begins at address 0.

BOOTSTRAP LOADER

Page 22: Loaders

Loaders that allow for program relocation are called Relocating loaders or Relative loaders.

CONCEPT OF RELOCATION :• The execution of the object program is done using any part of the available & sufficient memory. • The object program is loaded into memory wherever there is room for it.

RELOCATING LOADER

Page 23: Loaders

• The actual starting address of the object program is not known until load time. • Relocation provides the efficient sharing of the machine with larger memory and when several independent programs are to be run together.• It also supports the use of subroutine libraries efficiently.

Contd…

Page 24: Loaders

Perform all linking and relocation at load time.

The Other Alternatives :• Linkage editors - which performs linking prior to load time.• Dynamic linking – where linking function is performed at execution time.

LINKING LOADERS

Page 25: Loaders

ROLE OF LINKING LOADERS

Page 26: Loaders

Produces a linked version of the program – called a load module or an executable image.

This load module is written to a file or library for later execution.

The linked program produced is suitable for processing by a relocating loader.

Using Linkage editor , an absolute object program can be created, if starting address is already known.

LINKAGE EDITORS

Page 27: Loaders

ROLE OF LINKAGE EDITOR

Page 28: Loaders

This scheme postpones the linking functions until execution.

A subroutine is loaded and linked to the rest of the program when it is first called.

It is usually called dynamic linking, dynamic loading or load on call.

Allows several executing programs to share one copy of a subroutine or library.

DYNAMIC LINKING

Page 29: Loaders

In an object oriented system, dynamic linking makes it possible for one object to be shared by several programs.

Dynamic linking provides the ability to load the routines only when they are needed.

Run-time linker uses dynamic linking approach which binds dynamic executables and shared objects at execution time.

Contd…

Page 31: Loaders