did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

We're the #1 textbook rental company. Let us show you why.

9780198070887

Systems Programming.

by
  • ISBN13:

    9780198070887

  • ISBN10:

    0198070888

  • Format: Paperback
  • Copyright: 2011-10-09
  • Publisher: Oxford University Press
  • Purchase Benefits
  • Free Shipping Icon Free Shipping On Orders Over $35!
    Your order must be $35 or more to qualify for free economy shipping. Bulk sales, PO's, Marketplace items, eBooks and apparel do not qualify for this offer.
  • eCampus.com Logo Get Rewarded for Ordering Your Textbooks! Enroll Now
List Price: $21.28

Summary

The book is divided into five parts. The first chapters explore the scope of the subject and the first part of the book deals with the systems programming backgrounds providing an overview of system software. It then delves into machine structures and library structures. The second part of the book deals with low level translators describing in detail topics such machine and mnemonic languages, assembly languages, macro languages, macro programming, assemblers linkers, loaders, and object code translators. The third and fourth parts of the book deal with compilers and operating systems respectively. The last part of this book deals with different system development tools. Components such as editors and debuggers are discussed in detail in this section along with a chapter on system administration. Programming examples and algorithms have been included in the chapters wherever applicable. Conceptual and analytical chapter-end exercises have been included which judges the students' understanding of the concepts learnt in the chapter. Appendices at the end of the book comprise important instruction sets and conversion tables for ready reference.

Author Biography


Srimanta Pal is currently Associate Professor, Indian Statistical Institute, Calcutta. A Ph D from IIT Kharagpur, he obtained an MBA from Jadavpur University after completing his M Tech from ISI Calcutta. He has a teaching experience of close to two decades in prestigious institutions such as Indian Institute of Management, Calcutta & Jadavpur University. He is the author of Numerical Methods and Mathematical Methods published by Oxford University Press in 2009. He has been a reviewer for a variety of international journals and has contributed numerous papers to national and international journals of repute.

Table of Contents


1.
1.1 Introduction
1.2 Computers and Human Beings
1.3 Concept of Hardware
1.3.1 Human Analogy
1.3.2 Human Body vs Computer Hardware
1.4 Machine Structure
1.5 Some System Software Concepts
1.5.1 Languages
1.5.2 High-level and Low-level Languages
1.5.3 Machine-level and Assembly-level Languages
1.5.4 Loader and Linker
1.5.5 Translator
1.6 Operating Systems
1.6.1 Resource Management
1.6.2 Device Management
1.6.3 Concept of Memory Management
1.6.4 Scheduler
1.6.5 Concurrent Programming
1.7 System Repairing and Debugging Tools
2.
2.1 INTRODUCTION
2.2 SYSTEMSification of Systems
2.2.1 Classification of Systems
2.2.2 System Designtem Design
2.2.3 Method of System Designd Structured System
2.2.4 Properties of a Good and Structured System
2.3 POPULAR TERMS AND CONCEPTSls, and Techniques
2.3.1 Algorithms, Methods, Tools, and Techniquesge
2.3.2 Concepts of Data, Information, and Knowledge
2.4 NUMBER SYSTEMS AND THEIR REPRESENTATION
2.4.1 Number Systemer Systems
2.4.2 Standard Number Systems
2.4.3 BCD (Binary Coded Decimal) Number System
2.4.4 Packed BCDy Coded Decimal) Number System
2.4.5 Fixed-Point Representation
2.4.6 Conversions Representation
2.4.7 General Conversion Methodology
2.4.8 Complement Number Systemsology
2.4.9 Alphanumeric Code Systems
2.4.10 Boolean Operations
2.5 COMPONENTS OF A COMPUTER PROGRAM
2.6 PROGRAMMING TECHNIQUES
2.7 DATA STRUCTURES
2.7.1 Classification of Data Structures
2.7.2 Popular Data Structures
Array
Strings
Linked list
Stack
Queue
Trees
2.7.3 Searching
Sequential search
Binary search
Hashing
Average search performance
2.7.4 Sorting
2.8 DESIGN OF ALGORITHMS
2.9 ANALYSIS OF ALGORITHMS
2.9.1 Time Complexity
2.9.2 Space Complexity
2.9.3 Amortized Analysis
3.
3.1 INTRODUCTION
3.2 SOFTWARE
3.3 SOFTWARE HIERARCHY
3.4 SYSTEMS PROGRAMMINGOGRAMMING
3.5 EMBEDDED SYSTEMS PROGRAMMING
3.6 MACHINE STRUCTURE
3.7 INTERFACES
3.7.1 User's Interface
3.7.2 System's Interface
3.8 ADDRESS SPACE
3.8.1 Addressing Scheme
3.8.2 Memory Map
3.9 COMPUTER LANGUAGES
3.9.1 Machine-level Language
3.9.2 Mnemonic-level Language
3.9.3 Assembly-level Language
3.9.4 High-level Language
3.10 LANGUAGE TRANSLATORS
3.10.1 Compiler
3.10.2 Compiler-Compiler
3.10.3 Cross Compiler
3.10.4 Assembler
3.10.5 Cross Assembler
3.10.6 Interpreter
3.10.7 Emulator
3.10.8 Preprocessor
3.10.9 Macroprocessor
3.11 OPERATING SYSTEMS
3.11.1 Memory Management
3.11.2 Device Management
3.11.3 Processor Management
3.11.4 I/O Programs
3.11.5 File Systems
3.11.6 Searching/Sorting
3.11.7 Scheduler
3.11.8 Libraries
3.12 DISTRIBUTED SYSTEM
3.12.1 Distributed Operating System
3.12.2 Network Operating System
3.13 TOOLS
3.14 DATABASE SYSTEM
3.14.1 Database
3.14.2 Database Management System
3.15 LIFE CYCLE OF A SOURCE PROGRAM
3.16 DIFFERENT VIEWS ON THE MEANING OF A PROGRAM
3.17 SYSTEM SOFTWARE DEVELOPMENT
3.17.1 Cost of System Software
3.18 RECENT TRENDS IN SOFTWARE DEVELOPMENT
3.19 LEVELS OF SYSTEM SOFTWARE
4.
4.1 INTRODUCTION
4.2 JOHN VON NEUMANN MACHINE STRUCTURE
4.2.1 MACHINE STRUCTURE
4.2.2 Working Principle
4.3 A GENERAL APPROACH TO MACHINES
4.4 NUMBERED REGISTER-BASED MACHINE
4.4.1 Memory
4.4.2 Registers
4.4.3 Data Formats
4.4.4 Instructions
4.5 INSTRUCTIONAL COMPUTERS
4.5.1 Simplified Instructional Computer (SIC)
SIC machine structure
SIC/XE machine structure
4.6 ACCUMULATOR-BASED COMPUTERS
4.7 CLASSIFICATION OF COMPUTERS
4.7.1 Instruction-based Classification
4.7.2 Organization-based Classification
4.7.3 Computing-based Classification
4.8 MICROPROCESSOR EVOLUTION
4.9 THE ARCHITECTURE OF A MICROCOMPUTER
4.10 CISC ARCHITECTURE-BASED COMPUTERS
4.10.1 Structure of the Intel 8086/88-based Microcomputer
Memory
Registers
Addressing modes
Instruction formats
4.10.2 Pentium Processor-based Microcomputers
Memory
Registers
Data
Addressing modes
Instruction formats
4.11 RISC ARCHITECTURE-BASED COMPUTER
4.11.1 Structure of an MIPS Computer
Memory
Registers
Datary
Addressing modes
Data
Addressing modes
Instruction formats
5.
5.1 INTRODUCTION
5.2 LIBRARY AND FILE ORGANIZATION
5.3 DESIGN OF A RECORD
5.3.1 Mappings Records to Storage
5.3.2 Realization in Storage
5.3.3 Record Processing
5.3.4 Record Length
Fixed-length and variable-length records
5.3.5 Item Representation
Logically encoded items
Binary encoded items
Fixed items
5.4 SOURCE PROGRAM/DATA FILE STRUCTURE
5.4.1 Source ode Record Formats
5.5 OBJECT CODE
5.5.1 ObjectCode Record Formats
Textual record format in object file
Record format of binary object code file
5.5.2 Efficient Object Code Record Format
Blocked object code
Tagged object code format
5.6 OBJECT FILES
5.6.1 Classification of Object Files
5.6.2 Simplest Object File Formats
5.6.3 Object File Structures
Object module format
A typical object file format
Absolute object file formats
Relocatable object file formats
5.6.4 Object File Structure for Unix Systems
5.7 STANDARD OBJECT FILE STRUCTURES
5.7.1 MS-DOS.COM File Structure
5.7.2 IBM 360 Object File Format
ESD Record Structure
TXT records structure
RLD record structure
END record structure
ESD Record Structure
5.7.3 OMF File Formats
OMF record format
Types of OMF records
Difference between 16-bit and 32-bit OMF record format
OMF file structure
5.7.4 UNIX a.out Object File Structure
a.out header record
Relocatable a.out file format
Relocation entries
Symbols and strings
5.7.5 Common Object File Format
5.7.6 Executable and Linking Format
Classification of unix ELFs
Header record structure
UNIX ELF relocatable object file format
ELF symbol table
5.8 EXECUTABLE FILE
The structure of an executable file
5.9 STANDARD EXECUTABLE FILE STRUCTURES
Unix a.out executable file structure
DOS EXE file structure
Windows NE format
Portable executable (PE) file structure
Special sections for PE file structure
ELF executable file structure
Comparison between COFF, PE, and ELF
5.10 LIBRARIES
5.10.1 Purpose of Libraries
Basic principle
5.10.2 Library Structures
5.10.3 Static Libraries
5.10.4 Shared/Dynamic Link Library (DLL)
Comparison between libraries
5.11 IMAGE FILE STRUCTURES
Image file format
6.
6.1 INTRODUCTION
6.2 MACHINE LANGUAGES
Machine instructions
Machine language program
6.3 MNEMONIC LANGUAGES
Mnemonic instructions
Mnemonic language program
6.4 MACHINE LANGUAGE VS MNEMONIC LANGUAGE
6.5 MACHINE OPERATIONS IN MACHINE LANGUAGES
6.5.1 IBM 360 (Hypothetical) Machine
6.5.2 SIC Machine
6.5.3 CISC Architecture-based Machine
6.5.4 RISC Architecture-based Machine
6.6 PROGRAMMING TECHNIQUES IN MACHINE LANGUAGES
6.6.1 Hypothetical Machine
Assumption 6.1
Basic operations
Approach 1 Straight forward method
Approach 2 Address modification using instruction as data
Assumption 6.2
Approach 3 Address modification using index register
Assumption 6.3
Approach 4 Control using loop
Assumption 6.4
5.6.2 SIC Machine
Assumption 6.5
Basic operations
Approach 1 Straight forward method
Approach 2 Address modification using instruction as data
Assumption 6.6
Approach 3 Address modification using index register
Assumption 6.7
Approach 4 Control using looping
Assumption 6.8
6.6.3 Intel 8086 Based Machine
Assumptions
Assumption 6.9
Basic operations
Approach 1 Straight forward method
Approach 2 Address modification using instruction as data
Assumption 6.10
Approach 3 Address modification using index register
Approach 4 Control using looping
Assumption 6.11
6.6.4 RISC Architecture-Based Machine
Basic operations
Approach 1 Straight forward method
6.7 OBJECT CODE
6.8 ADVANCED CONCEPTS
6.8.1 Virtual Machine (VM)
6.8.2 VIRTUAL MACHINE LANGUAGE (VML)
7.
7.1 INTRODUCTION
7.2 ROLES OF ASSEMBLY LANGUAGE
7.3 BASIS OF ASSEMBLY LANGUAGES
7.4 DISADVANTAGES
7.5 WHY LEARN ASSEMBLY LANGUAGES?
7.6 COMPARISONS
7.6.1 Assembly Languages vs Machine Languages
7.6.2 Assembly-level Languages vs High-level Languages
7.7 ASSEMBLY LANGUAGE APPLICATIONS
7.8 MULTI-PLATFORM ASSEMBLY PROGRAMMING
7.9 ASSEMBLY LANGUAGE FORMATS
7.10 ASSEMBLY STATEMENTS
Directives vs instructions
7.11 BASIC OPERATIONS
7.11.1 Data Movement Operations
7.11.2 Fixed-Point Arithmetic Operations
7.11.3 Logical Operation
7.11.4 Shift-and-Rotate Operations
7.11.5 Decimal Arithmetic Operations
7.11.6 Single-Operand Operations
7.11.7 No-Operand Operations
7.11.8 Program Control Operations
7.11.9 SUPERVISORY OPERATIONS
7.12 IMPORTANCE OF REGISTERS
7.13 MACROS
7.14 STRUCTURED ASSEMBLY LANGUAGE
7.15 ELEMENTS OF ASSEMBLY PROGRAMS
7.16 PROGRAMMING TECHNIQUES
7.16.1 Hypothetical Machine
Constant representation
Machine instructions
Pseudo-instructions
Using symbols
Using literals
Other variants
7.16.2 SIC Machine
Some conventions
Fixed tables
Assembly language program
7.16.3 CISC Machine
7.16.4 RISC-Based Machine
Some conventions
Assembly language program
7.17 ASSEMBLY LANGUAGE SUBROUTINES
7.17.1 Use of Parameters
7.17.2 Type of Parameters
7.17.3 Subroutine Calling Methods
7.17.4 Storage Allocation for Parameters
7.17.5 Recursion
7.17.6 Co-routines
7.17.7 INTERRUPT PROCESSING ROUTINE
8.
8.1 INTRODUCTION
8.2 FEATURES
8.3 THE INTEL 8086 INSTRUCTION SET
8.4 INTERRUPTS
8.4.1 Interrupt Instructions
8.4.2 Common Software Interrupts
8.4.3 Working Procedure for the INT Interrupt
8.5 HOUSEKEEPING OF INTERRUPT CALLS
8.6 PROGRAMMING TECHNIQUES
8.6.1 High-level Language Program
8.6.2 Assembly Language Program
8.6.3 Assembly Program vs FORTRAN Program
8.6.4 Execution
Initial memory map
Assembly program execution
Final memory map
8.7 ASSEMBLY LANGUAGE PROGRAMMING STYLES
8.7.1 Choice of Variable Names
8.7.2 Section Comments
8.7.3 Single Instruction Comments
8.8 LANGUAGE CONSTRUCTS
8.8.1 High-Level Language Constructs
8.8.2 Assembly-level Language Constructs
8.9 HOW TO RUN ASSEMBLY PROGRAMS
8.10 STANDARD ASSEMBLERS
8.11 MICROSOFT ASSEMBLER (MASM)
8.11.1 Assembly and Linking Syntax
8.11.2 Library Inclusion
8.12 BORLAND TURBO ASSEMBLER (TASM)
8.12.1 Assembly Syntax
8.12.2 Linking Syntax
8.13 MICROASM
8.13.1 Working Procedure
8.13.2 Compatibility
8.14 NETWIDE ASSEMBLER (NASM)
8.14.1 Commands
8.15 DOS BATCH FILES FOR TASM AND MASM
8.16 MEMORY MODELS
8.17 PROGRAM ILLUSTRATIONS
8.17.1 Message Printing
8.17.2 Character/String Operations
8.17.3 Arithmetic Operations
8.17.4 Cursor and Screen Manipulations
8.17.5 Conversion
8.17.6 Data Structure
Sorting
Searching
8.17.7 Procedure and Recursive Programming
8.17.8 File Processing
8.17.9 Systems Programming
Program files
Program
Program
Program
8.17.10 Library Creation
Library programming techniques
Creating library modules
8.18 CREATE A LINK LIBRARY
9.
9.1 INTRODUCTION
9.2 BASIC TASKS
9.3 CLASSIFICATION OF ASSEMBLERS
Self-assemblers or resident assemblers
Non-resident assemblers
9.4 WORKING PRINCIPLES
9.5 PROBLEMS IN MANUAL ASSEMBLY
9.6 GENERAL PROBLEMS IN ASSEMBLER
9.7 GENERAL PROCEDURE FOR ASSEMBLER DESIGN
9.8 A SIMPLE ASSEMBLY PROCESS
9.8.1 Algorithm
9.9 ASSEMBLY PROCESS
9.9.1 Basic Format
9.9.2 Feasibility Study of an Assembly Process
Hypothetical machine
SIC machine
CISC machine
9.10 DESIGN ISSUES
9.10.1 Mnemonic Machine Instructions
9.10.2 Pseudo-Instructions
9.10.3 Location Counter and Location Assignment
9.10.4 Control Section and Symbol Table
Advantages
Communication
Facilities
9.10.5 Data Definition and Generation
9.10.6 Program and Program Listing Control
Symbol definition
Rules for classifying symbol/symbolic expressions
9.11?ASSEMBLER FEATURES
9.12?ASSEMBLER DESIGN CRITERIA
Criteria
Implementation
9.13 TYPES OF ASSEMBLERS
9.14 TWO-PASS ASSEMBLERS
9.14.1 Working Principles
9.14.2 Basic Functions
Pass I
Initialization
9.14.3 Design Criteria of Two-Pass Assemblers
9.14.4 A Simple Two-Pass Algorithm
9.14.5 Modified Two-Pass Assembler
9.15 One-and-a-Half-Pass Assemblers
9.15.1. A 112 Pass Algorithm
Assumptions
9.16 ONE-PASS ASSEMBLERS
Forward references
Disadvantages
Advantages
9.16.1 General Approach to a One-Pass Assembler
9.16.2 Practical One-Pass Assemblers
9.17 MULTI-PASS ASSEMBLERS
9.17.1. Three-Pass Algorithm
9.18 ADVANCED ASSEMBLY PROCESS
9.18.1 Grammar of An Assembly Language
9.18.2 Lexical Analysis
9.18.3 Syntax Analysis
9.18.4 Semantic Analysis
9.19 VARIANTS OF ASSEMBLERS
9.19.1 Relocating Assemblers
9.19.2 Meta-Assemblers
9.19.3 Macro-Assemblers
9.19.4 Cross-Assemblers
9.19.5 Disassemblersers
9.19.6 Some Practical Assemblers
9.19.7 OBJECT-ORIENTED ASSEMBLER
10.
10.1 INTRODUCTION
10.2 DEFINITIONS
10.3 ADVANTAGES OF USING A MACRO
10.4 MACRO VS PROCEDURE
10.5 DEVELOPMENT OF MACRO LANGUAGES
10.5.1 Structure of a Macro Definition
10.5.2 Format of a Macro Definition
Type 1 format
Type 2 format
10.5.3 Notations
10.6 LOCAL VARIABLES IN A MACRO
10.7 MACROS WITHOUT PARAMETERS
10.8 CONCEPT OF PARAMETERS IN MACROS
10.9 FORMAL VS ACTUAL PARAMETERS IN MACROS
10.10 CONCATENATION OF MACRO PARAMETERS
10.11 PARAMETER-PASSING MECHANISM IN MACROS
10.11.1 Positional Parameter Passing
10.11.2 Keyword Parameter Passing
10.11.3 Positional vs Keyword Parameter Passing
10.12 CONDITIONS IN MACRO DEFINITIONS
10.13 MACRO CALLS WITHIN MACRO DEFINITIONS
10.13.1 Recursive Macros
10.14 MACRO INSTRUCTIONS DEFINING MACROS
10.15 CASE STUDIESMacros
10.14 MACRO INSTRUCTIONS DEFINING MACROS
10.15 CASE STUDIES
10.15.1 C Macro Language
Features
10.15.2 MASM Macro Language
Macro definition format
Macro operators
Local variable declaration format
Conditional statements in macros
The REPEAT format in macro
The WHILE format in macroWHILE
Relational operators
THE FOR FORMAT IN MACRO
11.
11.1 INTRODUCTION
11.2 FEATURES
11.3 MACRO PROGRAMMING TECHNIQUES
11.3.1. Properties
Format of macro definition
11.3.2 Directives
11.3.3 Macro Operators
11.3.4 Macro Library
11.4 PROGRAM ILLUSTRATIONS
12.
12.1 INTRODUCTION
12.2 FUNCTIONS OF A MACRO PROCESSOR
12.3 BASIC TASKS OF A MACRO PROCESSOR
12.4 DESIGN ISSUES OF MACRO PROCESSORS
12.4.1 Designer's Decisions
12.5 FEATURES
12.5.1 Machine-Independent Features
12.6 MACRO PROCESSOR DESIGN OPTIONS
12.6.1 FORMULATIONependent Features
12.6.2 Pass StructureDESIGN OPTIONS
12.7 TWO-PASS MACRO PROCESSORS
12.7.1 Algorithmcture
12.7.2 Outline of the Algorithm
Pass I Create database
Pass II Process macro calls
12.7.3 Detailed Algorithm
Implementation issues
12.8 ONE-PASS MACRO PROCESSORS
12.8.1 Simple One-Pass Macro Processor
An outline of a simple one-pass algorithm
Implementation issues
12.8.2 One-Pass Nested Macro Processor
One-pass nested macro processor algorithm
12.9 GENERALIZED ONE-PASS MACRO PROCESSORS
12.9.1 Detailed Algorithm
Expanded output
Implementation issues
12.10 APPLICATIONS OF MACRO PROCESSORS
12.11 MACRO COMMAND INTERPRETER
13.
13.1 INTRODUCTION
13.2 PRINCIPLES OF LINKING
13.2.1 The Linking Operation
13.2.2 The Linking Process
13.2.3 Library Linking
13.3 A SIMPLE LINKING PROCESS
13.3.1 Different Linking Functions
Subroutine inkages
13.3.2 Simple Linking Operations
Advantages:
13.4 BASIC LINKING TASKS AND PROCEDURE
13.5 MEMORY MANAGEMENT DURING LINKING
13.5.1 Computation of Memory Locations
13.5.2 Memory Allocation Technique
13.6 SYMBOLS AND SYMBOL RESOLUTION
13.6.1 Symbol Resolution Using Static Libraries
13.7 BINDING
13.7.1 Working Principle of Lazy Binding
13.8 RESOLVING EXTERNAL REFERENCES
13.9 RELOCATION AND CODE MODIFICATION
13.9.1 Types of Relocation
13.9.2 Relocatability of Programs
13.9.3 Relocation Mechanism
13.9.4 Relocation Procedure
13.9.5 Relocating Relative Addresses
13.10 LINKING METHODS
13.11 STATIC LINKING
13.12 DYNAMIC LINKING
13.12.1 Outline
13.12.2 Principles of Dynamic Linking
13.12.3 Methods of Dynamic Linking
Implicit dynamic linking
Explicit dynamic linking
Implicit vs explicit dynamic linking
Static vs. dynamic linking
Task of an address exception handler routine
Dynamic linking of shared libraries
Dynamic linking in windows
13.13 LIBRARY LINKING
13.13.1 Static Library Linking
13.13.2 Dynamic Library Linking
Load-time linking
Run-time linking
13.13.3 Shared/Dynamic Link Library (DLL) Linking
Shared library linking procedure
13.14 OBJECT LINKING AND EMBEDDING (OLE)
13.15 MODULE LINKING
Module scanning
Module types
EXE modules vs dll modules
13.16 DESIGN OF LINKERS
13.16.1 Two-Pass Linkers
Basic philosophy
Working principles
Content of input files
Outline of a two-pass linker
13.16.2 One-Pass Linkers
Philosophy
Outline
13.16.3 Three-Pass Linking
13.16.4 Complexity
13.17 LINKER COMMAND LANGUAGES
13.18 AUTOMATIC LIBRARY SEARCHING
Library searching in static linking
Library searching in dynamic linking
Remote library searching
13.19 SOME POPULAR LINKERS
13.19.1 MS-DOS Linker
Working principle
13.19.2 Linking for Overlays
Working procedure
13.19.3 SunOS Linkers
SunOS link editor
RESOLVE SYMBOLIC REFERENCES
14.
14.1 INTRODUCTION
14.2 PROGRAMS IN MEMORY
14.3 PRINCIPLES OF LOADING OPERATION
14.3.1 Loading Operations
14.3.2 Basic Loading Tasks
14.3.3 Loader Procedure
14.3.4 Loader Features
14.4 LINKERS VS LOADERS
14.5 LOADING SHARED LIBRARIES FROM APPLICATIONS
14.6 DIFFERENT LOADING SCHEMES
14.6.1 Loader Design Options
14.7 SEQUENTIAL AND DIRECT LOADERS
14.8 COMPILE-AND-GO LOADERS
14.9 GENERAL LOADER SCHEMES
14.10 ABSOLUTE LOADERS
Basic philosophy
Working principles
14.10.1 Some Absolute Loaders
Load-and-Go compilers
Bootstrap loaders
Boot loaders
14.11 RELOCATING LOADERS
Basic philosophy
Working principles
Algorithms
14.12 PRACTICAL RELOCATING LOADERS
Binary symbolic subroutine (BSS) loader
Relocating loaders for modern computers
14.13 LINKING LOADERS
14.13.1 Two-Pass Linking Loader
Working principle
Outline of Algorithm
Design of algorithm
14.13.2 One-Pass Linking Loader
Working principle
Outline of algorithm
14.14 RELOCATING LINKING LOADERS
14.14.1 Linkage Editors
Static linkage editor
Dynamic linkage editor
Comparisons
14.15 OVERLAY
Working principle
Static overlay generator
14.15.1 Linking a Program Containing Overlays
14.15.2 Loading a Program Containing Overlays
14.16 BINDER
Working principle
Classification
Core Image binder
Linkage editor
Comparison
14.17 DYNAMIC LOADER
Relocation during binding
Dynamic linking
Working principle
14.18 AUTOMATIC LIBRARY SEARCH
14.19 COMPLEXITY
Time complexity
Space complexity
14.20 SOME POPULAR LOADERS
14.20.1 Boot Loaders
Basic concept of boot loader
The boot sequence on a standard PC
The boot sequence on linux
Modes of operation
Dual mode
14.20.2 Unix Loaders
Using early a.out format
Using NMAGIC Format
Using ZMAGIC Format
QMAGIC Format
14.20.3 Unix Link Editor ld(l)
14.20.4 Loaders: Running a PE Executable
14.20.5 Binary Image Loader
Loading principle
14.21 GRAPHICS LOADERS
15.
15.1 INTRODUCTION
15.2 BINARY CODE TRANSLATORS
15.2.1 Translated Binary Program
15.2.2 Classification
15.2.3 Model for Binary Translation
15.2.4 Types of Binary Translation
Translation of applications by software
Translation of operating systems by software
Translation of operating systems by hardware
15.2.5 Uses of Binary Code Translators
15.2.6 Extended Binary Translation
15.3 OBJECT CODE TRANSLATORS
15.4 TRANSLATION PROCESS
15.4.1 Translation Methods
15.4.2 Passes
15.4.3 Completeness
15.4.4 Drawbacks
15.4.5 Operating System Influences
15.5 HYBRID METHOD
15.5.1 Static-Translation Based Translator
15.5.2 Emulator-Based Translator
Working principle
15.6 APPLICATIONS
16.
CONTENTS
16.1 INTRODUCTION
16.2 PROGRAMMING LANGUAGES
16.2.1 Grammar
16.3 COMPILERS
16.3.1 Phases of a Compiler
16.3.2 Implementation
16.4 VARIANT OF COMPILERSer
17.
17.1 INTRODUCTION
17.2 NATURE
17.3 NEEDS
17.4 STRUCTURED LANGUAGE
17.5 FEATURES
17.6 REGULAR EXPRESSIONS
17.7 FINITE AUTOMATA
17.7.1 Non-deterministic Finite Automata
17.7.2 Deterministic Finite Automata
17.8 GRAMMARS
17.9 CONTEXT-FREE GRAMMARS
17.9.1 Derivations
17.9.2 Parse Trees
17.9.3 Notations
17.9.4 Abbreviations
17.10 AMBIGUOUS AND UNAMBIGUOUS GRAMMARS
17.11 LEFT-RECURSIVE GRAMMAR
17.12 GRAMMAR CLASSES
17.12.1 Venn Diagram for Classes of Grammars
17.13 BNF TO PARSING TABLE
17.13.1 nullable
17.13.2 FIRST Set
17.13.3 FIRST(X) Computation
17.13.4 FOLLOW Set
17.13.5 FOLLOW(X) Computation
17.13.6 ITEM
17.13.7 CLOSURE Set
17.13.8 GOTO Function
17.13.9 First and Last Terminals
17.13.10 Recursion
17.13.11 Left Factoring
17.14 SOME TERMINOLOGY USED IN PARSING
17.15 PARSING TABLE CONSTRUCTION
17.16 PREDICTIVE PARSING TABLE CONSTRUCTION
17.16.1 Construction Principle
17.17 LR PARSING TABLE CONSTRUCTION
17.17.1 Structure of an LR Parsing Table
17.17.2 Construction of LR Parsing Table
17.18 OPERATOR PRECEDENCE GRAMMARS
17.18.1 Computation of Precedence Relations
17.18.2 Operator Precedence Table Construction
17.18.3 Design of Operator Precedence Functions
17.18.4 Computation of Precedence Function
Directed graph method
Boolean matrix methods
17.19 OBJECT-ORIENTED PROGRAMMING LANGUAGES
17.19.1 Object-Oriented Vs Structured Programming
17.19.2 Basic Concepts of Object-Oriented Programming
17.19.3 OOP
17.20 FUNCTIONAL PROGRAMMING LANGUAGES
17.20.1 Types of Functional Programming Languages
18.
18.1 INTRODUCTION
18.2 COMPILATION PROCESS
18.2.1 Scanner
18.2.2 Syntax and Semantic Analysers
18.2.3 Internal Representation Source Program
18.3 OTHER PROGRAMS WITH COMPILERS
18.4 TRANSLATION OF A STATEMENT
18.5 COMPILER CONSTRUCTION TOOLS
18.6 LEXICAL ANALYSIS
18.6.1 Working Principle
18.6.2 Lexical Ambiguity
18.6.3 Problems of Lexical Ambiguity
18.6.4 Complexity of Problem in Lexical Ambiguity
18.6.5 Standard Lexical Generator Tools
18.7 SYNTAX ANALYSIS
18.7.1 Parsers
18.7.2 Classification of Parsing Techniques
18.8 BASIC PARSING TECHNIQUES
18.8.1 Top-Down Parsing
Some problems with top-down parsing
Implementation issues
18.8.2 Bottom-Up Parsing
18.8.3 Shift-Reduce Parsing
Implementation issues
Initialization
Operating principle
Actions
18.8.4 Operator Precedence Parsing
Operator precedence parsing algorithms
Error detection and recovery
Error handling
Implementation
18.8.5 Recursive Descent Parsing
18.8.6 Predictive Parsing
Recursive predictive parser
Nonrecursive predictive parser
18.8.7 LL(1) Parsing
LL(1) grammar
18.8.8 LR Parsing
Model
Driver routine
Properties
18.8.9 Comparative Study of Parsers
18.9 SEMANTIC ANALYSIS
18.9.1 Type Checking
Working principle
18.9.2 Syntax Versus Semantic Analysis
18.9.3 Syntax-Directed Translation
18.10 PARAMETER PASSING
18.10.1 Parameter Passing Techniques
Call-by-value
Call-by-reference
Call-by-reference using pointers
Call-by-copy-restore (also called call-by-value-result)
Call-by-name
18.11 INTERMEDIATE CODE GENERATION
18.11.1 Importance of Intermediate Code
18.11.2 Intermediate Representation
18.11.3 Translation Process
18.11.4 Intermediate Representation Languages
18.12 CODE GENERATION
18.12.1 Simple Code Generator
Working procedure
18.13 CODE OPTIMIZATION
18.13.1 Code Optimization Techniques
18.14 OPTIMIZING COMPILERS
18.14.1 Organization
18.15 SOME POPULAR COMPILERS
19.
19.1 INTRODUCTION
19.2 DESIGN OF COMPILER GENERATORS
19.2.1 Attributed Grammar
Properties
Synthesized and inherited attributes
Well-defined attributed grammar
19.2.2 Working Principle
19.3 POPULAR COMPILER GENERATORS
19.3.1 Scanner Generators
Comparison of scanner generators
19.3.2 Parser Generators
Comparison of parser generators
19.3.3 Compiler Specification Language
19.4 LEX
19.4.1 Working Principle
Input file construction for lex
19.5 YACC
19.5.1 Working Principle
Input file construction for YACC
Semantic actions
Functions
19.6 INSIDE OF LEX AND YACC
19.7 COMPILER DESIGN TOOLBOX
19.7.1 Design of Compiler Using Toolbox
19.7.2 Principles of Compiler Model
19.7.3 Compiler Design Using Lex and Yacc
19.8 UNIVERSAL COMPILER-COMPILERS
19.8.1 Lexical Analysis
19.8.2 Syntax Analysis
19.8.3 Semantic Analysis
19.8.4 Intermediate Code Generation
19.8.5 Code Generation
19.8.6 Design and Implementation
Lexical analysis
Syntax analysis
Semantic analysis
Code generation
20.
20.1 INTRODUCTION
20.2 THE SCOPE OF OPERATING SYSTEMS
20.3 THE FUNCTIONS OF OPERATING SYSTEMS
20.3.1 Memory Management
20.3.2 Process Management
20.3.3 Device Management
20.3.4 Information Management
20.4 MEMORY MANAGEMENT SCHEMES
20.4.1 Single Contiguous Allocation
20.4.2 Partitioned Allocation
Multiprogramming
20.4.3 Relocatable Partitioned Allocation
20.4.4 Paged Allocation
20.4.5 Demand-Paged Allocation
20.4.6 Segmented Allocation
Different components of a segmented allocation
20.4.7 Segmented Paged Allocation
20.5 INTERRUPTS
20.5.1 Interrupt Processing Mechanism
20.5.2 Interrupt System Structure of IBM 360
Channel
Program status word (PSW)
Classes of interrupt
I/O programming
20.5.3 Interrupt System Structure of M6809
Hardware interrupts
Software interrupts
20.6 STRUCTURAL OVERVIEW OF OPERATING SYSTEMS
20.6.1 Monolithic Monitor-based Operating Systems
20.6.2 Process-based Operating Systems
20.6.3 The Characteristics of a Kernel
20.7 STATE TRANSITION OF CONCURRENT PROCESSES
20.7.1 FORK/QUIT/JOIN
20.7.2 Shared Memory Model for Interprocess Communication
20.8 HIGHER-LEVEL SYNCHRONIZING TOOLS
20.8.1 Hoare's Monitor
20.8.2 Co-routines
A simple model for the simulation of concurrent processes using co-routines
20.9 DEADLOCKS
20.10 HANDLING DEADLOCKS
20.10.1 Ignore - The Ostrich Method
20.10.2 Detection and Recovery
Graph reduction method
20.10.3 Deadlock Prevention
20.10.4 Hierarchical Resource Allocation
Restrictions
20.10.5 Deadlock Avoidance
20.10.6 Prevention of Deadlocks
Realizable status
Full sequence
State transition
Solution to the permanent blocking problem
20.11 SCHEDULING
20.11.1 Formal Queuing Systems
20.11.2 Job Scheduler
20.11.3 Policies
20.11.4 Process Scheduling
Functions
Process control block
Policies
20.11.5 Scheduling Algorithms
20.12 DEVICE MANAGEMENT
20.12.1 Disk
Estimating disk capacity
Track organization
Organizing tracks by block
20.12.2 Disk Access
Performance of disk access
Analysis of single user model
Multiuser model
Rotational latency and block transfer time
20.12.3 Devices
20.12.4 Device Management Principles
I/O traffic controller
I/O scheduler
I/O device handlers
20.13?BUFFER ALLOCATION ALGORITHM
20.14?CASE STUDIES
20.14.1?MS-DOS
MS-DOS commands
20.14.2 WINDOWS
The taskbar
Toolbars
Shortcuts
Create a shortcut
Working with multiple windows
Managing documents and folders
Opening the windows explorer
System tools
20.14.3 UNIX
20.14.4 LINUX
21.
21.1 INTRODUCTION
21.2 DOCUMENT EDITOR
21.2.1 Document Editing
21.2.2 The Structure of an Editor
21.2.3 Constraints
21.3 THE DESIGN OF A TEXT EDITOR
21.3.1 Basic Text Operation Algorithms
21.4 SOUND EDITOR
21.4.1 The Working Principle of a Sound Editor
21.5 CASE STUDIES
21.5.1 DOS Built-in Editor
21.5.2 EDLIN
21.5.3 UNIX Editor vi
Change modes
Commahnnd mode to Insert mode
22.
22.1 INTRODUCTION
22.2 TYPES OF ERRORS
22.3 DEBUGGING PROCEDURES
22.4 CLASSIFICATION OF DEBUGGERS
22.5 DYNAMIC/INTERACTIVE DEBUGGER
22.5.1 Features of Breakpoint Debuggers
22.5.2 Working Procedure of a Dynamic Debugger
22.5.3 Implementation of Breakpoint Settings
22.6 DEBUGGING USING HARDWARE
22.7 USE OF DEBUGGER IN UNIX C
23.
23.1 INTRODUCTION
23.2 SYSTEM ADMINISTRATORS
23.2.1 Classification
23.2.2 Tasks
23.3 SYSTEM INSTALLATION
23.3.1 Hardware Installation
23.3.2 Software Installation
Preparation
Installation of operating system
23.4 SYSTEM CONFIGURATION
23.5 ON-GOING PROCESS
23.6 SYSTEM ADMINISTRATION FOR DOS
23.7 SYSTEM ADMINISTRATION FOR WINDOWS
Create a new user account in windows XP
Changes user's account
23.8 SYSTEM ADMINISTRATION FOR UNIX

Supplemental Materials

What is included with this book?

The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.

The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.

Rewards Program