Process structuring, synchronization, and recovery using atomic actionsD.B. Lomet1977ACM Conference on Language Design for Reliable Software 1977