Title: Processes
1Processes
2Processes and threads
- Process forms a building block in distributed
systems - Processes granularity is not sufficient for
distributed systems - Multiple threads make easier to build distributed
applications
3Thread Usage in Nondistributed Systemslarge
applications many cooperating programs
(processes) via Inter-Process Communication
mechanisms (Unix)
- IPC needs extensive context switching
Changes to MMU, TLB
Changes to MMU, TLB
process B
Instead of processes threads
4Thread Implementationuser level library
switching in a few instructions, no change in
memory maps etc. but a blocking system call
blocks the entire processO.S. kernel level no
problem with blocking system call but every
thread operation has to be carried out by
the kernel, so switching contest similar to
process
LightWeight Processes (LWP)
- Manipulation of threads at user level
- A blocking call doesnt suspend the entire
process - Applications dont need to know LWPs
- Different LWPs on different CPUs
- Combining kernel-level lightweight processes and
user-level threads.
5Multithreaded Servers
The true benefit from multithreading in DS is
having multithreaded servers
- A multithreaded server (i.e. file server)
organized in a dispatcher/worker model.
6Multithreaded Servers
- Three ways to construct a server
- The multi- and single-threaded models are
sequential and synchronous - The finite-state machine model is asynchronous
and simulates the multi-threaded - model instead of blocking, it records the
request and gets the next message. Not a - sequential process, hard to program.
7Client-Side Software for Distribution
TransparencyClient software is a lot more than
user interfacesAccess, location, migration,
replication, failure transparencycooperation
with client-side software
- A possible approach to transparent replication of
a remote object using a client-side solution.
8Servers General Design Issues
- Iterative server the server itself handles the
request - Concurrent server the server passes the request
to a separate thread or process - Stateless server no information on clients
state (Web) - Stateful server maintains information on
clients state (file server AFS) - Where clients contact a server?
- Pre-assigned endpoint (port)
- No pre-assigned endpoint a special daemon
running on the server
9Servers General Design Issues
3.7
- Client-to-server binding using a daemon as in DCE
- Client-to-server binding using a superserver as
in UNIX (inetd)
10Object Server
- An object server doesnt provide a
- real specific service
- Services are provided by objects
- One can add or modify services
- adding or modifying objects
- Different invocation approach can be used
- to invoke an object in an object server
- (activation policy)
- An object adapter (or o. wrapper) is a
- mechanism to group objects per policy
- An obj. adapter controls one or more objs.
- If a server supports objs with different
- activation policy, several adapters reside on
- the same server
- Organization of an object server supporting
different activation policies.
11Reasons for Migrating CodeImproving performances
( optimizing CPU load, minimizing communication)
and flexibility
- The principle of dynamically configuring a client
to communicate to a server. The client first
fetches the necessary software, and then invokes
the server (security!)
12Process segmentation
- Code segment set of instruction of the program
- Resource segment references to external
resources needed to the process - Execution segment current execution state of the
process
Mobility
- Weak mobility only code segment is moved
- Strong mobility execution segment too is
moved
Where migration starts ?
- Sender-initiated migration initiate at
the machine where the - code resides
- Receiver initiated migration starts by
target machine initiative
13Models for Code Migration
Code segment, program starts from initial state
Code and execution segment Migrated prog. starts
from where it letf off
- Alternatives for code migration.
14Migration and Local Resources
What about resource segment? To migrate code we
need to migrate local references to the new
machine Different types of process-to-resource
and resource-to-machine bindings exist.
Resource-to-machine binding
Process-to-resource binding
MV Move the resource GR Establish a
global reference CP Copy the resource value
RB Rebind process to local resource
- Actions to be taken with respect to the
references to local resources when migrating code
to another machine.
15Migration in Heterogeneous Systems
3-15
- The principle of maintaining a migration stack to
support migration of an execution segment in a
heterogeneous environment (compiler and runtime
system dependent) - Migration can take place only when a subroutine
is called. A migration stack is maintained in a
machine independent way. (Compiler and runtime
system dependent)
16Software Agents in Distributed Systemsautonomous
units capable of performing tasks in
collaboration with other agents
- Collaborative agent is part of a multi-agent
system - Mobile agent can move between different machine
- Interface agent assists user to interact with an
application (with learning capability) - Information agent manages information from many
different sources
17Agent Technology
Agent Communication channel
Creating, deleting, Looking up endpoint Naming
service
Other agents in platform services
- The general model of an agent platform (from
Foundation for Intelligent Physical Agents
(FIPA)) that could be incorporate in middleware. - An agent platform provides basic services
(creating, deleting, locating ...agents) for a
multi-agent system.
18Agent Communication Languages ACL is an
application level protocol providing an high
level communication protocol between a collection
of agents
- Examples of different message types in the FIPA
ACL, giving the purpose of a message, along with
the description of the actual message content.
19Agent Communication Languages (example)
- A simple example of a FIPA ACL message sent
between two agents using Prolog to express
genealogy information. - The message is specific to the communicating
agents no format or language is prescribed for
the content of the message