Flashcards
Distributed System - Lecture 3

Cards in this deck (14)
- 1Distributed Procedure Calls: - With distributed procedure calls you can divide programs between computer. You do this to share resources and speed up processes. - Programs can send messages via sockets - Procedure calls - the level of abstraction used by most programmers - Middleware provides a programming abstraction and masks the heterogeneity of networks and OS etcParameter passing in between processes:
- You either pass by value or pass by reference
- Pass by value - value copied into the invocation methods
Pass by reference - A pointer to the parameter is passed. Server can manipulate the original data
For DS, we use pass by value
- Global variables - shared between client and servers
- Local variables - private to client or server - 2Local Procedure calls: - In LPC, client and server use the same address space - global variables can be used, parameters can be passed by reference - Parameters are passed locally via stack so no messages are transmitted and no data conversion is neccessaryRemote procedure calls:
- Done somewhere on the network
- In RPC, parameters are exchanged via messages (done by marshalling)
- It uses request-reply protocol
- Uses stubs to map local calls into network messages
- Client and server use different address space - parameter pass by value only
- Data conversion needed between client and server formats
- Opaque references in the reply
- All RPC systems automatically generate marshalling and unmarshalling routines to flatten call and return arguments into packet format suitable for transmission, and unpack them on receipt. - 3—


- 4RPC Implementation gives you: - Complete location transparency - no difference between LPC and RPC - Different syntax for definition and call of procedures that can be called remotely - Different local and remote procedure calls

- 5Middleware: - Can support a range of underlying languages - Parameters are passed by value - Interface compilers - define your service interface and it generate stubs - Interface definition processing - RMI - includes remote object handling - Other programming models - remote event notification, remote SQL access, distributed transaction processingInterface:
- Interface specifies the procedures/ methods and the variables that can be accessed from other modules/objects
- Service interface - in RPC refers to the specification of the procedures offered by the server. Defining the types off the input and output arguments of each of the procedures
- Remote interface - In RMI, specifies the methods of an object for invocation by objects in other processes, defining the types of the input and output arguments - 6Object, Remote Object and Remote Interface : - Object can be referred to by an object reference or the interfaceRemote object references
- When a remote object receives a remote method invocation is specified as a remote object reference
- Remote object reference may be passed as arguments and results of remote method invocations
- A Remote object reference must be unique as an identifier for a remote object in a distributed system
- 7Distributed object model - Each process contains objects. Some receive remote invocations, others receive local invocations - Remote objects are objects that can receive remote invocations - These objects need to know the remote object reference of an object in another process, in order to invoke its methods - Remote interface specifies which methods can be invoked remotely

- 8Distributed objects and concurrent accessnext
- 9Single processing vs Multi processing - Single processing - follow one sequence of instructions - a single thread of execution - If we want to do more than one task at a time, then it is up to us to multiplex our sequences of instructions (turntaking of tasks) - Multiprocessing - The OS allows different sequences of instructions to execute in parallel - While one is waiting for a resource another is executing - or Multiprocessor machine can execute multiple instructions in parallel (on difference processors) - Concurrent servers - multiple processes, multiplexing, multi-threadingParallel processing
- Certain tasks can take a ver long time
- so you parallelise the task
- Split the task into several jobs - 10Remote method invocation (RMI) - RMI supports externally invocable objects - It requires that the objects should be registered with the platform -When you register, An object-ID is returned - The object becomes known globally - The object can be invoked remotely, and the object-ID may be passed arguments

- 11—


- 12Exception Handling: - Failures can be due to exposure to additional hardware (possible error source) eg: RPC failure due to communication problems - Failures can also be due to problems during executing a procedure - happens at the remote (server) site - Failure reporting is done by raising and handling expections

- 13Binding - Binding is mapping a name to a particular object - Static binding is done at link/build time - Dynamic binding is done before program start and under program control - Binder is a system service for binding - How to locate the binder? - binder address is always the same, and can be hard coded into programs - Binder address is in an environment variable - Client/Server broadcast a message to locate the binder - Naming class of RMIRegistry - rebind(), bind(), unbind()

- 14Events and notification - Event - change in the system state - Publish subscribe paradigm: - Event generators can publish events for observation by others - Receivers / listeners can register interests in events of different types - Push pull approaches - Push - publishers send notification about new events - Pull - receivers ask info about new eventsdone
Information
- Description
- Distributed systems Flashcards on Distributed System - Lecture 3, created by minal Kotwal on 25/10/2016.
- Created by
- minal Kotwal
- Views
- 1
- Rating