A standard set of base states is defined for Programs as part of the Program Finite State Machine. These states represent the stages in which a Program can exist at an instance in time as viewed by a Client. This state is the Program’s current state. All Programs shall support this base set. A Program may or may not require a Client action to cause the state to change. The states are formally defined in Table 2.
Table 2 – Program states
|Ready||The Program is properly initialized and may be started.|
|Running||The Program is executing making progress towards completion.|
|Suspended||The Program has been stopped prior to reaching a terminal state but may be resumed.|
|Halted||The Program is in a terminal or failed state, and it cannot be started or resumed without being reset.|
The set of states defined to describe a Program can be expanded. Program sub states can be defined for the base states to provide more resolution of a process and to describe the cause and effect(s) of additional stimuli and transitions. Standards bodies and industry groups may extend the base Program Finite State Model to conform to various industry models. For example, the Halted state can include the sub states “Aborted” and “Completed” to indicate if the Function achieved a successful conclusion prior to the transition to Halted. Transitional states such as “Starting” or “Suspending” might also be extensions of the Running state, for example.