0% found this document useful (0 votes)
22 views

1.introduction 1

...

Uploaded by

Michael Junior
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
22 views

1.introduction 1

...

Uploaded by

Michael Junior
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 61

Operating Systems

COMS(3010A)
Introduction

Branden Ingram
[email protected]
CONTENT
• Introduction
• Abstraction/Virtualisation
• Concurrency
• Scheduling
• Persistence
Why is COMS3010 important
• Some of you will actually design and build operating systems
or components of them.
• Perhaps more now than ever
Why is COMS3010 important
• Some of you will actually design and build operating systems or
components of them.
• Perhaps more now than ever

• Many of you will create systems that utilize the core concepts
in operating systems.
• Whether you build software or hardware
• The concepts and design patterns appear at many levels
Why is COMS3010 important
• Some of you will actually design and build operating systems or
components of them.
• Perhaps more now than ever

• Many of you will create systems that utilize the core concepts
in operating systems.
• Whether you build software or hardware
• The concepts and design patterns appear at many levels

• All of you will build applications, etc. that utilize operating


systems
• The better you understand their design and
implementation, the better use you’ll make of them.
OS ? What is it ?

Switchboard Operator Computer Operator


OS ? What is it ?

Switchboard Operator Computer Operator

Software Operator
OS ? What is it ?
• OK, well what is a system then
OS ? What is it ?
• OK, well what is a system then?

• A set of things working together as parts of a mechanism or a


interconnecting network
OS ? What is it ?
• Special layer of software that provides application software
access to hardware resources

• Convenient abstraction of complex hardware devices


• Protected access to shared resources
• Security and authentication
• Communication amongst logical entities

APP
APP
APP
APP OS HARDWARE
Types of OS
• An operating system is a well-organized collection of
programs that manages the computer hardware.

• Batch
• Embedded
• Multi-programming
• Multi-processing
• Distributed
Types of OS
• Batch Operating System

• Multiple users submit jobs which are queued and processed


sequentially.
• These jobs then return output back to their respective user.
Types of OS
Advantages of Batch OS
1. The use of a resident monitor improves computer efficiency as
it eliminates CPU time between two jobs.

Disadvantages of Batch OS
1. Starvation
2. Not Interactive
Types of OS
• Multiprogramming Operating System

• Each process needs two types of system time: CPU time and
I/O time.
• In a multiprogramming environment, when a process does its
I/O, The CPU can start the execution of other processes.
Types of OS
Advantages of Multiprogramming OS
1. Throughput is increased as the CPU always had one program
to execute.
2. Response time can also be reduced.

Disadvantages of Multiprogramming OS
1. Multiprogramming systems provide an environment in which
various systems resources are used efficiently, but they do not
provide any user interaction with the computer system.
Types of OS
• Multiprocessing Operating System

• Parallel computing is achieved. There are more than one


processors present in the system which can execute more than
one process at the same time.
Types of OS
Advantages of Multiprocessing operating system:
1. Increased reliability: Due to the multiprocessing system,
processing tasks can be distributed among several processors.
This increases reliability as if one processor fails, the task can be
given to another processor for completion.
2. Increased throughput: As several processors increase, more
work can be done in less.

Disadvantages of Multiprocessing operating System


1. Multiprocessing operating system is more complex and
sophisticated as it takes care of multiple CPUs simultaneously.
Types of OS
• Embedded Operating System

• It is the specific purpose operating system used in the


computer system's embedded hardware configuration.

• These operating systems are designed to work on dedicated


devices like automated teller machines (ATMs), airplane systems,
digital home assistants, game consoles.
Types of OS
• Distributed Operating System

• Provides an environment in which multiple independent CPU


or processor communicates with each other through physically
separate computational nodes.
Types of OS
• Each node contains specific software that communicates with
the global aggregate operating system.
ROLES of OS’s
• There are 3 MAIN roles of any OS
• Referee
• Illusionist
• Glue
ROLES of OS’s
• Referee
• Manage sharing of resources between different applications
running on the same machine

• Stopping and Starting of programs


• Isolation of applications from each other
• Deciding which applications get resources when
• Protect itself and other programs from malicious
software
ROLES of OS’s
• Illusionist
• Provide clean, easy to use abstractions of physical resources

• Provides the illusion that a program has infinite memory


• Provides the illusion that a program has the computers
CPU all to itself
• Allows programs to be written independently of the
resources available
• Since applications are written at a higher level of
abstraction, the operating system can invisibly change the
amount of resources allocated to each application
ROLES of OS’s
• Glue
• Provide a set of common services that facilitate sharing
among applications

• Cut/Paste works uniformly across the system


• A file written by one application can be read by another
• Common user interface routines which give applications a
similar look and feel
• Provides a layer separating applications from I/O devices
ROLES of OS’s
• Referee
• Manage sharing of resources, Protection
• Resource allocation, isolation, communication

• Illusionist
• Provide clean, easy to use abstractions of physical resources
• Infinite memory, dedicated machine
• Higher level objects: files, users, messages
• Masking limitations, virtualization

• Glue
• Common services
• Storage, Window system, Networking
• Sharing, Authorization
• Look and feel
So how does the OS perform
these roles?
• Abstraction
• Concurrency
• Scheduling
• Persistence
Abstraction
• Abstraction in general is a logical view of something. You don’t look at the
(technical) details, but only at the principle.
Abstraction
• Abstraction in general is a logical view of something. You don’t look at the
(technical) details, but only at the principle.

• OS’s provide an abstract view of the computer HW. It doesn’t matter whether
your sound card is from one manufacturer or another; the OS provides a unified
way for applications to use it, they don’t need to know how does it work
internally.
Abstraction
Hardware
Memory

Software Processor

Storage Other Hardware


Networks
Displays
Inputs
Ect.
Abstraction
From our Perspective
Hardware
Memory

Software Processor

OS

Storage Other Hardware


Networks
Displays
Inputs
Ect.
Abstraction
Programs Perspective
Hardware
Memory
Virtual Hardware
Address
Software Processor Space
Process

OS
Hardware
Virtualizat
ion
Storage Other Hardware
Networks Sockets
Files Displays Windows
Inputs Drivers
Ect. Virtual Ect.
Concurrency
• Concurrency is the tendency for things to happen at the same time in a system.
Concurrency is a natural phenomenon, of course. In the real world, at any given time,
many things are happening simultaneously.
Concurrency
• Concurrency is the tendency for things to happen at the same time in a system.
Concurrency is a natural phenomenon, of course. In the real world, at any given time,
many things are happening simultaneously.

• When dealing with concurrency issues in software systems, there are generally two
aspects that are important:
• being able to detect and respond to external events occurring in a random order,
• ensuring that these events are responded to in some minimum required interval.
Concurrency
• Concurrency is the tendency for things to happen at the same time in a system.
Concurrency is a natural phenomenon, of course. In the real world, at any given time,
many things are happening simultaneously.

• When dealing with concurrency issues in software systems, there are generally two
aspects that are important:
• being able to detect and respond to external events occurring in a random order,
• ensuring that these events are responded to in some minimum required interval.

• If each concurrent activity evolved independently, in a truly parallel fashion, this


would be relatively simple: we could simply create separate programs to deal with
each activity.
• The challenges of designing concurrent systems arise mostly because of the
interactions which happen between concurrent activities. When concurrent activities
interact, some sort of coordination is required.
Concurrency
• Google Maps
Concurrency

Programs 1 Programs 2 Programs 3

Programs 4 Programs 5 Programs 6


Scheduling
• In computing, scheduling is the method by which work is assigned to resources that
complete the work.

• The work may be virtual computation elements such as threads, processes or


data flows, which are in turn scheduled onto hardware resources such
as processors, network links or expansion cards.
Scheduling
• In computing, scheduling is the method by which work is assigned to resources that
complete the work.

• The work may be virtual computation elements such as threads, processes or


data flows, which are in turn scheduled onto hardware resources such
as processors, network links or expansion cards.
Scheduling
• In computing, scheduling is the method by which work is assigned to resources that
complete the work.

• The work may be virtual computation elements such as threads, processes or


data flows, which are in turn scheduled onto hardware resources such
as processors, network links or expansion cards.

• A scheduler is what carries out the scheduling activity.


• Schedulers are often implemented so they keep all computer resources busy, allow
multiple users to share system resources effectively, or to achieve a target quality of
service.
Scheduling
Other
COMS3010A EAT SLEEP Coms3
course
CHILL

Time
Scheduling
Other
COMS3010A EAT SLEEP Coms3
course
CHILL

Time
Persistence
• In computer science, persistence refers to the characteristic of state that outlives
the process that created it.
Persistence
• In computer science, persistence refers to the characteristic of state that outlives
the process that created it.

• This is achieved in practice by storing the state as data in computer data storage.
Programs have to transfer data to and from storage devices and have to provide
mappings from the native programming-language data structures to the storage
device data structures.
Persistence
• In computer science, persistence refers to the characteristic of state that outlives
the process that created it.

• This is achieved in practice by storing the state as data in computer data storage.
Programs have to transfer data to and from storage devices and have to provide
mappings from the native programming-language data structures to the storage device
data structures.

• Picture editing programs or word processors, for example, achieve state persistence
by saving their documents to files.
Persistence
Hardware
Memory

Software Processor Program

registers OS

Storage Other Hardware


Networks
Displays
Inputs
Ect.
OS Basics : Loading
Hardware
Memory

Software Processor Program

registers OS

Storage Other Hardware


Networks
Displays
Inputs
Ect.
OS Basics : Loading
Hardware Memory

Processor Program

registers OS

Other Hardware
Storage
Networks
Displays
Inputs
Software Ect.
History

• In the Beginning
History

• The first operating system was created by General Motors in 1956 to run a single
IBM mainframe computer.

1956
History

• In the 1960s, IBM was the first computer manufacturer to take on the task of
operating system development and began distributing operating systems with their
computers

1956 1960
History

• 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

1956 1960
History

• In the late 1960s, the first version of the Unix operating system was developed.
Written in C, and freely available during it’s earliest years, Unix was easily ported to
new systems and rapidly achieved broad acceptance.

1956 1960 Late


1960’s
History

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

1956 1960 Late Late


1960’s 1981
History

• Apple released the original Macintosh on January 24, 1984. This was the first
version of the system software which would later go on to be called MacOS

1956 1960 Late Late 1984


1960’s 1981
History

• Linux was first released on September 17, 1991, by Linus Torvalds.

1956 1960 Late Late 1984 Late


1960’s 1981 1991
History

• Developed by Microsoft as a high-end server Operating System, the NT code


became the basis for Operating Systems to this day.

1993
History

• Developed by Microsoft, it was the first Microsoft Operating system to have a


graphical user interface built into it

1993 1995
History

• XP was an enhanced version of Windows 2000 code base. XP became widely


popular and is used extensively today

1993 1995 2001


History

• Vista had been slow in taking off.

1993 1995 2001 2007


History

1993 1995 2001 2007 2009 2014


Where did we come from? Where did we go?

MVS Multics

MS/DOS VMS VM/370 UNIX

BSD UNIX Mach


Windows

Windows NT VMWare Linux NEXT MacOS

MacOS X

Windows 10 Android iOS

Genealogy of Operating Systems

You might also like