A discipline of multiprogramming : programming theory for distributed application - Misra, Jayadev (Springer, 2001)