System Programming
and
Compiler Construction
(SPCC)
Syllabus
2
Syllabus
3
Syllabus (contd.)
4
Syllabus (contd.)
5
Books
Text Books:
6
Books
Text Books:
J. J Donovan: Systems Programming Tata McGraw Hill Publishing
Company --------- For module 2, 3 and 4
7
Books
Text Books:
J. J Donovan: Systems Programming Tata McGraw Hill Publishing
Company --------- For module 2, 3 and 4
A. V. Aho, R. Shethi, Monica Lam , J.D. Ulman : Compilers -
Principles, Techniques and Tools , Pearson Education , Second
Edition.
------ For modules 5 and 6
8
Books
Text Books:
J. J Donovan: Systems Programming Tata McGraw Hill Publishing
Company --------- For module 2, 3 and 4
A. V. Aho, R. Shethi, Monica Lam , J.D. Ulman : Compilers -
Principles, Techniques and Tools , Pearson Education , Second
Edition.
------ For modules 5 and 6
D. M Dhamdhere: Systems programming, Tata McGraw Hill
------ For module 1 9
Module 1
10
Representative Views of a Computer
System
11
Representative Views of a Computer
System
System Software
12
Representative Views of a Computer
System
13
Representative Views of a Computer
System
➢
User Interface:-Accepts users commands for using services
provided by the operating system and initiates execution of one
or more programs for fulfilment of command
14
Representative Views of a Computer
System
➢
User Interface:-Accepts users commands for using services
provided by the operating system and initiates execution of one
or more programs for fulfilment of command
➢
Application Program or Language Processors:-These programs
either implements the user’s application or assists in
development of a program
15
Representative Views of a Computer
System
➢
User Interface:-Accepts users commands for using services provided by
the operating system and initiates execution of one or more programs
for fulfilment of command
➢
Application Program or Language Processors:-These programs either
implements the user’s application or assists in development of a
program
➢
Operating System:- It controls operation of computer and provides a set
of services for executing programs and using resources of the computer
16
System Software
17
System Software
➢
It is a collection of program that facilitates execution of
programs and use of resources in a computer system
➢
It contains an hierarchical arrangement of layers in which
programs in upper layers use facilities provided by the layer
below it
18
Goals of System Software
19
Goals of System Software
➢
User Convenience:- Provide convenient methods of using a computer
system
20
Goals of System Software
➢
User Convenience:- Provide convenient methods of using a computer
system
Efficient Use:-Ensure efficient use of a computer resources
➢
21
Goals of System Software
➢
User Convenience:- Provide convenient methods of using a computer
system
Efficient Use:-Ensure efficient use of a computer resources
➢
Non-Interference:-Prevent interference in the activities of its users
➢
22
Goals of System Software
➢
User Convenience:-
23
Goals of System Software
Efficient Use:
➢ System software must efficiently use fundamental computer
resources like CPU, Memory, Disks and other I/O Devices.
➢
24
Goals of System Software
Efficient Use:
➢ System software must efficiently use fundamental computer
resources like CPU, Memory, Disks and other I/O Devices.
➢ Poor efficiency can occur if a program does not use the
resource allocated to it which further results in snowballing
effect.
➢
25
Goals of System Software
Efficient Use:
➢ System software must efficiently use fundamental computer
resources like CPU, Memory, Disks and other I/O Devices.
➢ Poor efficiency can occur if a program does not use the
resource allocated to it which further results in snowballing
effect.
➢ Snowballing Effect:- If the resource is allocated to a user, it is
denied to other programs that need it. These programs can’t
execute and hence the resources allocated to them also remains
idle
➢
26
Goals of System Software
Efficient Use:
➢ System software must efficiently use fundamental computer
resources like CPU, Memory, Disks and other I/O Devices.
➢ Poor efficiency can occur if a program does not use the resource
allocated to it which further results in snowballing effect.
➢ Snowballing Effect:- If the resource is allocated to a user, it is
denied to other programs that need it. These programs can’t
execute and hence the resources allocated to them also remains idle
➢ To achieve efficiency, the system software must minimize the
waste of resources by programs and its own overhead.
27
Goals of System Software
➢
Non Interference
➢The system software must ensure that no person can illegally
use programs and resources in the system or interfere with them
28
System Programs and System
Programming
System Software:- It is a collection of programs
➢
29
System Programs and System
Programming
System Software:- It is a collection of programs
➢
➢
System Program:- Each Program in the collection of system
software
30
System Programs and System
Programming
System Software:- It is a collection of programs
➢
System Program:- Each Program in the collection of system software
➢
Design Goals
➢
➢The program should function correctly under all conditions
➢The program should be effective in its computing environment
➢The program should be portable
➢The program should be able to evolve to provide new
functionalities and adapt to new technologies
31
System Programs and System
Programming
System Software:- It is a collection of programs
➢
System Program:- Each Program in the collection of system software
➢
Design Goals
➢
➢The program should function correctly under all conditions
➢The program should be effective in its computing environment
➢The program should be portable
➢The program should be able to evolve to provide new functionalities and
adapt to new technologies
System Programming:- It is the set of techniques used to realise the design
➢
goals of system program 32
System Software
➢
Coordinates the functions and activities of hardware and
software
➢
33
System Software
➢
Coordinates the functions and activities of hardware and
software
➢
Controls operations of computer hardware
➢
34
System Software
➢
Coordinates the functions and activities of hardware and
software
➢
Controls operations of computer hardware
➢
Supports variety of programs that enables smooth execution
of computer
➢
35
System Software
➢
Coordinates the functions and activities of hardware and
software
➢
Controls operations of computer hardware
➢
Supports variety of programs that enables smooth execution
of computer
➢
It provides infrastructure over which programs can operate
➢
36
System Software
➢
Coordinates the functions and activities of hardware and
software
➢
Controls operations of computer hardware
➢
Supports variety of programs that enables smooth execution
of computer
➢
It provides infrastructure over which programs can operate
➢
User can focus on application rather than internal mechanism
of Machine
37
Applicaton Software
➢
Any tool that functions and is operated by means of computer and
allow end user to accomplish specific task
38
Applicaton Software
➢
Any tool that functions and is operated by means of computer and
allow end user to accomplish specific task
Most common programs run in foreground of computer
➢
39
Applicaton Software
➢
Any tool that functions and is operated by means of computer and
allow end user to accomplish specific task
Most common programs run in foreground of computer
➢
➢
Tend to perform useful task which are not related with hardware
communication
40
Applicaton Software
➢
Any tool that functions and is operated by means of computer and
allow end user to accomplish specific task
Most common programs run in foreground of computer
➢
➢
Tend to perform useful task which are not related with hardware
communication
➢
It provides infrastructure over which programs can operate
Dependent on system software to communicate to physical
components
41
Application Software
➢
Any tool that functions and is operated by means of computer and
allow end user to accomplish specific task
Most common programs run in foreground of computer
➢
➢
Tend to perform useful task which are not related with hardware
communication
➢
It provides infrastructure over which programs can operate
Dependent on system software to communicate to physical
components
➢
Examples: Industrial Automation, Office Suite, Media Players,
Computer Games
42
System Sofware
43
System Software
➢
Macro Processor
➢
Assembler
Language
➢
Compiler Processors
➢
Interpreter
➢
Loader
➢
Linker
➢
Device Drivers
➢
Operating System
➢
Editor
➢
Debugger 44
Operatnn System
➢
Mediator between User Programs and Hardware
➢
Allocation of Resources and Services
➢
It includes
➢Process Management
➢Memory Management
➢File System Management
➢Secondary Storage Management
➢
Program to manage these resources: Scheduler, Traffic
Controller 45
Device Drivers
➢
A computer program that controls a particular device
connected to computer.
➢
Devices includes Input Output and Storage Devices
46
Language Processors
47
Macro Processor
➢
Macro: Abbreviation for small code
Macro Definition: Sequence of code that has name
➢
➢
Macro Processor: Program that substitutes and specializes macro
definitions and Macro calls
48
Linker
➢
It collects the code which are separately compiled or assembled and
put into object file which is direct executable.
➢
It connects an object program to the code for standard library and
resource supplied by Operating system.
49
Loader
➢
Executable file made by loader has relative memory addresses
(Relocatable Code)
➢
Loader will resolve all relocatable addresses by considering base
Address
It places program in memory and prepare for its execution
➢
Schemes: Relocating, Absolute and direct linking
➢
50
Editor
➢
Compilers usually accept source programs written using an editor
that will produce a standard file such as ASCII file.
➢
Compilers normally are bundled together with the editors and other
programs into an Interactive Development Environment or IDE.
51
Debugger
➢
Debuggers are program that can be used to determine execution
errors in a compiled program.
➢
It is also packaged with a compiler in an IDE.
Running a program with debugger differs from straight execution.
➢
The debugger keeps track of most or all source code information, such
as line numbers names of variable and procedures.
➢
It can also halt execution at pre-specified locations called
breakpoints as well as provide information on what functions have
been called and what the current values of the variables are. 52