1.introduction 1
1.introduction 1
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
Software Operator
OS ? What is it ?
• OK, well what is a system then
OS ? What is it ?
• OK, well what is a system then?
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
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
• 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
Software Processor
OS
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.
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
registers OS
registers OS
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.
• 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.
• 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
1993
History
1993 1995
History
MVS Multics
MacOS X