IT386 Final
What is a distributed system?
A distributed system is a collection of autonomous computing elements that appears to its users as a single coherent system.
How does Token-based process work?
A token is passed between processes.
How are distributed systems organized?
As an overlay network
What are the two characteristics of a distributed system?
Collection Autonomous computing elements (nodes) Single coherent system
What is service composition in middleware?
Common to develop new applications by taking existing programs and gluing them together (web services)
When must clocks be resynchronized?
If two clocks are drifting from UTC in the opposite direction
Review Dijkstra's algorithm
(slide 14)
Look over Bully and Ring-based election algorithm
(slide 20)
Look over Chandy-Lamport algorithm
(slide 21)
Review Amdahl's Law
(slide 22)
Review creating threads in Java
(slide 23)
What is the Chandy-Lamport algorithm?
- Determine global state of DS Find a set of states: - one for each process - Ask each process to record its state n - set of states must be a consistent cut (Snapshot)
How does the bully algorithm work?
- Each process has a unique numerical ID, and knows the IDs and address of every other process - Communication is assumed reliable - Key Idea: select process with highest ID
How do we record the global state of a distributed system?
- Each process is independent - No global clock or synchronization
What are the 3 types of distributed systems?
- High performance distributed computing systems - Distributed information systems - Distributed systems for pervasive computing
What is Global state in a DS?
- Local state of each process: messages sent and received - State of each channel: messages sent but not received
Explain what it means to support resource sharing and give some examples
- Make it easy for users (and applications) to access and share remote resources. - Cloud-based shared storage and files - Peer-to-peer assisted multimedia streaming - Shared mail services (think of outsourced mail systems) - Shared Web hosting (think of content distribution networks
3 components of a scalable distributed system
- Number of users and/or processes (size scalability) - Maximum distance between nodes (geographical scalability) - Number of administrative domains (administrative scalability)
What are the 4 uses of parallelism?
- Operating systems (kernel threads to perform multiple tasks simultaneously) - Servers (manage multiple client requests) - GUI applications: - On thread is painting images and another is responding to user input. - Solve large problems - Simulate physical and biological systems, graphics, weather forecasting, etc.
How does the token based algorithm work?
- Organize processes in a logical ring, and let a token be passed between them. - Process that holds the token is allowed to enter the critical region (if it wants to).
What are the 4 types of DS communication?
- Persistent - Transient - Synchronous (blocking) - Asynchronous (non blocking)
What are the steps to the distributed permission based algorithm?
- Process generates a timestamp and waits for an OK from the system - An OK response will be returned when the receiving process has not interest in the shared resource or the receiving process has the lowest priority
How does Ring-based election algorithm work?
- Process has unique IDs and arranged in logical ring - Each process knows its next successor - Key idea: Select process with highest ID
What is the advantage of RMI and the 2 programs it needs to execute it?
- RMI allows programmers to execute remote function class using the same semantics as local functions calls. - It needs a client and server program
What is Remote Method Invocation (RMI)
- RMI is a Java-specific object-oriented extension of the Remote Procedure Call (RPC) - It allows an object in one Java Virtual Machine (JVM) to interact with the object in another JVM by invoking the methods in that object.
What are the 3 examples in which we can combine DS communication types
- Remote procedure calls: Transient and synchronization after the request has been fully processed - Client/server computing: Transient and synchronous communication - Message-queuing systems: Persistent in combination with synchronization at request submission
Explain the two structure types of an overlay network
- Structured: each node has a well-defined set of neighbors with whom it can communicate (tree, ring) - Unstructured: each node has references to randomly selected other nodes from the system.
What are the 4 design goals of a distributed system?
- Support resource sharing - Make distribution transparent - Being open - Being scalable
What are the 4 attributes of an open distributed system?
- Systems should conform to well-defined interfaces - Systems should easily interoperate - Systems should support portability of applications - Systems should be easily extensible
What are the 3 overlapping subtypes of a distributed pervasive system?
- Ubiquitous computing systems: pervasive and continuously present, i.e., there is a continuous interaction between system and user. - Mobile computing systems: pervasive, but emphasis is on the fact that devices are inherently mobile. - Sensor networks: pervasive, with emphasis on the actual (collaborative) sensing and actuation of the environment.
How does the Berkley algorithm work?
- Used in systems without UTC receiver - Keep clocks synchronized with one another - One computer is elected (designated) server (master), other are workers
How can we compare sequential vs parallel execution
- We can measure performance achieved by parallelizing a given application over a sequential implementation
What is Remote procedure call (RPC)?
- When a process on machine A calls a procedure on machine B, the calling process on A is suspended, and execution of the called procedure takes place on B. - Information can be transported from the caller to the callee in the parameters and can come back in the procedure result
How does network time protocol work?
- Widely used standard - based on Cristian's alg. - Collect eight Cartesian coordinate pairs and choose a value for which the associated delay was minimal
What is a Distributed Snapshot?
- a consistent global state - global state is consistent if it corresponds to a consistent cut - for any received message in a state the corresponding send is also in that state
How does clock synchronization work in a distributed system and what is the problem with this?
- each node has own system clock - An event that occurred after another may be assigned an earlier time
What is the data plane?
- local per router function - determines how datagram arriving on router input port is forwarded to router output port
What is scalability in terms of parallelism?
- measure of its ability to increase performance as number of processors increases - A scalable system maintains efficiency as processors are added
What is the control plane?
- network-wide logic - determines how datagram is routed among routers along end-to-end path from source host to destination host
What are the two things that are needed to implement openness?
- policies - mechanisms - Stricter the separation between policy and mechanism, more we need to ensure proper mechanisms
How does Permission-based process work?
- process needs permission from other processes to enter its critical section, or access a resource - can be centralized or distributed
Explain reliability in middleware services
- provide enhanced functions for building reliable distributed applications (Horus toolkit). - any message sent by one process is guaranteed to be received by all or no other process.
What is a coherent system?
The collection of nodes as a whole operates the same, no matter where, when, and how interaction between a user and the system takes place.
What is sequential computing?
The computer executes sequence of instructions of the program in order, one at a time
What are the 3 computing types in a high performance distributed computing systems?
- Cluster computing: Essentially a group of high-end systems connected through a high-speed LAN; Homogeneous - Grid computing: Heterogenous nodes dispersed across several organizations - Cloud computing: Providing the facilities to dynamically construct an infrastructure and compose what is needed from available services. Provides lots of resources.
What are the 3 clock synchronization algorithms?
- Cristian's algorithm - Network Time Protocol - Berkeley algorithm
What problem do Mutual Exclusion algorithms handle and what are they?
- A number of processes in a distributed system wants exclusive access to some resource. - Permission-based - Token-based
What is a Thread?
- A sequential flow of control within a process. - A process can contain one or more threads. Threads have their own program counter and register values, but they share the memory space and other resources of the process.
What are the two election algorithms
- Bully Algorithm - Ring Algorithm
Why do we need Snapshots?
- Checkpointing: Restart if the system fails - Collecting garbage: Remove objects that aren't referenced - Detecting deadlocks: The snapshot can examine the current application state
What are Lamport Logical Clocks?
- Clock synchronization need not be absolute - If two machines do not interact, no need to synchronize them - More importantly, processes need to agree on the order in which events occur rather than the time at which they occurred
What are 3 degrees of transparency and their downsides?
- Completely hiding failures of networks and nodes is impossible - Full transparency will cost performance - Exposing distribution may be good
What are the 4 things that need to be taken into account with Parallel program design?
1. Partitioning - Task/data decomposition 2. Communication - Coordinate task execution 3. Agglomeration - Evaluate structure and combine tasks 4. Mapping - Resource assignment
What are the steps to the centralized permission based algorithm?
1. Process P1 asks the coordinator for permission to access a shared resource. Permission is granted. 2. Process P2 then asks permission to access the same resource. The coordinator does not reply. 3. When P1 releases the resource, it tells the coordinator, which then replies to P2
What are the 10 steps in a remote procedure call
1. The client procedure calls the client stub in the normal way. 2. The client stub builds a message and calls the local operating system. 3. The client's OS sends the message to the remote OS. 4. The remote OS gives the message to the server stub. 5. The server stub unpacks the parameter(s) and calls the server. 6. The server does the work and returns the result to the stub. 7. The server stub packs the result in a message and calls its local OS. 8. The server's OS sends the message to the client's OS. 9. The client's OS gives the message to the client stub. 10. The stub unpacks the result and returns it to the client
What is message passing?
Basic principles of exchanging messages between two processes using send and receive operations
What is parallel computing?
Breaks programs into smaller sequential operations and performs them in parallel
Review the Lamport Logical clock problem from homework
Done
What is a vector clock? Review the problem on slides/homework
Each process maintains a vector and when parameters are passed the given vectors value being passed is updated by one (Slide 19)
What is efficiency in terms of parallelism?
Efficiency of a parallel program is a measure of processor utilization, defined as the ratio of the speedup and the number of processors used
What are distributed pervasive systems?
Emerging next-generation of distributed systems in which nodes are small, mobile, and often embedded in a larger system, characterized by the fact that the system naturally blends into the user's environment.
What are the key properties of MapReduce?
Key Properties: - Users specify the computation in terms of a - map function and a reduce function - Underlying runtime system automatically parallelizes the computation across large-scale clusters of machines - Underlying system also handles machine failures, efficient communications, and performance issues
What is the Message-oriented middleware also known as and what communication styles does it support?
Message-Queuing system Supports persistent and asynchronous communication
What does a distributed information system do?
Organizations confronted with many networked applications, but achieving interoperability was difficult. So a networked application runs on a server making its services available to remote clients
What is middleware?
Provides the means for components of a single distributed application to communicate with each other, but also to let different applications communicate
2 Middleware procedures that integrate communication facilities
Remote Procedure Call (RPC): Requests are sent through local procedure call, packaged as message and sent to the callee, and result returned as return from call Message Oriented Middleware (MOM): Messages are sent to logical contact point (published), and forwarded to subscribed applications
How does middleware implement communication services?
Remote Procedure Call (RPC): allows an application to invoke a function that is implemented and executed on a remote computer as if it was locally available
What are techniques for scaling?
Scaling up (improve capacity, upgrade CPUs, etc.) Scaling out: - hiding communication latencies - partition and distribution of work, and - replication
What are transactions in middleware?
Support for executing multiple services in an all-or-nothing
How does Cristian's algorithm work?
Synchronize machines to a time server with a UTC receiver
Whys is middleware the same to a distributed system as what an OS is to a computer?
They are a manager of resources offering its applications an efficient way to share and deploy resources across a network
What are the 2 message-oriented communication types
Transient messaging and Persistent messaging
T/F RMI offers full transparency
True
What is routing?
determine route taken by packets from source to destination
What is persistent DS communication?
message is stored until its deliver to the receiver
What is transient DS communication?
message is stored while the sending and receiving application are executing
What is forwarding?
move packets from a router's input link to appropriate router output link
What is the design goal of a distributed system?
offers components that can easily be used by, or integrated into other systems
What is speedup with parallelism?
ratio between the sequential execution time and parallel execution time
What is asynchronous DS communication?
sender sends a message and then continues (nonblocking operation). This means that the message is (temporarily) stored immediately by the middleware upon submission.
What is synchronous DS communication?
sending and receiving processes synchronize at request submission, delivery, or after processing by server
What is RPC unmarshalling?
the process of disassembling them on arrival to produce an equivalent collection of data items at the destination
What is RPC marshalling?
the process of taking a collection of data items and assembling them into a form suitable for transmission in a message