Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 65

CS303

SYSTEM SOFTWARE
Module I
Introduction

• Computer Systems Consist of


– Hardware
– Software
– Data
– User
• Software consists of
– System Softwares
– Application Softwares
• System Software includes
– Operating systems
• Command line interface
– UNIX 、 DOS
• Graphical User interface
– MacOS 、 Windows
• System Software includes
– Language Translators
• Assembler
• Compiler
• Interpreter
• Macro Processor
• Language Translation Flow

Problem
Definition Program Coding Compile

Object Execution file


Linker
File *.exe

*.OBJ
Library
– Service Programs
• Loader and Linker
• Text Editor
• Debugger
System Software Vs. Application Software

◦ Applications : focus on the particular


application—machine independent
◦ System Software : intend to support computer
operations and uses—machine dependent
Linker
• Performs the process of linking.
• Also called link editors
Linker helps to link a object modules of program into a
single object file.
Linking is process of collecting and maintaining piece of
code and data into a single file.
It takes object modules from assembler as input and forms
an executable file as output for loader.
Linking is of two types:
1. Static Linking
It is performed during the compilation of source program.
Linking is performed before execution in static linking.
2. Dynamic linking – Dynamic linking is performed
during the run time. 
Loader
Loader is the program which loads the executable file
from the disk into the primary memory for execution.
It allocates the memory space to the executable module in
main memory and then transfers control to the beginning
instruction of the program .
Macro Processor
A Macro instruction is the notational convenience for
the programmer. For every occurrence of macro the
macro block of statements gets expanded in the main
source code.
Thus Macro instructions makes writing code more
convenient.
Features of Macro Processor:
Macro represents a group of commonly used statements in
the source programming language.
Macro Processor replace each macro instruction with the
corresponding group of source language statements.
 Text editor
A text editor is a tool that allows a user to create and
revise documents in a computer.
Types of Text Editors
Depending on how editing is performed, and the type of
output generated, editors can be classified as:
Line Editors – During creation lines of text are recognised
and delimited by end-of-line markers, and during
subsequent revision, the line must be explicitly specified
by line number or by some pattern context.
eg. edlin editor in early MS-DOS systems.
Stream Editors – It is similar to line editor, but the entire
text is treated as a single stream of characters.
Hence the location for revision cannot be specified using
line numbers. Locations for revision are either specified
by explicit positioning or by using pattern context.
eg. sed in Unix/Linux.
Line editors and stream editors are suitable for text-only
documents.
Screen Editors - This allow the document to be viewed
and operated upon as a two dimensional plane, of which
a portion may be displayed at a time. Any portion may be
specified for display and location for revision can be
specified anywhere within the displayed portion.
eg. vi, emacs, etc.
Word Processors - Provides additional features to basic
screen editors. Usually support non-textual contents and
choice of fonts, style, etc.
Structure Editors - These are editors for specific types
of documents, so that the editor recognises the
structure/syntax of the document being prepared and
helps in maintaining that structure/syntax.
Salient Aspects of Text Editor
A text editor cover the following aspects related to
document creation, storage and revision –
•Interactive user interface
•Appropriate format for storing the document in file in
secondary storage
•Efficient transfer of information between the user
interface and the file in secondary storage.
Debugger
A debugger program allows the user to view another
program line by line. This allows to identify incorrect
code and find out how a program flows.
The debugger lets the user see how their program is
viewed by the computer.
A debugger is very useful to find semantic errors in the
program.
Features of a Debugger Program
Debugger programs offer basic features such as symbol
resolver, query processor, expression interpreter etc. There
are also other features available such as running a program
step by step, stopping the program to see its current state,
tracking the variable values etc. Some debugger programs
can also modify a program while it is running.
There is a feature known as reverse debugging in some
debugger programs. It allows the users to view a program’s
execution backwards in time.
Basic Operations Supported by a Debugger
A debugger provides an interactive interface to the
programmer to control the execution of the program and
observe the proceedings.
The program (exe file) to be debugged is provided as an
input to the debugger.
The basic operations supported by a debugger are:
Breakpoints - Setting breakpoints at various positions
in the program. The breakpoints are points in the
program at which the programmer wishes to suspend
normal execution of the program and perform other
tasks.
Examining values of different memory locations - When
the execution of a program is suspended, the contents of
specified memory locations can be examined.
Examining the contents of the program stack - The
contents of the program stack reveals information related
to the function call sequence that is active at that moment.
Depositing values in different memory locations - While
the execution of the debugged program is not underway,
the programmer can deposit any value in the memory
locations corresponding to the program variables,
parameters to subroutines, and processor registers.
Testing assertions - The programmer may specify
relations involving program values, that must hold at
certain positions in the program during execution. eg.,
after an assignment of the form a = b - c , b must be
larger than a (provided c is positive).
Detecting conditions - Suspend execution of the
program whenever any user defined condition involving
the program variables and/or parameters is met.
Device Driver
Device Driver refers to a software program which
controls a specific hardware device that enables different
hardware devices for communication with the
computer’s Operating System.
A device driver communicates with the computer
hardware by computer bus connected to the hardware.
Device Drivers are essential for a computer system to
work properly because without device driver the
particular hardware fails to work
Operating Systems Basic Concepts
An Operating system is basically a intermediary agent
between the user and the computer hardware.
•Manages the computer’s resources (hardware, software)
•It’s a resource allocator.
•It is also used to control programs to prevent errors and
improper computer use.
•It is interrupt driven.
Functions of Operating system
 Operating system performs three functions:
Convenience: Makes a computer more convenient to use.
Efficiency: Allows the computer system resources to be
used in an efficient manner.
Ability to Evolve: An OS should be constructed in such a
way as to permit the effective development, testing and
introduction of new system functions at the same time
without interfering with service.
User Interface – The part of the OS that you interface
with.
Kernel – The core of the OS. Interacts with the BIOS
(at one end), and the UI (at the other end).
File Management System – Organizes and manages
files.

The Three Elements of an OS


Multiuser – Two or more users work with the
computer at the same time
Multitasking – Two or more processes running at the
same time.
Multithreading – Two or more parts of the same
process running at the same time.
Some of the important functions of an operating System
are:
•Memory Management
•Processor Management
•Device Management
•File Management
Memory Management
Memory management refers to management of Primary
Memory or Main Memory.
For a program to be executed, it must in the main
memory.
An Operating System does the following activities for
memory management −
•Keeps tracks of primary memory, i.e., what part of it are in
use by whom, what part are not in use.
•In multiprogramming, the OS decides which process will
get memory when and how much.
•Allocates the memory when a process requests it to do so.
•De-allocates the memory when a process no longer needs
it or has been terminated.
Processor Management
In multiprogramming environment, the OS decides
which process gets the processor when and for how
much time. This function is called process scheduling.
An Operating System does the following activities for
processor management −
•Keeps tracks of processor and status of process. The
program responsible for this task is known as traffic
controller.
•Allocates the processor (CPU) to a process.
•De-allocates processor when a process is no longer
required.
Device Management
An Operating System manages device communication via
their respective drivers. It does the following activities for
device management −
•Keeps tracks of all devices. Program responsible for this
task is known as the I/O controller.
•Decides which process gets the device when and for how
much time.
•Allocates the device in the efficient way.
•De-allocates devices.
File Management
A file system is normally organized into directories for
easy navigation and usage. These directories may contain
files and other directions.
An Operating System does the following activities for file
management −
•Keeps track of information, location, uses, status etc.
The collective facilities are often known as file system.
•Decides who gets the resources.
•Allocates the resources.
•De-allocates the resources.
•Other Important Activities
Following are some of the important activities that an
Operating System performs −

Security − By means of password and similar other


techniques, it prevents unauthorized access to programs
and data.
Control over system performance − Recording delays
between request for a service and response from the
system.
Job accounting − Keeping track of time and resources
used by various jobs and users.
Error detecting aids − Production of dumps, traces,
error messages, and other debugging and error detecting
aids.
Coordination between other softwares and users −
Coordination and assignment of compilers, interpreters,
assemblers and other software to the various users of the
computer systems.
Types of Operating System –
Batch Operating System- Sequence of jobs in a program
on a computer without manual interventions.
Time sharing operating System- allows many users to
share the computer resources.(Max utilization of the
resources).
Distributed operating System- Manages a group of
different computers and make appear to be a single
computer.
Network operating system- computers running in
different operating system can participate in common
network (It is used for security purpose).
Real time operating system – meant applications to fix
the deadlines.
Examples of Operating System are –
Windows (GUI based, PC)
GNU/Linux (Personal, Workstations)
macOS (Macintosh), used for Apple’s personal computers
and work stations (MacBook, iMac).
Android (Google’s Operating System for
smartphones/tablets/smartwatches)
iOS (Apple’s OS for iPhone, iPad and iPod Touch)

You might also like