0% found this document useful (0 votes)
19 views28 pages

System Software

The document provides an overview of system software, distinguishing it from application software and detailing various types of system software such as operating systems, compilers, and linkers. It explains the functions of these software types, including process management, memory management, and the translation of programming languages. Additionally, it highlights the differences between compilers and interpreters, as well as the roles of linkers and loaders in program execution.

Uploaded by

Thejus kj
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)
19 views28 pages

System Software

The document provides an overview of system software, distinguishing it from application software and detailing various types of system software such as operating systems, compilers, and linkers. It explains the functions of these software types, including process management, memory management, and the translation of programming languages. Additionally, it highlights the differences between compilers and interpreters, as well as the roles of linkers and loaders in program execution.

Uploaded by

Thejus kj
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/ 28

CST 305 – SYSTEM SOFTWARE

Module - 1
Introduction
• The computer system components can be hardware and software.
• Software: Set of instructions or programs written to carry out certain tasks.
• Software can be classified as: Application Software and System Software.
Application software:
• Performs a specific task for the end user as per the requirement.
• It is actually a subclass of computer software, which employs the capabilities of a
computer directly to a task that the user wishes it to perform.
• It focuses on an application or the problem to be solved.
• E.g. Photoshop, MS-Office.
System software
System software:
• System software consists of a variety of programs that support the operation of a
computer.
• It is a set of programs to perform a variety of system functions as file editing,
resource management, I/O management and storage management.
• This software makes it possible for the user to focus on an application or other
problem to be solved, without needing to know the details of how the machine
works internally.
System software

• Examples: OS, Compiler, Assembler


Different Types of System Software
• 1. Operating System • 6. Loader
• 2. Device Drivers • 7. Linker
• 3. Text Editor • 8. Debugger
• 4. Macro-processor
• 5. Language Translators
• a. Assembler
• b. Compiler
• c. Interpreter
Operating System
• It is the most important system program that act as an interface between the
users and the system. It makes the computer easier to use.
• It provides an interface that is more user-friendly than the underlying hardware.
• The functions of OS are:
• 1. Process management • 5. Data management
• 2. Memory management • 6. Providing security to user’s job
• 3. Resource management
• 4. I/O operations
Language Translators
• It is the program that takes an input program in one language and produces an
output in another language.
• Language translators translate the source program written in either high-level
language or low-level language into machine understood object program.

• Assembler, Compiler, Interpreter.


Assembler
• Programmers found it difficult to read or write programs in machine language, so
for convenience they used mnemonic symbols for each instruction which is
translated to machine language.
• Assemblers translate assembly language to machine language.
• Programs known as Assemblers are written to automate the translation of
assembly language into machine language.
Assembler - Working
• Find the required information to perform task.
• Analyze and design suitable data structures to hold and manipulate information.
• Find the process or steps needed to gather information and maintain it.
• Determine processing step required to execute each identified task.
Compilers
• A compiler is a language program that translates programs written in any high
level language into its equivalent machine language program.
• It bridges the semantic gap between a programming language domain and the
execution domain.
• Conversion or translation is taking place by taking program as whole.
Compilers
Phases of a Compiler
• Syntax analysis
• Semantics analysis
• Intermediate code generation
Types of Compilers
• Incremental compiler • Stage Compiler
• Cross Compiler • Just-in-time Compiler
• Load & Go Compiler • Parallelizing Compiler
• Threaded Code compiler
Interpreters
• It is a translator program that translates a statement of high-level language to
machine language and executes it immediately.
• The program instructions are taken line by line.

• Interpretation cycle includes:


• i) Fetch the statement.
• ii) Analyze the statement and determine its meaning.
• iii) Execute the meaning of statement.
Compiler Vs Interpreter
1. The compiler takes a program as a whole and translates it, but interpreter
translates a program statement by statement.
2. Intermediate code or target code is generated in case of a compiler. As against
interpreter doesn’t create intermediate code.
3. A compiler is comparatively faster than Interpreter as the compiler take the
whole program at one go whereas interpreters compile each line of code after
the other.
4. The compiler requires more memory than interpreter because of the
generation of object code.
Compiler Vs Interpreter
5. Compiler presents all errors concurrently, and it’s difficult to detect the errors.
In contrast, interpreter display errors of each statement one by one, and it’s
easier to detect errors.
6. In compiler when an error occurs in the program, it stops its translation and
after removing error whole program is translated again. On the contrary, when
an error takes place in the interpreter, it prevents its translation and after
removing the error, translation resumes.
Compiler Vs Interpreter
7. In a compiler, the process requires two steps in which firstly source code is
translated to target program then executed. While in Interpreter It’s a one-step
process in which Source code is compiled and executed at the same time.
8. The compiler is used in programming languages like C, C++, C#, Scala, etc. On
the other Interpreter is employed in languages like PHP, Ruby, Python, etc.
Linker
• Linking is the process of collecting and combining various pieces of code and
data in to single file that can be loaded in to memory and executed.
• Linking can be performed at compile time, when source code is translated to
machine code, at load time, when program is loaded in to memory and
executed by the loader and even at run time by application programs.
• Instead of organizing a large application as one single source file, we can
decompose it into smaller, more manageable modules that can be modified and
compiled separately.
• Linker has the responsibility of combining/linking all the modules to generate a
single executable file of the source program.
Linker - Types
• a) Linking Loader: Performs all linking and relocation operations directly in to
main memory for execution.
• b) Linkage Editor: Produces a linked version of program called as load module
or executable image. This load module is written in to file or library for later
execution.
• c) Dynamic Linker: This linking postpones the linking function until execution
time. Any sub-routine is loaded and linked to the rest of the program when it is
first called . Also called as dynamic loading.
Loader
• The program that has to be executed currently must reside in the main memory
of the computer. It is the responsibility of the loader, a program in an operating
system, to load the executable file/module of a program, generated by the
linker, to the main memory for execution.
• Utility of an operating system.
• Copies program from a storage device to computer’s main memory.
• They are invisible to user.
Linker Vs Loader
1. The linker generates the executable file of a program whereas, the loader loads
the executable file obtained from the linker into main memory for execution.
2. The linker intakes the object module of a program generated by the assembler.
However, the loader intakes the executable module generated by the linker.
3. The linker combines all object module of a program to generate executable
modules it also links the library function in the object module to built-in
libraries of the high-level programming language. On the other hand, loader
allocates space to an executable module in main memory.
Debugger
• A debugger is a software program used to test and find bugs(errors) in other
programs.
• Debugging means locating bugs or faults in program.
• Debugging is a two-step process.
• 1. Determination of the exact nature and location of the suspected error.
• 2. Fixing the error.
Device Drivers
• A device driver acts as a glue between OS and its I/O devices.
• Device Drivers act as translators which converts generic requests received from
the operating system into commands that specific peripheral controllers can
understand.
• It is a software module which manages the communication and control of a
specific I/O device .
• Convert logical requests from the user in to specific commands directed to
device.
• Application software OS Device driver Hardware interface.
Text Editors
• A text editor is a piece of computer software for editing plain text.
• Program that allows the user to create the source program in the form of text in
to the main memory.
• Creation, edition, deletion, updating of document or files can be done with the
help of text editor.
Macro Processor
• To relieve programmers of the need to repeat identical parts of their program,
operating systems provide a macro processing facility.
• This permits the programmer to define an abbreviation for a part of the
program and to use the abbreviation further.
• Macro instructions (Macros) are single-line abbreviations for a group of
instructions.
• Macros are special code fragments that are defined once in the program and
used by calling them from various places within the program.
Macro Processor
• The macro processor treats the identical parts of the program defined by the
abbreviation as a macro definition and saves the definition, which is substituted
for all occurrences of the abbreviation.
• Macro processor is a program that copies stream of text from one place to
another, making a systematic set of replacements as it does so.
Machine Architecture and System Software
• One characteristic in which most system software differs from application
software is machine dependency.
• Most system software is machine-dependent.
Machine Dependent features
• Assembler translate mnemonic instructions into machine code, the instruction
formats, addressing modes, etc. are of direct concern in assembler design.
• Compilers must generate machine language code, taking into account hardware
characteristics, number and type of registers and the machine instructions
available.
Machine Architecture and System Software
Machine Dependent features
• Operating systems are directly concerned with the management of nearly all of
the resources of a computing system.
Questions
• Explain three functions of Operating System.
• Distinguish between Application software and System Software.
• Distinguish between an assembler and a compiler. Which are the different types
of compilers?
• 'System Software is machine dependent’. Justify the statement.
• Describe in detail about any 4 system softwares.
• Differentiate between compilers and Interpreters.
• Differentiate between linker and loader.
• Illustrate the roles and functions of Operating System, Assembler, Compiler and
Linker in a modern computer system.

You might also like