A distributed system can be modelled on different levels of abstraction, from highlevel specifications of its properties to low-level descriptions of its implementation. We describe distributed systems by
that represent a system by concurrent executions of sequential processes. Sequential processes represent the active entities that perform the computations in a distributed system, for example, processors, operating system processes, or threads. The most fundamental concerns on such a level of abstraction are the method of
. The method of interprocess communication determines how different processes in a system communicate. Prominent examples include communication via message passing or by accessing shared memory. The timing model relates events in a system to the passage of time. For example, a timing model may state upper bounds on the period it takes to deliver a message.