Computer software
Software consists of programs and enables a
computer to perform specific tasks, as opposed to
its physical components (hardware) which can only
do the tasks they are mechanically designed for.
It is loaded into a computer's storage (such as
a hard drive, a memory, or RAM). Once the
software is loaded, the computer is able to
execute the software in the Central Processing
Unit (CPU).
Computer software
This involves passing instructions from the
application software, through the system
software, to the hardware which ultimately
receives the instruction as a machine
code. Each instruction causes the computer to
carry out an operation – to move data, carry
out a computation, or alter the control flow of
instructions.
Computer software
Data is typically moved from one place in the
memory to another. Sometimes it involves
moving data between memory and registers
which enables high-speed data access in the
CPU.
Instructions may be performed sequentially,
conditionally, or iteratively.
Sequential instructions
Sequential instructions are
those operations that are
performed one after
another.
Conditional instructions
They are performed in such a
way that different sets of
instructions are executed
depending on the value(s) of
some data. In some languages
this is known as an “if
statement“.
Iterative instructions
They are performed repetitively and may
depend on some data value. This is sometimes
called a “loop.“ Often, one instruction may
“call“ another set of instructions that are
defined in some other program or module.
When more than one computer processor is
used, instructions may be executed
simultaneously.
Types of Software
System Software
Programming software
Application Software
Open source software (OSS)
Proprietary software
The major types of software
System Software
Application software Operating Systems
System software Schedules computer
events
Hardware Allocates computer
resources
Monitor events
Language translators
Interpreters
User
Compilers
s
Application Software Utility programs
Programming languages Routine operations (e.g. sor
Assembly language list, prin
FORTRAN, BASIC, PL/1 Manage data (e.g. create file
PASCAL, C merge file
“4th generation “
languages
System Software
Manages the fundamental operations of the
computer, such as
- loading programs and data into memory,
executing programs, saving data to disks,
displaying information on the monitor, and
transmitting data through a port to a
peripheral device.
System software: operating systems, utilities,
device drivers.
System Software:
It includes the Operating System and all the
utilities that enable the computer to function.
It refers to any computer software which manages
and controls the hardware so that application
software can perform a task.
Example: Operating Systems, Compiler, Loader,
Linker, Interpreter.
Responsibilities of an Operating
System
Communicate with user, receive and execute
commands, show error messages.
Manage allocation of memory, processor time and
other resources.
Collect input from keyboard, mouse, and provide
data to running programs.
Convey program output to screen, printer, or other
output device.
Access data from secondary storage.
Write data to secondary storage.
Maintains security (checks user-name , password,
virus infection)
Operating System: Multiprogramming
Traditional system with Multiprogramming
no multiprogramming environment
Program 1
Program 1 Program 2
Operating Operating
System System
Program 3
Unused memory Unused memory
The first operating systems executed only one program at a time.When a
program read data from a tape or disk or wrote data to a printer, the entire
CPU came to a stop. This was a very inefficient way to use the computer.
In a multiprogramming environment, three programs were stored in primary
storage. The first program executes until an input/output statement occurs.
Then the operating system directs a channel to read the input and move the
output to output device.The CPU moves to the second program until an
input/output statement occurs. At this point, the CPU switches to the
execution of the third program.
Operating System: Multitasking
Multitasking => The multiprogramming capability of
primarily single-user operating systems (PC).
One person can run two or more programs
concurrently on a single computer.
When you are writing a report using MS Word, you
can also search on the Internet.
Multitasking allows you to display both programs
on the computer screen and work with them at the
same time.
Operating System:Virtual Storage
Virtual storage => a way of handling programs more efficiently
Virtual storage breaks a program into a number fixed- length
portions called pages or into variable-length portions called
segments.
Only this small portion (2 to 4 kilobytes) of the program is stored
in primary memory at one time.
All other program pages are stored on a peripheral disk until they
are ready for execution.
Virtual storage provides a number of advantages:
- the central processor is utilized more fully.
- Many more programs can be in primary storage because
only one page of each program actually resides there.
- Programmers no longer have to worry about the size of the
primary storage. Programs can be of infinite length and small
machines can execute a program of any size.
Operating System: Virtual Storage
Primary memory Secondary storage (disk)
Program A
Lines 1, 2, 3
Program A
Program B
Lines 7, 8, 9
Program B
Program C
Lines 52-80 Program C
Virtual storage is based on the fact that. In general, only a few
statements in a program can be actually utilized at any given moment
Operating System: Time Sharing
Time sharing => an operating system capability that allows
many users to share computer processing resources
simultaneously.
It differs from multiprogramming in that the CPU spends a fixed
amount of time on one program before moving to another .
In time sharing environment, thousands of users are each
allocated a tiny slice of computer time (2 milliseconds).
In this time slot, each user is free to perform any required
operations.
At the end of this period, another user is given a 2-millisecond
time slice of the CPU.
This arrangement permits many users to be connected to a
CPU simultaneously.
Because the CPU is operating at the nanosecond level, a CPU
can accomplish a great deal of work in 2 millisecond.
Operating System: Multiprocessing
Multiprocessing => an operating system capability that links
together two or more CPU to work in parallel in a single
computer system.
The operating system can assign multiple CPUs to execute
different instructions from the same program or from
different programs simultaneously, dividing the work
between the CPUs.
Multiprogramming uses concurrent processing with one
CPU.
Multiprocessing uses simultaneous processing with multiple
CPUs.
Utilities
Another category of system software.
Augments the OS by taking over some of its
responsibility for allocating hardware resources.
Utility Program => System software consisting
of programs for routine, repetitive tasks ( e.g.
copying, clearing primary storage, computing a
square root, or sorting), which can be shared by
many users.
Many utilities come with OS.
Some independent software developers offer
utilities for sale separately.
E.g. Norton Utilities by Symantec.
Device driver
A computer program that can establish
communication because it contains
information about the characteristics of
your computer and of the device.
Each peripheral device requires a device
driver.
Helps the computer communicate with
that particular device.
When we add a device to an existing
computer, part of its installation includes
adding its device driver to the
configuration.
Compiler
Software that translates a high-level
language program into machine language.
Input to the compiler is a source file
(created by word processor or editor)
containing the text of a high-level
language program.
If it is syntactically correct, compiler will
save in an object file which is a machine
language instructions for the same job.
Compiler:
Source Languages Target Languages
‘C’ language ‘C’ language
‘Pascal’ language Machine language
FORTRAN language
C++ language
ADA language
Loader:
It is the part of an operating system that is
responsible for loading programs into memory,
preparing them for execution and then
executing them.
The loader is usually a part of the operating
system's kernel and usually is loaded at system
boot time and stays in memory until the system
is rebooted, shut down, or powered off.
In Unix, the loader is the handler for the
system call execve().
Linker:
A linker or link editor is a program that takes
one or more objects generated by compilers
and assembles them into a single executable
program.
Linkers can take objects from a collection
called a library. The objects are program
modules containing machine code and
information for the linker.
The linker takes care of arranging the
objects in a program's address space.
Interpreter:
It is a computer program that translates and
executes instructions written in a computer
programming language line-by-line, unit by
unit etc.,
An interpreter needs to be able to analyze
instructions written in the source language.
Example: Lisp systems, etc.,
Integrated development
environment (IDE)
Most high-level languages now include an
Integrated Development Environment
(IDE) consisting of a simple word
processor, compiler, linker and loader
tools for finding errors.
This software package provides menus
from which user can select the next step.
It leaves all versions of the program in
memory. For safety, we need to explicitly
save the source file to disk.
Program Execution
Executing a program requires the CPU to
examine each program instruction in memory and
send out the command signals required to
perform each instruction.
Although instructions are normally performed
consecutively (sequencing), they can be skipped
(branching) or repeated (looping) under program
control.
During execution, data can be entered by the
operator, or from a saved file.
After processing, the program output can be
displayed or printed as a result.
Command-line & Graphical User
Interfaces
Command-line interface systems display a
command prompt, then expect the user to type the
desired commands.
These systems include UNIX, MS-DOS and VMS.
Graphical user interfaces (GUI) display pictures
(icons), menus, and text, which the user may point
to with a mouse or other pointing device, then click
to select the desired function.
These systems (GUI) include Macintosh OS,
Windows 95/98, Windows NT, OS/2 Warp, and
Unix with X Windows interface.
Application Software:
Application Software includes programs that
do real work for a user.
Example:
Payroll systems, Inventory Control, Manage
student database, Word Processor,
Spreadsheet and Database Management
System etc.,
Word Processors:
It is a tool that helps user in creating, editing, and
printing documents. Word processors will normally have
the following capabilities built into them:
- Spell checking
- Standard layouts for normal documents
- Some characters appearing in bold print,
italics, or underlined
- Center lines, make text line up on the left
side of the paper, or the right side of the
paper
- Save the document so it can be used again
- Print the document.
Examples: WordPerfect and Microsoft Word
Spreadsheets:
The spreadsheet packages are designed to use
numbers and formulas to do calculations with
ease. Examples of spreadsheets include:
- Budgets
- Payrolls
- Grade Calculations
- Address Lists
The most commonly used spreadsheet programs
are Microsoft Excel and Lotus 123.
Graphic Presentations:
The presentation programs can make giving
presentations easier. Other uses include:
- Slide Shows
- Repeating Computer Presentations on a
computer monitor
- Using Sound and animation in slide shows
The most recognized graphic presentation
programs are Microsoft PowerPoint and Harvard
Graphics.
Database Management System(DBMS):
A DBMS is a software tool that allows multiple
users to store, access, and process data into
useful information.
Database programs are designed for these
types of applications:
- Membership lists
- Student lists
- Grade reports
- Instructor schedules
All of these have to be maintained so you can
find what you need quickly and accurately.
Example:Microsoft Access, dBASE, Oracle.
Open Source Software:
Open source software (OSS) is computer
software whose source code is available under
a license that permits users to use, change, and
improve the software, and to redistribute it in
modified or unmodified form.
It is often developed in a public, collaborative
manner.
Well-known OSS products are Linux,
Netscape/Firefox, Apache , etc.,
Proprietary Software:
Proprietary software (also called non-free
software) is software with restrictions on
using, copying and modifying as enforced by the
proprietor. Restriction on use, modification and
copying is achieved by either legal or technical
means and sometimes both.
Proponents of proprietary software are
Microsoft.
Examples: AutoCAD, Norton Antivirus etc.,
Integrated Software packages and software
suites
Integrated software packages combine the functions of the most
important PC software packages, such as word processing,
spreadsheets, graphics, and data management.
This integration provides a more general-purpose software tool and
eliminates redundant data entry and data maintenance.
Integrated packages are a compromise.
They can do many things, however, they generally do not have the
same power and depth as single-purpose packages.
Integrated software packages are different from software suites.
Software suites are collections of applications software sold as a unit
(e.g. Microsoft Office 97). It contains Word, Excel, Access,
PowerPoint, and Outlook.
Software suites have some features of integrated packages, such as
the ability to share data among different applications, but they consist
of full-featured versions of each type of software.
Web Browsers
Easy-to-use software tools for accessing the
World Wide Web and the Internet.
It has a point-and click graphical user interface.
Using this interface, you can access and display
information stored in computers at other Internet
sites.
You can display graphics, audio, and video as well
as text.
Examples: Netscape Navigator (along with
Netscape Communicator) and MS Internet
Explorer are two popular Web browsers.