A **sequential algorithm** is the formal description of the behavior of an *abstract* state machine. A **program** is a sequential algorithm written in a programming language. A **process** is a program executed on a *concrete* machine, characterized by its *state* (values of the registers). If the process follows one single control flow