SlideShare a Scribd company logo
Processes
Chapter 3
Thread Usage in Nondistributed Systems
Context switching as the result of IPC
Thread Implementation
Combining kernel-level lightweight processes and user-level threads.
Multithreaded Servers (1)
A multithreaded server organized in a dispatcher/worker model.
Multithreaded Servers (2)
Three ways to construct a server.
Model Characteristics
Threads Parallelism, blocking system calls
Single-threaded process No parallelism, blocking system calls
Finite-state machine Parallelism, nonblocking system calls
The X-Window System
The basic organization of the X Window System
Client-Side Software for Distribution Transparency
A possible approach to transparent replication of a remote
object using a client-side solution.
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
3.7
Object Adapter (1)
Organization of an
object server
supporting
different
activation
policies.
Object Adapter (2)
The header.h file used by the adapter and any
program that calls an adapter.
/* Definitions needed by caller of adapter and adapter */
#define TRUE
#define MAX_DATA 65536
/* Definition of general message format */
struct message {
long source /* senders identity */
long object_id; /* identifier for the requested object */
long method_id; /* identifier for the requested method */
unsigned size; /* total bytes in list of parameters */
char **data; /* parameters as sequence of bytes */
};
/* General definition of operation to be called at skeleton of object */
typedef void (*METHOD_CALL)(unsigned, char* unsigned*, char**);
long register_object (METHOD_CALL call); /* register an object */
void unrigester_object (long object)id); /* unrigester an object */
void invoke_adapter (message *request); /* call the adapter */
Object Adapter (3)
The thread.h file used by the adapter for using threads.
typedef struct thread THREAD; /* hidden definition of a thread */
thread *CREATE_THREAD (void (*body)(long tid), long thread_id);
/* Create a thread by giving a pointer to a function that defines the actual */
/* behavior of the thread, along with a thread identifier */
void get_msg (unsigned *size, char **data);
void put_msg(THREAD *receiver, unsigned size, char **data);
/* Calling get_msg blocks the thread until of a message has been put into its */
/* associated buffer. Putting a message in a thread's buffer is a nonblocking */
/* operation. */
Object Adapter (4)
The main part of an
adapter that implements
a thread-per-object
policy.
Reasons for Migrating Code
The principle of dynamically configuring a client to communicate to a server. The
client first fetches the necessary software, and then invokes the server.
Models for Code Migration
Alternatives for code migration.
Migration and Local Resources
Actions to be taken with respect to the references to local
resources when migrating code to another machine.
Unattached Fastened Fixed
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
GR
RB (or GR)
Resource-to machine binding
Process-to-
resource
binding
Migration in Heterogeneous Systems
The principle of maintaining a migration stack to support migration of
an execution segment in a heterogeneous environment
3-15
Overview of Code Migration in D'Agents (1)
A simple example of a Tel agent in D'Agents submitting a
script to a remote machine (adapted from [gray.r95])
proc factorial n {
if ($n ≤ 1) { return 1; } # fac(1) = 1
expr $n * [ factorial [expr $n – 1] ] # fac(n) = n * fac(n – 1)
}
set number … # tells which factorial to compute
set machine … # identify the target machine
agent_submit $machine –procs factorial –vars number –script {factorial $number }
agent_receive … # receive the results (left unspecified for simplicity)
Overview of Code Migration in D'Agents (2)
An example of a Tel agent in D'Agents migrating to different machines
where it executes the UNIX who command (adapted from [gray.r95])
all_users $machines
proc all_users machines {
set list "" # Create an initially empty list
foreach m $machines { # Consider all hosts in the set of given machines
agent_jump $m # Jump to each host
set users [exec who] # Execute the who command
append list $users # Append the results to the list
}
return $list # Return the complete list when done
}
set machines … # Initialize the set of machines to jump to
set this_machine # Set to the host that starts the agent
# Create a migrating agent by submitting the script to this machine, from where
# it will jump to all the others in $machines.
agent_submit $this_machine –procs all_users
-vars machines
-script { all_users $machines }
agent_receive … #receive the results (left unspecified for simplicity)
Implementation Issues (1)
The architecture of the D'Agents system.
Implementation Issues (2)
The parts comprising the state of an agent in D'Agents.
Status Description
Global interpreter variables Variables needed by the interpreter of an agent
Global system variables Return codes, error codes, error strings, etc.
Global program variables User-defined global variables in a program
Procedure definitions Definitions of scripts to be executed by an agent
Stack of commands Stack of commands currently being executed
Stack of call frames
Stack of activation records, one for each running
command
Software Agents in Distributed Systems
Some important properties by which different types of agents
can be distinguished.
Property
Common to
all agents?
Description
Autonomous Yes Can act on its own
Reactive Yes Responds timely to changes in its environment
Proactive Yes Initiates actions that affects its environment
Communicative Yes
Can exchange information with users and other
agents
Continuous No Has a relatively long lifespan
Mobile No Can migrate from one site to another
Adaptive No Capable of learning
Agent Technology
The general model of an agent platform (adapted from [fipa98-mgt]).
Agent Communication Languages (1)
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 purpose Description Message Content
INFORM Inform that a given proposition is true Proposition
QUERY-IF Query whether a given proposition is true Proposition
QUERY-REF Query for a give object Expression
CFP Ask for a proposal Proposal specifics
PROPOSE Provide a proposal Proposal
ACCEPT-PROPOSAL Tell that a given proposal is accepted Proposal ID
REJECT-PROPOSAL Tell that a given proposal is rejected Proposal ID
REQUEST Request that an action be performed Action specification
SUBSCRIBE Subscribe to an information source
Reference to
source
Agent Communication Languages (2)
A simple example of a FIPA ACL message sent between two agents
using Prolog to express genealogy information.
Field Value
Purpose INFORM
Sender max@http://fanclub-beatrix.royalty-spotters.nl:7239
Receiver elke@iiop://royalty-watcher.uk:5623
Language Prolog
Ontology genealogy
Content female(beatrix),parent(beatrix,juliana,bernhard)

More Related Content

PPT
Distributed System by Pratik Tambekar
PPT
Distributed System by Pratik Tambekar
PPT
Distributed System by Pratik Tambekar
PPT
Distributed System by Pratik Tambekar
PPT
Distributed System by Pratik Tambekar
PPT
Distributed System by Pratik Tambekar
PPT
Distributed System by Pratik Tambekar
PPT
Group Communication (Distributed computing)
Distributed System by Pratik Tambekar
Distributed System by Pratik Tambekar
Distributed System by Pratik Tambekar
Distributed System by Pratik Tambekar
Distributed System by Pratik Tambekar
Distributed System by Pratik Tambekar
Distributed System by Pratik Tambekar
Group Communication (Distributed computing)

What's hot (19)

PDF
CS6601 DISTRIBUTED SYSTEMS
PPT
Chapter 4 a interprocess communication
PPT
Ipc in linux
PPT
Chapter 6 os
PPT
IPC mechanisms in windows
PPT
Inter-Process Communication (IPC) techniques on Mac OS X
PPT
A Soap Performance Comparison Of Different WSRF Implementations
PPSX
Data Replication in Distributed System
PPT
PDF
4th European Lisp Symposium: Jobim: an Actors Library for the Clojure Program...
PDF
PPT
Inter process communication
PPT
Ipc ppt
PPT
Chapter 11
PDF
Inter process communication
PPT
Interprocess communication (IPC) IN O.S
PPTX
Message Passing Systems
PPTX
PDF
TIPC Overview
CS6601 DISTRIBUTED SYSTEMS
Chapter 4 a interprocess communication
Ipc in linux
Chapter 6 os
IPC mechanisms in windows
Inter-Process Communication (IPC) techniques on Mac OS X
A Soap Performance Comparison Of Different WSRF Implementations
Data Replication in Distributed System
4th European Lisp Symposium: Jobim: an Actors Library for the Clojure Program...
Inter process communication
Ipc ppt
Chapter 11
Inter process communication
Interprocess communication (IPC) IN O.S
Message Passing Systems
TIPC Overview
Ad

Similar to Distributed System by Pratik Tambekar (20)

PPT
Chapter 3-Processes.ppt
PPTX
Chap-3- Process.pptx distributive system
PPTX
distributed-systemsfghjjjijoijioj-chap3.pptx
PDF
DISTRIBUTED SYSTEM CHAPTER THREE UP TO FIVE.pdf
PPT
4.Process.ppt
PPT
Threads Advance in System Administration with Linux
PDF
Concurrent and Distributed Applications with Akka, Java and Scala
PPT
DISTRIBUTED SYSTEMS lecture notes 25 .ppt
PDF
Lec+3-Introduction-to-Distributed-Systems.pdf
PPT
chapter distributed System chapter 3 3.ppt
PPT
Chapter 3-Process in distributed system.ppt
PDF
master_seminar
PPTX
Chapter 3-Processes2.pptx
PPT
Processes and Threads in Windows Vista
PDF
Cs556 section2
PDF
Implementation of Agent Based Dynamic Distributed Service
PDF
User level view of os
PDF
threads (1).pdfmjlkjfwjgliwiufuaiusyroayr
PDF
Unit 4
PDF
Unit 2 part 2(Process)
Chapter 3-Processes.ppt
Chap-3- Process.pptx distributive system
distributed-systemsfghjjjijoijioj-chap3.pptx
DISTRIBUTED SYSTEM CHAPTER THREE UP TO FIVE.pdf
4.Process.ppt
Threads Advance in System Administration with Linux
Concurrent and Distributed Applications with Akka, Java and Scala
DISTRIBUTED SYSTEMS lecture notes 25 .ppt
Lec+3-Introduction-to-Distributed-Systems.pdf
chapter distributed System chapter 3 3.ppt
Chapter 3-Process in distributed system.ppt
master_seminar
Chapter 3-Processes2.pptx
Processes and Threads in Windows Vista
Cs556 section2
Implementation of Agent Based Dynamic Distributed Service
User level view of os
threads (1).pdfmjlkjfwjgliwiufuaiusyroayr
Unit 4
Unit 2 part 2(Process)
Ad

More from Pratik Tambekar (10)

PPTX
ASP DOT NET
PPT
Distributed System by Pratik Tambekar
PPT
Distributed System by Pratik Tambekar
PPT
Distributed System by Pratik Tambekar
PPT
Distributed System by Pratik Tambekar
PPT
Data Mining Concepts and Techniques
PPT
What Is DATA MINING(INTRODUCTION)
PPT
Distributed Transaction
PPT
World Wide Web(WWW)
PPTX
How To Add System Call In Ubuntu OS
ASP DOT NET
Distributed System by Pratik Tambekar
Distributed System by Pratik Tambekar
Distributed System by Pratik Tambekar
Distributed System by Pratik Tambekar
Data Mining Concepts and Techniques
What Is DATA MINING(INTRODUCTION)
Distributed Transaction
World Wide Web(WWW)
How To Add System Call In Ubuntu OS

Recently uploaded (20)

DOCX
ASol_English-Language-Literature-Set-1-27-02-2023-converted.docx
PPTX
Engineering Ethics, Safety and Environment [Autosaved] (1).pptx
PDF
Evaluating the Democratization of the Turkish Armed Forces from a Normative P...
PDF
composite construction of structures.pdf
PDF
Well-logging-methods_new................
PDF
Digital Logic Computer Design lecture notes
PDF
Mohammad Mahdi Farshadian CV - Prospective PhD Student 2026
DOCX
573137875-Attendance-Management-System-original
PPTX
bas. eng. economics group 4 presentation 1.pptx
PPTX
OOP with Java - Java Introduction (Basics)
PDF
PRIZ Academy - 9 Windows Thinking Where to Invest Today to Win Tomorrow.pdf
PDF
Model Code of Practice - Construction Work - 21102022 .pdf
PPTX
Foundation to blockchain - A guide to Blockchain Tech
PPTX
KTU 2019 -S7-MCN 401 MODULE 2-VINAY.pptx
PPTX
CYBER-CRIMES AND SECURITY A guide to understanding
PPTX
web development for engineering and engineering
PPTX
MCN 401 KTU-2019-PPE KITS-MODULE 2.pptx
PDF
The CXO Playbook 2025 – Future-Ready Strategies for C-Suite Leaders Cerebrai...
PPTX
UNIT 4 Total Quality Management .pptx
PDF
Structs to JSON How Go Powers REST APIs.pdf
ASol_English-Language-Literature-Set-1-27-02-2023-converted.docx
Engineering Ethics, Safety and Environment [Autosaved] (1).pptx
Evaluating the Democratization of the Turkish Armed Forces from a Normative P...
composite construction of structures.pdf
Well-logging-methods_new................
Digital Logic Computer Design lecture notes
Mohammad Mahdi Farshadian CV - Prospective PhD Student 2026
573137875-Attendance-Management-System-original
bas. eng. economics group 4 presentation 1.pptx
OOP with Java - Java Introduction (Basics)
PRIZ Academy - 9 Windows Thinking Where to Invest Today to Win Tomorrow.pdf
Model Code of Practice - Construction Work - 21102022 .pdf
Foundation to blockchain - A guide to Blockchain Tech
KTU 2019 -S7-MCN 401 MODULE 2-VINAY.pptx
CYBER-CRIMES AND SECURITY A guide to understanding
web development for engineering and engineering
MCN 401 KTU-2019-PPE KITS-MODULE 2.pptx
The CXO Playbook 2025 – Future-Ready Strategies for C-Suite Leaders Cerebrai...
UNIT 4 Total Quality Management .pptx
Structs to JSON How Go Powers REST APIs.pdf

Distributed System by Pratik Tambekar

  • 2. Thread Usage in Nondistributed Systems Context switching as the result of IPC
  • 3. Thread Implementation Combining kernel-level lightweight processes and user-level threads.
  • 4. Multithreaded Servers (1) A multithreaded server organized in a dispatcher/worker model.
  • 5. Multithreaded Servers (2) Three ways to construct a server. Model Characteristics Threads Parallelism, blocking system calls Single-threaded process No parallelism, blocking system calls Finite-state machine Parallelism, nonblocking system calls
  • 6. The X-Window System The basic organization of the X Window System
  • 7. Client-Side Software for Distribution Transparency A possible approach to transparent replication of a remote object using a client-side solution.
  • 8. 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 3.7
  • 9. Object Adapter (1) Organization of an object server supporting different activation policies.
  • 10. Object Adapter (2) The header.h file used by the adapter and any program that calls an adapter. /* Definitions needed by caller of adapter and adapter */ #define TRUE #define MAX_DATA 65536 /* Definition of general message format */ struct message { long source /* senders identity */ long object_id; /* identifier for the requested object */ long method_id; /* identifier for the requested method */ unsigned size; /* total bytes in list of parameters */ char **data; /* parameters as sequence of bytes */ }; /* General definition of operation to be called at skeleton of object */ typedef void (*METHOD_CALL)(unsigned, char* unsigned*, char**); long register_object (METHOD_CALL call); /* register an object */ void unrigester_object (long object)id); /* unrigester an object */ void invoke_adapter (message *request); /* call the adapter */
  • 11. Object Adapter (3) The thread.h file used by the adapter for using threads. typedef struct thread THREAD; /* hidden definition of a thread */ thread *CREATE_THREAD (void (*body)(long tid), long thread_id); /* Create a thread by giving a pointer to a function that defines the actual */ /* behavior of the thread, along with a thread identifier */ void get_msg (unsigned *size, char **data); void put_msg(THREAD *receiver, unsigned size, char **data); /* Calling get_msg blocks the thread until of a message has been put into its */ /* associated buffer. Putting a message in a thread's buffer is a nonblocking */ /* operation. */
  • 12. Object Adapter (4) The main part of an adapter that implements a thread-per-object policy.
  • 13. Reasons for Migrating Code The principle of dynamically configuring a client to communicate to a server. The client first fetches the necessary software, and then invokes the server.
  • 14. Models for Code Migration Alternatives for code migration.
  • 15. Migration and Local Resources Actions to be taken with respect to the references to local resources when migrating code to another machine. Unattached Fastened Fixed 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 GR RB (or GR) Resource-to machine binding Process-to- resource binding
  • 16. Migration in Heterogeneous Systems The principle of maintaining a migration stack to support migration of an execution segment in a heterogeneous environment 3-15
  • 17. Overview of Code Migration in D'Agents (1) A simple example of a Tel agent in D'Agents submitting a script to a remote machine (adapted from [gray.r95]) proc factorial n { if ($n ≤ 1) { return 1; } # fac(1) = 1 expr $n * [ factorial [expr $n – 1] ] # fac(n) = n * fac(n – 1) } set number … # tells which factorial to compute set machine … # identify the target machine agent_submit $machine –procs factorial –vars number –script {factorial $number } agent_receive … # receive the results (left unspecified for simplicity)
  • 18. Overview of Code Migration in D'Agents (2) An example of a Tel agent in D'Agents migrating to different machines where it executes the UNIX who command (adapted from [gray.r95]) all_users $machines proc all_users machines { set list "" # Create an initially empty list foreach m $machines { # Consider all hosts in the set of given machines agent_jump $m # Jump to each host set users [exec who] # Execute the who command append list $users # Append the results to the list } return $list # Return the complete list when done } set machines … # Initialize the set of machines to jump to set this_machine # Set to the host that starts the agent # Create a migrating agent by submitting the script to this machine, from where # it will jump to all the others in $machines. agent_submit $this_machine –procs all_users -vars machines -script { all_users $machines } agent_receive … #receive the results (left unspecified for simplicity)
  • 19. Implementation Issues (1) The architecture of the D'Agents system.
  • 20. Implementation Issues (2) The parts comprising the state of an agent in D'Agents. Status Description Global interpreter variables Variables needed by the interpreter of an agent Global system variables Return codes, error codes, error strings, etc. Global program variables User-defined global variables in a program Procedure definitions Definitions of scripts to be executed by an agent Stack of commands Stack of commands currently being executed Stack of call frames Stack of activation records, one for each running command
  • 21. Software Agents in Distributed Systems Some important properties by which different types of agents can be distinguished. Property Common to all agents? Description Autonomous Yes Can act on its own Reactive Yes Responds timely to changes in its environment Proactive Yes Initiates actions that affects its environment Communicative Yes Can exchange information with users and other agents Continuous No Has a relatively long lifespan Mobile No Can migrate from one site to another Adaptive No Capable of learning
  • 22. Agent Technology The general model of an agent platform (adapted from [fipa98-mgt]).
  • 23. Agent Communication Languages (1) 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 purpose Description Message Content INFORM Inform that a given proposition is true Proposition QUERY-IF Query whether a given proposition is true Proposition QUERY-REF Query for a give object Expression CFP Ask for a proposal Proposal specifics PROPOSE Provide a proposal Proposal ACCEPT-PROPOSAL Tell that a given proposal is accepted Proposal ID REJECT-PROPOSAL Tell that a given proposal is rejected Proposal ID REQUEST Request that an action be performed Action specification SUBSCRIBE Subscribe to an information source Reference to source
  • 24. Agent Communication Languages (2) A simple example of a FIPA ACL message sent between two agents using Prolog to express genealogy information. Field Value Purpose INFORM Sender max@http://fanclub-beatrix.royalty-spotters.nl:7239 Receiver elke@iiop://royalty-watcher.uk:5623 Language Prolog Ontology genealogy Content female(beatrix),parent(beatrix,juliana,bernhard)