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

System Software Er. Inderjeet Bal

Uploaded by

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

System Software Er. Inderjeet Bal

Uploaded by

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

SYSTEM SOFTWARE

Er. Inderjeet Bal


Dept. of CS & IT
SYSTEM
• SOFTWARE
System software is computer software designed to operate and control
the computer hardware and to provide a platform for running application
software.
• System software can be separated into two different categories, operating
systems and utility software.
• The operating system allows the parts of a computer to work together by
performing tasks like transferring data between memory and disks or
rendering output onto a display device.
• A kernel is the core part of the operating system that defines an API for
applications programs (including some system software) and an
interface to device drivers.
• Device drivers such as computer BIOS and device firmware provide
basic functionality to operate and control the hardware connected to or
built into the computer.
• A user interface "allows users to interact with a computer."
• Utility software helps to analyse, configure, optimize and maintain the
computer, such as virus protection.
Architectu
re
Function of Assembler
Elements of Assembly Language

1. Mnemonic Operation Code:-


Eliminates the need to memorize numeric
operation code.
2. Symbolic Operands:-
Symbolic names can be used.
3. Data Declarations:-
Data can be declared in any form Eg: -5,
10.5 etc.
Statement Format
[Label] <Opcode> <operand Spec> [<operand spec>….]

1. Label:- Is optional.

2. Opcode:- Symbolic opcode

3. Operand:- Symbolic name (Register or Memory variable)


Mnemonic Operation Codes
Instruction Format

sign opcode reg memory


operan operand
d
Assembly Language Statement

1. Imperative
Statement.
2. Declaration
Statement.
3. Assembler
Directives.
Imperative Statements:-
– Indicates an action to be taken during execution of a
program.
– Eg: MOV, ADD, MULT, etc.
• Declaration Statement:-
– To reserve memory for variable.
[Label] DS <constant> eg: X DS 5
[Label] DC ‘<value>’ eg: X DC 3
• Assembler Directives:-
– Instructs the assembler to perform ceratin action
during assembly of a program.
START <constant>
END
PHASES OF A COMPILER:
There are mainly 6 phases in a compiler, as these phases help in
converting the H.L.L in to the machine code. The phases of a
compiler are
1.lexical analysis
2.syntax analysis
3.semantic analysis
4.intermediate code generator
5.code optimizer
6. code generator
All these phases convert the source code by dividing in to tokens,
creating pare trees, and optimizing the source code by different
phases.
Phases of Compiler
TYPES OF COMPILERS:
• Native code compiler
The compiler used to compile a source code for same type
of platform only.
• Cross compiler
The compiler used to compile a source code for different
kinds platform.
• Source to source compiler
The compiler that takes high-level language code as input
and outputs source code of another high level language only.
• One pass compiler
It is a type of compiler that compiles the whole process
in only one-pass.
• Threaded code compiler
The compiler which simply replace a string by an appropriate
binary code.
• Incremental compiler
The compiler which compiles only the changed lines from the
source code and update the object code.
• Source compiler
The compiler which converts the source code high level language
code in to assembly language only
Loaders and Linkers
FUNDAMENTAL PROCESS OF LOADERS
• Allocation : the space for program is allocated in the
main memory, by calculating the size of the program.
• Loading – brings the object program into memory for
execution.
• Relocation – modifies the object program so that it can
be loaded at an address different from the location
originally specified.
• Linking, which combines two or more separate object
programs and supplies the necessary information.
Type of loaders

• Assemble-and-Go Loader
• Absolute Loader (Bootstrap
Loader)
• Relocating Loader (Relative
Loader)
• Direct Linking Loader
ASSEMBLE-AND-GO LOADER
• Characteristic
 the object code is stored in memory after
assembly
 single JUMP instruction
• Advantage
 simple, developing environment
• Disadvantage
 whenever the assembly program is to be
executed, it has to be assembled again
 programs have to be coded in the same
language
Absolute Loader

• Absolute Loader The operation of absolute loader is very


simple.
• The object code is loaded to specified locations in the
memory. At the end the loader jumps to the specified address
to begin execution of the loaded program.
• The advantage of absolute loader is simple and efficient.
• The disadvantages are, the need for programmer to specify the
actual address, and, difficult to use subroutine libraries
The role of absolute loader is as shown in the above figure.
Relocating Loaders
• Absolute loaders loads a program on a specific memory
location but it is often desirable to have two or more
programs residing in memory sharing the different
resources of a computer system.
• It would be impractical to assign starting addresses to
each program to plan program execution.
• A loader able to load a program into memory wherever
there is room for it is called a relocating loader.
Direct Linking Loaders
• A Direct linking loader is a general relocating loader and
is the most popular loading scheme presently used.
• This scheme has an advantage that it allows the
programmer to use multiple procedure and multiple data
segments.
• In addition, the programmer is free to reference data or
instructions that are contained in other segments.
• The direct linking loaders provide flexible intersegment
referencing and accessing ability.
Direct Linking Loaders
The assembler should give the following information to
the loader:
1)The length of the object code segment
2)The list of all the symbols which are not defined in the
current segment but can be used in the current segment.
3)The list of all the symbols which are defined in the
current segment but can be referred by the other
segments
Thanks

You might also like