CS 6650 Scalable Distributed Systems
Homework 7 Arvindkumar Thiagarajan
16.1 The TaskBag is a service whose functionality is to provide a repository
for ‘task descriptions’. It enables clients running in several compu
...
CS 6650 Scalable Distributed Systems
Homework 7 Arvindkumar Thiagarajan
16.1 The TaskBag is a service whose functionality is to provide a repository
for ‘task descriptions’. It enables clients running in several computers to
carry out parts of a computation in parallel. A master process places
descriptions of subtasks of a computation in the TaskBag, and worker
processes select tasks from the TaskBag and carry them out, returning
descriptions of their results to the TaskBag. The master then collects the
results and combines them to produce the final result.
The TaskBag service provides the following operations:
setTask - allows clients to add task descriptions to the bag;
takeTask - allows clients to take task descriptions out of the bag.
A client makes the request takeTask, when a task is not available but may be
available soon. Discuss the advantages and drawbacks of the following
alternatives:
i) The server can reply immediately, telling the client to try again later.
ii) The server operation (and therefore the client) must wait until a task
becomes available.
iii) Callbacks are used.
16.2 A server manages the objects a1, a2, ..., an. The server provides two
operations for its clients:
read (i) returns the value of ai;
write(i, Value) assigns Value to ai.
The transactions T and U are defined as follows:
T: x = read(j); y = read (i); write(j, 44); write(i, 33);
U: x = read(k); write(i, 55); y = read (j); write(k, 66).
Give three serially equivalent interleavings of the transactions T and U.
ai = 33, aj = 44, ak = 66.
3. a. Explain the 3 different concurrency control methods (Ch 16 Coulouris
Book – Locks based, Optimistic and Time-stamp Ordering) brifely.
Compare and contrast how they achieve concurrency control.
3.b. Java Concurrency In Practice by Brian goetz is the practice manual for
Dist Systems. Study Chapter 6 (Task Execution) which is a small chapter.
Identify 5 different programming devices (e. g. Tasks, Exec Framework)
used in Java for Task Execution. Then, briefly explain how you might use
these to implement a basic
Locks based concurrency control in a simple Web App.
[Show More]