Chapter 3: Loaders and Linkers

Size: px
Start display at page:

Download "Chapter 3: Loaders and Linkers"

Transcription

1 Department of Electr rical Eng ineering, Chapter 3: Loaders and Linkers 王振傑 (Chen-Chieh Wang) ncku edu 3.1 Basic Loader Functions Design of an Absolute Loader A Simple Bootstrap Loader Outline 3.2 Machine-Dependent Loader Features Relocation Program Linking Algorithm and Data Structures for a Linking Loader 3.3 Machine-Independent Loader Features Automatic Library Search Loader Options 3.4 Loader Design Options Linkage Editors Dynamic Linking Bootstrap Loaders 2

2 C program Compiler Assembly language program Assembler Object: Machine language module Object: Library routine (machine language) Executable: e: Machine language program Memory 3 Loaders and Linkers In Chapter 2, we discussions Loading: brings the object program into memory for execution. Relocation: modifies the object program so that it can be loaded at an address different from the location originally specified. Linking: combines two or more separate object programs and supplies the information needed to allow references between them. In Chapter 3, we will discussion A loader is a system program that performs the loading function. Many loaders also support relocation and linking. A linker (or linkage editor) performs the linking operations and a separate loader to handle relocation and loading. 4

3 3.1 Basic Loader Functions Design of an Absolute Loader A Simple Bootstrap Loader Outline 3.2 Machine-Dependent Loader Features Relocation Program Linking Algorithm and Data Structures for a Linking Loader 3.3 Machine-Independent Loader Features Automatic Library Search Loader Options 3.4 Loader Design Options Linkage Editors Dynamic Linking Bootstrap Loaders 5 Depar rtment of Electrical Engineering, Feng-Chia Unive ersity Loading of an absolute program [ Figure 3.1 ] 6

4 Depar rtment of Electrical Engineering, Feng-Chia Unive ersity Algorithm for an absolute loader [ Figure 3.2 ] 7 Department of Electrical Engineering, Feng-Chia Unive ersity 8

5 3.1 Basic Loader Functions Design of an Absolute Loader A Simple Bootstrap Loader Outline 3.2 Machine-Dependent Loader Features Relocation Program Linking Algorithm and Data Structures for a Linking Loader 3.3 Machine-Independent Loader Features Automatic Library Search Loader Options 3.4 Loader Design Options Linkage Editors Dynamic Linking Bootstrap Loaders 9 Depar rtment of Electr rical Eng 0x00000 Bootstrap Loader 0x Registers A X L B S T F PC SW Bus Processing Unit Control Unit Fetch Unit Processor Loader ineering, Read-Only Memory (ROM) Operating System (O/S), Feng-Chia Unive ersity Memory (DRAM) Device "F1" ( Hard Disk / Flash) 10

6 Bootstrap Loader When a computer is first turned on or restarted, a special type of absolute loader, called a bootstrap loader, is executed. This bootstrap loads the first program to be run by the computer usually an operating system. Example ( Figure 3.3 ) Located at address 0 in memory Loads first program (e.g. OS) at address 0x Each byte of object code to be loaded is represented on device F1 as two hexadecimal digits After reading end-of-file (0x04), jumps to address 0x00080 and starts execution of first program 11 Depar rtment of Electrical Engineering, Feng-Chia Unive ersity Bootstrap loader for SIC/XE [ Figure 3.33 ] 12

7 3.1 Basic Loader Functions Design of an Absolute Loader A Simple Bootstrap Loader Outline 3.2 Machine-Dependent Loader Features Relocation Program Linking Algorithm and Data Structures for a Linking Loader 3.3 Machine-Independent Loader Features Automatic Library Search Loader Options 3.4 Loader Design Options Linkage Editors Dynamic Linking Bootstrap Loaders 13 Relocation Efficient sharing of the machine requires that we write relocatable programs instead of absolute ones. Writing absolute programs makes it difficult to use subroutine libraries efficiently. Two methods for specifying relocation as part of the object program. Modification Record (for SIC/XE) Relocation Bit (for SIC) 14

8 Depar rtment of Electrical Engineering, Feng-Chia Unive ersity Example of a SIC/XE program [ Figure 3.4 ] 15 Depar rtment of Electrical Engineering, Feng-Chia Unive ersity SUBROUTINE TO READ RECORD INTO BUFFER SUBROUTINE TO WRITE RECORD FROM BUFFER 16

9 Depar rtment of Electrical Engineering, Feng-Chia Unive ersity Object program with relocation by Modification i Records [ Figure 3.5 ] 17 Depar rtment of Electrical Engineering, Feng-Chia Unive ersity Relocatable program for a standard SIC machine [ Figure 3.6 ] 18

10 Depar rtment of Electrical Engineering, Feng-Chia Unive ersity SUBROUTINE TO READ RECORD INTO BUFFER SUBROUTINE TO WRITE RECORD FROM BUFFER 19 Depar rtment of Electrical Engineering, Object program with relocation by Bit Mask [ Figure 3.7 ] SIC Instruction Format 20

11 3.1 Basic Loader Functions Design of an Absolute Loader A Simple Bootstrap Loader Outline 3.2 Machine-Dependent Loader Features Relocation Program Linking Algorithm and Data Structures for a Linking Loader 3.3 Machine-Independent Loader Features Automatic Library Search Loader Options 3.4 Loader Design Options Linkage Editors Dynamic Linking Bootstrap Loaders 21 Program linking The basic concepts involved in program linking were introduced in Section In this section we consider more complex examples of external references between programs and examine the relationship between relocation and linking. The loader has no way of knowing (and no need to know) which control sections were assembled at the same time. Example Three (separately assembled) programs in Fig. 3.8, each of which consists of a single control section. 22

12 Depar rtment of Electrical Engineering, Feng-Chia Unive ersity Sample programs illustrating linking and relocation (PROGA) 23 Depar rtment of Electrical Engineering, Feng-Chia Unive ersity Object programs (PROGA) 24

13 Depar rtment of Electrical Engineering, Feng-Chia Unive ersity Sample programs illustrating linking and relocation (PROGB) 25 Depar rtment of Electrical Engineering, Feng-Chia Unive ersity Object programs (PROGB) 26

14 Depar rtment of Electrical Engineering, Feng-Chia Unive ersity Sample programs illustrating linking and relocation (PROGC) 27 Depar rtment of Electrical Engineering, Feng-Chia Unive ersity Object programs (PROGC) 28

15 Depar rtment of Electrical Engineering, Feng-Chia Unive ersity Program for Fig. 3.8 after linking and loading [ Figure 3.10(a) ] 29 Depar rtment of Electrical Engineering, Feng-Chia Unive ersity Relocation and linking operations performed on REF4 from PROGA [ Figure 3.10(b) ] 30

16 3.1 Basic Loader Functions Design of an Absolute Loader A Simple Bootstrap Loader Outline 3.2 Machine-Dependent Loader Features Relocation Program Linking Algorithm and Data Structures for a Linking Loader 3.3 Machine-Independent Loader Features Automatic Library Search Loader Options 3.4 Loader Design Options Linkage Editors Dynamic Linking Bootstrap Loaders 31 Algorithm and Data Structures for a Linking Loader The input to such a loader consists of a set of object programs (i.e., control sections) that are to be linked together. Thus a linking loader usually makes two passes over its input, just as an assembler does. Pass 1 : assigns addresses to all external symbols Pass 2 : performs the actual loading, relocation, and linking The main data structure needed for our linking loader is an external symbol table (ESTAB). 32

17 External Symbol Table (ESTAB) Store the name and address of each external symbol in the set of control sections being loaded. Also indicates in which control section the symbol is defined. Two other important variables: PROGADDR (program load address) is the beginning address in memory where the linked program is to be loaded. CSADDR (control section address) contains the starting address assigned to the control section currently being scanned by the loader. 33 Department of Electr rical Eng ineering, Feng-Chia Unive ersity Linking Loader Pass 1 Load Map 34

18 Depar rtment of Electrical Engineering, Feng-Chia Unive ersity Linking Loader Algorithm 35 Department of Electrical Engineering, Feng-Chia Unive ersity 36

19 3.1 Basic Loader Functions Design of an Absolute Loader A Simple Bootstrap Loader Outline 3.2 Machine-Dependent Loader Features Relocation Program Linking Algorithm and Data Structures for a Linking Loader 3.3 Machine-Independent Loader Features Automatic Library Search Loader Options 3.4 Loader Design Options Linkage Editors Dynamic Linking Bootstrap Loaders 37 C program Compiler Assembly language program Assembler Object: Machine language module Object: Library routine (machine language) Executable: e: Machine language program Memory 38

20 Automatic Library Search (1/3) Many linking loaders can automatically incorporate routines from a subprogram library into the program being loaded. In most cases there is a standard system library that is used in this way. Other libraries may be specified by control statements or by parameters to the loader. The subroutines called by the program being loaded are automatically fetched from the library, linked with the main program, and loaded. 39 Automatic Library Search (2/3) Linking loaders that support automatic library search must keep track of external symbols that are referred to, but not defined, in the primary input to the loader. At the end of Pass 1, the symbols in ESTAB that remain undefined represent unresolved external references. The loader searches the library or libraries specified for routines that contain the definitions of these symbols, and processes the subroutines found by this search exactly as if they had been part of the primary input stream. The process just described allows the programmer to override the standard subroutines in the library by supplying his or her own routines. 40

21 Feng-Chia Unive ersity Automatic Library Search (3/3) In most cases a special file structure is used for the libraries. This structure contains a directory that gives the name of each routine and a pointer to its address within the file. Some operating systems can keep the directory for commonly used libraries i permanently in memory. This can expedite the search process if a large number of external references are to be resolved Basic Loader Functions Design of an Absolute Loader A Simple Bootstrap Loader Outline 3.2 Machine-Dependent Loader Features Relocation Program Linking Algorithm and Data Structures for a Linking Loader 3.3 Machine-Independent Loader Features Automatic Library Search Loader Options 3.4 Loader Design Options Linkage Editors Dynamic Linking Bootstrap Loaders 42

22 Loader Options Many loaders allow the user to specify options that modify the standard processing. Many loaders have a special command language that is used to specify options. Sometimes there is a separate input file to the loader that contains such control statements. Sometimes these same statements can also be embedded in the primary input stream between object programs. On a few systems the programmer can even include loader control statements in the source program. On some systems options are specified as a part of the job control language that is processed by the O/S. 43 Command Language INCLUDE program-name (library-name) Include the designated objection program from a library as a part of input DELETE csect-name Delete the named control section from the set of programs being loaded CHANGE name1, name2 Replace the external symbol name1 with name2 LIBRARY library-name Specify alternative libraries to be searched NOCALL name1, name2 Instruct the loader that these external references are to remain unresolved 44

23 Example The source program in Fig 2.15 and the corresponding object program in Fig Three control sections: COPY, RDREC, WRREC Suppose now that a set of utility subroutines is made available on the computer system. Two of these, READ and WRITE, are designed to perform the same functions as RDREC and WRREC. A sequence of loader commands could be used to make this change without reassembling the program. INCLUDE INCLUDE DELETE CHANGE CHANGE READ(UTLIB) WRITE(UTLIB) RDREC, WRREC RDREC, READ WRREC, WRITE Basic Loader Functions Design of an Absolute Loader A Simple Bootstrap Loader Outline 3.2 Machine-Dependent Loader Features Relocation Program Linking Algorithm and Data Structures for a Linking Loader 3.3 Machine-Independent Loader Features Automatic Library Search Loader Options 3.4 Loader Design Options Linkage Editors Dynamic Linking Bootstrap Loaders 46

24 Depar rtment of Electrical Engineering, Feng-Chia Unive ersity The essential difference between a linking loader and a linkage editor [ Figure 3.13 ] 47 Linking Loader Linkage Editors Performs all linking and relocation operations, including automatic library search if specified, and loads the linked program directly into memory for execution. Linkage Editor Produces a linked version of the program (often called a load module or an executable image), which is written to a file or library for later execution. When the user is ready to run the linked program, a simple relocating loader can be used to load the program into memory. This means that the loading can be accomplished in one pass with no external symbol table required. This approach reduces the overhead when the program is executed. All that is required at load time is a very simple form of relocation. 48

25 3.1 Basic Loader Functions Design of an Absolute Loader A Simple Bootstrap Loader Outline 3.2 Machine-Dependent Loader Features Relocation Program Linking Algorithm and Data Structures for a Linking Loader 3.3 Machine-Independent Loader Features Automatic Library Search Loader Options 3.4 Loader Design Options Linkage Editors Dynamic Linking Bootstrap Loaders 49 Linkage editor Dynamic Linking Perform linking operations before the program is loaded for execution Linking loader Perform linking operations at load time Dynamic linking (dynamic loading, load on call) Postpone the linking function until execution time A subroutine is loaded and linked to the rest of the program when it is first called 50

26 Feng-Chia Unive ersity Load-and-call ERRHANDL Dynamic Linking Dynamic Loader (part of the O/S) User Program 51 Dynamic Linking Dynamic Loader User Program ERRHANDL Library 52

27 Dynamic Linking Dynamic Loader User Program ERRHANDL Library 53 Dynamic Linking Dynamic Loader User Program ERRHANDL 54

28 Load-and-call ERRHANDL Dynamic Linking Dynamic Loader User Program ERRHANDL Library If a subroutine is still in memory, a second call to it may not require another load operation. 55 Dynamic Linking Dynamic Loader User Program ERRHANDL 56

29 3.1 Basic Loader Functions Design of an Absolute Loader A Simple Bootstrap Loader Outline 3.2 Machine-Dependent Loader Features Relocation Program Linking Algorithm and Data Structures for a Linking Loader 3.3 Machine-Independent Loader Features Automatic Library Search Loader Options 3.4 Loader Design Options Linkage Editors Dynamic Linking Bootstrap Loaders 57 Depar rtment of Electr rical Eng 0x00000 Bootstrap Loader 0x Registers A X L B S T F PC SW Bus Processing Unit Control Unit Fetch Unit Processor Loader ineering, Read-Only Memory (ROM) Operating System (O/S), Feng-Chia Unive ersity Memory (DRAM) Device "F1" ( Hard Disk / Flash) 58

Chapter 3 Loaders and Linkers

Chapter 3 Loaders and Linkers Chapter 3 Loaders and Linkers Three fundamental processes: Loading brings the object program into memory for execution. Relocation modifies the object program so that it can be loaded at an address different

More information

UNIT III LOADERS AND LINKERS

UNIT III LOADERS AND LINKERS UNIT III LOADERS AND LINKERS INTRODUCTION Loader is a system program that performs the loading function. Many loaders also support relocation and linking. Some systems have a linker (linkage editor) to

More information

Prepared By : Ms. Sanchari Saha ( Asst. Professor) Department : Computer Science & Engineering

Prepared By : Ms. Sanchari Saha ( Asst. Professor) Department : Computer Science & Engineering Subject Name: System Software Subject Code: 10CS52 Prepared By : Ms. Sanchari Saha ( Asst. Professor) Department : Computer Science & Engineering Date : 20-10-2014 UNIT-4 LOADERS & LINKERS Engineered for

More information

Loaders. Systems Programming. Outline. Basic Loader Functions

Loaders. Systems Programming. Outline. Basic Loader Functions Loaders Systems Programming Chapter 3 Linkers and Loaders A loader is a system program that performs the loading function. many also support relocation & linking others have a separate linker and loader

More information

Chapter 3 Loaders and Linkers

Chapter 3 Loaders and Linkers Chapter 3 Loaders and Linkers Outline 3.1 Basic Loader Functions 3.2 Machine-Dependent Loader Features 3.3 Machine-Independent Loader Features 3.4 Loader Design Options 3.5 Implementation Examples Introduction

More information

Chapter 3 Loaders and Linkers

Chapter 3 Loaders and Linkers Chapter 3 Loaders and Linkers Outline 3.1 Basic Loader Functions 3.2 Machine-Dependent Loader Features 3.3 Machine-Independent Loader Features 3.4 Loader Design Options 3.5 Implementation Examples Introduction

More information

UNIT III - LOADERS AND LINKERS

UNIT III - LOADERS AND LINKERS 3.1 Introduction to Loaders UNIT III - LOADERS AND LINKERS A loader is the part of an operating system that is responsible for loading programs into memory and prepares them for execution. Loading a program

More information

3.3 Machine-Independent Loader Features

3.3 Machine-Independent Loader Features 3.3 Machine-Independent Loader Features Loading and linking are often thought of as operating system service functions. Machine independent loader features: 3.3.1 Automatic Library Search 3.3.2 Loader

More information

UNIT III LOADERS AND LINKERS PART A

UNIT III LOADERS AND LINKERS PART A PART A UNIT III LOADERS AND LINKERS 1. Define Absolute Loader and Bootstrap Loader. The loader, which is used only for loading but not for relocation or linking is known as absolute loader. e.g. Bootstrap

More information

LOADERS AND LINKERS 1. BASIC LOADER FUNCTIONS 2. DESIGN OF AN ABSOLUTE LOADER 3. A SIMPLE BOOTSTRAP LOADER 4. MACHINE DEPENDENT LOADER FEATURES

LOADERS AND LINKERS 1. BASIC LOADER FUNCTIONS 2. DESIGN OF AN ABSOLUTE LOADER 3. A SIMPLE BOOTSTRAP LOADER 4. MACHINE DEPENDENT LOADER FEATURES UIT III LOADERS AD LIKERS 1. BASIC LOADER FUCTIOS 2. DESIG OF A ABSOLUTE LOADER 3. A SIMPLE BOOTSTRAP LOADER 4. MACHIE DEPEDET LOADER FEATURES 5. RELOCATIO 6. PROGRAM LIKIG 7. ALGORITHM AD DATA STRUCTURES

More information

Chapter 5 Large and Fast: Exploiting Memory Hierarchy (Part 1)

Chapter 5 Large and Fast: Exploiting Memory Hierarchy (Part 1) Department of Electr rical Eng ineering, Chapter 5 Large and Fast: Exploiting Memory Hierarchy (Part 1) 王振傑 (Chen-Chieh Wang) ccwang@mail.ee.ncku.edu.tw ncku edu Depar rtment of Electr rical Engineering,

More information

This contains the following three processes, and they are,

This contains the following three processes, and they are, Chapter 3 Loaders and Linkers This Chapter gives you Basic Loader Functions Machine-Dependent Loader Features Machine-Independent Loader Features Loader Design Options Implementation Examples 30 Introduction

More information

Chapter 5 Large and Fast: Exploiting Memory Hierarchy (Part 2)

Chapter 5 Large and Fast: Exploiting Memory Hierarchy (Part 2) Department of Electr rical Eng ineering, Chapter 5 Large and Fast: Exploiting Memory Hierarchy (Part 2) 王振傑 (Chen-Chieh Wang) ccwang@mail.ee.ncku.edu.tw ncku edu Feng-Chia Unive ersity Outline 5.4 Virtual

More information

1.Program to find factorial of a given number

1.Program to find factorial of a given number 1.Program to find factorial of a given number DATA SEGMENT X DW 06H FACT DW? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV AX,01H ;Set the value of AX as 01H. MOV CX,X

More information

Chapter 4 The Processor (Part 4)

Chapter 4 The Processor (Part 4) Department of Electr rical Eng ineering, Chapter 4 The Processor (Part 4) 王振傑 (Chen-Chieh Wang) ccwang@mail.ee.ncku.edu.tw ncku edu Depar rtment of Electr rical Engineering, Feng-Chia Unive ersity Outline

More information

Chapter 5: Threads. Outline

Chapter 5: Threads. Outline Department of Electr rical Eng ineering, Chapter 5: Threads 王振傑 (Chen-Chieh Wang) ccwang@mail.ee.ncku.edu.tw ncku edu Feng-Chia Unive ersity Outline Overview Multithreading Models Threading Issues 2 Depar

More information

Chapter 3 Loaders and Linkers -- Loader Design Options

Chapter 3 Loaders and Linkers -- Loader Design Options Chapter 3 Loaders and Linkers -- Loader Design Options Loaders Linkage editor Linking before loading Dynamic linking Linking at the execution time Bootstrap loader Linkage editors Difference between a

More information

Chapter 3 Loaders and Linkers -- Machine-Dependent Loader Feature

Chapter 3 Loaders and Linkers -- Machine-Dependent Loader Feature Chapter 3 Loaders and Linkers -- Machine-Dependent Loader Feature Motivation Shortcoming of an absolute loader Programmer needs to specify the actual address at which it will be loaded into memory. It

More information

Chapter 6 Storage and Other I/O Topics

Chapter 6 Storage and Other I/O Topics Department of Electr rical Eng ineering, Chapter 6 Storage and Other I/O Topics 王振傑 (Chen-Chieh Wang) ccwang@mail.ee.ncku.edu.tw ncku edu Feng-Chia Unive ersity Outline 6.1 Introduction 6.2 Dependability,

More information

Chapter 4 The Processor (Part 2)

Chapter 4 The Processor (Part 2) Department of Electr rical Eng ineering, Chapter 4 The Processor (Part 2) 王振傑 (Chen-Chieh Wang) ccwang@mail.ee.ncku.edu.tw ncku edu Feng-Chia Unive ersity Outline A Multicycle Implementation Mapping Control

More information

Chapter 3 Arithmetic for Computers (Part 2)

Chapter 3 Arithmetic for Computers (Part 2) Department of Electr rical Eng ineering, Chapter 3 Arithmetic for Computers (Part 2) 王振傑 (Chen-Chieh Wang) ccwang@mail.ee.ncku.edu.tw ncku edu Depar rtment of Electr rical Eng ineering, Feng-Chia Unive

More information

Gechstudentszone.wordpress.com

Gechstudentszone.wordpress.com CHAPTER -2 2.1 Basic Assembler Functions: The basic assembler functions are: ASSEMBLERS-1 Translating mnemonic language code to its equivalent object code. Assigning machine addresses to symbolic labels.

More information

2.1. Basic Assembler Functions:

2.1. Basic Assembler Functions: 2.1. Basic Assembler Functions: The basic assembler functions are: Translating mnemonic language code to its equivalent object code. Assigning machine addresses to symbolic labels. SOURCE PROGRAM ASSEMBLER

More information

Compile: compiler. Load: loader. compiler linker loader memory. source object load code module module 2

Compile: compiler. Load: loader. compiler linker loader memory. source object load code module module 2 Part III Storage Management Chapter 8: Memory Management Fall 2010 1 Address Generation Address generation has three stages: Compile: compiler Link: linker or linkage editor Load: loader compiler linker

More information

UNIT 1: MACHINE ARCHITECTURE

UNIT 1: MACHINE ARCHITECTURE VTU QUESTION PAPER SOLUTION UNIT 1: MACHINE ARCHITECTURE 1. a) Give the target address generated for the following machine instruction: (i) 032600h (ii) 03C300h (iii) 0310C303h if (B)=006000, (PC)=003000,

More information

CS2304-SYSTEM SOFTWARE 2 MARK QUESTION & ANSWERS. UNIT I INTRODUCTION

CS2304-SYSTEM SOFTWARE 2 MARK QUESTION & ANSWERS. UNIT I INTRODUCTION CS2304-SYSTEM SOFTWARE 2 MARK QUESTION & ANSWERS. UNIT I INTRODUCTION 1. Define System Software. System software consists of a variety of programs that supports the operations of a computer. Eg. Compiler,

More information

Machine dependent Assembler Features

Machine dependent Assembler Features Machine dependent Assembler Features Assembler Features Machine Dependent Assembler Features Instruction formats and addressing modes (SIC/XE) Program relocation Machine Independent Assembler Features

More information

Chapter 2. Assembler Design

Chapter 2. Assembler Design Chapter 2 Assembler Design Assembler is system software which is used to convert an assembly language program to its equivalent object code. The input to the assembler is a source code written in assembly

More information

CSCI341. Lecture 22, MIPS Programming: Directives, Linkers, Loaders, Memory

CSCI341. Lecture 22, MIPS Programming: Directives, Linkers, Loaders, Memory CSCI341 Lecture 22, MIPS Programming: Directives, Linkers, Loaders, Memory REVIEW Assemblers understand special commands called directives Assemblers understand macro commands Assembly programs become

More information

UNIT I - INTRODUCTION

UNIT I - INTRODUCTION UNIT I - INTRODUCTION 1. Define system software. It consists of variety of programs that supports the operation of the computer. This software makes it possible for the user to focus on the other problems

More information

Chapter 2 Assemblers Machine-Dependent Assembler Features

Chapter 2 Assemblers Machine-Dependent Assembler Features Chapter 2 Assemblers -- 2.2 Machine-Dependent Assembler Features Outline Instruction format and addressing mode Program relocation Instruction format and addressing mode PC-relative or Base-relative addressing

More information

AS-2883 B.Sc.(Hon s)(fifth Semester) Examination,2013 Computer Science (PCSC-503) (System Software) [Time Allowed: Three Hours] [Maximum Marks : 30]

AS-2883 B.Sc.(Hon s)(fifth Semester) Examination,2013 Computer Science (PCSC-503) (System Software) [Time Allowed: Three Hours] [Maximum Marks : 30] AS-2883 B.Sc.(Hon s)(fifth Semester) Examination,2013 Computer Science (PCSC-503) (System Software) [Time Allowed: Three Hours] [Maximum Marks : 30] Note: Question Number 1 is compulsory. Marks : 10X1

More information

UNIT 1: MACHINE ARCHITECTURE

UNIT 1: MACHINE ARCHITECTURE VTU QUESTION PAPER SOLUTION UNIT 1: MACHINE ARCHITECTURE 1. Give the target address generated for the following machine instruction: (i) 032600h (ii) 03C300h (iii) 0310C303h if (B)=006000, (PC)=003000,

More information

CSI 402 Lecture 5 (Assemblers Continued) 5 1 / 18

CSI 402 Lecture 5 (Assemblers Continued) 5 1 / 18 CSI 402 Lecture 5 (Assemblers Continued) 5 1 / 18 Program Relocation Example 1: Consider the SIC instruction LDA THREE Assume the following: The START directive specifies the value 100 (decimal) The LC

More information

Memory Management. Frédéric Haziza Spring Department of Computer Systems Uppsala University

Memory Management. Frédéric Haziza Spring Department of Computer Systems Uppsala University Memory Management Frédéric Haziza Department of Computer Systems Uppsala University Spring 2008 Operating Systems Process Management Memory Management Storage Management Compilers Compiling

More information

Main Memory (Part I)

Main Memory (Part I) Main Memory (Part I) Amir H. Payberah amir@sics.se Amirkabir University of Technology (Tehran Polytechnic) Amir H. Payberah (Tehran Polytechnic) Main Memory 1393/8/5 1 / 47 Motivation and Background Amir

More information

國立嘉義大學資訊工程學系系統程式期中考考卷

國立嘉義大學資訊工程學系系統程式期中考考卷 國立嘉義大學資訊工程學系系統程式期中考考卷 學號 : 姓名 : 1. Please write the content in the lines. (25%) PROGB START EXTDEF B1, B2 EXTREF A1 LDA B1 +LDA A1 STA B1 +STA A1 B1 WORD 7 BUF RESB 1 B2 RESW 1 MAX EQU 1 END H^PROGA^^

More information

CSE 4/521 Introduction to Operating Systems. Lecture 12 Main Memory I (Background, Swapping) Summer 2018

CSE 4/521 Introduction to Operating Systems. Lecture 12 Main Memory I (Background, Swapping) Summer 2018 CSE 4/521 Introduction to Operating Systems Lecture 12 Main Memory I (Background, Swapping) Summer 2018 Overview Objective: 1. To provide a detailed description of various ways of organizing memory hardware.

More information

MODULE 5 LINKERS AND LOADERS

MODULE 5 LINKERS AND LOADERS MODULE 5 LINKERS AND LOADERS Execution phases The execution of a program involves 4 steps:- 1) Translation Converting source program to object modules. The assemblers and compilers fall under the category

More information

UNIT II ASSEMBLERS www.noyesengine.com www.technoscriptz.com 1 1. BASIC ASSEMBLER FUNCTIONS 2. A SIMPLE SIC ASSEMBLER 3. ASSEMBLER ALGORITHM AND DATA STRUCTURES 4. MACHINE DEPENDENT ASSEMBLER FEATURES

More information

Unit 2 -- Outline. Basic Assembler Functions Machine-dependent Assembler Features Machine-independent Assembler Features Assembler Design Options

Unit 2 -- Outline. Basic Assembler Functions Machine-dependent Assembler Features Machine-independent Assembler Features Assembler Design Options Unit 2 -- Outline Basic Assembler Functions Machine-dependent Assembler Features Machine-independent Assembler Features Assembler Design Options Introduction to Assemblers Fundamental functions translating

More information

Introduction SIC, RISC & CISC 0. Introduction to Systems Programming This course aims at: Understanding what is going on behind the scenes The design and implementation of system software, such as Assemblers

More information

Memory Management. Reading: Silberschatz chapter 9 Reading: Stallings. chapter 7 EEL 358

Memory Management. Reading: Silberschatz chapter 9 Reading: Stallings. chapter 7 EEL 358 Memory Management Reading: Silberschatz chapter 9 Reading: Stallings chapter 7 1 Outline Background Issues in Memory Management Logical Vs Physical address, MMU Dynamic Loading Memory Partitioning Placement

More information

M2 Instruction Set Architecture

M2 Instruction Set Architecture M2 Instruction Set Architecture Module Outline Addressing modes. Instruction classes. MIPS-I ISA. Translating and starting a program. High level languages, Assembly languages and object code. Subroutine

More information

Introduction. Linking, which combines two or more separate object programs and supplies the information needed to allow references between them.

Introduction. Linking, which combines two or more separate object programs and supplies the information needed to allow references between them. Index 1. Introduction 2. Functions of Loader 3. Translation & Linking of Program 4. Loading And Linking Scheme -Link-And-Go -Link-Load-And-Go 5. Difference Between Link-And-Go & Link-Load-And-Go 1 Introduction

More information

CHAPTER 8: MEMORY MANAGEMENT. By I-Chen Lin Textbook: Operating System Concepts 9th Ed.

CHAPTER 8: MEMORY MANAGEMENT. By I-Chen Lin Textbook: Operating System Concepts 9th Ed. CHAPTER 8: MEMORY MANAGEMENT By I-Chen Lin Textbook: Operating System Concepts 9th Ed. Chapter 8: Memory Management Background Swapping Contiguous Memory Allocation Segmentation Paging Structure of the

More information

Lec 13: Linking and Memory. Kavita Bala CS 3410, Fall 2008 Computer Science Cornell University. Announcements

Lec 13: Linking and Memory. Kavita Bala CS 3410, Fall 2008 Computer Science Cornell University. Announcements Lec 13: Linking and Memory Kavita Bala CS 3410, Fall 2008 Computer Science Cornell University PA 2 is out Due on Oct 22 nd Announcements Prelim Oct 23 rd, 7:30-9:30/10:00 All content up to Lecture on Oct

More information

COS 318: Operating Systems

COS 318: Operating Systems COS 318: Operating Systems Overview Kai Li Computer Science Department Princeton University (http://www.cs.princeton.edu/courses/cos318/) Important Times Lectures 9/20 Lecture is here Other lectures in

More information

Chapter 9 Memory Management Main Memory Operating system concepts. Sixth Edition. Silberschatz, Galvin, and Gagne 8.1

Chapter 9 Memory Management Main Memory Operating system concepts. Sixth Edition. Silberschatz, Galvin, and Gagne 8.1 Chapter 9 Memory Management Main Memory Operating system concepts. Sixth Edition. Silberschatz, Galvin, and Gagne 8.1 Chapter 9: Memory Management Background Swapping Contiguous Memory Allocation Segmentation

More information

Chapter 8: Memory Management. Operating System Concepts with Java 8 th Edition

Chapter 8: Memory Management. Operating System Concepts with Java 8 th Edition Chapter 8: Memory Management 8.1 Silberschatz, Galvin and Gagne 2009 Background Program must be brought (from disk) into memory and placed within a process for it to be run Main memory and registers are

More information

Chapter 8: Memory- Management Strategies. Operating System Concepts 9 th Edition

Chapter 8: Memory- Management Strategies. Operating System Concepts 9 th Edition Chapter 8: Memory- Management Strategies Operating System Concepts 9 th Edition Silberschatz, Galvin and Gagne 2013 Chapter 8: Memory Management Strategies Background Swapping Contiguous Memory Allocation

More information

Administrivia. Deadlock Prevention Techniques. Handling Deadlock. Deadlock Avoidance

Administrivia. Deadlock Prevention Techniques. Handling Deadlock. Deadlock Avoidance Administrivia Project discussion? Last time Wrapped up deadlock Today: Start memory management SUNY-BINGHAMTON CS35 SPRING 8 LEC. #13 1 Handling Deadlock Deadlock Prevention Techniques Prevent hold and

More information

What Operating Systems Do An operating system is a program hardware that manages the computer provides a basis for application programs acts as an int

What Operating Systems Do An operating system is a program hardware that manages the computer provides a basis for application programs acts as an int Operating Systems Lecture 1 Introduction Agenda: What Operating Systems Do Computer System Components How to view the Operating System Computer-System Operation Interrupt Operation I/O Structure DMA Structure

More information

Part-A QUESTION BANK UNIT-III 1. Define Dynamic Loading. To obtain better memory-space utilization dynamic loading is used. With dynamic loading, a routine is not loaded until it is called. All routines

More information

Lecture 2 - Fundamental Concepts

Lecture 2 - Fundamental Concepts Lecture 2 - Fundamental Concepts Instructor : Bibhas Ghoshal (bibhas.ghoshal@iiita.ac.in) Autumn Semester, 2015 Bibhas Ghoshal IOSY 332C & IOPS 332C: OS Autumn Semester, 2015 1 / 43 Lecture Outline Operating

More information

Assemblers. System Software by Leland L. Beck. Chapter 2

Assemblers. System Software by Leland L. Beck. Chapter 2 Assemblers System Software by Leland L. Beck Chapter 2 1 Role of Assembler Source Program Assembler Object Code Linker Executable Code Loader 2 Chapter 2 -- Outline Basic Assembler Functions Machine-dependent

More information

COS 318: Operating Systems. Overview. Andy Bavier Computer Science Department Princeton University

COS 318: Operating Systems. Overview. Andy Bavier Computer Science Department Princeton University COS 318: Operating Systems Overview Andy Bavier Computer Science Department Princeton University http://www.cs.princeton.edu/courses/archive/fall10/cos318/ Logistics Precepts: Tue: 7:30pm-8:30pm, 105 CS

More information

Systems Programming Assemblers Part 4 Control Sections

Systems Programming Assemblers Part 4 Control Sections Systems Programming Assemblers Part 4 Control Sections Prof. Dr. Hani Mahdi Department of Computer Science Al-Isra University, Amman, Jordan 1 1 Control Sections A Control Section is a part of the program

More information

Chapter 9 Real Memory Organization and Management

Chapter 9 Real Memory Organization and Management Chapter 9 Real Memory Organization and Management Outline 9.1 Introduction 9.2 Memory Organization 9.3 Memory Management 9.4 Memory Hierarchy 9.5 Memory Management Strategies 9.6 Contiguous vs. Noncontiguous

More information

Chapter 9 Real Memory Organization and Management

Chapter 9 Real Memory Organization and Management Chapter 9 Real Memory Organization and Management Outline 9.1 Introduction 9.2 Memory Organization 9.3 Memory Management 9.4 Memory Hierarchy 9.5 Memory Management Strategies 9.6 Contiguous vs. Noncontiguous

More information

Chapter 8: Main Memory

Chapter 8: Main Memory Chapter 8: Main Memory Chapter 8: Memory Management Background Swapping Contiguous Memory Allocation Segmentation Paging Structure of the Page Table Example: The Intel 32 and 64-bit Architectures Example:

More information

CS2422 Assembly Language & System Programming

CS2422 Assembly Language & System Programming CS2422 Assembly Language & System Programming November 30, 2006 Today s Topic Assembler: Basic Functions Section 2.1 of Beck s System Software book. Reading Assignment: pages 43-52. Role of Assembler Source

More information

Chapter 8: Memory-Management Strategies

Chapter 8: Memory-Management Strategies Chapter 8: Memory-Management Strategies Chapter 8: Memory Management Strategies Background Swapping Contiguous Memory Allocation Segmentation Paging Structure of the Page Table Example: The Intel 32 and

More information

INTERNAL TEST (SCHEME AND SOLUTION)

INTERNAL TEST (SCHEME AND SOLUTION) PES Institute of Technology, Bangalore South Campus (Formerly PES School of Engineering) (Hosur Road, 1KM before Electronic City, Bangalore-560 100) Dept of MCA INTERNAL TEST (SCHEME AND SOLUTION) 1 Subject

More information

CS2422 Assembly Language & System Programming

CS2422 Assembly Language & System Programming CS2422 Assembly Language & System Programming December 7, 2006 Today s Topic Assembler: Machine Dependent Features SIC/XE Program Relocation Modification Records in an Object File. Study Guide Sections

More information

Model Answer of System Software B. Tech. (4 th Semester Examination) Paper Code: AR Branch: Information Technology

Model Answer of System Software B. Tech. (4 th Semester Examination) Paper Code: AR Branch: Information Technology Model Answer of System Software B. Tech. (4 th Semester Examination) Paper Code: AR-9083 Branch: Information Technology Time Allowed: 3hours Maximum Marks: 100 Part-A (All questions are compulsory) Objective

More information

PESIT Bangalore South Campus Department of MCA Course Information for. System Programming (13MCA24)

PESIT Bangalore South Campus Department of MCA Course Information for. System Programming (13MCA24) PESIT Bangalore South Campus Department of MCA Course Information for System Programming (13MCA24) 1.GENERAL INFORMATION Academic Year: 2015 Semester(s): 2 nd Title Code Duration (hrs) Lectures 48 Hrs

More information

Course: Operating Systems Instructor: M Umair. M Umair

Course: Operating Systems Instructor: M Umair. M Umair Course: Operating Systems Instructor: M Umair Memory Management Introduction { Ref: Operating System Concepts 8th Edition Abraham Silberschatz, Greg Gagne, Peter B. Galvin } Address Binding Addresses in

More information

Module 3. DEADLOCK AND STARVATION

Module 3. DEADLOCK AND STARVATION This document can be downloaded from www.chetanahegde.in with most recent updates. 1 Module 3. DEADLOCK AND STARVATION 3.1 PRINCIPLES OF DEADLOCK Deadlock can be defined as the permanent blocking of a

More information

CHAPTER 8 - MEMORY MANAGEMENT STRATEGIES

CHAPTER 8 - MEMORY MANAGEMENT STRATEGIES CHAPTER 8 - MEMORY MANAGEMENT STRATEGIES OBJECTIVES Detailed description of various ways of organizing memory hardware Various memory-management techniques, including paging and segmentation To provide

More information

Chapter 2: Operating-System Structures

Chapter 2: Operating-System Structures Chapter 2: Operating-System Structures Chapter 2: Operating-System Structures Operating System Services User Operating System Interface System Calls (important!) Types of System Calls (important!) System

More information

Chapter 2 Operating-System Structures

Chapter 2 Operating-System Structures This chapter will discuss the following concepts: 2.1 Operating System Services 2.2 User Operating System Interface 2.3 System Calls 2.4 System Programs 2.5 Operating System Design and Implementation 2.6

More information

Chapter 8: Main Memory. Operating System Concepts 9 th Edition

Chapter 8: Main Memory. Operating System Concepts 9 th Edition Chapter 8: Main Memory Silberschatz, Galvin and Gagne 2013 Chapter 8: Memory Management Background Swapping Contiguous Memory Allocation Segmentation Paging Structure of the Page Table Example: The Intel

More information

8086 Interrupts and Interrupt Responses:

8086 Interrupts and Interrupt Responses: UNIT-III PART -A INTERRUPTS AND PROGRAMMABLE INTERRUPT CONTROLLERS Contents at a glance: 8086 Interrupts and Interrupt Responses Introduction to DOS and BIOS interrupts 8259A Priority Interrupt Controller

More information

Chapter 8: Main Memory

Chapter 8: Main Memory Chapter 8: Main Memory Silberschatz, Galvin and Gagne 2013 Chapter 8: Memory Management Background Swapping Contiguous Memory Allocation Segmentation Paging Structure of the Page Table Example: The Intel

More information

From Source to Execution:

From Source to Execution: From Source to Execution: Translation and Linking CSE 410, Spring 2009 Computer Systems http://www.cs.washington.edu/410 4/16/2009 cse410-08-link 2006-09 Perkins, DW Johnson and University of Washington

More information

CS5460/6460: Operating Systems. Lecture 21: Shared libraries. Anton Burtsev March, 2014

CS5460/6460: Operating Systems. Lecture 21: Shared libraries. Anton Burtsev March, 2014 CS5460/6460: Operating Systems Lecture 21: Shared libraries Anton Burtsev March, 2014 Recap from last time We know what linkers and loaders do Types of object files Relocatable object files (.o) Static

More information

Subroutine Linkage Wheeler Jump control program

Subroutine Linkage Wheeler Jump control program Subroutine Linkage We now begin discussion of subroutine linkages for simple subroutines without large argument blocks. With the mechanisms discussed in this lecture, one can use either global variables

More information

Addresses in the source program are generally symbolic. A compiler will typically bind these symbolic addresses to re-locatable addresses.

Addresses in the source program are generally symbolic. A compiler will typically bind these symbolic addresses to re-locatable addresses. 1 Memory Management Address Binding The normal procedures is to select one of the processes in the input queue and to load that process into memory. As the process executed, it accesses instructions and

More information

Memory Management. CSCI 315 Operating Systems Design Department of Computer Science

Memory Management. CSCI 315 Operating Systems Design Department of Computer Science Memory Management CSCI 315 Operating Systems Design Department of Computer Science Notice: The slides for this lecture are based on those from Operating Systems Concepts, 9th ed., by Silberschatz, Galvin,

More information

Chapter 1: Background

Chapter 1: Background Chapter 1: Background Hsung-Pin Chang Department of Computer Science National Chung Hsing University Outline 1.1 Introduction 1.2 System Software and Machine Architecture 1.3 The Simplified Instructional

More information

From Code to Program: CALL Con'nued (Linking, and Loading)

From Code to Program: CALL Con'nued (Linking, and Loading) ecture 13 Computer Science 61C Spring 2017 February 15th, 2017 From Code to Program: CALL Con'nued (Linking, and Loading) 1 Administrivia We know it still sucks but: Waitlist students: Please be patient.

More information

CS370: Operating Systems [Spring 2017] Dept. Of Computer Science, Colorado State University

CS370: Operating Systems [Spring 2017] Dept. Of Computer Science, Colorado State University Frequently asked questions from the previous class survey CS 370: OPERATING SYSTEMS [MEMORY MANAGEMENT] Matrices in Banker s algorithm Max, need, allocated Shrideep Pallickara Computer Science Colorado

More information

Background. Contiguous Memory Allocation

Background. Contiguous Memory Allocation Operating System Lecture 8 2017.5.9 Chapter 8 (Main Memory) Background Swapping Contiguous Memory Allocation Segmentation - Paging Memory Management Selection of a memory-management method for a specific

More information

File Systems. OS Overview I/O. Swap. Management. Operations CPU. Hard Drive. Management. Memory. Hard Drive. CSI3131 Topics. Structure.

File Systems. OS Overview I/O. Swap. Management. Operations CPU. Hard Drive. Management. Memory. Hard Drive. CSI3131 Topics. Structure. File Systems I/O Management Hard Drive Management Virtual Memory Swap Memory Management Storage and I/O Introduction CSI3131 Topics Process Management Computing Systems Memory CPU Peripherals Processes

More information

Chapter 2: Operating-System Structures. Chapter 2: Operating-System Structures. Objectives. Operating System Services

Chapter 2: Operating-System Structures. Chapter 2: Operating-System Structures. Objectives. Operating System Services Chapter 2: Operating-System Structures Chapter 2: Operating-System Structures Operating System Services User Operating System Interface System Calls Types of System Calls System Programs Operating System

More information

CIT 595 Spring System Software: Programming Tools. Assembly Process Example: First Pass. Assembly Process Example: Second Pass.

CIT 595 Spring System Software: Programming Tools. Assembly Process Example: First Pass. Assembly Process Example: Second Pass. System Software: Programming Tools Programming tools carry out the mechanics of software creation within the confines of the operating system and hardware environment Linkers & Loaders CIT 595 Spring 2010

More information

Chapter 1. Introduction

Chapter 1. Introduction Chapter 1 Introduction This Chapter gives you System Software & Machine Architecture The Simplified Instructional Computer SIC and SIC/XE Traditional (CISC) Machines - Complex Instruction Set Computers

More information

Chapter 1 Background. Professor Gwan-Hwan Hwang Dept. Computer Science and Information Engineering National Taiwan Normal University

Chapter 1 Background. Professor Gwan-Hwan Hwang Dept. Computer Science and Information Engineering National Taiwan Normal University Chapter 1 Background Professor Gwan-Hwan Hwang Dept. Computer Science and Information Engineering National Taiwan Normal University 9/17/2009 1 Outlines 1.1 Introduction 1.2 System Software and Machine

More information

PESIT SOUTHCAMPUS 10CS52: SYSTEM SOFTWARE QUESTION BANK

PESIT SOUTHCAMPUS 10CS52: SYSTEM SOFTWARE QUESTION BANK CS52: SYSTEM SOFTWARE QUESTION BANK Chapter1: MACHINE ARCHITECTURE OBJECTIVE: Main Objective is to Know about the system software and architecture of Various Machines Like SIC, SIC/XE and Programming examples

More information

Operating-System Structures

Operating-System Structures Operating-System Structures System Components Operating System Services System Calls System Programs System Structure System Design and Implementation System Generation 1 Common System Components Process

More information

Compiler, Assembler, and Linker

Compiler, Assembler, and Linker Compiler, Assembler, and Linker Minsoo Ryu Department of Computer Science and Engineering Hanyang University msryu@hanyang.ac.kr What is a Compilation? Preprocessor Compiler Assembler Linker Loader Contents

More information

12: Memory Management

12: Memory Management 12: Memory Management Mark Handley Address Binding Program goes through multiple steps from compilation to execution. At some stage, addresses in the program must be bound to physical memory addresses:

More information

Memory Management (1) Memory Management

Memory Management (1) Memory Management EECS 3221 Operating System Fundamentals No.8 Memory Management (1) Prof. Hui Jiang Dept of Electrical Engineering and Computer Science, York University Memory Management A program usually resides on a

More information

Memory Management (1) Memory Management. CPU vs. memory. No.8. Prof. Hui Jiang Dept of Electrical Engineering and Computer Science, York University

Memory Management (1) Memory Management. CPU vs. memory. No.8. Prof. Hui Jiang Dept of Electrical Engineering and Computer Science, York University EECS 3221 Operating System Fundamentals No.8 Memory Management (1) Prof. Hui Jiang Dept of Electrical Engineering and Computer Science, York University Memory Management A program usually resides on a

More information

Gechstudentszone.wordpress.com

Gechstudentszone.wordpress.com UNIT - 1 MACHINE ARCHITECTURE 11 Introduction: The Software is set of instructions or programs written to carry out certain task on digital computers It is classified into system software and application

More information

Chapter 8: Memory- Management Strategies. Operating System Concepts 9 th Edition

Chapter 8: Memory- Management Strategies. Operating System Concepts 9 th Edition Chapter 8: Memory- Management Strategies Operating System Concepts 9 th Edition Silberschatz, Galvin and Gagne 2013 Chapter 8: Memory Management Strategies Background Swapping Contiguous Memory Allocation

More information

Chapter 8: Memory- Management Strategies

Chapter 8: Memory- Management Strategies Chapter 8: Memory Management Strategies Chapter 8: Memory- Management Strategies Background Swapping Contiguous Memory Allocation Segmentation Paging Structure of the Page Table Example: The Intel 32 and

More information

Computer Hardware and System Software Concepts

Computer Hardware and System Software Concepts Computer Hardware and System Software Concepts Introduction to concepts of System Software/Operating System Welcome to this course on Computer Hardware and System Software Concepts 1 RoadMap Introduction

More information

Outlook. Background Swapping Contiguous Memory Allocation Paging Structure of the Page Table Segmentation Example: The Intel Pentium

Outlook. Background Swapping Contiguous Memory Allocation Paging Structure of the Page Table Segmentation Example: The Intel Pentium Main Memory Outlook Background Swapping Contiguous Memory Allocation Paging Structure of the Page Table Segmentation Example: The Intel Pentium 2 Backgound Background So far we considered how to share

More information