Presentation is loading. Please wait.

Presentation is loading. Please wait.

Processes. Processes and threads Process forms a building block in distributed systems Processes granularity is not sufficient for distributed systems.

Similar presentations


Presentation on theme: "Processes. Processes and threads Process forms a building block in distributed systems Processes granularity is not sufficient for distributed systems."— Presentation transcript:

1 Processes

2 Processes 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

3 Thread Usage in Nondistributed Systems large applications : many cooperating programs (processes) via InterProcess Communication mechanisms (Unix) IPC needs extensive context switching Changes to MMU, TLB … Instead of processes : threads

4 Thread Implementation user level : switching in a few instructions, no change in memory maps etc. but a blocking system call blocks the entire process O.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 Combining kernel-level lightweight processes and user-level threads. Lightweight processes LWP Manipulation of threads at user level A blocking call doesn’t suspend the entire process Applications don’t need to know LWPs Different LWPs on different CPUs

5 Multithreaded Servers A multithreaded server (file server) organized in a dispatcher/worker model.

6 Multithreaded Servers Three ways to construct a server: The multi- and single-threaded model are “sequential” and synchronous The finite-state machine model is asynchronous and simulates the multi- threaded model ModelCharacteristics ThreadsParallelism, blocking system calls Single-threaded processNo parallelism, blocking system calls Finite-state machineParallelism, nonblocking system calls

7 Client-Side Software for Distribution Transparency Access, location, migration, replication, failure transparency: cooperation with client-side software A possible approach to transparent replication of a remote object using a client-side solution.

8 Servers: 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 informations on clients state (file server) Where clients contact a server? Preassigned endpoint (port) No preassigned endpoint a special daemon running on the server

9 Servers: General Design Issues a)Client-to-server binding using a daemon as in DCE b)Client-to-server binding using a superserver as in UNIX (inetd) 3.7

10 Reasons for Migrating Code Improving performances ( optimizing CPU load, minimizing communications…) 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!)

11 Models for Code Migration Alternatives for code migration. Code segment, program starts from initial state Code and execution segment Migrated prog. starts from where it letf off

12 Migration and Local Resources Actions to be taken with respect to the references to local resources when migrating code to another machine. UnattachedFastenedFixed By identifier By value By type MV (or GR) CP ( or MV, GR) RB (or GR, CP) GR (or MV) GR (or CP) RB (or GR, CP) GR RB (or GR) 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

13 Migration in Heterogeneous Systems The principle of maintaining a migration stack to support migration of an execution segment in a heterogeneous environment 3-15

14 Software Agents in Distributed Systems autonomous units capable of performing tasks in collaboration with other agents Collaborative agent is part of a multiagent system Mobile agent can move between different machine Interface agent assists user to interact with an application Information agent manages informations from many different sources Property Common to all agents? Description AutonomousYesCan act on its own ReactiveYesResponds timely to changes in its environment ProactiveYesInitiates actions that affects its environment CommunicativeYes Can exchange information with users and other agents ContinuousNoHas a relatively long lifespan MobileNoCan migrate from one site to another AdaptiveNoCapable of learning

15 Agent Technology The general model of an agent platform (from Foundation for Intelligent Physical Agents (FIPA)). Creating, deleting, Looking up Naming service Other agents in platform Agent Communication channel

16 Agent 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 [fipa98-acl], giving the purpose of a message, along with the description of the actual message content. Message purposeDescriptionMessage Content INFORMInform that a given proposition is trueProposition QUERY-IFQuery whether a given proposition is trueProposition QUERY-REFQuery for a give objectExpression CFPAsk for a proposalProposal specifics PROPOSEProvide a proposalProposal ACCEPT-PROPOSALTell that a given proposal is acceptedProposal ID REJECT-PROPOSALTell that a given proposal is rejectedProposal ID REQUESTRequest that an action be performedAction specification SUBSCRIBESubscribe to an information source Reference to source

17 Agent Communication Languages (example) A simple example of a FIPA ACL message sent between two agents using Prolog to express genealogy information. FieldValue PurposeINFORM Sendermax@http://fanclub-beatrix.royalty-spotters.nl:7239 Receiverelke@iiop://royalty-watcher.uk:5623 LanguageProlog Ontologygenealogy Contentfemale(beatrix),parent(beatrix,juliana,bernhard)


Download ppt "Processes. Processes and threads Process forms a building block in distributed systems Processes granularity is not sufficient for distributed systems."

Similar presentations


Ads by Google