0% found this document useful (0 votes)
18 views

Chapter - 1 Introduction

The document provides an overview of system software, including definitions of system software and its goals. It discusses different views of system software including the user-centric view and system-centric view. It also outlines some common types of system software like operating systems, compilers, linkers, and describes techniques used in system programming.

Uploaded by

nityamparesh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
18 views

Chapter - 1 Introduction

The document provides an overview of system software, including definitions of system software and its goals. It discusses different views of system software including the user-centric view and system-centric view. It also outlines some common types of system software like operating systems, compilers, linkers, and describes techniques used in system programming.

Uploaded by

nityamparesh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 46

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

You might also like