Chapter - 1 Introduction
Chapter - 1 Introduction
Pithawala college of
Engineering & Technology
Chapter -1
Overview of System
Software
Prepared by
Dr. Vishruti Desai
Assistant Professor,
COED,CKPCET,Surat
Reference Book :
System Programming
Srimanta Pal
Contents
❏ Introduction,
❏ Software
❏ Software Hierarchy
❏ Systems Programming
❏ Machine Structure
❏ Interfaces
❏ Address Space
❏ Computer Languages
❏ Tools
❏ Life Cycle of a Source Program
❏ Different Views on the Meaning of a Program
❏ System Software Development
❏ Recent Trends in Software
❏ Development, Levels of System Software
2
Introduction
● Computer system : Two subsystems
○ Hardware subsystem
○ Software subsystem
● Hardware subsystem:
○ Physically connected components, such as machine itself and its
peripherals.
● Software subsystem:
○ Provides interaction amongst components of computer or
between computers.
3
Introduction
● Application software:
○ Communication mechanism used to perform task for users.
● System software:
○ Mechanism used to operate computer hardware.
System Programming 4
Software
● A computer program or a set of computer programs.
● Application software
○ A mechanism used to solve task using computer and hence focuses on
the development of application.
● System software
○ A collection of system programs related for development and operation of
computer system.
○ Helps users to think in terms of problems and their solutions and not in
terms of hardware.
System Programming 5
Software Hierarchy
System Programming 6
Software Hierarchy
Operating System
System Programming 7
System Software
System Programming 8
System Software
● Each program in system software is known as system
program.
● System programming :
System Programming 9
System Software
System Programming 10
System Software : Functionalities
● User Interface:
○ Accepts users’ commands using services from OS
● Application Programs:
○ Implements the user’s application or assist in development of a program.
● Operating System:
○ Controls operation of a computer and provides a set of services for executing
programs and using resources of the computer.
System Programming 11
System Software
● Goals of system software
○ User Convenience :
■ Provide convenient methods of using a computer
system.
○ Efficient Use:
■ Ensure efficient use of computer resources.
○ Non-interference:
■ Prevent interference in the activities of its users.
System Programming 12
Views of system software
▪ User-Centric View
▪ System-Centric View
System Programming 13
Views of system software
● User Centric view:
○ It includes system programs that provide user convenience by
permitting a user to specify her computational needs in a
manner of her own choice.
■ System programs in OS
System Programming 14
Views of system software
System Programming 15
Views of system software
● System Centric view:
○ It includes system programs that provide effectiveness in the
simultaneous servicing of many users’ computational needs
by interleaving servicing of many programs and ensuring non
-interference.
System Programming 16
Views of system software
System Programming 17
System Programming
● It is a programming technique for design and implementation
of system programs or system software.
● System programs are different from general application
programs used for general users.
● System programs helps execute the user’s programs on a
computer system.
● System analysis and design tools and techniques are used to
develop application software as well as system software.
● System software deals with the operation of computer itself.
● It is directly related to the structure of the machine.
System Programming 18
System Programming
● Some system software are
○ Assembler : Translate assembly program into machine code using
instruction format, operation codes, addressing modes etc. of
computer itself.
○ Loader: It places programs into primary memory and prepares them for
execution.
○ Linker: It is a program that links the user’s program with other programs or
libraries and forms a single executable module (program).
System Programming 19
System Programming
● Some system software are (Cont..)
○ Operating System : It creates an operating environment for the user
to use the computer’s hardware and software resources.
System Programming 20
System Programming
● Some system software are (Cont..)
○ Communication Software: a set of programs that runs on
computers and allows the computer to communicate with the
other computers via modem, satellite or phone lines etc.
System Programming 21
Machine Structure
● John von Neumann (1903-1957) – Mathematician proposed a
general structure for machine.
● Computer
○ A collection of interconnected units such as CPU, memory, I/O,
counter(IC)
System○Programming
General purpose registers (GPR) 22
Interfaces
● Provides mechanism for communication between (1)
computer hardware and users. (2) Computer H/W and
System Software
● User’s Interface
computer to computer.
I/O Execute
Controllers Packages
23
Interfaces
● System’s Interface
System Programming 24
Address Space
● Each byte of physical memory has an address.
● Memory Address is expressed as integer value.
● Address Space: The range (upper-lower limit) of memory
locations where all addresses (integers) lie.
● Physical address spaces: related to physical memory.
● Logical address spaces: abstraction of machine’s physical
space.
● The memory references within logical address spaces are
specif ie d by programmer either directly through machine
language or indirectly through language processor.
System Programming 25
Address Space
● Table 3.1
System Programming 26
Addressing Schemes
● Absolute Addressing
○ The code is loaded in the primary memory at a specif ie d location in
the program.
○ During loading of programs, the contents of memory are overwritten.
● Relative Addressing
○ The code can be loaded at any available memory space.
○ Address-dependent part of the code - recalculated - based on starting
address
○ Zero is maintained at the starting location in program.
○ The translator marks some of these locations and these marks are
used by loader when loading into memory for execution.
System Programming 27
Memory map
● Memory Map is done based on the location of the program.
System Programming 28
Computer Language
● C om pu t e r ca n u n de r st a n d pr ogr a m s w r i t t e n u si n g
programming language.
● Program is an interface between computer hardware and the
programming language.
● Programming language is different from natural language.
● Natural languages are context sensitive i.e. an instruction
may have several meanings depending upon the context,
situation or environment.
● Programming languages are context insensitive, i.e. meaning
of each statement remains same and does not affected by
environment or context.
System Programming 29
Computer Language
System Programming 30
Computer Language
● Machine-level Language
○ Fundamental level of communication between programmer and the
computer.
○ Each instruction is in terms of binary machine language code of a
particular computer.
○ Difficult to write a program.
● Mnemonic-level Language
○ Similar to machine-level language.
● High-level Language
○ A machine-independent language.
System Programming 32
Tools
● Text Editor
○ A program that allows the user to write or
modify the user’s text.
● Debugging Aids
○ Processing of a program till the execution
begins is beyond the scope of the user.
33
Life Cycle of a source program
● A source program is written using either assembly language or
high level language.
● Fig. 3.14
System Programming 34
Life Cycle of a source program
System Programming 35
Different views on the meaning of a
program
● The output of a program translator can have different views:
37
Recent Trends in Software
Development
❏ Algorithmic or Procedure Oriented
❏ Operator-operand model of computation with
efficient use of computer resources
❏ Object Oriented
❏ Complexity and flexible increase
❏ Message-oriented
❏ Service Oriented
❏ Piece of software to be loosely coupled
❏ Dynamically bound
❏ Interaction across heterogeneous platforms
38
Levels of system software
● System software is a translator.
● Categories of translator:
○ High-level translator
○ Low-level translator
○ Lowest-level translator
System Programming 39
Levels of system software
● Source program (SP) – written in high level programming language or
assembly language.
System Programming 40
Levels of system software
● The Linker translates object module to executable module for the
Loader.
System Programming 41
Levels of system software
● When we execute the translated object module produced for (OS,
HW) using (OS t , HW t ), then we need another low-level translator
known as Object Code Translator OCTt.
● Task of OCT :
System Programming 42
Levels of system software
○ Fig.3.17
System Programming 43
Levels of system software
● High-level Translator :
○ In this level, the task of system software is to translate high-level
programs to low-level program (in binary/machine level, mnemonic
language / assembly language / intermediate language etc.)
○ Example : Compiler
● Low-level Translator:
○ In this level, the task of system software is to translate low-level
programs (in binary/machine level, mnemonic language / assembly
language / intermediate language etc.) to some other low-level program
(binary/machine language).
○ Example : Assembler, Loader, Linker, Object code translator
System Programming 44
Levels of system software
● Lowest-level Translator :
System Programming 45
46