FIT Lecture 5
FIT Lecture 5
5
Engr. Naveera Sami
All computer systems consist of two major components,
namely, hardware and software. The hardware refers to the
physical equipments that are necessary for performing
various operations, such as reading and processing data,
storing results and providing output to the users in a desired
form. The software refers to a set of computer programs
that are required to enable the hardware to work and
perform these operations effectively.
A computer program is basically a set of logical instructions,
written in a computer programming language that tells the
computer how to accomplish a task. The software is
therefore an essential interface between the hardware and
the user
TYPES OF COMPUTER
SOFTWARE
As stated earlier, a computer software performs two distinctive
tasks. The first task is to control and coordinate the hardware
components and manage their performances and the second one is
to enable the users to accomplish their required tasks. The software
that is used to achieve the fi rst task is known as the system
software and the software that is used to achieve the second task is
known as the application software. While the system software is
essential for a computer to work, the application software is the
additional software required for the user to perform a specifi c job.
The system software not only controls the hardware functions but
also enables the hardware to interact with the application software
as well as the users
1. System Software
System software consists of many different programs that
manage and support different tasks. Depending upon the task
performed, the system software can be classified into two major
groups:
2. Application Software
Application software includes a variety of programs that are
designed to meet the information processing needs of end users.
They can be broadly classified into two groups:
Standard application programs that are designed for performing
common application jobs.
Unique application programs that are developed by the users
themselves to support their specific needs.
SYSTEM MANAGEMENT PROGRAMS:
System management programs are those programs that
are meant for operating the hardware system and
managing their resources effectively. They also enable
the users to perform certain utility functions, such as
creating backup files,recovering damaged fi les and
merging files.They minimise the human intervention
during processing and aid in maximising the
productivity of a computer system. System
management programs include:
Operating system
Utility programs
Device drivers
These programs work in close interaction with each
other
Operating System
Operating System (OS) is the principal component of
system software and is responsible for overall
management of computer resources. It also provides an
interface between the computer and the user and helps in
implementing the application programs.
Major functions of an operating system are:
1.Scheduling and execution of all processes.
2. Allocation and management of main memory and other
storage areas to the programs.
3. Coordination and assignment of different hardware
devices
to the programs.
4. Creation, storage and manipulation of files
required by the various processes.
Operating System:
5. Determining and maintaining the order of execution
of programs.
6. Interpretation of commands and instructions.
7. Coordination and assignment of other development
and utility programs.
8. Providing a friendly interface between the computer
and the user.
9. Ensuring security of access to computer resources.
Utility Programs:
Utility programs refer to small programs, which provide additional
capabilities to the computer system in addition to the ones
provided by the operating system. They enable an operating
system to perform some additional tasks, such as searching and
printing the fi les and scanning the viruses, etc. A utility program is
not an essential part of an operating system, because it does not
help the operating system in the execution of a command or a
program. A utility program only provides the additional features to
the computer system. In other words, an operating system can
execute most of the programs without having the utility programs.
Utility programs are added to an operating system to perform
many different tasks, that include:
Utility Programs:
• Search and replace. It enables the operating system to search a fi le on
the basis of the specified search criteria.
• Print. It enables an operating system to initiate the print operation of the
printer connected with the computer system.
• Disk defragmenter. It helps in defragmenting the memory space.
Defragmentation is the process of storing the data at a single place in
the memory instead of disjointed memory locations.
• System profiler. It provides the information related to the various
hardware and software components installed in the computer system. In
other words, it provides a list of the hardware components, which are
presently connected with the computer system, and the software
components, which are currently installed in the computer system.
• Encryption. It enables the operating system to generate the encrypted
format of the messages or the files, which have to be transmitted from
one system to another system over the network or the Internet.
Utility Programs:
• Virus scanner. It enables the operating system to detect
viruses and bugs, which may affect the
correct functioning of the computer system.
• Backup. It enables the creation of a copy of various fi les
and folders on a secondary medium such as magnetic disk
and magnetic tape, in order to keep the original data safe.
• Data recovery. It enables the retrieval of lost data from a
corrupted or damaged primary storage medium.
Like operating systems, utility programs are prewritten by
manufacturers and supplied with the hardware. They may
also be obtained from standard software vendors. A good
range of utility programs can make the life much easier for
the user.
Device Drivers:
A computer system is connected with multiple input and output (I/O)
devices, so that it can communicate with the end user. In order to interact
with the I/O devices, the computer system requires special software called
device driver. The device driver acts as a translator between the I/O
devices and the computer. A device driver of the input device interprets
the input provided by the user into the computer
understandable form and directs it to the operating system. Similarly, the
device drivers of the output devices translate the output generated by the
computer into the user understandable format and display it on the
screen. In other words, a device driver is special software that enables a
hardware device, such as keyboard, monitor and printer to perform an
operation according to the command given by the end user.
Device Drivers:
Whenever a program needs to use a connected hardware device, it issues
a command to the operating system. The operating system calls the
respective routine or process of the device driver, which instructs the
device to perform the task. For providing instruction to the devices, the
device driver sends various control and data signals through buses and
cables to the device. In order to acknowledge the device driver’s signal,
the device sends the acknowledgment signals to the device driver. After
performing the task, the device sends a message to the device driver,
which returns the value to the calling program of the operating system. In
other words, a device driver instructs a hardware device the way it should
accept the input from the operating system and the way in which it
should communicate with the other units of the computer system.
Figure illustrates the working of the device
driver.
SYSTEM DEVELOPMENT PROGRAMS
System development programs known as programming
software allow the users to develop programs in different
programming languages. The process of developing and
executing a program involves the following tasks:
1. Debugging the program
2. Linking the various variables and objects with the
libraries files
3.Translating the code from one language to another
4. Running the machine code to perform the desired task
In order to carry out these tasks, we need the following
system development tools:
Language translators, Linkers, Debuggers, Editors
Language Translators
Language translator is used to convert the program code written in
one language to another language. The program code provided as
an input to the language translator is known as source code. The
source code is a high level or an assembly language program. The
language translator converts the high-level language program into
the low-level language program called object code. Compiler,
interpreter and assembler are the most common examples of
language translator. A compiler translates a high-level program
into a low-level program and an assembler translates an assembly
language program into a low-level program. An interpreter also
produces a low-level program from a high-level program, but the
working of the interpreter is not similar to that of the compiler.
An interpreter processes the high-level program line-by-line and
simultaneously, produces the low-level program.