Seminar On Operating Systems by Ignatius D. Meshack
Seminar On Operating Systems by Ignatius D. Meshack
Seminar On Operating Systems by Ignatius D. Meshack
INTRODUCTION
The advent of computers is a major breakthrough in the world of computing from the onset
till date. From time immemorial man has always been on the search on how to make life
easier and less stressful. Man had to ask questions, carry out experiments and this gave birth
In a bid to make the world of computing a lot much easier, the solution to the world’s greatest
problem gave rise to the world’s biggest invention – the breakthrough in information
technology!
Since then the digital world has undergone several changes and improvements all in a bid to
make things easier for man. The stages of development of computers brought the
development of a machine that could finally aid man in solving mathematical and
computational problems. This machine was designed using bits – binary digits – which were
made up of 0s and 1s. So we had a computer that was very difficult for users to access and
work with, but very fast and efficient to use. In order to solve this problem of having to
interact with the computer in 0s and 1s, a software was introduced which would once again
make things easier for us – it would handle the complexities of interacting with the computer
in machine language on one hand while interacting with us, the users in a more friendly
Operating system is the software that acts as an intermediary between the computer hardware
1
It provides a user friendly environment for the users ,who might not be used to the crude
machine language the computer was wrote in, to execute programs in a more convenient and
Aside the conventional and more popular name, operating systems is also called, monitor,
The aim of this seminar is to enlighten the public and computer science students on the value
and importance of an Operating system and how that we could actually do little or nothing in
our present world of computing without the use of one O/S or the other. This seminar seeks to
expose the vitality and familiarize us with the dynamics and modus operandi of operating
systems, how they affect, the role they play and working mechanisms behind what we see on
the screen.
The following objectives are aimed to be achieved at the end of this seminar:
i. Explore the major types and functions of operating systems and how they
function.
ii. Explore the components of operating systems, describing their roles and how they
iii. Explore some examples of operating systems that are popular in our world today.
iv. Introduce and briefly explore the concept of user interface in operating systems.
systems.
2
1.3 Research Significance
The research work and knowledge exposed and shared in this seminar work is beneficial to:
computer interacts with the user, this would make the user appreciate the work of
ii. Software and application developers; the knowledge of the working principle of
would aid them in their ability to develop more user friendly apps and software.
This seminar work makes use of the expository research methodology due to the focus on
3
CHAPTER TWO
LITERATURE REVIEW
The earliest electronic digital computers had no operating systems. Machines of the time
were so primitive that programs were often entered one bit at time on rows of mechanical
switches (plug boards). Programming languages were unknown (not even assembly
The first operating system was created by General Motors in 1956 to run a single IBM
mainframe computer. Other IBM mainframe owners followed suit and created their operating
systems.
The earliest operating systems varied wildly from one computer to the next, and while they
did make it easier to write programs, they did not allow programs to be used on more than
In the 1960s, IBM (International Business Machines, founded in 1911 by Charles Ranlett
Flint) was the first computer manufacturer to take on the task of operating system
However, IBM wasn’t the only vendor creating operating systems during this time. Control
Equipment Corporation and Xerox all released mainframe operating systems in the 1960s as
well.
4
In the late 1960s, the first version of the UNIX operating system was developed. Written in
C, and freely available during its earliest years, UNIX was easily ported to new systems and
Many modern operating systems, including Apple OS X and all Linux flavours, trace their
Microsoft Windows was developed in response to a request from IBM for an operating
The first OS built by Microsoft wasn’t called Windows; it was called MS-DOS and was built
in 1981 by purchasing the 86-DOS operating system from Seattle Computer Products and
5
The name Windows was first used in 1985 when a graphical user interface was created and
Apple OS X, Microsoft Windows, and the various forms of Linux (including Android) now
IBM system/360
picture.
1972: IBM comes out with VM: the Virtual Machine Operating System.
6
1974: Gates and Allen wrote BASIC for the Altair.
1976: Apple II
1991: GNU/Linux
1993: Windows NT
2007: iOS
2008: Android OS
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 advent of new devices like wearables, which includes, Smart Watches, Smart
Glasses, VR gears etc, the demand for unconventional operating systems is also rising.
7
CHAPTER THREE
OPERATING SYSTEMS
An operating system (sometimes abbreviated as "OS") is the program that, after being
initially loaded into the computer by a boot program, manages all the other programs in a
computer. The other programs are called applications or application programs. The
application programs make use of the operating system by making requests for services
through a defined application program interface (API). In addition, users can interact directly
with the operating system through a user interface such as a command language or a
8
An operating system performs these services for applications:
same time, the operating system determines which applications should run in what
order and how much time should be allowed for each application before giving
It handles input and output to and from attached hardware devices, such as hard disks,
about the status of operation and any errors that may have occurred.
It can offload the management of what are called batch jobs (for example, printing) so
On computers that can provide parallel processing, an operating system can manage
how to divide the program so that it runs on more than one processor at a time.
certain services to programs and to users of those programs. The specific services provided,
of course, differ from one operating system to another, but we can identify common classes.
These operating system services are provided for the convenience of the programmer, to
make the programming task easier. (Abraham, Peter & Greg, 2013)
1. Program execution
2. I/O operations
3. File systems
9
4. Communications
5. Resource Allocation
6. Accounting
7. Error detection
Figure 3.1 shows a one view of operating system services and how they interrelate.
Operating systems have user interface that enables interaction between the operating system
and the user. This user interfaces can take or have different forms:
Batch interface
10
Graphical user interface (GUI)
The operating loads a program into the memory, is able to run the program and also terminate
The operating also controls the use and calls of I/O devices as they are required by running
programs or by the user. These devices may be files or external devices such as printers, card
readers etc.
This is a very conspicuous part in using computers. Obviously users always require the use of
files either, creating, editing, renaming, copying, moving, merging or deleting files. The
operating system provides a platform for carrying these activities efficiently. An example of a
11
Fig 3.2 – A Windows O/S file system
3.1.5 Communications
In most cases there always interactions and communications between two or more processes
that are either sharing the same computer or are on different computers but are sharing the
same network. This communication between processes is handled by the operating system.
Processes in the system make use of resources that are available. More processes might
require the use of one resource at the same time and this might result in a deadlock. The
operating system handles the allocation of these resources to these processes in way as to
12
3.1.7 Accounting
The operating system keeps track of all that goes on in the computer. These tracks are stored
in files that are automatically generated by the operating system. In this way all operations
The operating system handles the errors that occur either in the CPU, memory or in the I/O
devices. The O/S can either fix these errors by halting or totally shutting down the process
that is affected.
Multiple users might be using the same CPU and as such there is system to protect the data
and information of each user separately. Also the operating system guards against
unauthorised access of a resource by setting up passes or PINs that must be validated before
access can be granted to the user or intruder in case of theft or illegal access. All these
13
Fig 3.4 – A protection mechanism preventing non-admin rights
Within the broad family of operating systems, there are so many classifications of operating
systems based on different parameters. Some of the most popular ones are:
The users of a batch operating system do not interact with the computer directly. Each user
prepares his job on an offline device like a punch card and submits it to the computer
operator.
14
To speed up processing, jobs with similar needs are batched together and run as a group. The
programmers leave their programs with the operator and the operator then sorts the programs
Time-sharing is a technique which enables many people located at various terminals to use
minimize response time. The operating system uses CPU scheduling and multiprogramming
Distributed systems use multiple central processors to serve multiple real-time applications
and multiple users. Data processing jobs are distributed among the processors accordingly.
This distributed operating systems can also been seen as a model where distributed
applications are running on multiple computers linked by communications. The system looks
like an ordinary centralized operating system but runs on multiple, independent central
15
Fig 3.5 – Distributed operating system
A real-time operating system is defined as a data processing system in which the time interval
required to process and respond to inputs is so small that it controls the environment. This
system is designed to serve where the response time is of the essence in order to prevent
error, misrepresentation or disaster. For instance in Airline reservation, machine tool control
and monitoring of nuclear power station. This type of operating system is designed to
respond to calls anytime there is system calls, and the response is precisely the same amount
16
3.3 Functions of Operating Systems
Operating system serves many functions, but this seminar covers just five of the major
An OS provides an interface between user and machine. This interface can be a graphical
user interface (GUI) in which users click onscreen elements to interact with the OS or a
command-line interface (CLI) in which users type commands at the command-line interface
17
3.3.2 Coordinates the hardware components
different language, but the operating system can talk to them through the specific
translational software called device drivers. Every hardware component has different drivers
for operating systems. These drivers make the communication successful between the other
software is a specific software which is used to perform specific task. In GUI operating
systems such as Windows and macOS, applications run within a consistent, graphical desktop
environment.
18
3.3.4 Provide structure for data management
An OS displays structure/directories for data management. We can view file and folder
listings and manipulate on those files and folders like move, copy, rename, delete and many
others.
OS monitors the health of our system’s hardware; giving us an idea of how well (or not) it’s
performing. We can see how busy our CPU is, or how quickly our hard drives retrieve data,
or how much data our network card is sending etc, and it also monitors system activity for
malware.
19
3.4 Some Examples of Operating Systems
This section of this seminar will cover a brief overview of some popular operating systems in
1. Microsoft Windows
2. Apple iOS
3. Google’s Android
4. Apple macOS
This OS has existed in one form or another since 1985 and it remains the most popular
operating system for home and office computers. Its latest versions, including Windows 10,
are also used on some tablets and the OS is used on some web and number-crunching server
computers as well. MS-DOS was the initial version of Windows, before the advent of modern
GUIs like:
i. Windows Xp
ii. Windows 7
iii. Windows 8
v. Windows 10
Apple iOS is one of the most popular smartphone operating system, second only to Android.
It runs on Apple hardware, including iPhone, iPad tablets and iPod Touch media players.
20
3.4.3 Google’s Android OS
Android is the most popular operating system in the world judging by the number of devices
installed. Largely developed by Google, its chiefly used on smartphones and tablets. Unlike
iOS, it can be used on devices made by a variety of different manufacturers, and those makers
can tweak parts of its interface to suit their own needs. Android is open source, so users can
The kernel system service supplied by Google android inner nuclear layer is dependent on
Linux 2.6 kernel; operations such as internal storage, process management, internet
communications protocol, bottom-drive and other core service are typically based on Linux
21
3.4.4 Apple macOS
Apple’s macOS, successor to the popular OS X operating system, runs on Apple laptops and
desktops. Based inpart on the historic family of Unix operating systems dating back to
research in the 1960s at AT&T’s Bell Labs, macOS shares some features with other Unix-
Unlike many other operating systems, development of Linux isn’t led by any one company.
The operating system was created by Finnish programmer Linus Torvalds in 1991.
Nowadays, programmers from all over the world collaborate on its open source code and
While some of these components have sparsely been addressed here and there in the course
of this seminar, I’d briefly list and consider some of these components.
i. Process management
22
3.5.1 Process Management
A process can be thought of as a program in execution. A process will need certain resources
– such as CPU time, memory, files, and I/O devices – to accomplish its task. These resources
The main purpose of a computer system is executing programs. These programs, together
with the data they access, must be at least partially in main memory during execution. To
improve both the utilization of the CPU and the speed of its response to users, a general-
purpose computer must keep several processes in memory. (Abraham et al., 2013)
The operating system is in charge of allocating several memories scheduling for the CPU to
v. Data/process migration
A user interface (UI) refers to that part of an operating system, program, or device that allows
We have basically Text-based user interface (TUI) and Graphical User Interface (GUI).
23
3.6.1 Text User Interface (TUI)
A text-based user interface (Fig 3.9a) displays text, and its commands are usually typed on
With a GUI (see Fig 3.9b below), the functions are carried out by clicking or moving buttons,
24
GUI is widely used in most operating systems today and most GUIs have the following
components:
A desktop
A set of processes is deadlocked if each process in the set is waiting for an event that only
another process in the set can cause. Because all the processes are waiting, none of them will
ever cause any event that could wake up any of the other members of the set, and all the
In the course of the operating system carrying out its resource allocation to several processes,
a deadlock can occur if the operating system is not able properly allocate resources to several
processes. In recent cases, operating system has been improved upon to handle cases of
deadlock.
i. Request – The process requests for the resource. If the resource is not
available, the process must wait until the resource is released by the process
25
iii. Release – The process releases the resource after use.
This section covers the occurrence of deadlocks, how to prevent, avoid and detect them.
2. Hold-and-wait condition
3. No-preemption condition
This condition stipulates that one process at a time can use a resource.
This is where a process holding at least one resource is reaching out for another and waiting
A process can only release a resource voluntarily after it has finished its task.
This is a condition whereby each process is waiting for the next process ahead of it, which in
turn in turn is waiting also for the process ahead of it. Till it gets to the last process which is
in turn waiting for the first process. This system of waiting forms a circle, hence the name,
circular wait.
26
Process 2 Waiting
Process 3
Waiting Waiting
Process 1 Process 4
Waiting
Waiting
Waiting
Process 6 Process 5
In order to avoid a system to enter a deadlock state, in a general sense we can use any of the
following methods:
i. Ensure that there’s a protocol to prevent or avoid deadlocks, this is to ensure that the
ii. We can allow a system to enter into a deadlocked state, detect it and recover.
iii. We can ignore the problem altogether and pretend that a deadlock never occurred.
To ensure that a deadlock never occurs, the system must use either a deadlock-prevention
model or a deadlock-avoidance model. In the following sections, both methods are discussed.
Deadlock prevention ensures that one of the conditions for deadlocks to occur does not take
place. This is achieved in the system by restraining or constraining how requests for
27
Considering the four conditions separately,
This condition must hold for non-sharable resources. Example a printer cannot be
Sharable resources, in contrast, do not require mutually exclusive access and thus
Must guarantee that whenever a process requests a resource, it does not hold any other
resources.
Require process to request and be allocated all its resources before it begins execution
or allow process to request resources only when the process has none.
Example1: A process that copies data from DVD drive to a file on disk, sorts the file
and then prints the results to a printer. (Request first the DVD drive, disk file and
printer.)
Example 2: Request the DVD drive and disk file then copy the file from DVD drive.
Then request the disk file and printer then prints the file from disk file.
Disadvantages:
Resource utilization may be low. Since the resources were requested and
waited to be used.
Starvation. Other processes will wait indefinitely for resources being used.
3.7.3.1.3 No pre-emption
28
If a process is holding some resources and requests another resource that cannot be
immediately allocated to it (the process must wait), then all resources the process is
The preempted resources are added to the list of resources for which the process is
waiting.
The process will be restarted only when it can regain its old resources as well as the
This is often applied to resources whose state can be easily saved and restored later
This is to impose a total ordering of all resource types and to require that each process
F(disk drive) = 5
F(printer) = 12
In the example, requests first the tape drive before the printer. In developing the
This entails that the operating system be given information before a process initiates a
request. This information must contain what process makes a request to use during its
lifetime. With this information at hand, the operating system knows how to allocate resources
to different process and what order it should use in responding to them in order to avoid a
deadlock.
29
An alternative method for avoiding deadlocks is to require additional information
The simplest and most useful model requires that each process declare the maximum
number of resources of each type that it may need. Given this a priori information, it
is possible to construct an algorithm that ensures that the system will never enter a
1. Safe state: If a system is in safe state, a deadlock cannot occur, once the system enters
an unsafe state, then there’s a chance a deadlock will occur. The operating system
then ensures the system is always in a safe state at all times. In ensuring this, the
system takes note of the total number of available resources and the number of
processes and ensures that as processes make requests, their requests are within what
the system can afford, if not the request is not granted, and the operating system
Deadlock!
Unsafe state
Safe state
30
2. Resource-Allocation-Graph Algorithm
3. Banker’s Algorithm
Assuming none of deadlock prevention or avoidance was utilized and the system enters a
deadlock state, in this state, the system has to device an algorithm that examines the system to
detect if it has entered a deadlock state and another algorithm to recover the system from that
deadlocked state.
Manually, or
Automatically
methods, the system reclaims all resources allocated to the terminated processes.
Abort all deadlocked processes. This method clearly will break the deadlock
Abort one process at a time until the deadlock cycle is eliminated. This
31
In which order of the processes should we choose to abort?
• How long process has computed, and how much longer to completion
To eliminate deadlocks, we successfully preempt some resources from processes and give
Rollback. We must rollback the process to some safe state and restart it from that
state.
Starvation. How can we guarantee that resources will not always be preempted
from the same process? (Same process may always be picked as victim or include
32
CHAPTER FOUR
4.1 Conclusion
In conclusion, this seminar paper work has introduced the concept of Operating Systems and
its relevance to the world of computing, its underlying and irreplaceable benefits to web
developers as well as software and application builders and brought to limelight the different
usage of operating systems depending on who the system users are and what they intend to
achieve by using the system efficiently without having to battle underlying problems that
come with resource allocation of several processes which is being taking care of by the
operating system.
4.2 Recommendation
The problem of interfacing between the machines or our devices is solved and all seeming
problems that may occur in the process of using any operating system has been foreknown
More operating systems that are smarter than the existing ones should be built, systems that
would enhance user-system relationship more and bring to non-existence any ambiguity in
using a system.
Operating systems should achieve portability, that the problem of porting between one device
to the other is removed. Hence an android OS should be able to work on Apple products and
vice versa. Also a system can have the capacity to have in its build more than one OS. The
33
REFERENCE
Abraham, S., Peter, B., & Greg, G. (2013). Operating system concepts: Operating systems
Andrew, S. T. & Herbert, B. (2015). Modern operating systems (4th ed.). NJ, USA: Pearson
Education Inc.
Baseer, H. (2017, March 16). Operating system, its functions and characteristics. Medium.
system-its-functions-and-characteristics-c0946e4215c6?sa=X&ved=2ahUKEwix1rL3h-
DiAhWPqaQKHSYGCcIQ9QEwAHoECAsQAg
Device drivers in between os and hardware devices [image] (2017, March 16). Retrieved
from https://www.cdn-images-1.medium.com/max/1600/1*4wNqK800210xQ-
feNMI2VA.png
from https://www.ecomputernotes.com/fundamental/disk-operating-system/distributed-
operating-system/
https://www.studytonight.com/operating-system/evolution-of-os
Jon, P. (2019, May 10). How to program your very own operating systems(OS). Whois
Gui (mac osx) v cli(dos) [image] (2017, March 16). Retrieved from https://www.cdn-images-
1.medium.com/max/1600/1*t04mOKuZn6o_jifRUXosbA.png
34
Palak, K. & Amandeep, S. (2016). Google android operating system: A review. International
https://www.ijcaonline.org
https://www.embetronicx.com/tutorials/rtos-basic-tutorial-for-
beginners/#3_real_time_operating_system
Steve, M. (2019, April 9). Free enterprise system: Five common operating systems. Chron.
28217.html
https://www.homepage.cs.uri.edu/faculty/wolfe/book/Readings/reading07.htm
Tom, K. (1996). Operating system components and services: Operating system components.
https://www.tutorialspoint.com/operating-systems/os_types.html
University of Helsinki. (n.d.). Studen’s digital skills: Operating system and user interface.
of-computers/1-1-computer-functionality/operating-system-and-user-interface/
Version 7 unix, the research unix ancestor of all modern unix systems [image] (2014, January
https://en.m.wikipedia.org/wiki/file:version_7_unix_simh_pdp11_emulation_dmr.png
35