Operating System Architecture and Distributed Systems Most concepts
Operating System Architecture and Distributed Systems Most concepts are drawn from Chapter 6 © Pearson Education Dr. Christian Vecchiola Postdoctoral Research Fellow csve@unimelb. edu. au Cloud Computing and Distributed Systems (CLOUDS) Lab Dept. of Computer Science and Software Engineering The University of Melbourne
Operating System Architecture and 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 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 Principles and Paradigms Introduction Ø A little bit of history… – Pre-OS software development (before 60 s) • 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 Principles and Paradigms Introduction Ø A little bit of history… – The OS era (60 s 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 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 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 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 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 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 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 20 th 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 Principles and Paradigms OS / Kernel Models Ø Monolithic Kernel vs Micro-Kernel S 1 . . . . S 2 S 3 S 4 . . . . Monolithic Kernel Server: Kernel code and data: Dynamically loaded server program: S 1 S 2 S 3 S 4 Micro-Kernel . . . .
Operating System Architecture and 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 Principles and Paradigms OS / Kernel Models Ø Monolithic Kernels Application Programs User Mode Kernel Mode System Services – Better application performance – Hard to extend – Example: MS-DOS Hardware
Operating System Architecture and Distributed Systems Principles and Paradigms OS / Kernel Models Ø Layered Operating Systems Application Programs System Services Memory & I/O Device Mgmt Process Scheduler Hardware User Mode Kernel Mode
Operating System Architecture and Distributed Systems Principles and Paradigms OS / Kernel Models Ø Traditional Operating Systems Application Programs User Mode Kernel Mode OS OS Designer
Operating System Architecture and 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 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 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 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 Principles and Paradigms Micro-Kernel Operating Systems Ø Architecture – Micro-Kernels are a layer between H/W and systems. If performance is goal, rather than portability, then middleware may use facilities of the kernel directly. Middleware Language support subsystem OS emulation subsystem . . Microkernel Hardware – Micro-Kernels support middleware as subsystems.
Operating System Architecture and 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 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 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 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 Principles and Paradigms Additional References Tanenbaum, A. S, Modern Operating Systems, 2 nd /3 rd Editions, Prentice Hall, ISBN 013 -031 -3580 / 0136 -006 -639. Silbershatz, A. , Galvin, P. B. , Gagne, Modern Operating Systems, 8 th Editions, Wiley, ISBN 0470 -128 -720.
- Slides: 26