0% found this document useful (0 votes)
38 views36 pages

Unit 1

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)
38 views36 pages

Unit 1

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/ 36

Adama Science and Technology University

Unit 1: Overview of System Software

System Programming
COURSE CODE:CSEg4303
Version:1
Introduction
➢ A system programming is a program which helps to executes user’s
program effectively on a computer system.
➢ Systems programming aims to produce software and software
platforms which provide services to other software
➢ Systems programming requires a great degree of hardware awareness.
➢ Its goal is to achieve efficient use of available resources
➢ Each program in the system software is called system program
➢ System program (SP) perform various task: Edit a program, campling
it, and arranging for its execution.
➢ The term system programming is used to describe the collection of
techniques the design of the system program(SP).
➢ Systems programmers always wrote in assembly language.
➢ Experiments with hardware support in high level languages in the late
1960s led to such languages as PL/S, BLISS, BCPL, and
extended ALGOL for Burroughs large systems.
➢ In the 1970s, C became widespread, aided by the growth of Unix.
➢ More recently a subset of C++ called Embedded C++ has seen some
use.
➢ Software refers to computer programs which direct the computer to
manage its:

Internal resources

Control the workings of the computer hardware along with the
program documentation that used to explain the programs to the
user.
➢ Computer programs are sequences or set of instructions to the

computer that tell the circuit within the hardware to operate in a certain
way or fashion.
➢ Process of writing programs is called programming and is done by

programmers
Cont...
➢ Software is divided into major types, and this is shown by the diagram
which is given below, a software hierarchy.

Figure 1: Software hierarchy


Cont...
Systems software
➢ A computer programs that govern, as well control the operations of
computer systems.
➢ It is the platform on which application software runs.
➢ System software includes:
1. Operating systems software.
2. Language translators and processors program.
3. Language processors
Systems software
1. Operating system software
➢ Are programs that control and coordinate the execution of computer programs by providing
input and output control etc.
➢ Operating system carries many functions which include:
I. User Interfacing
✔ features that allows the user to directly interact with a computer
II. Operating environment
✔ -an environment that users run application software for example, word
processing.
III. File management
✔ this includes file creation and deletion, mapping files onto secondary storage.
IV. Task management
Systems software
2. Language translators and processors program
➢ These programs are used to convert high level language programs into machine language.
➢ There are three main types of translator programs and these are ASSEMBLERS,
INTERPRETERS and COMPILERS.
➢ ASSEMBLERS: Translate program written in assembly language into machine code.
➢ INTERPRETERS: It translates high level language prorgam to machine language.
➢ COMPILERS: translate high level languages program into machine code.
What is difference between interpreters and compilers?
➢ However, interpreters one statement at a time each statement will be read, then translated
into machine language and the next statement and so on. But, the compiler compile the whole
program at a time. And the object code created can either be executed immediately or saved
for later use. The translated code is then used by the processor whenever the program needs to
be run.
Cont...
Systems software
2. Language translators and processors program
➢ Language processors is user to create software for various
applications.
➢ It provide instructions to the computer system so that it can perform a
processing activity to achieve an objective or solve a problem.
Computer Language

➢ Computers understand only the binary number system (zeros and ones)
➢ All data stored in the computer is stored as a series of zeros and ones
➢ All instructions telling the computer what to do are stored as a series of zeros
and ones
➢ People do not naturally think in terms of zeros and ones (the binary number
system)
➢ Programming languages have four categories:
1. Low level languages.
2. High level languages.
3. Fourth generation languages (4GL)
4. Fifth generation languages (5GL)
Cont...
Systems software
2. Language translators and processors program
➢ Low level languages.
➢ 1st generation (machine language)
➔ Written using 1s and 0s (binary)
➔ Able to be executed very fast by the computer, as there is no need for translation.
➔ However, difficult to read, write and understand by humans as the programs involve only 0s and
1s.
➔ Difficult to modify and correct mistakes.
➔ Machine dependent, so unable to be used on other machine.
➢ 2nd generation
➔ Is written using mnemonics (meaningful abbreviations) e.g. ADD, SUB, mov etc.
➔ Easier to understand, write and read than machine language.
➔ However, slower in execution than machine language.
➔ Machine dependent .
Cont...
Systems software
2. Language translators and processors program
➢ High level languages.
● Third generation 3GLs

They are procedural languages, i.e. the programmer writes
instructions that tell

the computer what to accomplish and how to do it. Example:
PASCAL, C, BASIC, JAVA etc.

They are machine independent.

Use English like words to write instructions.

Easier to understand, write and read than machine language.
Cont...
Systems software
2. Language translators and processors program
➢ Fourth generation languages (4GL)

Are very similar to 3rd generation languages, except they are even easier
to use.

They use English like statements and offer extra help through prompts,

instructions and wizards e.g. SQL structured query language.

It is fairly quick and easy to train people who are not computer experts

Reduce the overall time, effort and cost of software development.

However,
✗ Needs to be converted to machine language.
✗ Programs written in 4GLs are slower.
Cont...
Systems software
2. Language translators and processors program
➢ Fifth generation languages (5GL)

Used extensively in artificial intelligence

Non procedural i.e. the programmer states the goal to be
achieved but not the steps required in order to achieve the goal.
Examples Prolog and Mercury.

Able to communicate in natural spoken languages with their
users.

However they are very complex to design.
Cont...
Systems software
3. Utility and Service Programs
➢ Utility programs are generally fairly small and each type has a specific
job to do.
➢ Antivirus applications: It protect the computer from the damage that
can be caused by viruses.
➢ Compression utilities: It make files smaller for storage or sending over
the internet and return them to normal size.
➢ Data recovery utilities: It used to restore data and files that have been
damaged or deleted by mistake.
➢ Firewalls: prevent outsiders from accessing one’s computer over a
network.
Cont...
APPLICATION SOFTWARE
➢ Is a set of computer instructions that provides more specific
functionality to a user.
➢ That functionality may be broad such as general word processing.
Application software has two categories which are;
➢ General purpose packages
➢ Specific purpose packages:

is designed at a user’s request to perform specific functions.
Big companies and government departments create their own
applications.

It takes a lot of time to create such specific applications
software
Software Tools
➢Program that help in developing & using other programs.

➢These programs, called software tools.

➢ A software tool is a system program which:



Interfaces a program with the entity generating its input data.

Interfaces the results of a program with the entity consuming them.
Machine Structure
➢ All the conventional modern computers are
based upon the concept of stored program
computer.
➢ The model that was proposed by John von
Neumann.

Figure 2: Machine structure


Cont...
➢ I/O channels: may be thought of as separate computers which interprets
special instructions for inputting and outputting information from the
memory.
➢ Memory controller: is a hardware device whose work is to transfer the
content of the MBR to the core memory location whose address is stored in
MAR.
➢ Memory buffer register (MBR): contain a copy of the content of the
memory location whose address is stored in MAR. The primary interface
between the memory and the CPU is through memory buffer register.
➢ Memory address register (MAR): contains the address of the memory
location that is to read from or stored into.
➢ General register: are used by programmers as storage locations and for
special functions.
Cont...
➢ Instruction register: A copy of the content of the LC is stored in IR.
➢ Working register: are the memory devices that serve as “scratch pad”
for the instruction interpreter.
➢ Instruction interpreter: A group of electronic circuits performs the
intent of instruction of fetched from memory.
➢ Location counter: LC otherwise called as program counter PC or
instruction counter IC, is a hardware memory device which denotes
the location of the current instruction being executed.
Address Space

➢ The address space is an abstraction


of physical memory.
➔ Running program’s view of
physical memory: contain all the
memory state of running
program.
➢ It is the range of addresses
available for a program to use.
➢ The address space contains all
memory states: code, stack, and
heap.
Cont...
➢ Code: the program (the instructions)
have to live in memory somewhere, and
thus they are in the address space.
➢ Stack: to keep track of where it is in
the function call chain as well as to
allocate local variables and pass
parameters and return value stoand from
routines.
➢ Heap is used for dynamically-allocated,
user-managed memory, such as that you
might receive from a call to malloc() in
C or new in an object oriented language
suc has C++ or Java.
Life Cycle of a Source Program
➢ A computer program goes through many phases from it development to
execution.
➢ From human readable format (source code) to binary encoded computer
instructions (machine code).
➢ In life cycle of a source program the exact procedure behind the compilation
task and step by step evaluation of source code are High level languages, Low
level languages, Pre-processors, Translators, Compilers, Assembler,
Interpreters, Linkers and Loaders.
Cont...
Source Code
➢Source code is a plain text containing computer instructions written in
human readable format. It is simple text file written by programmers.
➢ It contain instruction in high level language that the programmers
intended to preform by a program source code is later compiled and
translated to object code.
Object Code
➢ Object code is a sequence of computer instruction in an intermediate
language. It is generated by compiler after the compilation process.
➢ The compiler read source code written in high level language and
translate it to an intermediate language.
➢ After translation of the file contain instruction encoded in some
intermediate language generated is called object code.
Machine Code
➢ Machine code is a set of computer instruction written and translated in
machine language.
➢ It is the final executable file generated by compilers, assembling or
linked several object files together. It is the only code executed by the
CPU.
Cont...
HIGH LEVEL LANGUAGES:

Source program is in the form of high level language which uses natural
language elements and is easier to create program.

It is programming language having very strong abstraction.

It makes the process of developing source code easier, simpler and more
understandable.

Examples of high level languages are Visual Basic, PHP, Python, Delphi,
FORTRAN, COBOL, C, Pascal, C++, LISP, BASIC etc.
Cont...
LOW LEVEL LANGUAGES:

Low level languages are languages which can be directly understand by
machines.

It is programming language having little or no abstraction. These
languages are described as close to ardware.

Examples of low level languages are machine languages, binary
language, assembly level languages and object code etc.

PRE-PROCESSORS
➢ Pre-processor is a computer program that
manipulates its input data in order to generate output
which is used as input to some other program or
compiler.
➢ Input of pre-processor is high level languages and
output of pre-processor is pure high level languages.
➢ Pure high level language refers to the language which
is having Macros in the program and File Inclusion.
➢ Macro means some set of instructions which can be
used repeatedly in the program.
➢ Macro pre-processing task is done by pre-processor.
➢ Pre-processor allows user to include header files
which may be required by program known as File
Inclusion
Translators
➢ Translator is a program that takes input as a
source program and convert it into another form
as output.
➢ Translator takes input as a high level language
and convert it into low level language.
➢ There are mainly three types of translators:

I. Compilers

II. Assemblers

III. Interpreters
Compilers
➢ Compiler reads whole program at a time and generate errors (if
occurred).
➢ Compiler generates intermediate code in order to generate target code.

➢ Once the whole program is checked, errors are displayed.

➢ Example of compilers are Borland Compiler, Turbo C Compiler


Assembelers
➢ Assembler is a translator which takes assembly language as an input and
generates machine language as an output.
➢ Output of compiler is input of assembler which is assembly language.
➢ Assembly code is mnemonic version of machine code.
➢ Binary codes for operations are replaced by names.
➢ Binary language or relocatable machine code is generated from the
assembler.
Interpreters
➢ Interpreter performs the line by line execution of source code.
➢ It takes single instruction as an input, reads the statement analyzes it and
executes it. It shows errors immediately if occur.
➢ Interpreter is machine independent and which does not produces object code or
intermediate code as it directlygenerates the target code.
➢ Many languages can be implemented using both compilers and interpreters
such as BASIC, Python, C#,Pascal, Java, and Lisp etc.
Linkers and Loaders
➢ Linker combines two or more separate object programs. It combines target
program with other library routines.
➢ Linker links the library files and prepares single module or file. Linker also solves
the external reference. Linker allows us to create single program from several
files.
➢ Loader is utility program which takes object code as input and prepares it for
execution. It also loads the object code into executable code.
➢ Loader refers to initializing of execution process. Tasks done by loaders are
mentioned below:
➔ Allocation
➔ Relocation
➔ Link editing
➔ Loading
Recent Trends in Software Development
➢ Software development trends change as fast as technology itself.
➢ To stay current, you not only need to consider the present state of technology,
but you must also look ahead.
➢ The following are the most noteworthy software development trends that
dominating the technology industry.
✔ Cloud-Native Application Development
✔ Artificial Intelligence (AI)
✔ Blockchain Technology
✔ Cybersecurity
✔ The Internet of Things
✔ Low-Code and No-Code

You might also like