ASET
Amity School of Engineering
B. Tech. (IT/CSE), VI Semester
System Programming
Bhagyashree Naruka
Software
ASET
Software is a collection of computer programs and related
data that provide the instructions for telling a computer
what to do and how to do it.
In other words, software is a conceptual entity which is a
set of computer programs, procedures, and associated
documentation concerned with the operation of a data
processing system.
Types of software
ASET
Software
Application software usually used by end-user
It is concerned with the solution of some problem, using the
computer as a tool, instead of how computers actually work.
System software
System software consists of a variety of programs that
support the operation of a computer (ex: text editor,
compiler, debugger)
One characteristic in which most system software differ
from application software is machine dependency
A system software programmer must know the target
machine structure
Abstract View of System
Components
ASET
Foundation of System
Programming
ASET
People
Application Programming
Compilers
Loader
I/O Program
Assemblers
Text editors
File System
Scheduler
Macro
Processors
Debugging aids
Libraries
Searching and
sorting
Memory
Mgmt
Device
Mgmt
Basic Features and Design
Options
ASET
Fundamental features
Basic functions and characteristics should remain
essentially the same, regardless of what machine is being
used.
Major design options
There is no single right way of doing things; a software
designer needs to be aware of the available options in order
to make intelligent decisions
System Software
and Machine Architecture
Machine dependent system software
System programs are to support the operation and use of the
target computer.
The difference between different machine
Machine code
Instruction formats
Addressing mode
Registers
Machine independent system software
General design and logic is basically the same:
Code optimization
General design and logic of an assembler
ASET
System Software
The system software includes
Assembler
Linker
Loader
Macro processor
Text editor
Compiler
Operating system
Debugging system
(optional) Database Management System
ASET
Systems software can be
classified in two groups
1.- Software to create a program development environment
Text editor
Compiler
Assembler
Linker
Debugger(low-level)
2.- Software to create a run-time environment
Operating system
Loader
Dynamic Linker
Program libraries
ASET
Systems Software: Program
Development Environment
ASET
Text editor:
Software that permits the creation and editing of
text (i.e. application programs).
Compiler:
Translates programs written in a high level
language to object code or machine code.
Assembler:
Translates programs written in assembly language to
object code or machine code.
Static Linker: Combines and resolves references between object
programs and creates the executable code.
Debugger
(low-level)
It is used to debug executable programs and their
related object code and source program.
Systems Software: Run-Time
Environment
ASET
Loader: Loads an executable code and starts its execution
Libraries:
Precompiled programs the creates a set of functions for use by
other programs.
Dynamic Linker:
Loads and links shared libraries at run-time
Operating system:
An event driven program that make an abstraction of the computer
system. The operating system handles all resources efficiently,
creates an environment for application programs to run, and creates
a friendly interface between the user and the computer system.
Compile time
ASET
Source
Program
Compiler/
assembler
Object
Module
Other Object
Modules
Link Editor
(Linker)
Load time
Executable
File
System
Library
Loader
Dynamically
Loaded System
Library
Execution time
Running
Program
Computer hardware + OS