SKR 5302: Advanced Distributed Computing

5. Chapter 5: Distributed Operating System

5.2. The operating system layer

  • Middleware runs on a variety of OS – hardware combinations (platforms) at the nodes of a distributed system. 
  • OS running at a node provides 
    • abstraction of local hardware resources for processing, storage and communication.
  • Middleware utilizes a combination of these local resources to implement its mechanisms for remote invocations between objects or processes at the nodes. 
  • Kernel and server processes are the components that manage resources and present clients with an interface to the resources. 
    • Encapsulation
      • Provide a useful service interface to their resources – a set of operations that meet their clients’ needs. 
      • Details such as management of memory and devices used to implement the resources should be hidden from clients.
    •  Protection
      • Resources require protection from illegitimate accesses 
    • Concurrent processing
      • Client may share resources and access them concurrently.
      • Resource managers are responsible for achieving concurrency transparency. 
  • Client access resources by making remote method invocations to a server object, or system calls to a kernel. 
  • A combination of libraries, kernels and servers may be called upon to perform the following invocation-related tasks:
    • Communication
      • Operation parameters and results have to be passes to and from resource managers, over a network or within a computer. 
    • Scheduling
      • When an operation is invoked, its processing must be scheduled within the kernel or server. 

Figure : System layers


Figure : Core OS functionality

Core OS components 

  • Process manager
    • Creation of and operation upon processes.
    • Process is a unit of resource management, including an address space and one or more threads. 
  • Thread manager
    • Thread creation, synchronization and scheduling.
  • Communication manager
    • Communication between threads attached to different processes on the same computer. 
    • Some kernels also support communication between threads in remote processes. 
  • Memory manager
    • Management of physical and virtual memory. 
  • Supervisor
    • Dispatching of interrupts, and other exceptions
    • control of memory management unit and hardware caches.
  • OS software is designed to be portable between computer architectures where possible.
  • Majority of OS is coded in a high-level language such as C, C++ or Modula-3.
  • Its facilities are layered so that machine-dependent components are reduced to a minimal bottom layer. 
  • Some kernels can executed on shared-memory multiprocessors.
    • Several processors that share one or more modules of memory (RAM). 
    • Processors may also have their own private memory.
    • Simplest and least expensive way to construct is by incorporating a circuit board holding a few (2 – 8) processors in a personal computer.