Figure 1

Task #1 and #2 updating without synchronization (Fig. 1a)

Time   Account  Task # 1                  Task #2
Slice  Balance  Action                    Action
------------------------------------------------------------------
  0     $500    None                      None
  1     $500    dep_bal = balance + 100;  None
  2     $500    None                      wdr_bal = balance - 200;
  3     $600    balance = dep_bal;        None
  4     $300    None                      balance = wdr_bal;
Task #1 and #2 with Synchronization (Fig. 1b)

Time   Account  Task #1                   Task #2
Slice  Balance  Action                    Action
------------------------------------------------------------------
  0     $500    None                      None
  1     $500    dep_bal = balance + 100;  None
  2     $600    balance = dep_bal;        None
  3     $600    None                      wdr_bal = balance - 200;
  4     $400    None                      balance = wdr_bal;