Software
Software
Software
Software is a general term used to describe a collection of computer programs,
procedures and documentation that performs some specific tasks on the computer system.
software tells the computer how the tasks are to be performed that hardware carries out these
tasks.
Software refers to the programs and applications that run on a computer or other device.
It is the set of instructions that tell a computer or other device what to do and how to do it.
Software is a collection of set of programs, which are used to execute all kinds of specific
instruction. It consists of a number of machine instructions, array in a specific order to perform a
particular task. Software is used to describe all the programs and its associated documents which
run on a computer. So, a computer needs both software and hardware for its proper functioning.
Software means computer instructions or data. Anything that can be stored electronically is
software.
Firmware are software (programs or data) that has been permanently written onto read-only
memory (ROM)
All software falls into two general types or categories: System Software and Application
Software. System software consists of low-level programs that interact with the computer at very
basic level. This includes operating systems, compilers, and utilities for managing resources. On
the other hand, application software includes database programs,
word processors, and spreadsheets.
Types of Software:
System software
Application Software.
System software:
System Software is a general term used to describe a set of collection of computer
programs, procedures and documentation that performs some specific tasks on the computer.
system software tells the computer how the tasks are to be performed that hardware carries out
these tasks.
System software is the low-level software that manages and controls the hardware and
other system resources, such as memory and processors. This includes the operating system,
which provides the interface between the user, the hardware, and the other software.
System software is a group of programs that directs the internal operations of computer
system such as controlling input output devices, managing the storage area within the computer.
System software allows the user to communicate with the hardware system and it also
allows the user to write their own program without knowing the internal structure of hardware.
System software manages the functionality of different component of computers like processor,
input and output devices according to the program. It is required for managing the operation
performed by the component of computer and the devices attach to the computer system.
Functions of System software:
The main functions of system software are:
1. Managing and controlling the hardware and other system resources, such as memory and
processors.
2. Providing the interface between the user, the hardware, and the other software.
3. Running in the background and providing services that other software can use to perform their
functions.
4. Communicating with specific hardware devices through device drivers.
5. Maintaining and optimizing the performance of the system through utility programs.
6. Enabling the user to interact with the computer or other device through a user-friendly interface.
7. Providing security features to protect the system from unauthorized access and viruses.
8. Allowing the installation and management of other software.
Overall, the main function of system software is to manage and control the resources of a
computer or other device, and to provide the necessary infrastructure for other software to run
on.
Operating Software:
Operating system is an integrated set of programs that is used to manage the various resources
and overall operation of the computer system. It also provides the basis for application program and acts
as intermediate between user of a computer and the hardware.
An operating system (OS) is a type of system software that manages and controls the hardware
and other system resources of a computer or other device. It provides the interface between the user, the
hardware, and the other software, and enables the user to interact with the computer or other device
through a user-friendly interface.
The operating system is the most important type of system software, as it is responsible for
managing the resources of the computer and providing the necessary infrastructure for other software to
run on. It also provides a range of services that other software can use to perform their functions, such as
access to memory and other system resources, and communication with specific hardware devices.
Some examples of popular operating systems include Microsoft Windows, MacOS, and Linux. These
operating systems are designed to run on different types of computers and devices, and provide a range of
features and functions to the user.
In general, the operating system is an essential component of a computer or other device, and is
responsible for managing and controlling the hardware and other system resources in order to enable the
smooth and efficient functioning of the system.
Language Translator:
A language translator is a programming language processor that converts a computer program
from one language to another. It takes a program written in source code and converts it into machine
code.
A Language translator is a computer program that translates a program written in a given
programming language into a functionally equivalent program in a different language. It translates a high-
level language program into a machine language program that the central processing unit (CPU) can
understand. It also detects errors in the program.
There are 3 different types of translators as follows:
Compiler
A compiler is a translator used to convert high-level programming language to low-level
programming language. It converts the whole program in one session and reports errors detected after the
conversion. The compiler takes time to do its work as it translates high-level code to lower-level code all
at once and then saves it to memory.
Interpreter
Just like a compiler, is a translator used to convert high-level programming language to low-level
programming language. It converts the program one at a time and reports errors detected at once while
doing the conversion. With this, it is easier to detect errors than in a compiler. An interpreter is faster
than a compiler as it immediately executes the code upon reading the code.
It is often used as a debugging tool for software development as it can execute a single line of code at a
time. An interpreter is also more portable than a compiler as it is not processor-dependent, you can work
between hardware architectures.
S.No. Compiler Interpreter
1. The compiler scans the whole program in Translates the program one statement at a time.
one go.
2. As it scans the code in one go, the errors Considering it scans code one line at a time,
(if any) are shown at the end together. errors are shown line by line.
3. The main advantage of compilers is its Due to interpreters being slow in executing the
execution time. object code, it is preferred less.
4. It converts the source code into object It does not convert source code into object code
code. instead it scans it line by line
5 It does not require source code for later It requires source code for later execution.
execution.
6 Execution of the program takes place Execution of the program happens after every
only after the whole program is compiled. line is checked or evaluated.
7 The machine code is stored in the disk Machine code is nowhere stored.
storage.
8 Compilers more often take a large In comparison, Interpreters take less time for
amount of time for analyzing the source analyzing the source code.
code.
Eg. C, C++, C#, etc are programming Python, Ruby, Perl, SNOBOL, MATLAB, etc are
languages that are compiler-based. programming languages that are interpreter-
based.
Assembler
An assembler is a translator used to translate assembly language to machine language. It is like a
compiler for the assembly language but interactive like an interpreter. Assembly language is difficult to
understand as it is a low-level programming language. An assembler translates a low-level language, an
assembly language to an even lower-level language, which is the machine code. The machine code can
be directly understood by the CPU.
Utilities software:
Utility software includes all systems and programs on a computer system that maintain its functionality.
A computer's utility software includes components that assist the operating system to optimize, maintain,
organize and manage how it functions in all situations. This type of software also supports the computer's
infrastructure, which differs from application software that performs tasks to benefit the user. When
performing its functions or being replaced, utility software may require the approval of a user with
elevated privileges on the computer.
When manufacturers produce a computer, they typically install an operating system and a set of utility
programs that support it. This portion of the utility software is often considered to be part of the operating
system, although the user can install other utility programs or replace existing software. Example
-Antivirus software
-System monitoring software
-Debugging software
-Compression tools
-Backup utility software
-Disk defragmentation software
-Disk space analysis software
Device driver.
Device drivers are the software to run the particular peripheral devices like printers, wireless
mouse, modems, and Ethernet cards etc. Most of the peripheral devices attached with the CPU needs
device drivers to carry out the functions. Mostly we get device drivers at the time of buying these devices.
For example we get the printer driver when we buy the printer. Device driver lets the CPU know the type
of hardware and the type of instruction for a particular device attached with it.
Application Software:
The software that is design by the user to solve a specific user oriented problems using the
computer is known as application software. Application software is typically developed to meet the
specific needs of a user or group of users, and it is often created using a programming language such as
C++ or Java. Some common examples of application software include word processors, spreadsheet
programs, media players, graphic design software, and web browsers.
Application software is an essential part of modern computing, as it enables users to perform a
wide range of tasks and functions on their computers. It is typically installed on a computer or mobile
device and is used to perform specific tasks or functions, such as creating and editing documents,
accessing the internet, playing media files, and managing data.
Package software:
Packaged software is a type of application software which is design with a generalized set of programs to
perform the general task. These are the software which are produced by the software companies and
make it available to the customer who are willing to buy it. It is easy to use and easily available in the
market.
Customized software is types of application software which is design to meet the specific requirement of
an organization or individual to perform the task. It is developed according to the demand of the
customers and the organization. They serves only one type of user or organization. They are developed
for or design by using high level programming language such as C, C++, Java VB.net etc.
2. Cost of Packaged software is low. While custom software’s cost is higher than
packaged software since custom software
are made for a specific purpose.
3. Packaged software are easy or simple to use Whereas custom software is hard to use
because these software have an easy interface. because these software are custom-built or
customized.
4. It’s measures of success is market sharing and Whereas it’s measures of success is to
profitability. provide satisfaction and acceptance to user.
5. It’s bench-marking is poor due to it’s size ability. While it’s bench-marking is good due to it’s
benchmark data available.
S.NO Packaged Software Custom Software
6. It is present in the market to everybody for buying While it is not commercially available, it is
and using. exclusive to third parties.
Operating system:
An operating system is a system software, which is a set of specialized program that are used to
control the resources of a computer system. It is an organized set or collection of software that controls
the overall operation of computer systems and provide an environment where the user can execute the
program in a convenient and effective manner.
Operating system is a system software that controls and co-ordinate the overall functions are the
compass system and provides as an interface to the user. It also controls the resources like hardware and
software of computer systems.
It hides the detail of hardware from the user or programmer or with convenient interface for using
the system. Operating System performs basic task such as recognizing the input from the input device,
process input according to the predefined instruction by processing
device, sending output to display, keeping track of files and directories
on the disk and controlling peripheral devices services printer modem
etc.
OS is an important system software package found in every
computer systems. It is a set of programs that controls and supervises a
computer system‟s hardware and it provides services to computer users.
It permits the computer to supervise its own operations by automatically
calling in application programs and managing data needed to produce
the output desired by users. OS is an interface between the user and the
computer. OS perform basic tasks, such as recognizing input from the
keyboard, sending output to the display screen, keeping track of files and
directories on the disk, and controlling peripheral devices such as disk
drives and printers. OS, as a resource manager keeps track of who is
using which resource, to grant resource requests, to account for usage and to mediate conflicting requests
from different programs and users.
Multi-Tasking
Multi-tasking means that the computer can work with more than one program at a time. For
instance, you could be working with information from one database on the screen analyzing data,
while the computer is sorting information from another database, while a spreadsheet is
performing calculations on a separate worksheet. This is different from “multiple loading” of
applications, also known as “context switching” or “task switching,” which is what happens
when you use MultiFinder or System 7 on the Macintosh or the DOS task switcher. Context
switching simply allows several applications to be open, but only one is working at a time.
Actually, even in true multi-tasking, only one application is ever running at anyone instant. But
because the computer automatically switches from one to the next so quickly, all the
programs seem to run simultaneously.
Time-sharing Operating systems
A time sharing system allows many users to share the computer resources simultaneously. In
other words, time sharing refers to the allocation
of computer resources in time slots to several programs
simultaneously. For example a mainframe computer that
has many users logged on to it. Each user uses the
resources of the mainframe -i.e. memory, CPU etc. The
users feel that they are exclusive user of the CPU, even
though this is not possible with one CPU i.e. shared among
different users.
The time sharing systems were developed to provide an interactive use of the computer system.
A time shared system uses CPU scheduling and multi-programming to provide each user with a
small portion of a time-shared computer. It allows many users to share the computer resources
simultaneously. As the system switches rapidly from one user to the other, a short time slot is
given to each user for their executions.
The time sharing system provides the direct access to a large number of users where CPU time
is divided among all the users on scheduled basis. The OS allocates a set of time to each user.
When this time is expired, it passes control to the next user on the system. The time allowed is
extremely small and the users are given the impression that they each have their own CPU and
they are the sole owner of the CPU. This short period of time during that a user gets attention of
the CPU; is known as a time slice or a quantum. The concept of time sharing system is shown
in figure.
Time-sharing operating system enables people located at a different terminal(shell) to use a
single computer system at the same time. The processor time (CPU) which is shared among
multiple users is termed as time sharing.
Multiprocessor Operating System refers to the use of two or more central
processing units (CPU) within a single computer system. These multiple
CPUs are in a close communication sharing the computer bus, memory and
other peripheral devices. These systems are referred as tightly coupled
systems.
These types of systems are used when very high speed is required to
process a large volume of data. These systems are generally used in
environment like satellite control, weather forecasting etc. The basic
organization of multiprocessing system is shown in fig.
Real time OS
The real-time operating system used for a real-time application means for those applications
where data processing should be done in the fixed and small quantum of time.
It is different from general purpose computer where time concept is not considered as much
crucial as in Real-Time Operating System. RTOS is a time-sharing system based on clock
interrupts. Interrupt Service Routine (ISR) serve the interrupt, raised by the system. RTOS used
Priority to execute the process
A real time operating system time interval to process and respond to inputs is very small.
Real time Operating Systems are very fast and quick respondent systems. These systems are
used in an environment where a large number of events (generally external) must be accepted
and processed in a short time. Real time processing requires quick transaction and characterized
by supplying immediate response. For example, a measurement from a petroleum refinery
indicating that temperature is getting too high and might demand for immediate attention to
avoid an explosion. Examples: Military Software Systems, Space Software Systems are the Real
time OS example.
Mobile OS
Mobile operating systems are those OS which is especially that are designed to power
smartphones, tablets, and wearables devices.
Some most famous mobile operating systems are Android and iOS, but others include
BlackBerry, Web, and watchOS.
2. File management: It manages all the file-related activities such as organization storage,
retrieval, naming, sharing, and protection of files. The operating system manages files and
directories of a computer system. A file can be define as a collection of information or
data that is stored in the memory of a computer system. every files have a unique name
associated with it. The organization of files and directories in a computer system is
referred as file system. The file management task includes create and delete both files and
directories, provide access to files, allocate space for files, Keep backup of files and
secure files.
3. Device Management: Device management keeps tracks of all devices. This module also
responsible for this task is known as the I/O controller. It also performs the task of
allocation and de-allocation of the devices.
4. I/O System Management: One of the main objects of any OS is to hide the peculiarities
of that hardware devices from the user.
7. Security: Security module protects the data and information of a computer system
against malware threat and authorized access. Operating system protects the resources Of
system from various threats such as virus attack and unauthorized access. and operating
system uses various techniques searches authentication, authorization, cryptography,
etc for ensuring security of a computer system.
10. Job accounting: Keeping track of time & resource used by various job and users.
Programming Languages
Programming Language is a set of rules that provides a way of instructing the computer to
perform certain operations. Programming languages are said to be lower or higher, depending on
whether they are closer to the language the computer itself uses or to the language that people
uses.
We can study the programming languages under two levels of language:
Database
User-written Packaged Operating Natural
Management
Programs Programs Systems Languages
Systems
Natural
Fourth Languages
Generation
Software Machine Symbolic High-Level
Trends Languages Multipurpose
Language Language Languages
Microcomputer graphic-
Packages interfaced
packages.
They are designed to allow the computer to become “smarter” – to actually simulate the learning process
by remembering and improving upon earlier information.
Two popular natural languages are LISP and PROLOG.