FocusTaskReading 1
FocusTaskReading 1
Session Topics
Topics to be covered in this sessions:
Evolution of Operating System
Types of Operating Systems
Desirable characteristics of modern operating systems
Learning Objectives
The purpose of this session is to help you understand what an operating system is and the role operating
system plays. You’ll also understand different types and examples of operating systems used in older and
modern devices and their characteristics. You’ll also acquire some knowledge of the services provided by
operating system. This session will also expose some details of major operating system concepts.
https://www.tutorialspoint.com/operating_system/os_overview.htm
https://ecomputernotes.com/fundamental/disk-operating-system/characteristics-of-an-
operating-system
https://www.studytonight.com/operating-system/evolution-of-os
To support your investigation of the following;
1
Describe the types of operating systems. What are some of the advantages and disadvantages of
each type of operating system? What are some of the examples of each operating system
described?
Describe desirable characteristics of operating systems. Give reasons why operating system is
important in any electronic device.
As an IT specialist what do you need to know about operating systems. How is operating system
important when purchasing devices – especially handheld devices?
As an IT/computer science specialist how do you distinguish between operating systems?
Program: - a set of instructions to control the computer hardware; most modern operating systems are
written in C, C++ or assembly language
Interface: - a boundary between two layers – typically, how a "lower" layer appears to a "higher" layer.
Interfaces exist all throughout computers. A "higher" layer means a higher level of abstraction –a "lower"
layer often represents "nuts & bolts".
Examples: -
An interface exists so that a computer user does not need to know the underlying details – how the
hardware "really" works.
(Interestingly enough, the field of computer engineering is all about understanding both the higher and
lower layers...)
Kernel: - the code that is directly responsible for the tasking model – i.e., how the CPU'stime is allocated.
Preemptive Multitasking: - The capability of an operating system to equitably share CPU time between
several well-defined tasks currently scheduled to run on the system
Essential Reading
Andrew Tanenbaum, Herbert Bos, 2014, Modern Operating Systems, Pearson; 4th Edition. ISBN-
10: 013359162X, ISBN-13: 978-0133591620
2
What is an Operating System?
An operating system, or "OS," is software that communicates with the hardware and allows
other programs to run. It is comprised of system software, or the fundamental files your
computer needs to boot up and function. Every desktop computer, tablet, and smartphone
includes an operating system that provides basic functionality for the device.
Common desktop operating systems include Windows, OS X, and Linux. While each OS is
different, most provide a graphical user interface, or GUI, that includes a desktop and the ability
to manage files and folders. They also allow you to install and run programs written for the
operating system. Windows and Linux can be installed on standard PC hardware, while OS X is
designed to run on Apple systems. Therefore, the hardware you choose affects what operating
system(s) you can run.
Mobile devices, such as tablets and smartphones also include operating systems that provide
a GUI and can run applications. Common mobile OSes include Android, iOS, and Windows
Phone. These OSes are developed specifically for portable devices and therefore are designed
around touchscreen input. While early mobile operating systems lacked many features found in
desktop OSes, they now include advanced capabilities, such as the ability to run third-party
apps and run multiple apps at once.
Since the operating system serves as a computer's fundamental user interface, it significantly
affects how you interact with the device. Therefore, many users prefer to use a specific
operating system. For example, one user may prefer to use a computer with OS X instead of a
Windows-based PC. Another user may prefer an Android-based smartphone instead of an
iPhone, which runs the iOS.
When software developers create applications, they must write and compile them for a specific
operating system. This is because each OS communicates with the hardware differently and
has a specific application program interface, or API, that the programmer must use. While many
popular programs are crossplatform, meaning they have been developed for multiple OSes,
some are only available for a single operating system. Therefore, when choosing a computer,
make sure the operating system supports the programs you want to run.
3
The evolution of operating systems is directly dependent on the development of computer
systems and how users use them. Here is a quick tour of computing systems through the past
fifty years in the timeline.
By the late 1950s Operating systems were well improved and started supporting following
usages:
4
Accomplishments after 1970
And as the research and development work continues, we are seeing new operating systems
being developed and existing ones getting improved and modified to enhance the overall user
experience, making operating systems fast and efficient like never before.
Also, with the onset of new devices like wearables, which includes, Smart Watches, Smart
Glasses, VR gears e.t.c, the demand for unconventional operating systems is also rising.
Following are some of the most widely used types of Operating system.
5
7. Realtime Operating System
8. 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 computer operator places a batch of several jobs on an input device.
Jobs are batched together by type of languages and requirement.
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.
6
In Non-multi-programmed system, there are moments when CPU sits idle and does not
do any work.
In Multiprogramming system, CPU will never be idle and keeps on processing.
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.
3. 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
2. Execution of several tasks by different processors concurrently, increases the system's
throughput without speeding up the execution of a single task.
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.
7
4. 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.
3. Less load on the Host Machine.
1. Client-Server Systems
2. Peer-to-Peer Systems
8
Client-Server Systems
Centralized systems today act as server systems to satisfy requests generated by client
systems. The general structure of a client-server system is depicted in the figure below:
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.
6. Peer-to-Peer Systems
The growth of computer networks - especially the Internet and World Wide Web (WWW) – has
had a profound influence on the recent development of operating systems. When PCs were
introduced in the 1970s, they were designed for personal use and were generally considered
standalone computers. With the beginning of widespread public use of the Internet in the 1990s
for electronic mail and FTP, many PCs became connected to computer networks.
In contrast to the Tightly Coupled systems, the computer networks used in these applications
consist of a collection of processors that do not share memory or a clock. Instead, each
processor has its own local memory. The processors communicate with one another through
various communication lines, such as high-speed buses or telephone lines. These systems are
usually referred to as loosely coupled systems (or distributed systems). The general structure of
a client-server system is depicted in the figure below:
9
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.
Clustering is usually performed to provide high availability.
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
10
hosts to multiple storage units. Current clusters are usually limited to two or four hosts due to
the complexity of connecting the hosts to shared storage.
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.
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 assurerity of completing it in a defined time. These systems are
referred to as Soft Real-Time Operating Systems.
8. 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.
11
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.
Object-Oriented Design.
Multi-threading.
Systematic Multi-Processing.
Distributed Operating System.
Micro-Kernel Architecture.
1. Object-Oriented Design:
Object-Oriented Design is the largest trend in designing of the operating system. In which the
OS creates the objects for each facility, each object has a set of operations.
2. Multi-threading:
An application or program divided into several smaller tasks, these tasks are executed by the
processor concurrently. These smaller tasks are called threads. A thread is a light-weight
process or a dispatchable unit of work. A thread has some of the characteristics of a process.
12
The number of independent threads in an application executed by the processor at
the time is called Multi-threading.
3. Systematic Multi-Processing:
If a computer has more than one processor, these processors can share the memory and
Input/output facilities and these processors share the same job for execution then the system is
called Systematic Multi-Processor System. The operating system designed for Systematic
processing is called ‘ Systematic Multi-Processing Operating System’.
The advantage of using Systematic Multi-Processing over uni-architecture. There are:
i. Throughput: It simply means that the number of jobs executed by the processor in a time
slot.
ii. Reliability: it means that if one processor failed due to hardware problems even can execute
the jobs with other processors.
iii. In the user point of view, jobs are executed very fast.
5. Micro-Kernel Architecture:
A Micro-Kernel Architecture is a minimal operating system that performs only the essential
functions of an operating system. System processes perform all other operating system
functions. Here the system processes mean Servers. A system that contains the server is called
the Client-Server Model.
13
Program execution
I/O operations
File System manipulation
Communication
Error Detection
Resource Allocation
Protection
1. Program execution
Operating systems handle many kinds of activities from user programs to system programs like
printer spooler, name servers, file server, etc. Each of these activities is encapsulated as a
process.
A process includes the complete execution context (code to execute, data to manipulate,
registers, OS resources in use). Following are the major activities of an operating system with
respect to program management −
2. I/O Operation
An I/O subsystem comprises of I/O devices and their corresponding driver software. Drivers
hide the peculiarities of specific hardware devices from the users.
An Operating System manages the communication between user and device drivers.
I/O operation means read or write operation with any file or any specific I/O device.
Operating system provides the access to the required I/O device when required.
14
magnetic tape, magnetic disk and optical disk drives like CD, DVD. Each of these media has its
own properties like speed, capacity, data transfer rate and data access methods.
A file system is normally organized into directories for easy navigation and usage. These
directories may contain files and other directions. Following are the major activities of an
operating system with respect to file management −
4. Communication
In case of distributed systems which are a collection of processors that do not share memory,
peripheral devices, or a clock, the operating system manages communications between all the
processes. Multiple processes communicate with one another through communication lines in
the network.
The OS handles routing and connection strategies, and the problems of contention and
security. Following are the major activities of an operating system with respect to
communication −
15
6. Resource Management
In case of multi-user or multi-tasking environment, resources such as main memory, CPU
cycles and files storage are to be allocated to each user or job. Following are the major
activities of an operating system with respect to resource management −
7. Protection
Considering a computer system having multiple users and concurrent execution of multiple
processes, the various processes must be protected from each other's activities.
Protection refers to a mechanism or a way to control the access of programs, processes, or
users to the resources defined by a computer system. Following are the major activities of an
operating system with respect to protection −
16