Seminar On Operating Systems by Ignatius D. Meshack

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 35

CHAPTER ONE

INTRODUCTION

1.1 Background Study

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

to several inventions and innovations.

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

manner! This software is called Operating systems!

Operating system is the software that acts as an intermediary between the computer hardware

and the users.

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

efficient manner. It also enables interaction successful between me and my PC.

Aside the conventional and more popular name, operating systems is also called, monitor,

executive, supervisor, controller and master controller programs.

1.2 Research Aims and Objectives

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

operate in any computer device.

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.

v. Introduce and briefly explore the concept of deadlock as it regards operating

systems.

2
1.3 Research Significance

The research work and knowledge exposed and shared in this seminar work is beneficial to:

i. The average computer user; providing a background knowledge of how the

computer interacts with the user, this would make the user appreciate the work of

the operating systems.

ii. Software and application developers; the knowledge of the working principle of

the operating systems is a very vital knowledge to software developers. This

would aid them in their ability to develop more user friendly apps and software.

iii. The academic community as a refresher course on operating systems.

1.4 Research Methodology

This seminar work makes use of the expository research methodology due to the focus on

exposing general knowledge about a particular computing domain.

3
CHAPTER TWO

LITERATURE REVIEW

2.1 Brief History of Operating Systems

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

languages). Operating systems were unheard of.

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

one mainframe without a complete rewrite.

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

development and began distributing operating systems with their computers.

However, IBM wasn’t the only vendor creating operating systems during this time. Control

Data Corporation, Computer Sciences Corporation, Burroughs Corporation, GE, Digital

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

achieved rapidly broad acceptance.

Many modern operating systems, including Apple OS X and all Linux flavours, trace their

roots back to UNIX.

Fig 2.0 – Version 7 UNIX

Microsoft Windows was developed in response to a request from IBM for an operating

system to run its range of personal computers.

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

modifying it to meet IBM’s requirements.

5
The name Windows was first used in 1985 when a graphical user interface was created and

paired with MS-DOS.

Apple OS X, Microsoft Windows, and the various forms of Linux (including Android) now

command the vast majority of the modern operating system market.

2.2 Evolution of Operating Systems

 Operating systems – Late 1950s

 Could perform single stream batch processing

 Could use common, standardized, I/O routines for device access.

 Error recovery to clean up after a job terminated abnormally was added.

 Operating systems – In 1960s

 Advent of the UNIX time-sharing system from Bell Laboratories.

 IBM system/360

 Compatible Time-sharing system (CTSS) from MIT

 Supported OS Features by 1970s

 Multi User and Multi tasking was introduced.

 Dynamic address translation hardware and virtual machines came into

picture.

 Modular architectures came into existence.

 Personal, interactive systems came into existence.

 Accomplishments after 1970

 1971: Intel announces the microprocessor

 1972: IBM comes out with VM: the Virtual Machine Operating System.

 1973: UNIX 4th Edition is published.

 1974: Personal Computer age begins.

6
 1974: Gates and Allen wrote BASIC for the Altair.

 1976: Apple II

 1981: IBM introduces the IBM PC.

 1983: Microsoft begins work on MS-Windows

 1984: Apple Macintosh comes out

 1990: Microsoft Windows 3.0 comes out

 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

3.1 What are 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

graphical user interface (GUI).

Fig 3.0 – The operating system in a hierarchy

8
An operating system performs these services for applications:

 In a multitasking operating system where multiple programs can be running at the

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

another application a turn.

 It manages the sharing of internal memory among multiple applications.

 It handles input and output to and from attached hardware devices, such as hard disks,

printers, and dial-up ports.

 It sends messages to each application or interactive user (or to a system operator)

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

that the initiating application is freed from this work.

 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.

An operating system provides an environment for the execution of programs. It provides

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)

Some of those services are:

1. Program execution

2. I/O operations

3. File systems

9
4. Communications

5. Resource Allocation

6. Accounting

7. Error detection

8. Protection and security

Fig 3.1 – A view of operating system services

Figure 3.1 shows a one view of operating system services and how they interrelate.

3.1.1 User Interface

Operating systems have user interface that enables interaction between the operating system

and the user. This user interfaces can take or have different forms:

 Command-line interface (CLI)

 Batch interface

10
 Graphical user interface (GUI)

More on user interface is covered subsequently in this chapter.

3.1.2 Program Execution

The operating loads a program into the memory, is able to run the program and also terminate

the program either normally or abnormally.

3.1.3 I/O Operations

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.

3.1.4 File systems

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

file system and possible manipulations is shown in Fig 3.2 below.

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.

3.1.6 Resource Allocation

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

avoid deadlock situations.

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

can be accounted for.

Fig 3.3 – Example of a Windows O/S log file

3.1.8 Error Detection

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.

3.1.9 Protection and Security

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

measures or protection and security is provided by the operating system.

13
Fig 3.4 – A protection mechanism preventing non-admin rights

3.2 Types of Operating Systems

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:

1. Batch operating system

2. Time-sharing operating systems

3. Distributed operating systems

4. Real-time operating systems

3.2.1 Batch Operating System

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

with similar requirements into batches.

3.2.2 Time-sharing Operating Systems

Time-sharing is a technique which enables many people located at various terminals to use

particular computer system at the same time. Time-sharing or multi-tasking is a logical

extension of multiprogramming. Processor’s time which is shared among multiple users

simultaneously is termed as time-sharing. The aim of this type of operating system is to

minimize response time. The operating system uses CPU scheduling and multiprogramming

to provide each user with a small portion of a time.

3.2.3 Distributed Operating Systems

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

processing units (CPUs).

15
Fig 3.5 – Distributed operating system

3.2.4 Real- time Operating Systems

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

of time every time it occurs.

16
3.3 Functions of Operating Systems

Operating system serves many functions, but this seminar covers just five of the major

functions which all operating systems have.

Key basic functions of any operating system are as following.

1. Interface between the user and the hardware.

2. Coordinates the hardware components.

3. Provide environment for software to function.

4. Provide structure for data management.

5. Monitors system health and functionality.

3.3.1 Interface between the user and the hardware

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

to tell the OS to do things.

Fig 3.6 – GUI vs CLI

17
3.3.2 Coordinates the hardware components

An OS enables coordination of hardware components. Each hardware device speaks a

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 and hardware.

Fig 3.7 – Device drivers in between OS and hardware devices

3.3.3 Provide environment for software to function

An OS provides an environment for software applications to function. An application

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.

3.3.5 Monitor system health and functionality

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.

Fig 3.8 – Performance Monitor in Windows

19
3.4 Some Examples of Operating Systems

This section of this seminar will cover a brief overview of some popular operating systems in

our modern time. Some of which are:

1. Microsoft Windows

2. Apple iOS

3. Google’s Android

4. Apple macOS

5. Linux Operating system

3.4.1 Microsoft Windows

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

iv. Windows 8.1

v. Windows 10

3.4.2 Apple iOS

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

download custom versions of it.

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

kernel. (Palak & Amandeep 2016)

Fig 3.9 – Android Operating System Architecture

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-

related operating systems including Linux.

3.4.5 Linux operating system

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

submit tweaks to the central kernel software and other programs.

3.5 Components of Operating Systems

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

ii. Memory management

iii. I/O device management

iv. File system

v. Protection and security

vi. Network 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

are allocated to the process either when it is created or while it is executing.

3.5.2 Memory Management

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

work, one at a time.

3.5.3 Network Management

Handles all network related activities such as:

i. TCP/IP, IPX, IPng

ii. Connection/Routing strategies

iii. Circuit management – circuit, message, packet switching

iv. Communication mechanism

v. Data/process migration

3.6 Operating Systems – User Interface

A user interface (UI) refers to that part of an operating system, program, or device that allows

a user to enter and receive information.

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

a command-line using a keyboard. Commands are typed as text, for example

Fig 3.9a – Text UI

3.6.2 Graphical User Interface (GUI)

With a GUI (see Fig 3.9b below), the functions are carried out by clicking or moving buttons,

icons and menus by means of a pointing device.

Fig 3.9b – Graphical UI

24
GUI is widely used in most operating systems today and most GUIs have the following

components:

 A start menu with program groups

 A taskbar showing running programs

 A desktop

 Various icons and shortcuts

3.7 Operating Systems – Deadlock

Deadlock is an important aspect to consider when studying or designing an operating system.

3.7.1 What is Deadlock?

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

processes continue to wait forever. (Andrew & Herbet, 2015)

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.

Processes utilize resources only in the following sequence:

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

that held it initially.

ii. Use – The process uses the resource.

25
iii. Release – The process releases the resource after use.

This section covers the occurrence of deadlocks, how to prevent, avoid and detect them.

3.7.2 How deadlock occurs

Deadlock occurs when the following four conditions hold.

1. Mutual exclusion condition

2. Hold-and-wait condition

3. No-preemption condition

4. Circular wait condition

3.7.2.1 Mutual exclusion condition

This condition stipulates that one process at a time can use a resource.

3.7.2.2 Hold-and-wait condition

This is where a process holding at least one resource is reaching out for another and waiting

to acquire another resource which is being held by another process.

3.7.2.3 No-preemption condition

A process can only release a resource voluntarily after it has finished its task.

3.7.2.4 Circular wait condition

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

Fig 3.9c – Circular wait

3.7.3 How to handle deadlocks

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

system will never enter a deadlocked state.

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.

3.7.3.1 Deadlock prevention

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

resources are made.

27
Considering the four conditions separately,

3.7.3.1.1 Mutual exclusion

 This condition must hold for non-sharable resources. Example a printer cannot be

simultaneously shared by several processes.

 Sharable resources, in contrast, do not require mutually exclusive access and thus

cannot be involved in a deadlock. (Example: read-only files.)

 In general, however, we cannot prevent deadlocks by denying the mutual-exclusion

condition, because some resources are intrinsically non-sharable.

3.7.3.1.2 Hold and wait

 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

 There should be no preemption of resources that have already been allocated.

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

currently holding are preempted.

 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

new ones that is requesting.

 This is often applied to resources whose state can be easily saved and restored later

such as CPU registers and memory space.

 It cannot generally be applied to such resources as printers and tape drives.

3.7.3.1.4 Circular wait

 This is to impose a total ordering of all resource types and to require that each process

requests resources in an increasing order of enumeration.

 Example: F(tape drive) =1

F(disk drive) = 5

F(printer) = 12

 In the example, requests first the tape drive before the printer. In developing the

ordering or hierarchy, it is up to application developers based on the normal order of

usage of the resources.

3.7.3.2 Deadlock avoidance

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

about how resources are to be requested.

 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

deadlocked state. Such an algorithm defines the deadlock-avoidance approach.

 A deadlock-avoidance algorithm dynamically examines the resource-allocation state

to ensure that a circular-wait condition can never exist.

 The resource-allocation state is defined by the number of available and allocated

resources and the maximum demands of the processes.

Other methods employed to ensure deadlock avoidance are:

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

moves to consider the next process.

Deadlock!
Unsafe state

Safe state

Fig 3.9d – Safe, unsafe and deadlock states

30
2. Resource-Allocation-Graph Algorithm

3. Banker’s Algorithm

3.7.3.3 Deadlock detection

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.

3.7.6 How to recover from deadlock

When a detection algorithm has detected a deadlock, it can handled either:

 Manually, or

 Automatically

3.7.6.1 Options for breaking a deadlock

 Simply to abort one or more processes to break the circular-wait.

 To preempt some resources from one or more of the deadlocked processes.

3.7.6.2 Process Termination

To eliminate deadlocks by aborting a process, we use one of two methods. In both

methods, the system reclaims all resources allocated to the terminated processes.

 Abort all deadlocked processes. This method clearly will break the deadlock

cycle, but at great expense.

 Abort one process at a time until the deadlock cycle is eliminated. This

method incurs considerable overhead, since after each process is aborted.

31
In which order of the processes should we choose to abort?

• Priority of the process

• How long process has computed, and how much longer to completion

• Resources the process has used

• Resources process needs to complete

• How many processes will need to be terminated

• Is process interactive or batch?

3.7.6.3 Resource pre-emption

To eliminate deadlocks, we successfully preempt some resources from processes and give

these resources to other processes until the deadlock cycle is broken.

 Selecting a victim. We must determine the order of preemption to minimize cost.

 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

number of rollback in cost factor).

32
CHAPTER FOUR

CONCLUSION & RECOMMENDATION

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

and solutions has been proffered.

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

user decides on which to use at every point in time.

33
REFERENCE
Abraham, S., Peter, B., & Greg, G. (2013). Operating system concepts: Operating systems

services (9th ed.). New Jersey, United States: Courier Kendallville.

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.

Retrieved from https://medium.com/computing-technology-with-it-fundamentals/operating-

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

Dinesh, T. (n.d.). Definition of distributed operating system. Ecomputer Notes. Retrieved

from https://www.ecomputernotes.com/fundamental/disk-operating-system/distributed-

operating-system/

Evolution of operating systems. (n.d.). Retrieved June 12, 2019, from

https://www.studytonight.com/operating-system/evolution-of-os

Jon, P. (2019, May 10). How to program your very own operating systems(OS). Whois

Hosting This. Retrieved from https://www.whoishositingthis.com/resources/os-development

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

Journal of computer applications, 147, 0975 – 8887. Retrieved from

https://www.ijcaonline.org

Rtos basic tutorial – 1st part embetronicx. (n.d.). Retrieved from

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.

Retrieved from https://www.smallbusiness.chron.com/five-common-operating-systems-

28217.html

The operating system in a hierarchy [image] (n.d.). Retrieved from

https://www.homepage.cs.uri.edu/faculty/wolfe/book/Readings/reading07.htm

Tom, K. (1996). Operating system components and services: Operating system components.

Tom Kelliher. Retrieved from https://www.phoenix.goucher.edu/~kelliher/cs42/sep11.html

Types of operating system. (n.d.). Retrieved June 12, 2019, from

https://www.tutorialspoint.com/operating-systems/os_types.html

University of Helsinki. (n.d.). Studen’s digital skills: Operating system and user interface.

Retrieved from https://www.blogs.helsinki.fi/students-digital-skills/1-introduction-to-the-use-

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

19). Retrieved June 12, 2019, from

https://en.m.wikipedia.org/wiki/file:version_7_unix_simh_pdp11_emulation_dmr.png

35

You might also like