0% found this document useful (0 votes)
30 views

Software

System software includes operating systems, compilers, and utilities that manage computer hardware and allow other software to function. Operating systems provide an interface between users, hardware, and other software. Language translators convert programs between programming languages, with compilers converting entire programs at once and interpreters converting line-by-line. Utilities software maintains computer functionality with programs for tasks like file management, security, and backups. System software works behind-the-scenes to enable the use of application software like word processors and spreadsheets.

Uploaded by

Ayug Rai
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
30 views

Software

System software includes operating systems, compilers, and utilities that manage computer hardware and allow other software to function. Operating systems provide an interface between users, hardware, and other software. Language translators convert programs between programming languages, with compilers converting entire programs at once and interpreters converting line-by-line. Utilities software maintains computer functionality with programs for tasks like file management, security, and backups. System software works behind-the-scenes to enable the use of application software like word processors and spreadsheets.

Uploaded by

Ayug Rai
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 13

Chapter -04

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.

The system software is further divided into Four types:


Operating System
Language Translator
Utilities software
Device driver.

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.

A compiler is processor-dependent and platform-dependent. But it has been addressed by a


special compiler, a cross-compiler and a source-to-source compiler. Before choosing a compiler, the user
has to identify first the Instruction Set Architecture (ISA), the operating system (OS), and the
programming language that will be used to ensure that it will be compatible.

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.

9. It is more efficient. It is less efficient.


S.No. Compiler Interpreter

10. CPU utilization is more. CPU utilization is less.

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.

Some common examples of application software include:


 Word processors: These are programs that allow users to create and edit written documents, such as
reports, letters, and resumes.
 Spreadsheets: These are programs that allow users to create and manipulate tables of data, such as
budgets and financial reports.
 Media players: These are programs that allow users to play audio and video files, such as music and
movies.
 Graphic design software: These are programs that allow users to create and edit images and graphics,
such as logos and advertisements.
 Web browsers: These are programs that allow users to access and navigate the internet.

Types of Application Software:


Package software
Tailored / Customized Software

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.

Tailored / Customized Software:

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.

S.NO Packaged Software Custom Software

1. Packaged software is a compilation of programs Custom software is a specific program that


which are grouped together in order to provide are advanced for a goal in a department or
publicly with different tools in the same group. in a company.

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.

7. Packaged software can’t be modified. But custom software can be modified or


changed if there is need.

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.

Objectives of Operating System


The objectives of the operating system are −

 To make the computer system convenient to use in an efficient manner.


 To hide the details of the hardware resources from the users.
 To provide users a convenient interface to use the computer system.
 To act as an intermediary between the hardware and its users, making it easier for the users to access
and use other resources.
 To manage the resources of a computer system.
 To keep track of who is using which resource, granting resource requests, and mediating conflicting
requests from different programs and users.
 To provide efficient and fair sharing of resources among users and programs.
Types of Operating System (OS)
Following are the popular types of OS (Operating System):

 Batch Operating System


 Multitasking/Time Sharing OS
 Multiprocessing OS
 Real Time OS
 Distributed OS
 Network OS
 Mobile OS

Batch Operating System:


-The First operating system of the second-generation computer is the
batch operating system.
-Batch operating system took the input on the punch card. Each
punch card had the different form of data.
-System executed the jobs one by one in batch. When one job from
the batch executed, then the second job has taken from it and so on.
The process of placing the jobs in queue for execution is known as
spooling.
-Some computer processes are very lengthy and time-consuming. To speed the same process, a
job with a similar type of needs are batched together and run as a group.
-The user of a batch operating system never directly interacts with the computer. In this type of
OS, every user prepares his or her job on an offline device like a punch card and submit it to the
computer operator.

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.

Multiprocessing system is based on the symmetric multiprocessing model, in which each


processor runs an identical copy of operating system and these copies communicate with each
other. In this system processor is assigned a specific task. A master processor controls the
system. This scheme defines a master-slave relationship. These systems can save money in
compare to single processor systems because the processors can share peripherals, power
supplies and other devices. The main advantage of multiprocessor system is to get more work
done in a shorter period of time. Moreover, multiprocessor systems prove more reliable in the
situations of failure of one processor. In this situation, the system with multiprocessor will not
halt the system; it will only slow it down.

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.

Distributed Operating System


Distributed Operating System is a model where distributed applications are running on
multiple computers linked by communications. A distributed operating system is an extension
of the network operating system that supports higher levels of
communication and integration of the machines on the network.
This system looks to its users like an ordinary centralized operating
system but runs on multiple, independent central processing units
(CPUs).
The Distributed Os involves a collection of
autonomous computer systems, capable of communicating and
cooperating with each other through a LAN / WAN. A Distributed
Os provides a virtual machine abstraction to its users and wide
sharing of resources like as computational capacity, I/O and files etc.
Distributed systems use many processors located in different machines to provide very fast
computation to its users.

Network Operating System


Network Operating System is an operating system that includes
special functions for connecting computers and devices into a
local-area network (LAN) or Inter-network. Short form of
Network Operating system is NOS. Some popular network
operating systems are Novell Netware, Windows NT/2000, Linux,
Sun Solaris, UNIX, and IBM OS/2. The network operating system which was first developed is
Novell Netware. It was developed in 1983.
An operating system that provides the connectivity among a number of autonomous computers
is called a network operating system. A typical configuration for a network operating system is
a collection of personal computers along with a common printer, server and file server for
archival storage, all tied together by a local network.
Network Operating System runs on a server. It provides the capability to serve to manage data,
user, groups, security, application, and other networking functions.

Embedded operating system:


An embedded operating system is a piece of software that is aimed at controlling an
embedded system. An embedded system is a combination of hardware and software used to
perform a highly specialized task. For instance, consider the example of a modern smart TV. The
microprocessor and the associated hardware inside the TV are controlled by an embedded OS.
So, an embedded OS controls the hardware resources of an embedded system and allows code to
run on the hardware. The code that an embedded OS runs performs fixed tasks like controlling
Internet of Things (IoT) devices.

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.

Functions of Operating System


Some typical operating system functions may
include managing memory, files, processes,
I/O system & devices, security, etc.

Below are the main functions of Operating


System:

Functions of Operating System


In an operating system software performs each of the function:

1. Process management: Process management helps OS to create and delete processes. It


also provides mechanisms for synchronization and communication among processes. A
process is a program basically a program that is being currently run by the user on the
computer system. the process management activities handles by the OS are control to
share resources like files memory input output and CPU, Control execution of
application, create execute and delete a process, cancel or resume of process, schedule a
process and synchronization communication and deadlock handling for processes.

2. Memory management: Operating system manages the memory resources of a computer


system. All the programs are loaded in the main memory before their execution. It is the
function of operating system to determine how much memory should be provided to each
process. activities of memory management handled by operating system are: allocate
memory, free memory, reallocate memory to program when a user is free and keep
track of memory uses. Memory management module performs the task of allocation and
de-allocation of memory space to programs in need of these resources.

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.

5. Secondary-Storage Management: Systems have several levels of storage which includes


primary storage, secondary storage, and cache storage. Instructions and data must be
stored in primary storage or cache so that a running program can reference it.

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.

8. Command interpretation: This module is interpreting commands given by the and


acting system resources to process that commands.

9. Networking: A distributed system is a group of processors which do not share memory,


hardware devices, or a clock. The processors communicate with one another through the
network.

10. Job accounting: Keeping track of time & resource used by various job and users.

11. Communication management: Coordination and assignment of compilers, interpreters,


and another software resource of the various users of the computer systems.

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:

a. Low level language


1. Machine Languages
2. Assembly languages

b. High level language


1. Procedural Languages
2. Problem-oriented Languages
3. Natural Languages
The characteristics & trends of these five languages are summarized in the following table:
First Second Third Fourth Fifth
Generation Generation Generation Generation Generation

Trend : Towards Conversational natural programming 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.

Trend: Towards easy to use multi-purposed application


packages
Computer programming languages are developed with the primary objectives without the need to know in
detail the internal structure of the computer.
Machine Language
A program written using the binary codes specified for a processor’s operations and absolute binary
addresses is known as machine language of the computer. The programs written in Machine languages are
machine dependent. Programming using Machine Language is very tedious and time consuming. The
programmer must keep track of a tremendous amount of detail and one must understand the technical
operations of the computer. Programming in machine code has one advantage over programming at other
language levels – its execution is very fast and efficient because the computer can accept the machine
code as it is.
Assembly Language
Assembly languages are also known as symbolic languages as they use abbreviations or
mnemonic code which replace the 0s and 1s of machine language. An assembly language has a
one-to-one correspondence with the machine language of a computer and is thus machine
dependent. Assembly languages are more standardized and easier to use than machine languages.
Though more standardized than machine languages, assembly languages are still machine dependent.
High Level Languages
High level languages are the programming languages that use predefined common English words
and clauses to write a program. They assisted programmers by reducing further the number of
computer operations details they has to specify, so that they could concentrate more on the logic
needed to solve the problem. We can classify the high level languages into three levels:
 Procedural-oriented or third generation
 Problem-oriented or fourth generation
 Natural or fifth generation
1) Procedural oriented Languages
General-purpose programming languages are called procedural languages or third generation languages.
They are the languages such as Pascal, BASIC, COBOL, and FORTAN, C which are designed to express
the logic, the procedure, of a problem. Because of their flexibility, procedural languages are able to solve
a variety of problems. More focus is given to module while programming in Procedural-oriented
languages.
2) Problem-oriented Languages
Fourth-generation languages are also known as problem-oriented languages. These are the languages
designed to solve specific problems or develop specific applications by enabling one to describe what he
wants rather than step-by-step procedures for getting there. Thus the problem should be considered most
rather than procedures so as to get the solution to the particular problem. Visual Basic and PERL are
Problem-oriented languages. These languages may be categorized into several kinds of application
development tools:
 Personal computer application software
 Query languages and report generators
 Decision support system and financial planning languages
 Application generators
3) Natural Languages
Natural languages are very near to the human conversational language. Natural languages are still in the
development stages. These languages will be used most in the areas of artificial intelligence and expert
systems. Natural languages have two characteristics:
 They are designed to make the connections that humans have with computers more natural – more
humanlike.

 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.

Define open source software.

You might also like