Synchronization of nested atomic actions

The concept of atomic actions has been a useful and powerful abstraction in designing concurrent and fault‐tolerant systems. Nested atomic actions are used in hierarchically structured systems where an atomic action may itself be composed of other atomic actions. This paper presents a semaphore‐based protocol for synchronizing a set of concurrently executing nested atomic actions. The approach followed consists of first designing a protocol for synchronizing non‐nested actions, and then extending it to the nested case. The paper also details the difficulties involved in integrating deadlock resolution algorithms into the synchronization protocol. Both deadlock‐prevention and deadlock‐detection schemes for handling deadlocks are discussed.