C.K.
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.
○ Creates a virtual environment that represent a user with a simple,
easy-to-use set of computational services.
○ It helps users to think in terms of problems and their solutions and
not in terms of 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.
○ Creates a virtual environment that represent a user with a simple, easy-to-
use set of computational services.
○ Helps users to think in terms of problems and their solutions and not in
terms of hardware.
System Programming 5
Software Hierarchy
● A computer and software have a series of hierarchy
levels :
● Application Programs
○ High Level language programs and compilers/interpreters
■ Operating System
● Assembly language programs and assemblers
○ Machine language instruction
System Programming 6
Software Hierarchy
Highest Level Application Programs
High level Languages and Compilers
Operating System
Assembly Language Programs /
Assemblers
Lowest Level Machine Language Programs
System Programming 7
System Software
○ A collection of programs that bridge the gap between the level at
which users wish to interact with the computer and the level at which
the computer is capable of operating.
○ It forms a software layer that acts as an intermediary between the
user and the computer.
○ It translates the users programs into the language understandable by
machine.
○ It properly manages resources of computer and enables computer
to handle multiple users in system.
System Programming 8
System Software
● Each program in system software is known as system
program.
● System program performs various tasks – editing a
program, compiling a source program, executing a program,
linking it with other program etc.
● System programming :
○ describes a collection of techniques used in the design
of system programs.
System Programming 9
System Software
System Programming 10
System Software : Functionalities
● User Interface:
○ Accepts users’ commands using services from OS
○ Initiates execution of one or more programs.
● 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.
○ Such programs also allows users to work with several
programs to accomplish a complex task.
○ It can be taken as vertical slice of the view in figure.
○ It contains two kinds of system programs
■ Language Processor
■ System programs in OS
System Programming 14
Views of system software
● User Centric view (cont..):
○ Language processor translates source program into a
program form that can be understandable by machine.
○ System program in OS works as a mediator between
source program and computer’s hardware. It allocates
resources to source program.
○ Language Processor – Compiler, Interpreter, Assembler,
linker, loaders etc.
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.
○ These programs also provide facilities for interleaving of
users’ requests in a multi-user software.
○ It offers effective utilization of a computer system.
○ It spans the horizontal dimension in the view of system
software.
System Programming 16
Views of system software
● System Centric view (Cont..):
○ System programs in this view provide user convenience by
means of
■ Ef ficient allocation of resources to programs and interleaving their
execution.
■ Implementing security and protection measures.
■ Resource sharing with resource partitioning or resource scheduling.
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).
○ Compiler : It translates a high level language program into machine
language code or some intermediate code with the help of machine
structures such a registers and machine instruction.
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.
○ Editors : It is used to edit (insert/delete/move/copy) a program of
data (text or graphics) file.
○ Interpreter: a run-time compiler that executes a source program line
by line.
○ Emulator: It allows one computer to perform the functions of or
executes programs designed for other types of computers.
○ Simulator: It is used as a tool to st udy comp ut ers and t heir
programming instructions.
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.
● Most operations of system software are machine dependent.
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,
Processor, channels,other CPUs etc.
● CPU has set of interconnected components
○ Instruction Interpreter (II)
○ Location Counter (LC), Program Counter (PC), or Instruction
counter(IC)
○ Instruction register (IR),
○ Other working registers (WR),
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
○ Basic structure of computer remains same though hardware varies from
computer to computer.
○ Users are mostly interested in execution of programs.
○ System software offers interface between user and hardware.
System Software
Instructio Compile
n Interpre Programs
ter
Computer
System Storage
I/O Execute
Controllers Packages
23
Interfaces
● System’s Interface
○ Hardware: Physical component,
○ Software: Logical component
○ System interface – a mechanism for interaction between physical and
logical components that enables them to communicate with each other.
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.
● When program has already loaded into memory, (i.e. codes
are physically loaded into memory), then instruction can be
specif ie d by physical location and such address is known as
absolute address of the program.
● W he n progra m i s on se conda r y st ora ge de v i ce , t he
instruction can be specif ie d relative to the beginning of the
program and such address is known as relative address of
instruction or data.
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.
○ Diffe re nce is that the 0-1 se que nce in machine language is
represented by a mnemonic code.
○ This helps programmer in coding machine-level programs.
○ Process of translating programs from mnemonic language to
Systemmachine
Programming
language is simple. 31
Computer Language
● Assembly-level Language
○ Improved version of mnemonic-level language.
○ Physical allocation of memory and control of statements are not
done by programmer and hence programming will be easier than
machine-level or mnemonic-level language.
● High-level Language
○ A machine-independent language.
○ Programmer does not have to remember machine architecture while
coding.
○ Executable version of program is obtained by the compiler for target
machine.
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.
● A source program is a text f il e and does not carry any extra
information to computer until it passes through a process.
● Such process is known as life cycle of a source program.
● 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:
● An assembler views a program as an object code.
● A programmer views a program as an abstract model.
● The hardware views the program as machine code.
● A linker views the object programs as executable code.
● A loader views an executable program in memory for execution.
System Programming 36
System Software Development
● Depends on computer hardware and skill of
SS analyst
● Cost :
○ Factors
■ work force
■ hardware cost with some overheads
■ hardware cost de cre ase s and soft ware cost
increases
● due to development of technology
● example : design of complex fast algo
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.
● SP - High Level Language
○A high level language (Language) program is translated by
Compiler into assembly-language program (assembly-language)
or an object module.
● SP - Assembly Level Language
○ An assembly language program is translated by Assembler into
object program for an environment where
■ Operating System - OS, Machine - HW.
System Programming 40
Levels of system software
● The Linker translates object module to executable module for the
Loader.
● The Loader loads the executable code to primary memory of
computer HW via OS.
● The computer then generates the electrical signal that operates
necessary devices and decodes.
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 :
○ OCT t translates object module for (OS, HW) to another object
module for (OSt, HWt).
○ This new object module is transformed to an executable via loader
Loaderi and
○ This executable module runs in the machine (OSt, HWt).
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 :
○ In this level, the task of system software is to translate low-level
programs to signal-level through some devices to perform actual
task.
○ Example : Reading/Writing a data from/to a physical device
involves lowest-level translator.
System Programming 45
46