Introduction to Operating Systems
Introduction to Operating Systems
A computer system has many resources (hardware and software), which may be required to
complete a task. The commonly required resources are input/output devices, memory, file
storage space, CPU, etc. The operating system acts as a manager of the above resources and
allocates them to specific programs and users, whenever necessary to perform a particular task.
Therefore the operating system is the resource manager i.e. it can manage the resource of a
computer system internally. The resources are processor, memory, files, and I/O devices. In
simple terms, an operating system is an interface between the computer user and the
machine.
It is very important for you that every computer must have an operating system in order to run
other programs. The operating system mainly coordinates the use of the hardware among the
various system programs and application programs for various users.
An operating system acts similarly like government means an operating system performs no
useful function by itself; though it provides an environment within which other programs
can do useful work.
User
Application Programs
Operating Systems
Computer Hardware
The Computer Hardware contains a central processing unit(CPU), the memory, and the
input/output (I/O) devices and it provides the basic computing resources for the system.
The Application programs like spreadsheets, Web browsers, word processors,
etc. are used to define the ways in which these resources are used to solve the computing
problems of the users. And the System program mainly consists of compilers, loaders,
editors, OS, etc.
The Operating System is mainly used to control the hardware and coordinate its use
among the various application programs for the different users.
Basically, Computer System mainly consists of hardware, software, and data.
OS is mainly designed in order to serve two basic purposes:
1. The operating system mainly controls the allocation and use of the computing System’s
resources among the various user and tasks.
2. It mainly provides an interface between the computer hardware and the programmer that
simplifies and makes feasible for coding, creation of application programs and debugging
1. User's View
2. System View
The user view of the computer refers to the interface being used. Such systems are designed for
one user to monopolize its resources, to maximize the work that the user is performing. In these
cases, the operating system is designed mostly for ease of use, with some attention paid to
performance, and none paid to resource utilization.
The operating system can be viewed as a resource allocator also. A computer system consists of
many resources like - hardware and software - that must be managed efficiently. The operating
system acts as the manager of the resources, decides between conflicting requests, controls the
execution of programs, etc.
1. Process management which involves putting the tasks into order and pairing them into
manageable size before they go to the CPU.
2. Memory management which coordinates data to and from RAM (random-access
memory) and determines the necessity for virtual memory.
3. Device management provides an interface between connected devices.
4. Storage management which directs permanent data storage.
5. An application that allows standard communication between software and your
computer.
6. The user interface allows you to communicate with your computer.
Advantages of Operating System
The operating system helps to improve the efficiency of the work and helps to save a lot
of time by reducing the complexity.
The different components of a system are independent of each other, thus failure of one
component does not affect the functioning of another.
The operating system mainly acts as an interface between the hardware and the software.
Users can easily access the hardware without writing large programs.
With the help of an Operating system, sharing data becomes easier with a large number
of users.
We can easily install any game or application on the Operating system easily and can run
them
An operating system can be refreshed easily from time to time without having any
problems.
There are various operating systems that are accessible in open source. Example:
Unix/Linux these can easily run on the personal computer with no cost that means Free.
Expensive There are some open-source platforms like Linux. But some operating
systems are expensive. Also, users can use free operating systems but generally, there is a
bit difficulty to run them than others. On the other hand, operating systems like Microsoft
Windows having GUI functionality and other in-built features are very expensive.
Virus Threat Operating Systems are open to virus attacks and sometimes it happens that
many users download the malicious software packages on their system which pauses the
functioning of the Operating system and also slows it down.
Complexity Some operating systems are complex in nature because the language used to
establish them is not clear and well defined. If there occurs an issue in the operating
system then the user becomes unable to resolve that issue.
System Failure An operating system is the heart of the computer system if due to any
reason it will stop functioning then the whole system will crashes.
Windows
Android
iOS
Mac OS
Linux
Window Phone OS
Chrome OS
Following are some of the most widely used types of Operating system.
1. Mainframe Systems
iii)Time-Sharing Systems
2. Multiprocessor System
3. Desktop System
7. Handheld System
In this type of system, there is no direct interaction between user and the computer.
The user has to submit a job (written on cards or tape) to a computer operator.
Then a special program, the monitor, manages the execution of each program in the
batch.
The monitor is always in the main memory and available for execution.
In this the operating system picks up and begins to execute one of the jobs from memory.
Once this job needs an I/O operation operating system switches to another job (CPU and
OS always busy).
Jobs in the memory are always less than the number of jobs on disk(Job Pool).
If several jobs are ready to run at the same time, then the system chooses which one to
run through the process of CPU Scheduling.
In Non-multiprogrammed system, there are moments when CPU sits idle and does not do
any work.
Time Sharing Systems are very similar to Multiprogramming batch systems. In fact time
sharing systems are an extension of multiprogramming systems.
In Time sharing systems the prime focus is on minimizing the response time, while in
multiprogramming the prime focus is to maximize the CPU usage.
2.Multiprocessor Systems
A Multiprocessor system consists of several processors that share a common physical memory.
Multiprocessor system provides higher computing power and speed. In multiprocessor system all
processors operate under single operating system. Multiplicity of the processors and how they do
act together are transparent to the others.
1. Enhanced performance
3. If possible, system divides task into many subtasks and then these subtasks can be
executed in parallel in different processors. Thereby speeding up the execution of single
tasks.
3. Desktop Systems
Earlier, CPUs and PCs lacked the features needed to protect an operating system from user
programs. PC operating systems therefore were neither multiuser nor multitasking. However,
the goals of these operating systems have changed with time; instead of maximizing CPU and
peripheral utilization, the systems opt for maximizing user convenience and responsiveness.
These systems are called Desktop Systems and include PCs running Microsoft Windows and
the Apple Macintosh. Operating systems for these computers have benefited in several ways
from the development of operating systems for mainframes.
Microcomputers were immediately able to adopt some of the technology developed for larger
operating systems. On the other hand, the hardware costs for microcomputers are
sufficiently low that individuals have sole use of the computer, and CPU utilization is no longer
a prime concern. Thus, some of the design decisions made in operating systems for mainframes
may not be appropriate for smaller systems.
The motivation behind developing distributed operating systems is the availability of powerful
and inexpensive microprocessors and advances in communication technology.
These advancements in technology have made it possible to design and develop distributed
systems comprising of many computers that are inter connected by communication networks.
The main benefit of distributed systems is its low price/performance ratio.
1. As there are multiple systems involved, user at one site can utilize the resources of
systems at other sites for resource-intensive tasks.
2. Fast processing.
1. Client-Server Systems
2. Peer-to-Peer Systems
Client-Server Systems
Centralized systems today act as server systems to satisfy requests generated by client
systems. Here only server node able to send the data. The client node only receives the data.
Server Systems can be broadly categorized as: Compute Servers and File Servers.
Compute Server systems, provide an interface to which clients can send requests to
perform an action, in response to which they execute the action and send back results to
the client.
File Server systems, provide a file-system interface where clients can create, update,
read, and delete files.
Peer-to-Peer Systems
Here more than one system (node) send the data each other. Each node have the ability to send
and receive the data.
5. Clustered Systems
Like parallel systems, clustered systems gather together multiple CPUs to accomplish
computational work.
Clustered systems differ from parallel systems, however, in that they are composed of
two or more individual systems coupled together.
The definition of the term clustered is not concrete; the general accepted definition is
that clustered computers share storage and are closely linked via LAN networking.
A layer of cluster software runs on the cluster nodes. Each node can monitor one or more
of the others. If the monitored machine fails, the monitoring machine can take ownership
of its storage, and restart the application(s) that were running on the failed machine. The
failed machine can remain down, but the users and clients of the application would only
see a brief interruption of service.
Asymmetric Clustering - In this, one machine is in hot standby mode while the other is
running the applications. The hot standby host (machine) does nothing but monitor the
active server. If that server fails, the hot standby host becomes the active server.
Symmetric Clustering - In this, two or more hosts are running applications, and they are
monitoring each other. This mode is obviously more efficient, as it uses all of the
available hardware.
Parallel Clustering - Parallel clusters allow multiple hosts to access the same data on the
shared storage. Because most operating systems lack support for this simultaneous data
access by multiple hosts, parallel clusters are usually accomplished by special versions of
software and special releases of applications.
Clustered technology is rapidly changing. Clustered system's usage and it's features should
expand greatly as Storage Area Networks(SANs). SANs allow easy attachment of multiple
hosts to multiple storage units.
It is defined as an operating system known to give maximum time for each of the critical
operations that it performs, like OS calls and interrupt handling.
The Real-Time Operating system which guarantees the maximum time for critical operations and
complete them on time are referred to as Hard Real-Time Operating Systems. The processes
are no roll-back.
While the real-time operating systems that can only guarantee a maximum of the time, i.e. the
critical task will get priority over other tasks, but no assurity of completeing it in a defined time.
These systems are referred to as Soft Real-Time Operating Systems.The processes are roll-
back.
7. Handheld Systems
Many handheld devices have between 512 KB and 8 MB of memory. As a result, the
operating system and applications must manage memory efficiently. This includes
returning all allocated memory back to the memory manager once the memory is no
longer being used.
Currently, many handheld devices do not use virtual memory techniques, thus forcing
program developers to work within the confines of limited physical memory.
Processors for most handheld devices often run at a fraction of the speed of a processor in
a PC. Faster processors require more power. To include a faster processor in a handheld
device would require a larger battery that would have to be replaced more frequently.
The last issue confronting program designers for handheld devices is the small display
screens typically available. One approach for displaying the content in web pages is web
clipping, where only a small subset of a web page is delivered and displayed on the
handheld device.
Some handheld devices may use wireless technology such as BlueTooth, allowing remote access
to e-mail and web browsing. Cellular telephones with connectivity to the Internet fall into this
category. Their use continues to expand as network connections become more available and
other options such as cameras and MP3 players, expand their utility.