Module 1
Introduction to
System Software
CSC 601.1
Identify the relevance of different system programs.
Introduction
► Software - anything that can be stored
electronically
► Hardware - Storage devices and display devices
► System programs were developed to make
computers better adapted to the needs of their
users.
► Computer System -
1. System software
2. Programming software
3. Application software
System Software
► Consists of variety of pgms that supports
operation of a computer.
► It is computer pgm that provides the
infrastructure over which pgms can operate.
► combination of device drivers, operating system,
utilities , windowing system and servers.
Programming Software
► Usually provides tools to assist a programmer in
writing computer programs and also in software
using different programming languages.
► It includes compilers, debuggers, interpreters,
linkers and text editors.
Application Software
► It is any tool that functions and is operated by
means of a computer and allow end users to
accomplish one or more specific task.
► It includes industrial automation, office suites ,
business softwares, computer games.
Difference between System Software and Application Software
Parameters System Software Application Software
Definition System software is An Application software
mainly focused on the is mainly focused on
efficient management of solving the specific
the computer system. problems using
computer as a tool.
Purpose System program support The main focus is on the
the operation rather than application not on the
any particular computing system.
application.
Machine Machine dependent Machine independent.
Dependency
Programmer System programmer requires Application programmer
Knowledge knowledge about the internal requires detailed
computer architecture. knowledge about high
level language which is
used to develop an
application.
Portability System program becomes Application program
portable using concept of becomes portable using
bootstrapping. concept of cross
compiler
Examples OS, Compiler, Interpreter, Microsoft Access,
Assembler Notepad, Photoshop
System Programs and System Programming –
► System software is actually a collection of programs.
► Each program in this collection is called a system
program.
► It plays a role in effective servicing of user’s
computational needs.
► The system program have some fundamental goals –
1. The program should function correctly under all
conditions.
2. The program should be effective in its computing
environment.
3. The program should be portable.
4. The program should be able to evolve to provide new
functionalities and adapt to new technologies.
► System programming is the set of techniques used to
realize these design goals.
Language Processor –
► Mostly, high-level languages are used to write the
programs, called source code.
► These source codes need to translate into machine
language to be executed because they cannot be
executed directly by the computer.
► Hence, a special translator system, a language
processor, is used to convert source code into machine
language.
Various System Programs–
[System Programming Components] –
1. Assemblers -
• Creates object code by translating assembly
instructions into op-codes
• Assembler is an program that accepts input as
assembly language program and obtain its machine
language equivalent code along with information for
the loader.
► There are three types of a assemblers –
1. Single Pass Assembler – it requires a single pass to
assemble the program into machine code.
1. Two Pass Assembler – it requires two passes to
convert the assembly language program into machine
equivalent code.
1. Multipass Assembler – it requires single or multiple
passes as per the requirement of the assembly
language.
2. Loaders –
• Loading of program in the memory for the purpose
of execution is done by loader .
• A loader is a program that accepts the object
program and prepares these program for execution
by loading then into the memory
► The loader mainly perform four functions –
1. Allocation – to allocate space in the memory for the
program.
1. Linking – links to or more separate object codes.
1. Relocation – modifies the object program by changing
certain instruction so that it can be loaded at an address
different from the location originally specified.
1. Loading – it brings the object program into the memory for
execution.
3. Macro Processor –
• A macro is a fragment of a code which has been
given a name.
• Similar to functions in C programming.
• Set of instructions which are repeated frequently in a
program is a macro.
• We give a name to set of instructions i.e.
macro-name.
• When the name is used, it is replaced by compiler by
the contents of macro.
4. Linker –
• A linker or link editor is a program that takes one or
more objects generated by compiler or assemblers
and combine them into a single executable program.
• Relocation and linking of all object module is done
by linker.
► Various functions performed by linker –
1. Linkers can take objects from a collection called a
library.
2. The linkers also take care of arranging the objects in a
program address space.
3. It performs complex function of linking.
5. Compilers –
• A compiler is a computer program that transforms
source code written in a computer language into
another language.
• The most common reason for having transform
source code is to create an executable program.
► Application of compilers –
1. Machine code generation.
2. Formal convertors
3. Silicon compilation
4. Query interpretation
5. Text formatting
► Phases of compilers–
To minimize the process of development and
understanding, a compiler can be divided into number of
phases.
1. Lexical Analysis.
2. Syntax Analysis.
3. Semantic Analysis.
4. Intermediate Code Generation.
5. Target Code Generation.
6. Code Optimization.
7. Symbol Table Management.
8. Error Handling and Recovery.
6. Interpreters –
• An interpreter translate high level instruction into an
intermediate form.
• Interpreter may be program that either –
1. Execute the source code directly or
2. Translate source code into some efficient
intermediate representation and execute them.
► Difference between interpreter and compiler –
Interpreter Compiler
Translation is line by line Whole program is compiled at
a time.
Slow in comparison to Compiled programs run faster
compiler than interpreted programs.
Good for simple application Good for complex application.
Translation is line by line so We can not change the
we can change the code and program without going back
start again. to original source code.
Eg. JAVA SCRPIT, FORTH Eg. VISAL BASIC, C, C++
7. Device Drivers–
• Device driver is a collection of software files that
help one or more hardware devices to communicate
with the operating system.
• There are device drivers for the CD ROM, printers,
diskettes, mouse, displays and scanners.
► Computer bus is used by the driver to communicate
with the hardware devices to which it is connected.
► Device driver will differ from system to system i.e. they
are hardware and operating system dependent.
► The operating system “calls” the driver and the driver
“drives” the device. When the routine is invoked by the
calling program, the driver issues commands to the
device
► The driver is the link between the operating system and
peripheral device.
8. Operating System –
• An operating system is an interface between
hardware and the user.
• An operating system is responsible for management
and co-ordination of activities and sharing of
resources of computer.
• Basic features of Operating system -
• Program execution
• Interrupt handling
• Memory management
• File management