Friday, March 14, 2014

CATEGORIES OF SOFTWARE

 The computer being a machine cannot perform on its own. It needs to be instructed to
perform even a simple task like adding two numbers. Computers work on a set of instructions
called computer software (programs), which clearly specify the ways to carry out a task.
Software can be categorized as system software and application software. System
software is a generic term for referring to any computer program whose purpose is to help the
user to run the computer system, whereas application software employees the capabilities of a
computer directly to a task that the user wishes to perform.

SYSTEM SOFTWARE:

System software consists of several programs, which are directly responsible for
controlling, integrating, and managing the individual hardware components of a computer
system. You must have noticed that a new computer system is always accompanied by some
software, either stored in a floppy or CD, which is supplied by the manufacturer. This software
manages and supports the computer system and its information processing activities.
System software is more transparent and less noticed by the users, they usually interact
with the hardware or the applications this software provides a programming environment in
which programmers can create applications to accommodate their needs. This environment
provides functions that are not available at the hardware level and performs the tasks related to
the execution of an application program. Hence, system software acts as an interface between
the hardware of the computer and the software application.
In simple terms, system software makes the computer functional. They provide basic
functionality like file management, visual display, and keyboard input are used by application
software to accomplish these functions. Some examples of system software are:
1. Operating system
2. Device drivers
3. Language translators
4. System utilities.

1. Operating System:

It is the first layer of software loaded into computer memory when it starts up. As the
first software layer, all other software that gets loaded after it depends on it for various common
core services. These common core services include disk access, memory management, takes
scheduling, and user interfacing. In addition the operating system ensures that different
programs executing at the same time do not interfere with each other. It provides a software
platform on top of which other programs can run. In simple words, the operating system
organizes and controls the hardware. Examples of operating systems are Windows XP, UNIX,
and Linux. The basic functions of an operating systems are:
a) Process Management:
It handles the creation, deletion, suspension, resumption, and synchronization of process.
b) Memory Management:
It handles allocation and de-allocation of memory space as required by various programs.
c) File Management:
It is responsible for creation and deletion of files and directories. It also organizes, stores,
retrieves, names, and protects all the files.
d) Device Management:
It manages all the devices of the computer system such as printers and modems. If any
device fails, it detects the device failure and notifies the same to the user.
e) Security Management:
Protects system resources and information against destruction and unauthorized use.
f) User interface:
 Provides the interface between the user and the hardware.

2. Device Drivers:

Device drivers are system programs, which are responsible for proper functioning of
devices. Every device, whether it is a printer, monitor, mouse or keyboard, has a driver program
associated with it for its proper functioning. Whenever a new device is added to the computer
system, a new device driver must be installed before the device is used. A device driver is not an
independent program; it assists and is assisted by the operating system for the proper functioning
of the device.

3. Language translators:

Computers only understand a language consisting of 0s and 1s called machine language.
To ease the burden of programming entirely in 0s and 1s, special programming languages called
high-level programming languages were developed that resembled natural languages like
English. Language translators help in converting programming languages into machine
language. To be precise, they convert programming statements into the 0s and 1s that the
computer is able to process.

Depending on the programming language used, language translators are divided into
three major categories: compilers, interpreter, and assembler.
a) Compiler:
The programs written in any high-level programming language (C or Pascal) needs to be
converted into machine language. This is achieved by using a complier.
b) Interpreter:
An interpreter analyses and executes the source code in line-by-line manner, without
looking at the entire program. In other words, an interpreter translates a statement in a program
and executes the statement immediately, before translating the next source language statement.
c) Assembler:
Compared to all the types of programming languages, assembly language is closest to the
machine code. It is fundamentally a symbolic representation of machine code. The assembly
language program must be translated into machine code by a separate program called an
assembler. The assembler program recognizes the character strings that make up the symbolic
names of the various machine operations, and substitutes the required machine code for each
instruction. In short, an assembler converts the assembly codes into machine codes, making the
assembly program ready for execution.

Typical software generally comprises millions of lines of programming statements or
code. The code is divided into logical groups and stored in different independent modules so
that the debugging and maintenance of the code becomes easier. Before execution, different
object codes resulting from the independent modules have to be linked together to create and
executable program. A linker is a system program that links together several objects modules
and libraries to form a single, coherent, program (executable program). The part of the operating
system that brings an executable file residing on disk into memory and executes it is known as
loader. Being responsible for tasks like loading, linking and relocation, loader performs the
function of a linked program and then immediately schedules the executable for execution
without creating an executable file as an output.

4. System Utility:

System utility programs perform day-to-day tasks related to the maintenance of the
computer system. They are used to support, enhance, and secure existing programs and data in
the computer system. They are generally small programs, having specific tasks to perform:
a) File Management:
These utilities make it easier to manage data files. Many programs are written to help users
to find the files, create and organize directions, copy, move, and remove files.
b) Backup:
It may happen that sometime data files are corrupted, or accidentally deleted. In such a
case, data backups become very useful. A backup system utility is essential for those
organizations, which want to keep their data intact.
c) Data Recovery:
It is the process of retrieving deleted or inaccessible data from failed electronic storage
media such as computer hard disk drives, removable media, optical devices, and tape cartridges.
d) Virus Protection:
Anti-virus programs are essential system utilities for a computer system functioning in a
network. They provide the security to the system form viruses that can damage the computer
system.
e) Disk Management:
Disk management program includes various system softwares like disk defragmenter,
data compressor and disk formatting tools. De-fragmentation implies putting fragments of files
in a sequential order onto the disk which reduces the time to access the file.
f) Firewall:
It is commonly used to protect information such as e-mail and data files within a physical
building or organization. Essentially, a firewall is designed to protect a computer from
unauthorized access, especially via network.
g) Disk Cleanup:
To keep a computer running smoothly, regular maintenance is vital. Therefore, one
should use the disk cleanup utility, which easily determines which files on hard drive are no
longer needed, then delete those files.

No comments:

Post a Comment