LU4 - Distributed Operating System
LU4 - Distributed Operating System
(DOS)
1
Topic
• Introduction
• Preliminary/Recap on important information
– H/w concepts
– S/w concepts
– Middleware
• The operating system layer
• Processes and threads
• Communication and invocation
• Operating system architecture
Introduction
• Before we even start talking about
Distributed OS – see all related concepts
• To understand better
3
Hardware Concepts
1.6
1.8
a) A crossbar switch
b) An omega switching network
Homogeneous Multicomputer
Systems
1-9
a) Grid
b) Hypercube
Software Concepts
System Description Main Goal
1.11
1.14
Reliable comm.
Synchronization point Send buffer
guaranteed?
a) Pages of address
space distributed
among four
machines
b) Situation after
CPU 1 references
page 10
c) Situation if page
10 is read only
and replication is
used
Distributed Shared Memory Systems (2)
1.18
Network Operating System (1)
• General structure of a network operating system.
1-19
Network Operating System (2)
• Two clients and a server in a network operating system.
1-20
Network Operating System (3)
• Different clients may mount the servers in different places.
1.21
Middleware
Middleware
• Neither DOS or NOS qualifies as Distributed
System.
• Solution:
– Additional layer - middleware
Positioning Middleware
• General structure of a distributed system as middleware.
Middleware and Openness
• In an open middleware-based distributed system, the
protocols used by each middleware layer should be
the same, as well as the interfaces they offer to
applications.
Comparison between Systems
Distributed OS
Middleware-
Item Network OS
based OS
Multiproc. Multicomp.
Number of copies of OS 1 N N N
Shared
Basis for communication Messages Files Model specific
memory
Global, Global,
Resource management Per node Per node
central distributed
Applications, services
Middleware
Node 1 Node 2
Middleware and the Operating
System
• Middleware implements abstractions that support
network-wide programming. Examples:
• RPC and RMI (Sun RPC, Corba, Java RMI)
• event distribution and filtering (Corba Event Notification, Elvin)
• resource discovery for mobile and ubiquitous computing
• support for multimedia streaming
Process manager
Communication
Communication between threads
Thread manager attached to different
creation, processes on the
synchronizat same computer
ion and
scheduling. Thread manager Memory manager Management
of physical
Supervisor and virtual
memory
Dispatching of interrupts, system call traps and
other exceptions; control of memory management
unit and hardware
27 caches; processor and floating
point unit register manipulations
Process address space
N
2
• Regions can be shared
Auxiliary – kernel code
regions – libraries
– shared data & communication
– copy-on-write
• Files can be mapped
– Mach, some versions of UNIX
Stack
• UNIX fork() is expensive
Heap – must copy process's address
space
Text
0
Creation of a new process
Copy-on-write – a convenient optimization
RB copied
from RA
RA RB
Kernel
Shared
frame
A's page B's page
table table
a) Before
29 write b) After write
*
Threads concept and
implementation
Process
Thread activations
Activation stacks
(parameters, local variables)
Thread 1
generates
results
Requests
N threads
Client Server
object.wait() and object.notify() are very similar to the semaphore operations. E.g. a worker
thread in Figure 6.5 would use queue.wait() to wait for incoming requests.
synchronized methods (and code blocks) implement the monitor abstraction. The operations
within a synchronized method are performed atomically with respect to other synchronized
methods of the same object. synchronized should be used for any methods that update the
state of an object in a threaded35environment.
*
Java thread synchronization
calls
Input-output
Receipt &
queuing
Requests
N threads
Server
36
Threads implementation
• Threads can be implemented:
– in the OS kernel (Win NT, Solaris, Mach)
– at user level (e.g. by a thread library: C threads, pthreads),
or in the language (Ada, Java).
• lightweight - no system calls
• modifiable scheduler
• low cost enables more threads to be employed
• not pre-emptive
• can exploit multiple processors
– page fault blocks all threads
• Java can be implemented either way
– hybrid approaches can gain some advantages of both
• user-level hints to kernel scheduler
• heirarchic threads (Solaris)
• event-based (SPIN, FastThreads)
Support for communication and
invocation
• The performance of RPC and RMI mechanisms is critical
for effective distributed systems.
– Typical times for 'null procedure call':
– Local procedure call < 1 microseconds
10,000 times slower!
– Remote procedure call ~ 10 milliseconds
– 'network time' (involving about 100 bytes transferred, at 100
megabits/sec.) accounts for only .01 millisecond; the remaining delays
must be in OS and middleware - latency, not communication time.
• Factors affecting RPC/RMI performance
– marshalling/unmarshalling + operation despatch at the server
– data copying:- application -> kernel space -> communication buffers
– thread scheduling and context switching:- including kernel entry
– protocol processing:- for each protocol layer
– network access delays:- connection setup, network latency
Implementation of invocation
mechanisms
• Most invocation middleware (Corba, Java RMI, HTTP) is
implemented over TCP
– For universal availability, unlimited message size and reliable transfer
– Sun RPC (used in NFS) is implemented over both UDP and TCP and
generally works faster over UDP
• Research-based systems have implemented much more
efficient invocation protocols, E.g.
– Firefly RPC (see www.cdk3.net/oss)
– Amoeba's doOperation, getRequest, sendReply primitives
(www.cdk3.net/oss)
– LRPC [Bershad et. al. 1990], described on pp. 237-9)..
• Concurrent and asynchronous invocations
– middleware or application doesn't block waiting for reply to each
invocation
Invocations between address
spaces
(a) System call Thread Control transfer via
trap instruction
Thread 1 Thread 2
User 1 User 2
Kernel 1 Kernel 2
Bershad's LRPC
• Uses shared memory for interprocess communication
– while maintaining protection of the two processes
– arguments copied only once (versus four times for convenitional RPC)
• Client threads can execute server code
– via protected entry points only (uses capabilities)
• Up to 3 x faster for local invocations
42
A lightweight remote procedure
call
Client Server
A stack
A
Kernel
2. Trap to Kernel 3. Upcall 5. Return (trap)
Operating System architecture
Monolithic kernel and microkernel
S4 .......
S1 S2 S3 S4 .......
.......
S1 S2 S3 Kernel Kernel
Middleware
Language Language OS emulation
support support subsystem
subsystem subsystem ....
Microkernel
Hardware