Concurrent transactions. The transaction manager of section 8.5 correctly handles any number of transactions that execute concurrently, but each individual transaction must be sequential. For this exercise, extend the transaction manager so that the individual transactions can themselves be concurrent. Hint: add the termination detection algorithm of section 5.6.3.