dc-os arch

Embed Size (px)

Citation preview

  • 8/10/2019 dc-os arch

    1/14

    1

    Operating System Architecture andDistributed Systems

    Let us look into the architecture of akernel suitable for a distributed system.

    A key principle of DS is openness andwith this in mind let us examine themajor kernel architectures:

    Monolithic kernels

    Micro-kernels

  • 8/10/2019 dc-os arch

    2/14

    2

    Open DS and System Software

    A open DS should make it possible to: Run only that system software at each computer

    that is necessary for its particular role in the systemarchitecture. For example, system software needs ofPDA and dedicated server are different and loadingredundant modules wastes memory resources.

    Allow the software (and the computer) implementingany 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 usersor applications.

    Introduce new services without harming the integrityof existing ones.

  • 8/10/2019 dc-os arch

    3/14

    3

    Separating Mechanisms and Policiesin OS and DS

    A Guiding principle of OS design: The separation of fixed resource management mechanisms

    from resource management policies, which vary fromapplication to application and service to service.

    For example, an ideal scheduling system would providemechanisms that enable a multimedia application suchas videoconferencing to meet its real-time demandswhile coexisting with a non-real-time application suchas web browsing.

    That is kernel would provide only the most basic

    mechanisms upon which the general resourcemanagement tasks at a node are carried out.

    Server modules would be dynamically loaded asrequired, to implement the required RM policies for thecurrently running applications.

  • 8/10/2019 dc-os arch

    4/14

    4

    OS/Kernel Architecture

    The two key examples of kernel design approaches are: Monolithic Microkernel

    Basically these two designs differ primarily in thedecision as to what functionality belongs in the kernel

    and what is left to server processes that can bedynamically loaded to run on top of it.

    In Literature, we find predominantly 3 types of OS: Monolithic OS Layered OS Microkernel-based OS

    The first two may be put under the same category asmonolithic. The chambers 20thcentury dictionary definition of monolithic

    is: a pillar, column, of a single stone: anything that resembling

    a monolithic, massiveness.

  • 8/10/2019 dc-os arch

    5/14

    5

    Monolithic kernel and microkernel

    Monolithic Kernel Microkernel

    Serv er: Dy namically loaded server program:Kernel code and data:

    .......

    .......

    Key:

    S4

    S1 .......

    S1 S2 S3

    S2 S3 S4

  • 8/10/2019 dc-os arch

    6/14

    6

    Application

    Programs

    Application

    Programs

    System Services

    Hardware

    User Mode

    Kernel Mode

    Monolithic Operating System

    Better application Performance

    Difficult to extend Ex: MS-DOS

  • 8/10/2019 dc-os arch

    7/147

    Traditional OS

    OS Designer

    OS

    Hardware

    User Mode

    Kernel Mode

    Application

    Programs

    Application

    Programs

  • 8/10/2019 dc-os arch

    8/148

    Disadvantages of Monolithic OS

    It is massive:

    It performs all basic OS functions and takes up inthe order of megabytes of code and data

    It is undifferentiated: It is coded in a non-modular way (traditionally)

    although modern ones are much more layered.

    It is intractable:

    Altering any individual software component to adaptit to changing requirements is difficult.

  • 8/10/2019 dc-os arch

    9/149

    New trend in OS design: Separating

    mechanisms and policies

    User Mode

    Kernel Mode

    Hardware

    Microkernel

    (very basic functions)

    ServersApplicationPrograms

    Application

    Programs

  • 8/10/2019 dc-os arch

    10/1410

    Micro-kernel

    Compared to monolithic, microkernel designprovides only the most basic abstractions,

    principally address space, threads and local IPC.

    All other system services are provided byservers that are dynamically loaded precisely onthose computers in the DS that require them.

    Clients access these system services using thekernels message-based invocationmechanisms.

  • 8/10/2019 dc-os arch

    11/1411

    Microkernel/Client Server OS

    Tiny OS kernel providing basic primitive (process, memory, IPC)

    Traditional services becomes subsystems

    OS = Microkernel + User Subsystems

    Client

    Application

    OS

    Emulators

    File

    Server

    Network

    Server

    Display

    Server

    Microkernel

    Hardware

    User

    Kernel

    Send

    Reply

    Ex: Mach , PARAS, Cho rus , etc.

  • 8/10/2019 dc-os arch

    12/1412

    The role of the microkernel

    MK appears as a layer between H/W andsystem systems.

    Middleware

    Language

    support

    subsystem

    Language

    support

    subsystem

    OS emulation

    subsystem....

    Microkernel

    Hardware

    The microkernel supports middleware via subsystems

  • 8/10/2019 dc-os arch

    13/1413

    Few Popular Microkernel Systems

    MACH, CMUIt supports different OS emulators

    including Unix and OS/2.

    PARAS, C-DACChorus

    QNX,

    Windows NToriginal design.

  • 8/10/2019 dc-os arch

    14/14

    14

    Comparison: Monolithic andMicro-kernel OS Design

    The chief advantages of a MK-based OS:

    Extensibility and its ability to enforce modularitybehind memory protection boundaries

    A relative small kernel is more likely to be free ofbugs than one that is larger and complex.

    The advantage of a monolithic OS:

    Relative efficiency with which operations can be

    invoked is high because even invocation to aseparate user-level address space on the same nodeis more costly.