The execution sequences just described are called schedules. They represent
the chronological order in which instructions are executed in the system. Clearly,
a schedule for a set of transactions must consist of all instructions of those transactions,
and must preserve the order in which the instructions appear in each
individual transaction. For example, in transaction T1, the instruction write(A)
must appear before the instruction read(B), in any valid schedule. Note that we
include in our schedules the commit operation to indicate that the transaction
has entered the committed state. In the following discussion, we shall refer to
the first execution sequence (T1 followed by T2) as schedule 1, and to the second
execution sequence (T2 followed by T1) as schedule 2.