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:
- Operation parameters and results have to be passes to and from resource managers, over a network or within a computer.
- 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.