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

Roles and Functions of Computer Software

Software is essential for operating computer devices, consisting of instructions and programs that enable specific tasks. It is categorized into system software, which manages hardware interactions, and application software, which performs user-specific functions. The operating system, a key component of system software, facilitates communication between users and hardware, managing resources like memory, processing, devices, and files.

Uploaded by

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

Roles and Functions of Computer Software

Software is essential for operating computer devices, consisting of instructions and programs that enable specific tasks. It is categorized into system software, which manages hardware interactions, and application software, which performs user-specific functions. The operating system, a key component of system software, facilitates communication between users and hardware, managing resources like memory, processing, devices, and files.

Uploaded by

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

Software

Software is responsible for directing all computer-related devices and instructing them regarding what
and how the task is to be performed. Without software, most computers would be useless. For example,
without your Internet browser software, you could not surf the Internet. Without an operating system,
the browser could not run on your computer.

Definitions.
• Software is a set of instructions, data or programs used to operate computers and execute
specific tasks. It is the opposite of hardware, which describes the physical aspects of a
computer. Software is a generic term used to refer to applications, scripts and programs that
run on a device.
• Software is a set of computer programs and associated documentation and data. This is in
contrast to hardware, from which the system is built and which actually performs the work.
• Software is a set of programs (sequence of instructions) that allows the users to perform a well-
defined function or some specified task.

Types of Software
Software's are broadly classified into two types, System Software and Application Software.
1. System Software
The further classifications of system software are as follows:
i. Operating System
ii. Utility Software
iii. Firmware
2. Application Software.

1. System Software
System software is a computer program that helps the user to run computer hardware or software and
manages the interaction between them. Essentially, it is software that constantly runs in the computer
background, maintaining the computer hardware and computer's basic functionalities, including the
operating system, utility software, and interface. In simple terms, you can say that the system acts as a
middle man that checks and facilitates the operations flowing between the user and the computer
hardware.
System software is not limited to the operating system. They also include the basic I/O system
procedures, the boot program, assembler, computer device driver, etc. This software supports a high-
speed platform to provide effective software for the other applications to work in effortlessly.
Therefore, system software is an essential part of your computer system. They are the first thing that
gets loaded in the system's memory wherever you turn on your computer. System software is also
known as "low-level software" because the end-users do not operate them. Companies usually employ
the best software development programmers who can deploy efficient system software.

i. Operating System
An Operating System (OS) is an interface between a computer user and computer hardware. An
operating system is a software which performs all the basic tasks like file management, memory
management, process management, handling input and output, and controlling peripheral devices such
as disk drives and printers.
An operating system is software that enables applications to interact with a computer's hardware. The
software that contains the core components of the operating system is called the kernel.
The primary purposes of an Operating System are to enable applications (software’s) to interact with a
computer's hardware and to manage a system's hardware and software resources.

Some Operating system Definitions


We can have a number of definitions of an Operating System.
• An Operating System is the low-level software that supports a computer's basic functions, such
as scheduling tasks and controlling peripherals.
• An operating system is a program that acts as an interface between the user and the computer
hardware and controls the execution of all kinds of programs.
• An operating system (OS) is system software that manages computer hardware, software
resources, and provides common services for computer programs.

Architecture of an Operating System


We can draw a generic architecture diagram of an Operating System which is as follows:

General Architecture of an Operating System

An operating system is a program that acts as an interface between a user of a computer and the
computer resources. The purpose of an operating system is to provide an environment in which a user
may execute programs.

Hardware

The hardware consists of the memory, CPU, arithmetic-logic unit, various bulk storage devices, I/O,
peripheral devices and other physical devices.
Kernel

In computing, the kernel is the central component of most computer operating systems; it is a bridge
between applications and the actual data processing done at the hardware level. The kernel's
responsibilities include managing the system's resources (the communication between hardware and
software components). Usually as a basic component of an operating system, a kernel can provide the
lowest-level abstraction layer for the resources (especially processors and I/O devices) that application
software must control to perform its function. It typically makes these facilities available to application
processes through inter-process communication mechanisms and system calls.

Shell

A shell is a piece of software that provides an interface for users to an operating system which provides
access to the services of a kernel. The name shell originates from shells being an outer layer of interface
between the user and the innards of the operating system (the kernel).

Operating system shells generally fall into one of two categories: command-line and graphical.
Command-line shells provide a command-line interface (CLI) to the operating system, while graphical
shells provide a graphical user interface (GUI). In either category the primary purpose of the shell is to
invoke or "launch" another program; however, shells frequently have additional capabilities such as
viewing the contents of directories.

Functions of Operating System


1. Memory Management
2. Processor Management/Scheduling
3. Device Management
4. File Management
5. Storage Management

1. Memory Management
Computer Memory is basically known as a collection of data that is represented in binary format. Main
Memory refers to a physical memory that is the internal memory of the computer. The word main is
used to distinguish it from external mass storage devices such as disk drives. Main memory is also
known as RAM. The computer is able to change only data that is in the main memory. Therefore, every
program we execute and every file we access must be copied from a storage device into main memory.

All the programs are loaded in the main memory for execution. Sometimes the complete program is
loaded into the memory, but sometimes a certain part or routine of the program is loaded into the main
memory only when it is called by the program, this mechanism is called Dynamic Loading, which
enhances the performance.

Also, at times one program is dependent on some other program. In such a case, rather than loading all
the dependent programs, the CPU links the dependent programs to the main executing program when
required. This mechanism is known as Dynamic Linking.

It is the management of the main or primary memory. Whatever program is executed, it has to be
present in the main memory. Main memory is a quick storage area that may be accessed directly by the
CPU. When the program is completed, the memory region is released and can be used by other
programs. Therefore, there can be more than one program present at a time. Hence, it is required to
manage the memory.

The operating system:

• Allocates and deallocates the memory.


• Keeps a record of which part of primary memory is used by whom and how much.
• Distributes the memory while multiprocessing.
• In multiprogramming, the operating system selects which processes acquire memory when
and how much memory they get.

What is Memory Management in Operating System?

Memory Management is the process of coordinating and controlling the memory in a computer, Blocks
are assigning portions that are assigned to various running programs in order to optimize the overall
performance of the system. This technique helps in keeping the track of each and every memory
location, whether the memory location is allocated to some process or it is free.

This technique decides which process will get memory at what time. It also keeps the count of how
much memory can be allocated to a process. As it keeps the tracks of everything so whenever some
memory gets freed or unallocated it updates the status correspondingly.

Need for Memory Management in Operating System

Memory management technique is needed for the following reasons:

• This technique helps in placing the programs in memory in such a way so that memory is utilized
at its fullest extent.
• This technique helps to protect different processes from each other so that they do not interfere
with each other's operations.
• It helps to allocate space to different application routines.
• This technique allows you to check how much memory needs to be allocated to processes that
decide which processor should get memory at what time.
• It keeps the track of each memory location whether it is free or allocated.
• This technique keeps the track of inventory whenever memory gets freed or unallocated and it
will update the status accordingly.

Methods Involved in Memory Management

There are various methods and with their help Memory Management can be done intelligently by the
Operating System:
Swapping in OS

A process needs to be in memory for execution. But sometimes there is not enough main memory to
hold all the currently active processes in a timesharing system. So, the excess process is kept on disk and
brought in to run dynamically. Swapping is the process of bringing in each process in the main memory,
running it for a while, and then putting it back to the disk.

Contiguous Memory Allocation

In contiguous memory allocation, each process is contained in a single contiguous block of memory.
Memory is divided into several fixed-size partitions. Each partition contains exactly one process. When a
partition is free, a process is selected from the input queue and loaded into it. The free blocks of
memory are known as holes. The set of holes is searched to determine which hole is best to allocate.

Memory Protection

Memory protection is a phenomenon by which we control memory access rights on a computer. The
main aim of it is to prevent a process from accessing memory that has not been allocated to it. Hence
prevents a bug within a process from affecting other processes, or the operating system itself, and
instead results in a segmentation fault or storage violation exception being sent to the disturbing
process, generally killing of process.

Memory Allocation in Operating System

Memory allocation is a process by which computer programs are assigned memory or space. It is of
three types:

i. First Fit Allocation

The first hole that is big enough is allocated to the program.

ii. Best Fit Allocation

The smallest hole that is big enough is allocated to the program.

iii. Worst Fit Allocation

The largest hole that is big enough is allocated to the program.

Fragmentation in Operating System

Fragmentation occurs in a dynamic memory allocation system when most of the free blocks are too
small to satisfy any request. It is generally termed as the inability to use the available memory.
In such a situation, processes are loaded and removed from the memory. As a result of this, free holes
exist to satisfy a request but are non-contiguous i.e. the memory is fragmented into large no. Of small
holes. This phenomenon is known as External Fragmentation.

Also, at times the physical memory is broken into fixed-size blocks, and memory is allocated in the unit
of block sizes. The memory allocated to space may be slightly larger than the requested memory. The
difference between allocated and required memory is known as internal fragmentation i.e. the memory
that is internal to a partition but is of no use.

Paging

A solution to the fragmentation problem is paging. Paging is a memory management mechanism that
allows the physical address space of a process to be non-contagious. Here physical memory is divided
into blocks of equal size called Pages. The pages belonging to a certain process are loaded into available
memory frames.

Page Table

A Page Table is the data structure used by a virtual memory system in a computer operating system to
store the mapping between the virtual address and physical addresses.

The virtual address is also known as the Logical address and is generated by the CPU. While Physical
address is the address that actually exists on memory.

Segmentation in Operating System

Segmentation is another memory management scheme that supports the user-view of memory.
Segmentation allows the breaking of the virtual address space of a single process into segments that
may be placed in non-contiguous areas of physical memory.

Segmentation with Paging

Both paging and segmentation have their advantages and disadvantages, it is better to combine these
two schemes to improve on each. The combined scheme is known as 'Page the Elements'. Each segment
in this scheme is divided into pages and each segment is maintained in a page table. So the logical
address is divided into the following 3 parts:

• Segment numbers(S)
• Page number (P)
• The displacement or offset number (D)

2. Processor Management/Scheduling
Every software that runs on a computer, whether in the background or in the frontend, is a process.
Processor management is an execution unit in which a program operates. The operating system
determines the status of the processor and processes, selects a job and its processor, allocates the
processor to the process, and de-allocates the processor after the process is completed.

When more than one process runs on the system the Operating System decides how and when a
process will use the CPU. Hence, the name is also CPU Scheduling. The Operating System:
• Allocates and deallocates processor to the processes.
• Keeps record of CPU status.

Certain algorithms used for CPU scheduling are as follows:

• First Come First Serve (FCFS)


• Shortest Job First (SJF)
• Round-Robin Scheduling
• Priority-based scheduling etc.

Purpose of CPU scheduling

The purpose of CPU scheduling is as follows:

• Proper utilization of CPU. Since the proper utilization of the CPU is necessary. Therefore, the
OS makes sure that the CPU should be as busy as possible.
• Since every device should get a chance to use the processor. Hence, the OS makes sure that
the devices get fair processor time.
• Increasing the efficiency of the system.

3. Device Management
An operating system regulates device connection using drivers. The processes may require devices for
their use. This management is done by the OS. The OS:

• Allocates and deallocates devices to different processes.


• Keeps records of the devices.
• Decides which process can use which device for how much time.

Device management generally performs the following:

• Installing device and component-level drivers and related software


• Configuring a device so it performs as expected using the bundled operating system,
business/workflow software and/or with other hardware devices.
• Implementing security measures and processes.

Types of Devices
Operating System (OS) has three types of peripheral devices, i. e., Dedicated, Shared, and
Virtual.

i. Dedicated Device:

Dedicated devices are devices of device management that allocate a single task at a time.
Plotters, tape drivers, and other devices need such allocation as it is inconvenient to share with
multiple users simultaneously. The main disadvantage of such a device is that it is less efficient
than others as the device can use one user for the whole duration of the task.

ii. 2. Shared Device


As the name suggests, shared devices can assign for multiple processes. Moreover, the device
manager needs to handle the process and policies carefully.

iii. 3. Virtual Device

The virtual device is a combination of dedicated and shared devices. Virtual devices are
dedicated devices that are transformed into a shared ones. We can take the example of a
printer as we cannot directly send a print job to the printer. It is routed to the disk until the
whole process of formatting and sequencing is prepared. Further, the printer works as a
shareable device by using a particular spooling program. On the other hand, spooling program
helps the printer to redirect all the requests to the disk.

Some important points of device management

a) An operating system communicates with the devices controllers with the help of device
drivers while allocating the device to the various processes running on the computer
system.
b) Device drivers are the software programs that are used by an operating system to control
the functioning of various devices in a uniform manner.
c) The device drivers may also be regarded as the system software programs acting as an
intermediary between the processes and the devices controllers.
d) The device controller used in the device management operation usually includes three
different registers command, status, and data.
e) The other major responsibility of the device management function is to implement the
Application Programming Interface (API).

4. File Management
File management is one of the basic and important features of operating system. Operating system is
used to manage files of computer system. All the files with different extensions are managed by
operating system.

A file is collection of specific information stored in the memory of computer system. File management is
defined as the process of manipulating files in computer system, it management includes the process of
creating, modifying and deleting the files.

The operating system manages resource allocation and de-allocation. It specifies which process receives
the file and for how long. It also keeps track of information, location, uses, status, and so on. These
groupings of resources are referred to as file systems. The files on a system are stored in different
directories. The OS:

• Keeps records of the status and locations of files.


• Allocates and deallocates resources.
• Decides who gets the resources.
• It helps to create new files in computer system and placing them at the specific locations.
• It helps in easily and quickly locating these files in computer system.
• It makes the process of sharing of the files among different users very easy and user
friendly.
• It helps to stores the files in separate folders known as directories. These directories help
users to search file quickly or to manage the files according to their types or uses.
• It helps the user to modify the data of files or to modify the name of the file in the
directories.

The file management of function in operating system (OS) is based on the following concepts:

i. File Attributes.
It specifies the characteristics of the files such as type, date of last modification, size,
location on disk etc. file attributes help the user to understand the value and location of
files. File attributes is one most important feature. It is uses to describe all the information
regarding particular file.
ii. File Operations.
It specifies the task that can be performed on a file such as opening and closing of file.
iii. File Access permission.
It specifies the access permissions related to a file such as read and write.
iv. File Systems.
It specifies the logical method of file storage in a computer system. Some of the commonly
used files systems include FAT and NTFS.

The system may contain features like:

• Assigning queued document numbers for processing


• Owner and process mapping to track various stages of processing
• Report generation
• Notes
• Status
• Create, modify, copy, delete and other file operations

In Microsoft Windows operating systems, the default file management system is Windows Explorer. On
Mac computers, instead, this role is taken belongs to a tool called Finder. Although the functionality
offered by these file management systems is pretty basic, they are usually enough for most users.

File systems and operating systems


a) Unix and Unix-like operating systems

Unix like operating systems create a virtual file system, which makes all the files on all the devices
appear to exist in a single hierarchy. This means, in those systems, there is one root directory, and
every file existing on the system is located under it somewhere. Unix-like systems can use a RAM
disk or network shared resource as its root directory.

b) Linux

Linux supports numerous file systems, but common choices for the system disk on a block device
include XFS, JFS, and btrsfs. For raw flash without a flash translation layer(FTL) or Memory
Technology Device(MTD), there are UBIFS, JFFS 2 and YAFFS, among others. SquashFS is a common
compressed read-only file system.
c) macOS

macOS uses the Apple File System(APFS), which recently replaced a file system inherited from classic
mac old called HFS Plus(HFS+). Apple also uses the term “Mac OS Extended” for HFS+.HFS Plus is a
metadata-rich and case-preserving but (usually) case-insensitive file system. Due to the Unix roots of
macOS, Unix permissions were added to HFS Plus. Later versions of HFS Plus added journaling to
prevent corruption of the file system structure and introduced a number of optimizations to the
allocation algorithms in an attempt to defragment files automatically without requiring an external
defragmenter.

d) Microsoft Windows

Windows makes use of the FAT, NTFS, exFAT , Live File System and ReFS file systems (the last of
these is only supported and usable in Windows Servers, Windows 8,8.1,10.

Aspects of file systems

i. Space management

File System Fragmentation occurs when unused space or single files are not contiguous. As a file
system is used, files are created, modified and deleted. When a file is created the file system
allocates space for the data. Some file systems permit or require specifying an initial space
allocation and subsequent incremental allocations as the file grows. As files are deleted the
space they were allocated eventually is considered available for use by other files. This creates
alternating used and unused areas of various sizes. This is free space fragmentation. When a file
is created and there is not an area of contiguous space available for its initial allocation the
space must be assigned in fragments. When a file is modified such that it becomes larger it may
exceed the space initially allocated to it, another allocation must be assigned elsewhere and the
file becomes fragmented.

ii. Filenames

A filename (or file name) is used to identify a storage location in the file system. Most file
systems have restrictions on the length of filenames. In some file systems, filenames are not
case sensitive (i.e., the names MYFILE and myfile refer to the same file in a directory); in others,
filenames are case sensitive (i.e., the names MYFILE, MyFile , and myfile refer to three separate
files that are in the same directory).

iii. Directories

File systems typically have directories (also called folders) which allow the user to group files
into separate collections. This may be implemented by associating the file name with an index in
a table of contents or an inode in a Unix-like file system. Directory structures may be flat (i.e.
linear), or allow hierarchies where directories may contain subdirectories. The first file system to
support arbitrary hierarchies of directories was used in the Multics operating system.
File system as an abstract user interface

In some cases, a file system may not make use of a storage device but can be used to organize
and represent access to any data, whether it is stored or dynamically generated (e.g. procfs).

Limitations
i. Converting the type of a file system

It may be advantageous or necessary to have files in a different file system than they currently
exist. Reasons include the need for an increase in the space requirements beyond the limits of
the current file system. The depth of path may need to be increased beyond the restrictions of
the file system. There may be performance or reliability considerations. Providing access to
another operating system which does not support the existing file system is another reason.

ii. Long file paths and long file names

In hierarchical file systems, files are accessed by means of a path that is a branching list of
directories containing the file. Different file systems have different limits on the depth of the
path. File systems also have a limit on the length of an individual filename.

Copying files with long names or located in paths of significant depth from one file system to
another may cause undesirable results. This depends on how the utility doing the copying
handles the discrepancy.

5. Storage Management
Storage management is a procedure that allows users to maximize the utilization of storage devices
while also protecting data integrity on whatever media on which it lives. Network virtualization,
replication, mirroring, security, compression, deduplication, traffic analysis, process automation, storage
provisioning, and memory management are some of the features that may be included. The operating
system is in charge of storing and accessing files. The creation of files, the creation of directories, the
reading and writing of data from files and directories, as well as the copying of the contents of files and
directories from one location to another are all included in storage management.

The OS uses storage management for:

• Improving the performance of the data storage resources.


• It optimizes the use of various storage devices.
• Assists businesses in storing more data on existing hardware, speeding up the data retrieval
process, preventing data loss, meeting data retention regulations, and lowering IT costs

Mass-Storage Management
As we have already seen, because main memory is too small to accommodate all data and programs,
and because the data that it holds are lost when power is lost, the computer system must provide
secondary storage to back up main memory. Most modern computer systems use disks as the principal
on-line storage medium for both programs and data. Most programs—including compilers, assemblers,
word processors, editors, and formatters—are stored on a disk until loaded into memory and then use
the disk as both the source and destination of their processing. Hence, the proper management of disk
storage is of central importance to a computer system.

The operating system is responsible for the following activities in connection with disk management:

• Free-space management
• Storage allocation
• Disk scheduling because secondary storage is used frequently, it must be used efficiently.

The entire speed of operation of a computer may hinge on the speeds of the disk subsystem and of the
algorithms that manipulate that subsystem. There are, however, many uses for storage that is slower
and lower in cost (and sometimes of higher capacity) than secondary storage. Backups of disk data,
seldom-used data, and long-term archival storage are some examples.

Magnetic tape drives and their tapes and CD and DVD drives and platters are typical tertiary storage
devices. The media (tapes and optical platters) vary between WORM (write-once, read-many-times) and
RW (read-write) formats.

Tertiary storage is not crucial to system performance, but it still must be managed. Some operating
systems take on this task, while others leave tertiary-storage management to application programs.
Some of the functions that operating systems can provide include mounting and unmounting media in
devices, allocating and freeing the devices for exclusive use by processes, and migrating data from
secondary to tertiary storage.

Functions of Operating System


• Security – For security, modern operating systems employ a firewall. A firewall is a type of
security system that monitors all computer activity and blocks it if it detects a threat.
Operating system security (OS security) is the process of ensuring OS integrity, confidentiality
and availability.
OS security refers to specified steps or measures used to protect the OS from threats, viruses,
worms, malware or remote hacker intrusions. OS security encompasses all preventive-control
techniques, which safeguard any computer assets capable of being stolen, edited or deleted if
OS security is compromised.
OS security refers to specified steps or measures used to protect the OS from threats, viruses,
worms, malware or remote hacker intrusions. OS security encompasses all preventive-control
techniques, which safeguard any computer assets capable of being stolen, edited or deleted if
OS security is compromised.
The operating system uses password protection to protect user data and similar other
techniques. It also prevents unauthorized access to programs and user data.
OS security may be approached in many ways, including adherence to the following:
o Performing regular OS patch updates
o Installing updated antivirus engines and software
o Scrutinizing all incoming and outgoing network traffic through a firewall
o Creating secure accounts with required privileges only (i.e., user management)
• Job Accounting – As the operating system keeps track of all the functions of a computer system.
Hence, it makes a record of all the activities taking place on the system. It has an account of all
the information about the memory, resources, errors, etc. Therefore, this information can be
used as and when required.
The operating system does the following tasks:
o Keeps record of all the activities taking place on the system.
o Keeps record of information regarding resources, memory, errors, resources, etc.
o Responsible for Program swapping (in and out) in memory
o Keeps track of memory usage and accordingly assigns memory
o Opening and closing and writing to peripheral devices.
o Creating a file system for organizing files and directories.
• Control over system performance – The operating system will collect consumption statistics for
various resources and monitor performance indicators such as reaction time, which is the time
between requesting a service and receiving a response from the system.
• Error detecting aids – While a computer system is running, a variety of errors might occur. Error
detection guarantees that data is delivered reliably across susceptible networks. The operating
system continuously monitors the system to locate or recognize problems and protects the
system from them.
OS needs to be constantly aware of possible errors
o May occur in the CPU and memory hardware, in I/O devices, in user program.
o For each type of error, OS should take the appropriate action to ensure correct and
consistent computing.
o Debugging facilities can greatly enhance the user’s and programmer’s abilities to
efficiently use the system.
• Coordination between other software and users – The operating system (OS) allows hardware
components to be coordinated and directs and allocates assemblers, interpreters, compilers,
and other software to different users of the computer system.
• Booting process – The process of starting or restarting a computer is referred to as Booting.
Cold booting occurs when a computer is totally turned off and then turned back on. Warm
booting occurs when the computer is restarted. The operating system (OS) is in charge of
booting the computer.
Components of Operating System

The operating system has two components that are used to perform the above-mentioned tasks
these components are-

• Shell
• Kernel

Shell – It is the outermost layer of the operating system and handles the user interaction. Shell
helps the user to communicate via computer system via taking commands from input devices.

Kernel – Kernel is the core component of an operating system and it provides the basic level of
control to all the peripherals of a computer system. It is responsible for computer resources and
memory management.

Types of Operating System


The operating system can be of different types. They are as follows:

1. Batch Operating System


2. Time-Shared Operating System
3. Distributed Operating System
4. Network Operating System.
5. Real-Time Operating System (RTOS)

1. Batch Operating System


In this system, the OS does not forward the jobs/tasks directly to the CPU. It works by grouping together
similar types of jobs under one category. Further, we name this group as a ‘batch’. Hence, the name
batch OS.

Examples are the payroll system, bank statement, etc.

What is Batch Operating System?

Batch processing was very popular in the 1970s. The jobs were executed in batches. People used to have
a single computer known as a mainframe. Users using batch operating systems do not interact directly
with the computer. Each user prepares their job using an offline device like a punch card and submitting
it to the computer operator. Jobs with similar requirements are grouped and executed as a group to
speed up processing. Once the programmers have left their programs with the operator, they sort the
programs with similar needs into batches.
The batch operating system grouped jobs that perform similar functions. These job groups are treated
as a batch and executed simultaneously. A computer system with this operating system performs the
following batch processing activities:

i. A job is a single unit that consists of a preset sequence of commands, data, and programs.
ii. Processing takes place in the order in which they are received, i.e., first come, first serve.
iii. These jobs are stored in memory and executed without the need for manual information.
iv. When a job is successfully run, the operating system releases its memory.

Types of Batch Operating System


There are mainly two types of the batch operating system. These are as follows:

• Simple Batched System


• Multi-programmed batched system

Simple Batched System

The user did not directly interact with the computer system for job execution in a simple batch
operating system. However, the user was required to prepare a job that included the program, control
information, and data on the nature of the job on control cards. The job was then submitted to the
computer operator, who was usually in the form of a punch card. The program's output included results
and registers and memory dumps in the event of a program error. The output appeared after some time
that could take days, hours, and minutes.

Its main role was to transfer control from one job to another. Jobs with similar requirements were
pooled together and processed through the processor to improve processing speed. The operators were
used in the program to create batches with similar needs. The computer runs the batches one by one
when they became available. This system typically reads a sequence of jobs, each with its control cads
and predefined job tasks.

Multi-programmed batched system

Spooling deals with many jobs that have already been read and are waiting to run on disk. A disk
containing a pool of jobs allows the operating system to choose which job to run next to maximize CPU
utilization. Jobs that come on magnetic tape or cards directly cannot be run in a different order. Jobs run
sequentially because they are executed in a first-come, first-served manner. When various jobs are
stored on a direct access device, job scheduling becomes possible like a disk. Multi-programming is an
important feature of job scheduling. For overlapped I/O, spooling and offline operations have their
limitations. Generally, a single user could not maintain all of the input/output devices, and CPU buys at
all times.

In the multi-programmed batched system, jobs are grouped so that the CPU only executes one job at a
time to improve CPU utilization. The operating system maintains various jobs in memory at a time. The
operating system selects one job and begins executing it in memory. Finally, the job must wait for a task
to complete, such as mounting a tape on an I/O operation. In a multiprogramming system, do not sit idle
because the operating system switches to another task. When a job is in the wait state, and the current
job is completed, the CPU is returned.

Role of Batch Operating System


A batch operating system's primary role is to execute jobs in batches automatically. The main task of a
batch processing system is done by the 'Batch Monitor', which is located at the low end of the main
memory. This technique was made possible by the development of hard disk drives and card readers.
The jobs can now be stored on a disk to form a pool of jobs for batch execution. After that, they are
grouped with similar jobs being placed in the same batch. As a result, the batch operating system
automatically ran the batched jobs one after the other, saving time by performing tasks only once. It
resulted from a better system due to reduced turnaround time.

Characteristics of Batch Operating System

There are various characteristics of the Batch Operating System. Some of them are as follows:

a) In this case, the CPU executes the jobs in the same sequence that they are sent to it by
the operator, which implies that the task sent to the CPU first will be executed first. It's
also known as the 'first come, first serve'
b) The word job refers to the command or instruction that the user and the program
should perform.
c) A batch operating system runs a set of user-supplied instructions composed of distinct
instructions and programs with several similarities.
d) When a task is successfully executed, the OS releases the memory space held by that
job.
e) The user does not interface directly with the operating system in a batch operating
system; rather, all instructions are sent to the operator.
f) The operator evaluates the user's instructions and creates a set of instructions having
similar properties.

Advantages and Disadvantages of Batch Operating System

There are various advantages and disadvantages of the Batch Operating System. Some of them
are as follows:

Advantages

There are various advantages of the Batch Operating System. Some of them are as follows:

a) It isn't easy to forecast how long it will take to complete a job; only batch system
processors know how long it will take to finish the job in line.
b) This system can easily manage large jobs again and again.
c) The batch process can be divided into several stages to increase processing speed.
d) When a process is finished, the next job from the job spool is run without any user
interaction.
e) CPU utilization gets improved.

Disadvantages

There are various disadvantages of the Batch Operating System. Some of them are as follows:

a) When a job fails once, it must be scheduled to be completed, and it may take a long
time to complete the task.
b) Computer operators must have full knowledge of batch systems.
c) The batch system is quite difficult to debug.
d) The computer system and the user have no direct interaction.
e) If a job enters an infinite loop, other jobs must wait for an unknown period of time.

2. Time-Shared Operating System


When more than one task takes place on the system it is called time-shared Operating System. As
multiple tasks can run at the system at a time as per requirement. Hence, they all share the CPU time
one by one. Therefore, we also name it multitasking. The time that each task gets is called quantum.

A fixed interval of time is decided for each task. When the first task executes for that period of time, the
second task executes, and so on.

Examples are UNIX etc.

Time sharing operating system is a type of operating system. An operating system is basically, a program
that acts as an interface between the system hardware and the user. Moreover, it handles all the
interactions between the software and the hardware.

It allows the user to perform more than one task at a time, each task getting the same amount of time
to execute. Hence, the name time sharing Operating System. Moreover, it is an extension of
multiprogramming systems. In multiprogramming systems, the aim is to make the maximum use of the
CPU. On the other hand, here the aim is to achieve the minimum response time of CPU.

Therefore, all the tasks will run smoothly on the system. Hence, its name is also multitasking operating
system. Multiple jobs are running at the CPU time and also, they use the CPU simultaneously. But, the
switching between the tasks is very fast due to which the user feels that all tasks are running at the
same time.

Working of Time Sharing Operating System

The operating system performs time sharing through CPU scheduling and multiprogramming. Let us
study closely the process in a time sharing system. It is as follows:

• It is the division of CPU time for each process when more than one task are given by the
user.
• A short duration of time is chosen for each process. Moreover, this time duration is very
small in the order of 10-100 milliseconds. This time duration is known as time slot, time
slice, or quantum.
• Suppose three processes namely, P1, P2, and P3 are running on the system. Now, suppose
that the quantum is 4 nanoseconds (ns). Now, they will execute in the following manner.
• Process P1 will execute for 4 ns, as soon as it gets over, process p2 starts executing for a
duration of 4 ns. Further, when p2 gets complete process P3 executes for 4ns. This process
continues till all the processes gets complete.
• In this way, only one process runs at a time but, the switching between the processes is very
fast. Hence, the user feels that all the processes are running at the same time.

Time Sharing OS

The above diagram shows the working of a time sharing OS. In this diagram, process 4 is in the active
state. Process 5 is in a ready state while, processes 1, 2, 3, and 6 are in a waiting state.

• Active State: This is the state of the process which is currently processing on the CPU. Only,
one process is in the active state at a time.
• Ready State: In this state, the process is ready for execution but, it is waiting for its turn to
use the CPU. More than one process can be in the ready state at a time.
• Waiting State: In this state, the process is not ready for execution. It is waiting for some
input/output process to get complete.

Advantages of Time Sharing Operating System

• Response time of CPU reduces.


• Idle time of CPU reduces.
• Each task/process gets an equal time slot to execute.

Disadvantages of Time Sharing Operating System

• The data of each program should be secure so that they don’t mix.
• Communication is very important to maintain. Lack of communication can affect the whole
working.

3. Distributed Operating System


In this system, there is more than one CPU present. The OS distributes the tasks among all the
processors. The processors do not share any memory or clock time. OS handles all communication
between them through various communication lines.

Examples are LOCUS etc.

A distributed operating system is an important type of operating system. An operating system is


basically, a program that acts as an interface between the system hardware and the user. Moreover, it
handles all the interactions between the software and the hardware.

A distributed operating system is one in which several computer systems connected through a single
communication channel. These systems have their individual processors and memory. These processors
communicate through high-speed buses or telephone lines. These individual systems that connect
through a single channel are considered as a single unit. We can also call them loosely coupled systems.
The individual components or systems of the network are nodes.

Types of Distributed Operating System

There are mainly two types, they are as follows:

i. Client/Server Systems

In this system, the client requests the server for a resource. On the other hand, the server
provides this resource to the client. One client contacts only a single server at a time. Whereas a
single server can deal with multiple clients simultaneously. The clients and servers connect
through a computer network in the system.

ii. Peer to Peer Systems

In this system, the nodes play an important role. All the work equally divides among the nodes.
Furthermore, these nodes can share data or resources as per the requirement. Again, they
require a network to connect.

Examples of Distributed Operating System

Few examples of a distributed OS are as follows:

• AIX operating system for IBM RS/6000 computers.


• Solaris operating system for SUN multiprocessor workstations.
• Mach/OS is a multitasking and multithreading UNIX compatible operating system.
• OSF/1 operating system

Features/Characteristics of Distributed Operating System

The features are as follows:


i. Resource Sharing

The main important feature of this system is that it allows users to share resources.
Moreover, they can share resources in a secure and controlled manner. Resources can
be of any type. For example, some common resources which are shared can be printers,
files, data, storage, web pages, etc.

ii. 2. Openness

This means that the services which the system provides are openly displayed through
interfaces. Moreover, these interfaces provide only the syntax of the services. For
example, the type of functions, their return types, parameters, etc. These interfaces use
Interface Definition Languages (IDL).

iii. 3. Concurrency

It means that several tasks take place at different nodes of the system simultaneously.
Moreover, these tasks can also interact with each other. It results in increasing the
efficiency of the system.

iv. 4. Scalability

It refers to the fact that the efficiency of the system should not change when more
nodes are added to the system. Moreover, the performance for the system with 100
nodes should be equal to the system with 1000 nodes.

v. 5. Fault Tolerance

It means that the user can still work with the system in the case, hardware, or software
fails.

vi. 6. Transparency

It is the most important feature of the system. The main goal of a distributed OS is to
hide the fact that the resources are being shared. Furthermore, transparency means
that the user should not know that the resources he is using are shared. Moreover, for
the user, the system should be a separate individual unit.

Advantages of Distributed OS

• The load on the system decreases.


• If one system stops it will not affect the other.
• The system shares a workload that makes calculations easy.
• The size of the system can be set according to requirements.

Disadvantages of Distributed OS

• The cost for set up is more.


• Failure of the main system will affect the whole system.
• Programming is complex.
4. Network Operating System.
In these OS various systems are connected to a server. It allows the system to share resources such as
files, printers, applications, etc. Moreover, it gives the capability to serve to manage these resources.

Examples are UNIX, LINUX, Microsoft Windows Server 2008, etc.

An Operating System (O.S.) is a System software that manages the hardware resources and provides
services to the Application software. There are many types of operating systems depending upon its
features and functionalities.

Network Operating System is a computer operating system that facilitates to connect and
communicate various autonomous computers over a network. An Autonomous computer is an
independent computer that has its own local memory, hardware, and Operating System. It is self-
capable to perform operations and processing for a single user. They can either run the same or
different Operating System.

The Network Operating System mainly runs on a powerful computer that runs the server program. It
facilitates the security and capability of managing the data, user, group, application, and other network
functionalities. The main advantage of using a network operating system. is that it facilitates the sharing
of resources and memory amongst the autonomous computers in the network. It can also facilitate the
client computers to access the shared memory and resources administered by the Server computer. In
other words, the Network Operating System. is mainly designed to allow multiple users to share files
and resources over the network.

The Network Operating System is not transparent in nature. The workstations connected in the network
are aware of the multiplicity of the network devices. The Network Operating Systems can distribute
their tasks and functions amongst connected nodes in the network, which enhances the system overall
performance. It can allow multiple access to the shared resources concurrently, which results in
efficiency. One of the major importance of using a Network Operating System is remote access. It
facilitates one workstation to connect and communicate with another workstation in a secure manner.
For providing security, it has authentication and access control functionality. The network operating
system implements a lot of protocols over the network, which provides a proper implementation of the
network functionalities. One drawback of Network Operating System is its tightly coupled nature in the
network.

Some examples of Network O.S. are Novel Netware, Microsoft Windows server (2000, 2003, 2008), Unix,
Linux, etc.

There are mainly two types of Network Operating System, they are:

i. Peer-to-Peer
ii. Client-Server
Now let us learn them one by one, along with their advantages and disadvantages.

Peer-to-Peer

Peer-to-Peer Network Operating System is an operating system in which all the nodes are functionally
and operationally equal to each other. No one is superior or inferior. They all are capable to perform
similar kinds of tasks. All the nodes have their own local memory and resources. Using the Network O.S.,
they can connect and communicate with each other. They can also share data and resources with one
another. One node can also communicate and share data and resources with a remote node in the
network by using the authentication feature of the Network O.S. The nodes are directly connected with
each other in the network with the help of a switch or a hub.

Following are the advantages of the Peer-to-Peer Network Operating System:

i. Easy to install and setup.


ii. The setup cost is low.
iii. There is no requirement for any specialized software.
iv. The sharing of information and resources is fast and easy.
Following are the disadvantages of the Peer-to-Peer Network Operating System:

i. The performance of autonomous computers may not be so good when sharing some
resources.
ii. There is no centralized management.
iii. It is less secure.
iv. It does not have backup functionalities.
v. There is no centralized storage system.
Client-Server

The Client-Server Networking Operating System operates with a single server and multiple client
computers in the network. The Client O.S. runs on the client machine, while the Network Operating
System is installed on the server machine. The server machine is a centralized hub for all the client
machines. The client machines generate a request for information or some resource and forward it to
the server machine. The server machine, in turn, replies to the client machine by providing appropriate
services to it in a secure manner. The server machine is a very powerful computer, that is capable of
tackling large calculations and operations. It can also have the ability to administer the whole network
and its resources. It can be multiprocessing in nature, which can process multiple client requests at the
same time. The Network O.S. enhances the reach of client machines by providing remote access to other
nodes and resources of the network in a secure manner.

Following are the advantages of the Client-Server Network Operating System:

i. It has centralized control and administration.


ii. It has a backup facility for lost data.
iii. The shared data and resources can be accessed concurrently by multiple clients.
iv. It has better reliability and performance.
Following are the disadvantages of the Client-Server Network Operating System:

i. The setup cost is very high.


ii. There is a requirement of specialized software for client and server machines to function
properly.
iii. There is a need for an administrator to administer the network.
iv. There may be network failure, in case of central server failure.
v. A huge amount of client requests may overload the server.
Following are the common functionalities of the Network Operating System:
i. Data and Resource sharing
ii. Performance
iii. Security
iv. Robustness
v. Scalability
vi. Memory management

5. Real-Time Operating System (RTOS)


In these systems, the time interval for processing and responding to inputs is very small. Therefore, due
to this quality, these are used in real-time situations. For example in missile systems, robots, etc.

They have two categories as follows:

a) Hard Real-Time Systems

In this, the time constraint is very short and strict. Even seconds of delay is not acceptable.

b) Soft Real-Time Systems

In this, the time constraint is not so short and strict.

Parts/Components of RTOS

The important parts of a real-time operating system are as follows:

a) Scheduler

It decides the order in which the tasks will execute. Moreover, it decides the order based on the
priority of each task.

b) Memory Management

It allocates memory to every program. Hence, it is one of the most important elements of the
system.

c) Symmetric Multiprocessing (SMP)

It is the multiple different tasks that an RTOS can handle in order to perform parallel processing.

d) Function Library

It helps to send the requests from the kernel to the application to produce the output, using the
function library. Thus, it is an interface between the kernel and the application code.

e) Fast Dispatch Latency

It is the interval between the termination of one task and the starting of execution of another
‘ready’ state task.

f) User-defined data objects and classes


RTOS makes use of programming languages like C, C++, etc. that are organized with respect to
their operations. The user should define object sets to organize them. The system uses these
sets to control the application.

Advantages of RTOS

• They have no errors.


• Due to their small size, they can be easily added to other systems.

Disadvantages of RTOS

• Algorithms are complex.


• System resources are expensive.

Utility Software
The Utility Software is system software that helps to maintain the proper and smooth functioning of a
Computer System. It assists the Operating System to manage, organize, maintain, and optimize the
functioning of the computer system.

The job of the utility program is to offer support to the system infrastructure. Though the system will
work even if it doesn't have any utility software, the right kind of utility software enhances its
performance and makes it more reliable.

Utility Software performs certain tasks like virus detection, installation, and uninstallation, data backup,
deletion of unwanted files, etc. Some examples are antivirus software, file management tools,
compression tools, disk management tools, etc.

Types of Utility Software

a) Antivirus

A virus is a malicious software that enters the system along with a host program. Moreover, it multiplies
with time and makes several copies which in turn slows down and corrupts the system.

An antivirus is a utility software that helps to keep the computer virus-free. Moreover, it notifies when
any malicious file is detected and removes such files. In addition, it scans any new device attached to the
computer and discards any virus if there. Moreover, it also scans the system from time to time for any
threats and disposes of them. Examples of antivirus are McAfee Antivirus, Quickheal Antivirus, Windows
Defender, etc.

b) File Management System

These utility software are used to manage files of the computer system. Since files are an important part
of the system as all the data is stored in the files. Therefore, this utility software help to browse, search,
arrange, find information, and quickly preview the files of the system.

Windows Explorer is a default file management tool present in the system. Some other examples of file
management tools are Google Desktop, Double Commander, Directory Opus, etc.
c) Compression Tools

An important part of a computer is storage space, it is very important to maintain this storage.
Therefore, we use certain utility software to compress big files and decrease their size, these are
compression tools. The format of the files changes while compressing and we cannot access or edit
them directly. In addition, we can easily decompress the file and get the original file back. Examples of
compression tools are WinZip, WinRAR, WinAce, PeaZip, 7-Zip, etc.

d) Disk Management Tools

These utility software are used to manage data on disks. Moreover, they perform functions like
partitioning devices, manage drives, etc. Examples of disk management tools are MiniTool Partition
Wizard, Paragon Partition Manager, etc.

e) Disk Cleanup Tool

This utility software helps to free up the disk space. In addition, the files which are no longer in use are
removed from the disk. Examples are Disk Clean-up, Razer Cortex, Piriform CCleaner, etc.

f) Disk Defragmenter

This utility software helps to reduce the fragmentation and hence, reduces the access speed.
Defragmenting refers to rearranging files and storing them in contiguous memory locations. Moreover,
saves time in reading from files and writing files to disk. Examples of disk defragmenters are Perfect disk,
Deflaggler, etc.

g) Backup Utility

This utility software helps to back up the files, folders, databases, or complete disks. Moreover, backup
refers to duplicating the disk information so that the data can be restored if any data loss happens.

h) Device Drivers

A device driver or hardware driver is a group of files that enable one or more hardware devices to
communicate with the computer's operating system.

In computing, the device driver is a type of software that operates or controls some specific hardware
devices linked to your system. They provide a software interface to hardware devices allowing computer
operating systems and other applications to fetch hardware functions without knowing the exact
specifications of the hardware.

Without drivers, the computer could not send and receive data correctly to hardware devices
like printers.

Advantages of Utility Software

i. Enhances performance.
ii. Manages space.
iii. Manages files and data.
iv. Helps to customize interface and desktop.
v. Helps to remove useless files.
vi. Keep the system safe and secure.
vii. Helps to recover files after a loss.

Firmware
In electronic systems and computing, firmware is a type of permanent software embedded in the
system's ROM (read-only memory) to provide low-level control for some particular system device
hardware. It is a set of instructions that are stored permanently on your computer's hardware device.

Common examples of devices utilizing firmware are given below:

• Computer Peripherals
• Consumer Appliances
• Embedded Systems
• UEFI (United Extensible Firmware Interface)
• BIOS (Basic Input/Output System)

Application Software
Application programs or software applications are end-user computer programs developed primarily to
provide specific functionality to the user. The applications programs assist the user in accomplishing
numerous tasks such as doing online research, completing notes, designing graphics, managing the
finances, watching a movie, writing documents, playing games, and many more. Therefore, many
software applications are designed and developed every year by companies as per the demand and
requirements of the potential users. The application software can either be designed for a general-
purpose or specially coded as per the requirements of business cooperation.

Given below are some of the popular examples:

a. Word Processors

Word processor applications are globally used for documentation, making notes, and typing
data. It also helps the end-users store and format data. They also enable the users to print their
documents.

Some examples of Word Processor software's are as follows:

o MS Word, Wordpad (Microsoft)


o iWork-Pages (Apple)
o Corel WordPerfect
o Google Docs

b. Database Software

Database software is used to create, manage, modify and organize a massive amount of data
quickly retrieved. Another name for database software is Database Management System
(DBMS). Such software helps companies in their data organization. Common examples of
Database Software's are:

o Oracle
o MS Access
o SQLite
o Microsoft SQL Server
o FileMaker
o dBase
o MariaDB
o MySQL

c. Multimedia Software

This software enables the users to play, create or record images, music, and video files. Different
graphic designing companies widely use multimedia software to make animation, images, posts,
packaging, marketing creative, gif, or even video editing. Due to their popularity and increasing
demand, every software product development corporation has massive avenues in creating and
upgrading them.

Common examples of Database Software's are given below:

o Adobe Photoshop
o Windows Movie Maker
o Adobe Illustrator
o Picasa
o Windows Media Player
o Corel Draw

d. Web Browsers

These are a type of software that is globally used to browse the Internet. Web browsers help the
users in positioning as well as fetching data across the web. Common examples of web browsers
are given below:

o Chrome
o Mozilla Firefox
o Microsoft Internet Explorer
o Opera
o Microsoft Edge
o UC Browser
o Apple Safari

However, there also occurs another classification of the software that exists on the basis of their
availability and shareability.

The classification is given below:

e. Freeware
As the name suggests, Freeware software is available free of cost for an unlimited time. Any
user can easily download their respective software from the Internet and start using them
instantly without paying any charges or fees. Software development companies mostly design
and develop freeware software as a strategy to reach out to more people. Typical examples of
Freeware Software are as follows:

o Adobe Reader
o Zoom
o Skype
o ImgBurn
o Audacity
o Whatsapp
o Anydesk

f. Shareware

Shareware software is readily available on the Internet to download on a fixed trial basis. It is
distributed freely with a set time limit, and at the end of the trial period, the user is asked either
to pay the fee or uninstall the software. Some shareware, mainly including the gaming
software’s, have a fixed trial based on the counts an application is opened rather than the
number of days it has been installed on the system.

Give below are some of the popular examples for Shareware Software:

o Adobe Acrobat
o Adobe Photoshop
o AnyDVD
o PHP Debugger
o WinZip

g. Open-source

People usually get confused with freeware and open-source, but both are different. Though
both the software are available on the Internet free of cost with the only difference that open
source software is available online along with their source code. It means the user can change,
transform, and even can add additional features to them. Based on their services, they can be
chargeable as well free of cost.

Give below are some of the popular examples for open-source Software:

o Mozilla Firefox
o MySQL
o Thunderbird
o OpenOffice
o ClamWinantivirus
o Apache Web Server
Questions about Operating System
Q1. What is an OS?

A1. An operating system is a set of programs that acts as an interface between computer hardware and
user.

Q2. List the functions of Operating System.

A2. Functions of Operating System are:

• Memory Management
• Process Management/CPU Scheduling
• Device Management
• File Management
• Security
• Accounting
• Error detection etc.

Q3. What are the types of operating systems?

A3. Major types of OS are:

• Simple Batch OS
• Multitasking/Time-shared OS
• Distributed OS
• Network OS
• Real-Time OS

Q4. What is CPU scheduling? Give examples.

A4. Every resource and application requires a processor. Therefore, when multiple tasks are running on
the system it is necessary to manage the CPU time and usage. Hence, the OS keeps track of the CPU and
allocates and deallocates the CPU to devices and applications accordingly.

Examples of scheduling algorithms are:

• First Come First Serve (FCFS)


• Shortest Job First (SJF)
• Round-Robin Scheduling
• Priority-based scheduling etc.

Questions about Utility software


Q1. What is utility software?

A1. Utility software is a type of system software used to manage, organize, optimize, and enhance the
functioning of a computer system.

Q2. What are the types of utility software?

A2. Several types of utility software are as follows:

• Antivirus
• File Management System
• Disk Management tools
• Compression tools
• Disk cleanup tool
• File Management System
• Disk Defragmenter
• Backup utility
Q3. What is an antivirus?

A3. An antivirus is software that detects and helps to get rid of viruses. Examples are Quickheal
Antivirus, McAfee Antivirus, etc.

You might also like