0% found this document useful (0 votes)
16 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
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
16 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
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