Operating System Architecture and Distributed

Download Report

Transcript Operating System Architecture and Distributed

Operating System Architecture
and Distributed Systems
Most concepts are
drawn from Chapter 6
© Pearson Education
Dr. Christian Vecchiola
Postdoctoral Research Fellow
[email protected]
Cloud Computing and Distributed Systems (CLOUDS) Lab
Dept. of Computer Science and Software Engineering
The University of Melbourne
Operating System Architecture and Distributed Systems
Distributed Systems Principles and Paradigms
Outline
 Introduction
 OS / Kernel Models
–
–
–
–
Monolithic Operating Systems
Layered Systems
Traditional Operating Systems
Micro-kernel Operating Systems
 Micro-kernel Operating Systems
–
–
–
–
Observations
Architecture
Client Server Model
Comparison
Hybrid Approaches
 Summary
Operating System Architecture and Distributed Systems
Distributed Systems Principles and Paradigms
Introduction
Why Operating Systems?
– OSes are a fundamental component of today’s
computing systems.
– They offer a set of services for:
• Managing the hardware resources of devices
• Scheduling the execution of the applications
• Simplifying the development of applications
– OSes constitute a common sub-stratus for
• (almost) all the applications ….
• …. even distributed system middleware
Operating System Architecture and Distributed Systems
Distributed Systems Principles and Paradigms
Introduction
A little bit of history…
– Pre-OS software development (before 60s)
• Single task model (one application running)
• Developers had to:
– Program the system from booting the hardware up..
– Manage every aspect of the system
• Assembly language
• Very challenging
• Model:
Machine + Program + Data = Application
Operating System Architecture and Distributed Systems
Distributed Systems Principles and Paradigms
Introduction
A little bit of history…
– The OS era (60s onwards)
• Evolution from single task to multi-tasking
• There exist a common program that
–
–
–
–
.. is loaded before any other program
.. manages the hardware resources of the machine
.. schedules the execution of user applications (one or more)
.. provides a higher level interface to the system
• Development of compilers
• Model:
Application + OS +Machine = Execution
Operating System Architecture and Distributed Systems
Distributed Systems Principles and Paradigms
Introduction
What does an OS do?
– Manages the hardware resources
• Memory
• CPU
• Disks
– Provides access to connected devices (drivers)
• Printers
• Cameras
• Scanners…
– Manages and Schedules applications
• Simple user applications
• Services
Operating System Architecture and Distributed Systems
Distributed Systems Principles and Paradigms
Introduction
Ehy… are we studying DS…?
– OSes are a fundamental component in DS
– They provide the basic services for what
concerns
•
•
•
•
Network connectivity
Machine resources management
Concurrency and IPC
Access to the file system
– Distributed Systems are based on middleware
• it is “just another” application for the OS
• it might be a fundamental part of the OS
Operating System Architecture and Distributed Systems
Distributed Systems Principles and Paradigms
Introduction
DS-wanted features of an OS
– Let us look into the architecture of a kernel
suitable for a distributed system.
– A key principle of DS is openness and with this
in mind let us examine the major kernel
architectures:
• Monolithic kernels
• Layered architecture-based kernels
• Micro-kernels
Operating System Architecture and Distributed Systems
Distributed Systems Principles and Paradigms
Introduction
DS-wanted features of an OS
– An open DS should make it possible to:
• Run only that system software on each computer that is
necessary for its particular role in the system architecture:
– Avoiding redundant modules on capability-limited devices.
– Optimizing the behavior of specific components in different scenarios
(server, client, ….)
• Allow the software (and the computer) implementing any
particular service to be changed independent of other facilities.
• Allow for alternatives of the same services to be provided, when
this is required to suit different users or applications.
• Introduce new services without harming the integrity of existing
ones.
– Which features are required by an OS to expose
these properties?
Operating System Architecture and Distributed Systems
Distributed Systems Principles and Paradigms
Introduction
A Guiding principle of OS design
Separation of fixed resource management “mechanisms“
from resource management “policies”, which vary from
application to application and service to service.
– For example, an ideal scheduling system would provide mechanisms
that enable a multimedia application such as videoconferencing to
meet its real-time demands while coexisting with a non-real-time
application such as web browsing.
– That is kernel would provide only the most basic mechanisms upon
which the general resource management tasks at a node are carried
out.
– Server modules would be dynamically loaded as required, to
implement the required RM policies for the currently running
applications.
Operating System Architecture and Distributed Systems
Distributed Systems Principles and Paradigms
OS / Kernel Models
Main Design Principles
– The two key examples of kernel design
approaches are:
• Monolithic
• Microkernel
– Key difference: what does belong to the kernel?
– Three main models:
• Monolithic OS
• Layered OS
• Microkernel-based OS
– The first two can be considered monolithic.
The chambers 20th century dictionary definition of monolithic is: a pillar,
column, of a single stone: anything that resembling a monolithic, massiveness.
Operating System Architecture and Distributed Systems
Distributed Systems Principles and Paradigms
OS / Kernel Models
Monolithic Kernel vs Micro-Kernel
S1
.......
S2
S3
S4
.......
Monolithic Kernel
Server:
Kernel code and data:
Dynamically loaded server program:
S1
S2
S3
S4
Micro-Kernel
.......
Operating System Architecture and Distributed Systems
Distributed Systems Principles and Paradigms
OS / Kernel Models
Operating System Models
– Serve as frameworks that unify capabilities, services and
tasks to be performed
– Three approaches to building OS....
• Monolithic OS
• Layered OS
• Microkernel based OS
– Client server OS
– Suitable for distributed systems
– Simplicity, flexibility and high performance are crucial
for OS.
Operating System Architecture and Distributed Systems
Distributed Systems Principles and Paradigms
OS / Kernel Models
Monolithic Kernels
Application
Programs
Application
Programs
User Mode
Kernel Mode
System Services
– Better application performance
– Hard to extend
– Example: MS-DOS
Hardware
Operating System Architecture and Distributed Systems
Distributed Systems Principles and Paradigms
OS / Kernel Models
Layered Operating Systems
Application
Programs
Application
Programs
User Mode
Kernel Mode
System Services
Memory & I/O Device Mgmt
Process Scheduler
Hardware
Operating System Architecture and Distributed Systems
Distributed Systems Principles and Paradigms
OS / Kernel Models
Traditional Operating Systems
Application
Programs
Application
Programs
User Mode
Kernel Mode
OS
OS Designer
Operating System Architecture and Distributed Systems
Distributed Systems Principles and Paradigms
Micro-Kernel Operating Systems
Observations
– Monolithic Operating Systems are:
• Massive: they perform all basic OS functions and
take up in the order of megabytes of code and data.
• Undifferentiated: they are coded in a non-modular
way (traditionally) although modern ones are much
more layered.
• Intractable: altering any individual software
component to adapt it to changing requirements is
difficult.
Operating System Architecture and Distributed Systems
Distributed Systems Principles and Paradigms
Micro-Kernel Operating Systems
Observations
– New trend in Operating System Design
Application
Programs
Servers
Application
Programs
User Mode
Kernel Mode
Microkernel
(very basic functions)
Hardware
Operating System Architecture and Distributed Systems
Distributed Systems Principles and Paradigms
Micro-Kernel Operating Systems
Micro-Kernel Operating Systems
– Compared to monolithic, microkernel design provides
only the most basic abstractions,
• principally address space, threads and local IPC.
– All other system services are provided by servers that are
dynamically loaded precisely those computers in the DS
that require them.
– Clients access these system services using the kernel’s
message based invocation mechanisms.
Operating System Architecture and Distributed Systems
Distributed Systems Principles and Paradigms
Micro-Kernel Operating Systems
Client Server Model
Client
Application
OS
Emulators
File
Server
Network
Server
Display
Server
User
Kernel
Microkernel
Send
Reply
–
–
–
–
Hardware
Tiny OS kernel providing basic primitive (process, memory, IPC)
Traditional services becomes subsystems
OS = Microkernel + User Subsystems
Examples: Mach, PARAS, and Chorus
Operating System Architecture and Distributed Systems
Distributed Systems Principles and Paradigms
Micro-Kernel Operating Systems
Architecture
– Micro-Kernels are a layer between H/W and system
systems. If performance is goal, rather than portability,
then middleware may use facilities of the kernel directly.
Middleware
Language
support
subsystem
Language
support
subsystem
OS emulation
subsystem
....
Microkernel
Hardware
– Micro-Kernels support middleware as subsystems.
Operating System Architecture and Distributed Systems
Distributed Systems Principles and Paradigms
Micro-Kernel Operating Systems
Examples of Micro-Kernels
– MACH, CMU
• It supports different OS emulators (Unix and OS/2).
• (Mach only) base for OS X
– PARAS, C-DAC
– Chorus
– QNX,
– (Windows NT)
• combination of layered and microkernel..
• .. but massive code.
Operating System Architecture and Distributed Systems
Distributed Systems Principles and Paradigms
Micro-Kernel Operating Systems
Comparison
– Micro-Kernel main advantages:
• Extensibility and its ability to enforce modularity
behind memory protection boundaries
• A relative small kernel is more likely to free of bugs
than one that is larger and complex.
– Monolithic OS main advantage:
• Relative efficiency with which operations can be
invoked is high because even invocation to a separate
user-level address space on the same node is more
costly.
Operating System Architecture and Distributed Systems
Distributed Systems Principles and Paradigms
Hybrid Approaches
Which is the trend today?
– Many modern OS follow hybrid approach in OS
structure. E.g., Windows NT.
– Pure microkernel OSs such as Chorus & Mach
have changed over a time to allow servers to be
loaded dynamically into the kernel address space
or into a user-level address space.
– Some OSs such as SPIN used event-based model
as a mechanism for interaction between modules
grafted into the kernel address space.
Operating System Architecture and Distributed Systems
Distributed Systems Principles and Paradigms
Summary
What did we learn?
– Operating system provides various types of
facilities to support middleware for distributed
system:
•
•
•
•
encapsulation,
protection,
concurrent access
management of node resources.
– New OS designs provide flexibility in terms of
separating mechanisms from policies.
Operating System Architecture and Distributed Systems
Distributed Systems Principles and Paradigms
Additional References
Tanenbaum, A.S, Modern Operating Systems,
2nd /3rd Editions, Prentice Hall,
ISBN 013-031-3580 / 0136-006-639.
Silbershatz, A., Galvin, P.B., Gagne, Modern
Operating Systems, 8th Editions, Wiley,
ISBN 0470-128-720.