Synchronisation part 2 - Chapter 6
Binary Buffer Problem

The consumer should not take if the buffer is empty.
Producer should not add an item if the buffer is full.
Reader Writer problem

Only one person can write at a time
If someone is writing nobody can read
Many people can read
If someone is reading nobody can write
Dining Philosophers problem

There is one chop stick per person
Each person needs two chop sticks to eat
Each person only has access to the chop sticks next to them

This may cause a deadlock to prevent:
- Let all members eat excluding one
- Let odd or even members eat
Atomic transactions
Atomic transactions - Where each read and write is done in one step.
A log is made, if a system crash occurs before a commit then the data is rolled back to the last commit.