0% found this document useful (0 votes)
6 views9 pages

Understanding Software and Operating Systems

Chapter 3 discusses computer software and operating systems, emphasizing the essential relationship between hardware and software for effective computer operation. It categorizes software into system software, which includes operating systems, utility software, and device drivers, and application software, which serves specific user needs. The chapter also outlines various types of operating systems based on processing, user interface, and their functions, highlighting their roles in resource management and user interaction.

Uploaded by

kg8156651
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views9 pages

Understanding Software and Operating Systems

Chapter 3 discusses computer software and operating systems, emphasizing the essential relationship between hardware and software for effective computer operation. It categorizes software into system software, which includes operating systems, utility software, and device drivers, and application software, which serves specific user needs. The chapter also outlines various types of operating systems based on processing, user interface, and their functions, highlighting their roles in resource management and user interaction.

Uploaded by

kg8156651
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Chapter 3

Computer software and Operating System

Software - Introduction:
As we know stand alone hardware cannot do nothing, for the smooth operation of our Computer System there should
be proper coordination between hardware and software. Software helps to mobilize the hardware and
other resources. In order to mobilize hardware we have to write several set of instruction which instruct
computer what to do, what not o. These set of instruction are collectively know as program and the term software is
the collection of related programs and associated documents. In Order to produce useful output, hardware and
software must work together. Nothing useful can be done with the hardware only and software cannot be utilize
without hardware. The different types of software are:

1) System software: System software is set of one or more programs designed to control the operation of our
computer system. This type of software doesn't fulfill the specific requirement of the user. They are general program
written to assist human in the use of the computer system. In general system software support the running of other
software, communicate with peripheral device, support the development of other types of software and monitors
the use of various hardware resources. Thus, the system software makes the operation of the computer system more
effective and efficient. The system software is categorized into two categories.

1.1) System Management: It is responsible for proper management and functioning of the computers system. All
types of management between computer hardware and software is performed by system management software.
There are 3 types of system management software:
1.1.1) Operating System: Operating system is a collection program that controls the overall operation of the
computer system. It is the 1st program that is loaded into memory when the computer is turned on. It provides
platform for other application program to run and execute. It provides user with an interface so that uses can easily
communicate with computer. For example Linux, Windows, Mac etc
1.1.2) Utility software: It is the supporting software which is used to perform specific task related to the maintenance
of the computer system. Some of the utility software are included in operating system where as some are available
as separate utility in market. They are also called service program. For example Norton Utility, PC tools, win zip etc
1.1.3) Device driver: A device driver is a software which is responsible for smooth functioning of the hardware device
that is connected to the computer. When we add a new device to the computer, we need to install new software
called device driver. Device driver will co-ordinate with the operating system and the newly installed hardware
functions properly and smoothly.

1.2) System Development: It refers to set of programs that are use to develop computer program. This type of
software are not used by a normal user of the computes. They are used by programmers for the development of new
program. There are two types of system development software:
1.2.1) Programming language: The language with which we give instruction to the computer is known as
programming language. Programming language are the set of different keywords, variable, operators, loops and
other symbols etc. They help to make communication between computer and user. These are two types of
programming language low level language and high level language.
1.2.2) Language translator: It is a special kind computer software which translates the programs written one
language in another language. It is compulsory for both low and high level language. It is also called language
processor. The types of language translator are compiler, interpreter and assembler.

2) Application Software: Application software is a set of one or more program which are design to do a specific task.
It is made to fulfill the user demand. This program directs a computer to solve user oriented problem such as
preparing bills, calculating mathematical equation, preparing mark sheet etc. The software that are develop for user
purpose is called application [Link] types of software are generally develop by using high level language.
for example Ms-Excel, Photoshop, Billing software etc. There are two types of application software.
2.1) Packaged software: They are the generalized set of programs design and develop for general purpose. It is
generally large sized, error-free, advance and standard software with much more functionality fir especial work. This
type of software doesn't perfectly match the requirement of many organization or user. They cannot be changed
easily are developed and designed by reputed software Company so they are trust worthy. They are expensive for
small organization. for example Ms-Office, Adobe, Macromedia etc.
2.2) Customized /Tailored software: This is a software develop in high level language for special task. This types of
software is developed for some specific purpose for solving specific problem of specific user or organization. The
requirement on the user or organization can be perfectly matched. They can be changed easily since they are made
by local programmer. for example: payroll system, inventory management, school management, billing software,
mark sheet evaluation etc.

Operating system - Introduction


An operating system (OS) is an integrated set of program that controls overall resources such as CPU, memory, input-
output device of the computer system. The major objective of operating system is to improve the performance and
efficiency of a computer system. Like the manager of a company, an operating system is responsible for the smooth
and efficient functioning of the entire computer system. The operating system provides the platform for other
application program/software to run and execute. It provides user with an interface so that user can easily
communicate with computers, which is more convenient to use and operate.
An operating system is a collection of program that controls the overall operation of the computer system. It also
controls and co-ordinate the use of hardware, among the various application program for various user. So, it act as
an interface between user and the computer hardware. The other major functions of operating system are:
1. It controls, monitor and co-ordinate overall operation of our computer system.
2. It act as an interface between user and computer.
3. It provide platform to develop, run and execute other computer program.
4. It manages hardware resources such as CPU, memories, input-output terminals, networking equipment
etc.
5. It hides programming and hardware complexity to the user.
The primary goal of an operating system is to maximize the productivity of a computer system by operating it in
most efficient manner and maintaining the amount of human intervention. Some example of operating system are:
MS-DOS, Windows, LINUX, MACOS, UNIX, Chrome, Fedora, Ubuntu etc.
Functions / Features / Advantages of Operating System (OS) - [Link]
1) Input-Output (I/O) Management: Input-Output is essential to operate any computer. It allows computer to interact
with several peripheral devices such as keyboard, mouse, printer, scanner etc.
2) User Interface (UI): User Interface means an ideal environment in which user can work on it so that s/he can
interact with the computerized system. Every operating system provides the feature of user interface in order to
enhance the experience and joy of using computer or any other computerized system. It act as a bridge between
user and computer. There are 2 types of user Interface.
• Character/Command User Interface ( CUI ): Eg MS-DOS
• Graphical User Interface (GUI ): Eg Windows, MAC OS
3) Security: The operating system of a computer has a number of built-in tools to protect against security threats
such as viruses, unauthorized access, suspicious network activity etc. The basic security in a OS is to control access
to your computer by setting users and password.
4) Process Management: The process management allocates a processor to execute a chosen process. OS acts as
a traffic controller, job scheduler, process scheduler and dispatcher.
5) Memory Management: Memory is a large array of bytes, each with its own address. When the user request CPU
for read-write operation. OS determines the amount of memory required for the program instruction and data. Then
OS allocates required memory to load the program and data into RAM. When the program terminates it freeze up
the space and new program is loaded.
6) Data Management: Data management allows organizing their data into logical grouping called [Link]
Operating system does not provide features of data management. Hence, they were inflexible but nowadays, every
operating system provide this feature.
7) Command Interpreter: The command interpreter reads the command that a user types in at a terminal, interprets
them and translate them into detail set of instruction that computer hardware can understand. Every operating
system must have command interpreter for its operation.
8) Dead-Lock prevention: During processing a situation can arise in which a resources shared by two or more process
cannot continue because the resources required by a process is held by other. This situation is known as dead lock.
For eg. If process-1 allocates resources A and later required resources B and process-2 allocates resources B and
later requires resources A. In this situation neither process-1 nor process-2 will be executed. Such situation is called
deadlock. Operating system ensure prevention of deadlock by taking situation action by careful allocation of
resources.
9) Time sharing: The function of OS that involves CPU to allocate time in a number of user on same computer. This
property generally found in network operating system such as windows NT.
10) Virtual Memory: Virtual memory is the feature of an operating system that allows a computer to compensate for
shortage of physical memory by transferring temporary files from RAM to disk. Virtual memory has twice as many
address as main memory. The process of translating virtual address into real address is known as mapping. The
copying of virtual pages from disk to main memory is swapping.
Types of Operating System (OS) - [Link]
Types of Operating System (OS)

Basis of Processing Basis of User Interface (UI) Basis of mode of user

Multi programming OS Character User Interface Single user

Multi tasking OS Graphical User Interface Multi user

Multi processing OS

Time sharing OS

Batch processing OS

Multi threading OS

Online processing OS

Real time OS

A) On the basis of processing


1) Multi-programming OS: Multi-programming is used in multi-user environment. It is the technique in which
multiple user program are executed simultaneously by single processor. Multi-programming means when two or
more than two program are provided to the CPU for processing or loaded in the internal storage of CPU at the same
instant of time. From the loaded program once the portion of one program is executed and the portion of another
program is executed and so on. Thus, multi-programming refers to concurrent execution of several program. The
main purpose of multi-programming is to increase the utilization of computer and its resources. Different forms of
multi-programming OS are multi-tasking, multi-processing and multi-user.

2) Multi-tasking OS: Multi-tasking OS allows more than one program to run concurrently mainly in a single user
system. These computer are capable of executing several tasks or program at the same time. For executing several
task it can be single or multi-processing system. In some multi-tasking system one of the process is called fore-
ground (active) other are called background (inactive). Multi-tasking OS increase the productivity of the user by
executing many task simultaneously. Some of the most common example are MS-Windows, Linux, MAC OS etc.

3) Multiprocessing OS: Multi-processing system has more than one processor linked in a coordinated way.
Multiprocessing OS supports running a program in more than one CPU. Generally, super server are especially
designed to support multiple processor. UNIX is commonly used multi-processing OS. Multi-programming and
multiprocessing are no the same concept. Multi-programming involves concurrent execution of two or more
programs by a single CPU, whereas multi-processing involves two or more processor (CPU) for controlling the
different activities or execution of many program simultaneously. Multi-processing concept is also known as parallel
processing. It is more costly and complex technique the multi-programming which dramatically increase the
program execution speed of computer.

4) Time-Sharing OS: Time sharing is a technique which enable many people located in various terminal to use a
particular computer system at a same time. Processors time which is shared among multiple user simultaneously
is termed as time sharing. Multiple jobs are executed by the CPU by switching between then, but the switches occurs
so frequently that user can receive a immediate response.

Advantages:
• Provide quick response.
• Reduce CPU idle time.
Disadvantages:
• Problem of reliability.
• Less security.
• Integrity.

5) Batch processing OS: Batch processing is a technique which requires grouping of similar jobs, which consists of
program, data and system command. It is also known offline processing. This type of processing is suitable in
program with large completion or involvement. For example, Payroll, Weather forecasting, Statistical analysis and
many more. User need not wait while the job is being processed. They can submit their program to the operator and
collect them later which means, the jobs are entered stored on a disk in a batch or queue and is executed one after
another under the control of the OS.
Major disadvantage of batch processing is that it does not allow interaction between user and program during
execution.

6) Multi-threading OS: A program in execution is known as process and can be divide into multiple smaller sub
process. This sub-process are known as thread. Multi-threading OS has the ability to divide process into threads and
execute them concurrently. Threads are individual process that execute simultaneously in multi-tasking OS.

7) Real time OS: Real time processing method is one that controls environment by receiving data and taking action
quickly to affect the functioning of the environment at the same instant of time. It is an online processing system in
which processing time is critical. The entire processing task has to be completed in the predefined time. The real
time OS is suitable for following type of operation.
• Airlines or flight seat availability.
• Rocket Launching system
• Whole sell supplier and manufacturer. etc

8) Online processing OS: It is a popular processing technique at present. In this method transaction are processed
as soon as it happen at the place of its origin. It is quite simple compare to real time OS. In this type, user can interact
or provides input during processing as well. The output is provided back to the user as soon as processing is
completed.

B) On the basis of User Interface ( UI )


A user interface allows user to interact with the computer system. It provides user with an ideal environment so that
user can experience better computing. It brings structure to the interaction between user and computer. Without
user interface it is almost impossible to operate a computer smoothly. Hence, in order to enhance the experience of
using computer, UI plays vital role. Mainly there are 2 types of User Interface (UI).
• Character User Interface (CUI)
• Graphical User Interface (GUI)

1) Character User Interface (CUI): It is a type of operating system in which whole computer operates or depend
upon the command issued by user. All the operations that take place in CUI have their own specific command.
Hence, they are known as Character User Interface. User have to remember all the command need to operate the
computers. So, they are non user friendly. Only the people people having technical knowledge would operate this
type of operating system. It is primitive type of OS, in which graphics, pictures, icons, drop-down menu, dialogue
box etc are not used which make it more difficult to use. It uses the character or text mode of computer such as DOS
and UNIX. A command prompt is a sequence of character used in CUI. Commands are typed in to instruct computer.
MS-DOS is a Character User Interface operating system.
The major advantage of this type of OS is they can have quick response as long as user enters correct command
whereas, the disadvantages of command driven User Interface is that, they are very difficult to use if the user is
beginner and doesn't know correct command. However, it can be used in older system with no processing
capabilities and low storage.
Features of CUI
• It is single user and single tasking operating system.
• Less user friendly than GUI.
• Commands are used to instruct the computer.
• User needs to remember the command for operating this system.
• It cannot display graphics, icon, pictures and multimedia.
• It is faster then GUI system
• Pointing devices such as mouse, joystick, track-pad are not recognize.
• It can be used in low memory and low processing computer.

2) Graphical User Interface (GUI): It is a type of operating system in which computer are operated just by clicking
or selecting the required icon or dialogue box instead of writing a direct command to the system. Since graphics like
icons, pictures, drop-down menus, dialogue boxes etc are used which makes it more user-friendly than CUI. Since,
user doesn't have to remember a single command, every user without technical knowledge can also use this type of
OS. Due to user friendly interface, they are simple to use and widely used for domestic application. The goal of
graphical operating system is to create a system that the computer user can turn on and operate in right way without
any training or by remembering commands. The main advantages of GUI is that they are easy to use especially for
beginners. The main disadvantage of GUI is they consume more memory for [Link], MAC OS etc are
the example of GUI.
The first Graphical User Interface was designed by Xerox corporations Palo's Alto research center in 1970's, but it
was not popular whereas in until the 1980's the emergence of Apple Macintosh that use GUI became popular.
Features of GUI
• It is user-friendly. So, it is easy to use.
• User don't have to remember supports full multimedia and animation.
• It requires larger memory for its processing.
• GUI environments supports full multimedia and animation.
• It can be used in network environment.
• It is multi-tasking, multi-programming, multi-user operating system.
• Every type of peripheral devices can be used.
GUI environment have following basic components.
Icon: Icons are the small pictures that represent commands, files or windows.
Pointer: A symbol (usually angled arrow) that appears on the display screen and that are moved to select objects
and commands. They are controlled by a pointing device such as a mouse, track pad, light pens etc.
Desktop: The area on the display screen where icons are grouped is refereed as desktop.
Windows: Windows are displayed on screen and we can change their shape and size at will. Each windows can run
a different program or display different information.
Menus: Most graphical user interface let us to execute commands by selecting a choice from a menu.
Folders: Graphical representation of a directory.

Differentiate between Character User Interface and Graphical User Interface [ CUI v/s GUI ] V. imp

Character User Interface [ CUI ] Graphical User Interface [ GUI ]

In CUI has to interact with the applications by making It is a user interface in which user interact with
use of commands. applications by making use of graphics

CUI stands for Character User Interface. GUI stands for Graphical User Interface.

In CUI only one task can run at a time i.e. Single In GUI more than one task can run at a time
tasking simultaneously.

It is not user friendly interface. It is very user friendly interface.

Everything are interacted by pointing the application


The user do everything by using commands.
using devices like mouse.

Faster than GUI. Slower than CUI.

Older computers were operated on CUI. Modern computers use GUI.

eg DOS, UNIX etc eg, Windows, MAC-OS

C) On the mode of user:


There are two types of OS on the basic of mode of user.
• Single User.
• Multi User.
1) Singe User: A single user OS is a type of OS that is develop and intended for use on a computer or similar machine
that will only have a single user at any given time. This is the most common type of OS used on a home computer as
well as on computer in office or other work environment. There are two general type of single user system. Single
user single tasking and another is single user multi tasking. The example of single user single tasking are not much
ore feasible for general purpose computing. For eg MS-DOS, PC-DOS etc
2) Multi User: Multi user OS is computer operating system that allows multiple user on different terminal to access
a single system with one OS in it . A multi user OS differs from a single user system on network, in that each user is
accessing same OS at different machine. The multi user OS shares computer resources among different users,
allowing each user a small slice of the processor time. This concept is also known as time sharing. Due to that, it
gives the user the impression that they are all being served simultaneously even though the OS serves them one at
a time for example: Linux, UNIX etc.
Some important Operating System in use:
Open source Operating System: Open source generally refers to those applications which source code is freely
available in the internet to the world wide user. Basically, the software that falls under general public license are
open source software. User can customize the source code of the open source software according to the user
requirements. They need not buy the license to use the software. Source code can be modified and re-distributed to
any other person legally. This software are free of cost. Some of the examples of Open Source Software are Linux,
Unix, Mozilla, Apache etc. Similarly, Open Source operating system are those operating system whose program code
are open to all the user. Some common examples of open source operating system are Linux, Unix, Minix, Open
Solaris etc.

UNIX: UNIX is a powerful flexible and manageable operating system with good utilities and communication abilities.
It is multi-user, multi-tasking and multi-processing operating system. It is used in bigger size machine like mainframe
and mini computer. It was develop by AT&T Bell lab around 1970 AD. UNIX is developed in C and Assembly language.
The development of the UNIX has given birth to many operating system such as Linux, Solaris etc. These operating
system inherits its main feature from UNIX.

Linux: It is open source powerful UNIX based operating system, that can run on variety of platform including Intel,
Power PC, DEC Alpha processor as well as multiprocessing system. It was developed by Linux Torvalds at the
university of Helsinki as a college project. He release the version of Linux including all the source code. It is user
develop product, meaning that user around the world who ran this OS for their own use have develop many of its
components and drivers. It is multi-user, multi-tasking and multi-programming OS mainly popular for server system.
It is distributed through different distributor such as Red Hat, Open USE, Ubuntu, Fedora, Debian, Granular Linux,
Mandriva etc

MAC OS: MAC OS is a popular GUI based OS for Apple Inc. It is used in Apple Macintosh computer. It has very high
quality graphical user interface. Earlier version of this OS were only compatible with motorola 68000 series of
processors but now they are compatible with Intel processors also.

Some terminologies related with OS.


Spooling: These process is used to balance the difference in speed of high speed CPU and slow speed input-output
device. It is primarily used for printing purpose. When we provide multiple file to print to printer together, although
printer can print one file at a time. But, all file get lined up in a queue and get printed one by one. In this process, CPU
remains free and user can work on other application. These technique of printing is possible through a capability of
operating system known as spooling. The term spooling is derive from the term SPOOL ( Simultaneous Peripheral
Operation On Line ).

Process: A process is basically a program in execution. It doesn't mean a program. Program itself is a static while
process is dynamic. For simplicity we can define program as a job that resides into the secondary storage ( which is
not loaded in main memory ). A process is a program which is currently in running or ready state ( which is loaded in
main memory ). A process in a computer maybe in a different possible state.
• Running state: A process is said to be in running state if it is currently running in the processor.
• Ready state: A process is said to be in ready state if it is temporary stopped to let other process run in the
processor.
• Blocked state: A process is said to be in blocked state if it is unable to run until some external events
happens.

Thread: A single process is divided into multiple sub-process and even once of process goes for input-output
operation another piece of same process start executing. This minimize the burden of context switching to some
extend. When multiple process are loaded in a memory at once. When one process goes in blocked or ready state,
another process is chosen by the scheduler to be in running state. During this phase, the current state of previously
running process must be stored somewhere, so that it can resume from that state at the next time. This mechanism
is known as context switching. It is very costly operation and it reduces efficiency. To solve such problem newer
operating system use the mechanism of threading ( Light-weight process ).

Scheduling: When more than one process are run the operating system must decide which one to run first. This part
of OS concerned with this decision is called scheduler and the algorithm it use is called scheduling algorithm.
Scheduling can be two types.
• Priority scheduling: Each program or job is assigned with a priority set to the program. In this scheduling job
or program having highest priority are treated first or selected to run. The only demerits of this scheduling
that small job may have to wait for longer period of time due to having less priority.
• Time-sharing scheduling: Each program loaded in a memory are given fixed amount of time to execute. Every
program that are to be executable have equal processing time. So that none of the job depends upon the
time taken by another job while processing.

Buffering: A buffer is a small, high-speed storage device, located in I/O units, used to hold data at the time of
input/output operations. So it is divided into the input buffer and output buffer. Input buffer accepts data as low
speed and release at high speed at CPU, output buffer works in reverse order, it accepts data at high speed from
main memory and releases at low speed to output device. Buffering is the process of using buffer during I/O
operation. The term buffering is also used while accessing files like audio/video through the internet. Here, it is the
process of holding downloaded data before it can be played.

Virtual Memory: In a multi-programming system, when we use multiple programs at the same time, the space of
primary memory (RAM) may not be enough to store all the programs. In this case, operating system uses free space
of secondary memory to store these data. This free space in secondary memory, used to store the contents of
primary memory temporarily is known as virtual memory. An operating system is responsible for creating, managing
and operating virtual memory.
It is not an actual memory but it is a technique used by operating system to execute large size program with small
size available primary memory. This is done by dividing the larger program into small size segments known as pages.

Common questions

Powered by AI

The operating system acts as an interface between the user and hardware by providing a platform to run application programs, manage hardware resources, and offer a user interface that facilitates interaction. Its main functions include controlling, monitoring, and coordinating the overall operation of the computer system, managing hardware resources such as the CPU and memory, providing security against threats, managing processes and memory, and preventing deadlocks through careful resource allocation .

System software, such as operating systems, general utility programs, and device drivers, supports the operation of the computer system by managing hardware resources and providing the necessary platform to run application software. Application software, developed to solve specific user-centric problems, relies on system software to function effectively by utilizing the system's capabilities to execute tasks like data processing, graphical design, or spreadsheet management .

Real-time operating systems process tasks immediately as they occur, controlling the environment by quickly receiving data and taking immediate actions. This is critical in systems where immediate processing is essential, such as in flight seat availability or rocket launching . Batch processing, in contrast, involves grouping and executing similar jobs as a batch without user interaction during execution, making it suitable for extensive computations like payroll or weather analysis, but lacks the immediacy found in real-time systems .

Multi-threading allows for concurrent execution of multiple threads within a single process, providing increased parallelism and efficiency. Advantages include better CPU resource utilization and improved application performance. However, challenges include ensuring thread synchronization and managing potential issues like deadlocks and race conditions, which require careful programming and resource allocation strategies .

Language translators, such as compilers, interpreters, and assemblers, convert code written in high-level or low-level programming languages into machine code that can be understood by the computer's hardware. This translation is essential as high-level languages are designed to be readable by humans but must be transformed into low-level machine instructions for execution. Translators decode these languages into binary instructions or intermediate representations for processing .

The primary advantage of a time-sharing operating system is its ability to provide quick response and reduced CPU idle time by allowing multiple users at various terminals to use the computer simultaneously. However, disadvantages include reliability issues, reduced security, and challenges in maintaining data integrity .

Deadlock prevention in operating systems involves ensuring that system resources are allocated in a manner that avoids a state where no progress can be made due to two or more processes holding resources that the other needs. This is important because it prevents system hang-ups and ensures efficient system resource usage. Prevention methods include careful resource allocation, prioritizing process execution order, and occasionally preempting resources to avoid gridlock situations .

Packaged software, being general-purpose and developed by established companies, offers advanced functionality and reliability but may not fit specific organizational needs and can be costly, limiting its adoption by smaller businesses. Customized software, tailor-made to align with unique organizational requirements, provides flexibility and adaptability but may involve higher initial development costs and potential maintenance challenges. Businesses need to weigh these factors against their specific needs, scalability, and available resources .

A CUI relies entirely on text-based commands for operation and requires users to memorize these commands, making it less user-friendly and more suited to users with technical experience. It does not support graphical elements like icons, minimizing usability for novice users but offering faster response times for experienced users familiar with commands. GUI, on the other hand, uses visual elements like icons and menus, making it more intuitive and accessible to a broader range of users, though generally slower than CUIs .

Multi-programming involves concurrent execution of multiple programs by a single CPU, aimed at increasing resource utilization. In contrast, multi-processing involves multiple CPUs working in a coordinated manner to execute processes simultaneously, thereby greatly increasing execution speed. Multi-processing is more complex and costly but can be highly efficient for running large, concurrent programs .

You might also like