In Chapter 6, we described various mechanisms that allow processes to synchronize their actions. We also discussed a number of schemes to ensure the atomicity of a transaction that executes either in isolation or concurrently with other transactions. In Chapter 7, we described various methods that an operating system can use to deal with the deadlock problem. In this chapter, we examine how centralized synchronization mechanisms can be extended to a distributed environment. We also discuss methods for handling deadlocks in a distributed system.
• To describe various methods for achieving mutual exclusion in a distributed system.
• To explain how atomic transactions can be implemented in a distributed system.
• To show how some of the concurrency-control schemes discussed in Chapter 6 can be modified for use in a distributed environment.
• To present schemes for handling deadlock prevention, deadlock avoidance, and deadlock detection in a distributed system.
18.1 Event Ordering
In a centralized system, we can always determine the order in which two events occurred, since the system has a single common memory and clock. Many applications may require us to determine order. For example, in a resource-allocation scheme, ...