Chapter 3: Loaders and Linkers
|
|
- Donald Hancock
- 5 years ago
- Views:
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 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 informationUNIT 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 informationPrepared 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 informationLoaders. 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 informationChapter 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 informationChapter 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 informationUNIT 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 information3.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 informationUNIT 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 informationLOADERS 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 informationChapter 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 informationThis 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 informationChapter 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 information1.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 informationChapter 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 informationChapter 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 informationChapter 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 informationChapter 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 informationChapter 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 informationChapter 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 informationChapter 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 informationGechstudentszone.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 information2.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 informationCompile: 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 informationUNIT 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 informationCS2304-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 informationMachine 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 informationChapter 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 informationCSCI341. 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 informationUNIT 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 informationChapter 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 informationAS-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 informationUNIT 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 informationCSI 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 informationMemory 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 informationMain 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 informationCSE 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 informationMODULE 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 informationUNIT 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 informationUnit 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 informationIntroduction 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 informationMemory 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 informationM2 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 informationIntroduction. 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 informationCHAPTER 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 informationLec 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 informationCOS 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 informationChapter 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 informationChapter 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 informationChapter 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 informationAdministrivia. 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 informationWhat 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 informationPart-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 informationLecture 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 informationAssemblers. 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 informationCOS 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 informationSystems 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 informationChapter 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 informationChapter 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 informationChapter 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 informationCS2422 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 informationChapter 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 informationINTERNAL 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 informationCS2422 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 informationModel 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 informationPESIT 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 informationCourse: 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 informationModule 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 informationCHAPTER 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 informationChapter 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 informationChapter 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 informationChapter 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 information8086 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 informationChapter 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 informationFrom 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 informationCS5460/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 informationSubroutine 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 informationAddresses 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 informationMemory 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 informationChapter 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 informationFrom 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 informationCS370: 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 informationBackground. 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 informationFile 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 informationChapter 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 informationCIT 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 informationChapter 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 informationChapter 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 informationPESIT 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 informationOperating-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 informationCompiler, 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 information12: 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 informationMemory 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 informationMemory 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 informationGechstudentszone.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 informationChapter 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 informationChapter 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 informationComputer 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 informationOutlook. 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