Class XI | CHAPTER 2
Software Concepts
Hardware and Software
A computer consists of both hardware and
software and both are equally important for the working of the computer system.
The electronic components of a computer system that we can see and touch are
called hardware. Software is a general
term used for computer programs that control the operations of the computer. A program is a sequence of instructions that
perform a particular task. A set of
programs form software. It is the software which gives hardware its capability.
Hardware is of no use without software and software cannot be used without
hardware.
Types of Software
Software can be broadly are categorized as:


System Software
System Software is the software that is
directly related to coordinating computer operations and performs tasks
associated with controlling and utilizing computer hardware. These programs
assist in running application programs and are designed to control the
operation of a computer system. System software directs the computer what to
do, when to do and how to do. System software can be further categorized into


Operating System
An Operating system is the most important
system software. It is a set of programs that control and supervise
the hardware of a computer and also provide
services to application software,
programmers and users. It
manages all hardware and
software, input, output and
processing activities within
the computer system,
the flow of information to and
from the processor, sets priorities for handling different tasks, and so on. Without
operating system a computer cannot do anything useful. When a computer is
switched on, the operating system is the first program that is loaded onto its
memory. A user cannot communicate directly with the computer hardware, so the
operating system acts as an interface between the user and the computer
hardware. Some of the popular operating systems used in personal computers are
DOS, Windows, UNIX, Linux, Solaris, etc. An
operating system can be a Single User
or a Multiuser operating system.
A single user operating
system allows only
one user to
work at any
time but a multiuser
operating system allows
two or more
users to use a powerful computer
at the same time.
For example Windows
7 is a
single user operating
system while Linux
is a multiuser operating system.
Need for an Operating System
Operating system provides a platform, on
top of which, other programs, called application programs can run. As discussed
before, it acts as an interface between the computer and the user. It is
designed in such a manner that it operates controls and executes various
applications on the computer. It also allows the computer to manage its own
resources such as memory, monitor, keyboard, printer etc.
Our choice of operating system, therefore,
depends to a great extent on the CPU and the other attached devices and the applications
we want to run. The operating system controls
the various system hardware and software resources and allocates them to the
users or programs as per their requirement.
Functions of an Operating System
An operating system has variety of functions
to perform. Some of the prominent functions of an operating system can be
broadly outlined as:

·
Priority Scheduling: Each task is given CPU time according to the priority assigned to
that task. The program with higher priority will be given CPU time before a
program with lower priority. The CPU executes the task till it is completed or
there is some interrupt request i.e. till the time operating system has
to stop (interrupt)
the current task
due to an
unavoidable job request. The
major drawback of Priority scheduling is that even a small job has to wait for
a long time when a long duration job with higher priority is being executed.
·
Round Robin Scheduling: This type of scheduling technique is also known as Time Sharing
Scheduling. In this, each program or task is given a fixed amount of time to
execute. The CPU continues with the execution till either the allotted time is
over or there is some
interrupt request or
the task is completed before the allotted time. If the
task is not completed at the end of the
allotted time, it
is put at
the end of
the queue. So each task gets its
allotted share of CPU time. This
scheduling technique improves the response time and provides an interactive
environment. Hence time sharing operating system is very useful in network
environment as each user is allowed to share the network resources.

·
Buffering: In this technique the temporary storage of input and output data is
done in Input Buffer and Output Buffer. Once the signal for input or output is
sent to or from the CPU respectively, the operating system through the device
controller moves the data from the input device to the input buffer and for the
output device to the output buffer. When the signal is sent to/from the
operating system to the respective device controllers, the program doesn’t wait
rather it returns to its processing. In case of input, if the buffer is full,
the operating system sends a signal to the program which processes the data
stored in the buffer. When the buffer becomes empty, the program informs
the operating system
which reloads the
buffer and the input
operation continues. Similarly for output when the program being
executed has to display some output, it fills the buffer and then informs the
operating system. Thereafter the
operating system empties
the buffer by sending
data to the
output device and
in the meantime the
program fills another buffer.
This technique is called overlapped processing. This is because
while the operating
system reloads one
buffer, the executing program doesn’t
stop as it
is able to retrieve/fill data
from/in another buffer.
·
Spooling (Simultaneous
Peripheral Operation on
Line): This
is a device management technique
used for processing
of different tasks on
the same input/output device. Say
for example there are various users on a network sharing the same printer. At
one point of
time more than
one user might give print command. The speed of the
printer is very slow as compared to the CPU processing. So the operating system
temporarily stores the data of every user on the hard disk of the computer to
which the printer is attached. The individual users need not wait for the
printing process to be complete. Instead the operating system sends the data
from to hard disk to the printer one by one.

·
Partitioning: The total memory is divided into various partitions of same size or
different sizes. This helps to accommodate number of programs in the memory. The partition can be fixed i.e. remains same for all
the programs in the
memory or variable
i.e. memory is allocated
when a program is
loaded on to
the memory. The later approach causes less wastage of
memory but in due course of time, it may become fragmented.
·
Virtual Memory: This is a technique used by the operating system by virtue of which
the user can load the programs
which are larger
than the main memory of the computer. In this
technique the program is executed even if the complete program is not loaded on
to the main memory. The operating system divides the main memory into equal
sizes called pages. A part of the program resides in the main memory and is
called the active set. The rest is in the secondary storage device in
the form of tracks/sectors or blocks. With the
help of Page
Map Tables (PMT),
the operating system
keeps track which page of main
memory is storing which block of secondary memory. A virtual address (which is
not the real physical address) is mapped either to the main memory or the
secondary memory. Hence virtual memory
allows more programs and even larger programs to be executed in the main memory
leading to efficient memory utilization.

Types of Operating System
OS are classified into the following types
depending on their capability of processing







Commonly Used Operating Systems
Some of the commonly used operating systems
are discussed below:
1.
Windows: Microsoft launched Windows 1.0 operating system in 1985 and since
then Windows has ruled the world’s software market. It is a GUI (Graphic User Interface) and
various versions of Windows have been launched like Windows 95, Windows
98, Win NT,
Windows XP, Windows
7 and the
latest being Windows 8.
2.
Linux: Linux is a free and open
software which means it is freely available for use and since its source code
is also available so anybody can use it,
modify it and redistribute it.
It can be downloaded
from www.linux.org. It
is a very popular operating system used and
supported by many companies. The defining component of this operating system is
the Linux kernel.
3.
BOSS (Bharat
Operating System Solutions): This
is an Indian
distribution of GNU/Linux. It consists
of Linux operating
system kernel, office
application suite, Bharateeya OO, Internet
browser (Firefox), multimedia
applications and file sharing.
4.
UNIX: It is
a multitasking, multiuser
operating system originally
developed in 1969 at Bell Labs.
It was one of the first operating systems developed in a high level language,
namely C. Due to its portability, flexibility and power, UNIX is widely
being used in
a networked environment.
Today, ”UNIX” and
"Single UNIX Specification" interface are owned and
trademarked by The Open Group. There
are many different varieties
of UNIX, although
they share common similarities, the most popular being
GNU/Linux and Mac OS X.
5.
Solaris: It is a free Unix based operating system introduced by Sun
Microsystems in 1992. It is now also known as Oracle Solaris. Solaris is registered
as compliant with Single UNIX
Specification. It is
quite scalable and
is used on
virtual machines.
Mobile
Operating Systems (Mobile OS)
It is the
operating system that operates on digital mobile devices like smart phones and
tablets. It extends the features of a normal operating system for personal
computers so as to include
touch screen, Bluetooth,
WiFi, GPS mobile
navigation, camera, music player
and many more.
The most commonly
used mobile operating
systems are – Android and Symbian.
Android: It is a Linux derived Mobile OS released on 5th November
2007 and by 2011 it had more than 50% of the global Smartphone market
share. It is Google’s open and free
software that includes an operating system, middleware and some key
applications for use on mobile devices. Android applications are quiet user
friendly and even one can easily
customize the Smartphone
with Android OS.
Various versions of
Android OS have been released
like 1.0, 1.5, 1.6, 2. x, 3.0 etc. Most Android phones use the 2.x release
while Android 3.0 is
available only for tablets.
The latest Android
version released is 4.2.2. The Android releases have dessert
inspired codenames like Cupcake, Honeycomb, Ice Cream sandwich and Jelly Bean.
Symbian: This Mobile OS by Nokia (currently being maintained by Accenture)
designed for smartphones. It offers high
level of functional integration between communication and personal information
management. It has an integrated mail box and it completely facilitates the
usage of all
Google applications in
your smartphone easily.
Symbian applications are easy to shut down as compared to Android applications. Various versions like S60 series, S80 series,
S90 series, Symbian Anna etc have been released. The latest Symbian releases
(Symbian Belle) can support 48 languages.
Language Processors
We know that computer understands
instructions in machine code, i.e. in the form of 0s and 1s. It is difficult
for us to write computer program directly in machine code. The programs are
written mostly in
high-level languages, i.e.
BASIC, C++, Python
etc. A program written
in any high-level
programming language (or
written in assembly language) is called the Source
Program or Source Code.
The source code cannot be executed directly
by the computer. The source code must be converted into machine language to be
executed. The program translated into machine code is known as Object Program
or Object code.
The special translator system software that
is used to translate the program written in high-level language
(or Assembly language)
into machine code
is called language processor or translator program.
The language processors can be any of the
following three types- Assembler, Compiler and Interpreter.
Assembler
The Assembler
is used to
translate the program
written in Assembly
language into machine code.
The input of
Assembler is a
source program that
contains assembly language
instructions. The output generated by assembler is the object code or machine
code understandable by the computer.
Compiler
The language
processor that translates the complete source program as a whole in one go into
machine code is
called compiler. Some
of the examples
are C and
C++ compilers.
The program
translated into machine code is called the object program. The source code is
translated to object code successfully if it is free of errors. If there are
any errors in the source code, the
compiler specifies the
errors at the
end of compilation
with line numbers. The errors
must be removed before the compiler can successfully recompile the source code again.
Interpreter
The language
processor that translates
a single statement
of source program
into machine code and executes it immediately before moving on to the
next line is called an Interpreter. If there is an error in the statement the
interpreter terminates its translating process at that statement and displays
an error message.
Only after
removal of the error, the interpreter moves on to the next line for execution.
Utilities
A utility
software is one which provides certain tasks that help in proper maintenance
of the
computer. The job
of utility programs
is to keep
the computer system running smoothly. Nowadays
many utility softwares
are part of
the operating system
itself. Even if there is no utility software on your computer, the
computer works but with the right kind of utility software loaded, the computer
becomes more reliable and even its processing speed increases. Some of the
commonly use utility softwares are
antivirus, Disk defragmenter, backup, compression etc.
Antivirus
An antivirus is utility software which detects
and removes computer viruses. If the software
is not able to
remove the virus,
it is neutralized.
The antivirus keeps
a watch on the functioning of the computer system. If a virus is found
it may alert the user, flag the infected program or kill the virus. Some of the
common types of viruses are:
·
Boot Sector
Virus: A boot sector
virus displaces the boot record and copies itself to
the boot sector i.e. where the program to boot the machine is stored. So first
the virus is loaded on to the main memory and then the operating system.
Whenever a new disk is inserted the virus copies itself to the new disk. The
antivirus overwrites the correct boot record on the infected boot sector and
also cleans the bad sectors.
·
File Virus: A file virus generally attacks executable files.
They can attach to various locations of the original
file, replace code, fill in open spaces in the code, or create companion files
to work with an executable file. Most of the file viruses are memory resident
and wait in the memory until the user runs another program. While another program
is running, the virus replicates.
·
Macro Virus: This virus
infects an important
file called normal.dot
of MS Word. As soon
as the application
is opened the
virus gets activated.
It damages the formatting
of documents and
even may not
allow editing or saving of documents.
·
Trojan
Horse: It is a code
generally hidden in games or spreadsheets. Since they are
hidden, the program
seems to function
as the user
wants but actually it is
destroying the program. A Trojan horse does not require a host program to embed
itself. It is a complete program. Its main objective is to cause harm to the
data. They can create bad sectors on the disk, destroy file allocation tables
and cause the system to hang.
·
Worm: Worm
is a program
capable of replicating itself
on a computer network. A
worm also does
not require a
host as it
is a self
contained program. They generally
travel from one
computer to another
across communication links on a network. They generally disrupt routine
services.

The memory is used in small chunks randomly.
Sometimes when a memory chunk of appropriate size is not available, the
operating system breaks or fragments the files resulting in slower access to
files. A disk defragmenter scans the hard disk for fragmented files and brings
all the fragments together.

This
utility is used
to create the copy of
the complete or
partial data stored
in a disk or CD on any other disk. In case the hard disk crashes or some
other system failure occurs, the files can be restored using backup software.

This utility is used to
compress large files. Compression is useful because it helps reduce resources
usage and the file transmission on the network becomes easier.

This utility scans for
file that have not been accessed/used
since long. Such files might be occupying huge amount of memory space. In that
case the Disk Cleaner utility prompts the user to delete such files so as to
create more space on the disk. If the files are important, the user might take
a backup before deleting them.

This utility
helps the user
in storing, indexing,
searching and sorting
files and folders on the system.
The most commonly used tool is the Windows Explorer and Google Desktop.
Application Software
Application software is bought by the user
to perform specific applications or tasks, say for example making a document or
making a presentation or handling inventory or managing the employee
database. Application software can be of
two types – General Purpose Application Software and Customized Application
software.
General Purpose Application Software
Some
of the application
software is made for
the common users
for day to day
applications and uses. These are also referred as Office Tools. The users may
use them in the manner
they want. Some
of the popular
types of general
purpose application software are
discussed below:

We use word processing
software for various uses like writing a simple document to designing special
art effects. Since we can attach images
and different shapes, can use different
colors, even a
poster can be
designed using word
processing software.
Features like Mail
Merge, Macro has
further enhanced the
word processing software and made it very useful.



Customized Software
Customized Software is one which is tailor
made as per the user’s requirement. Such type of software is customer specific.
It is made keeping in mind the individual needs of the user
and so are
also referred as
Domain Specific Tools.
Such software cannot
be installed and used by any other user/customer since the requirements
may differ. Some examples of customized software are discussed below:







Open Source Concepts
Software are mainly categorised into the
following categories based on their licenses:
1.
Proprietary
2.
Shareware
3.
Freeware
4.
Open source
5.
Free Software

We pay a supplier for a copy of the
software which these days may be supplied on physical media (disks) or
downloaded from the Internet. We get the permission to use the software on one
or sometimes more than one machines. Examples of this type of software include
Microsoft Office and Microsoft Windows.

Shareware is basically a software for trial
purpose that the user is allowed to try for free, for a specified period of
time. It is usually downloaded from the Internet. When the trial period ends,
the software must be purchased or uninstalled.

Freeware software is free of cost and is
usually bundled up with some operating system
or any other
software. Examples of
freeware include Microsoft
Internet Explorer which comes
bundled up with
any Microsoft operating
system. The author of the
freeware software is the owner of the software, though people may use it for
free. The source code is not available, so no modifications can be done.
Freeware should not be mistaken with Open Source Software or Free Software.

Open
Source Software (OSS)
is the software
which gives the
users freedom to run/use
the software for
any purpose and
in any manner.
They can be
used, modified and even redistributed. In simple terms it can be freely
used but it may not be free of charge. The source code is freely available to
the customer. Python, TuxPaint etc are examples of Open Source Software.

This type of software is freely accessible
and can be freely used, modified, copied or distributed by anyone. And no
licence fee or any other form of payment need to be made
for a free
software. The source
code is also accessible in
case of free softwares.
Comments
Post a Comment