A memory consistency model defines which executions of a program are allowed.

In other words, partitions the set of executions of a program into:

  1. executions—those that obey and
  2. Non- executions—those that disobey .

An implementation is a system that permits only executions of a program.

Some examples of memory consistency models: