What is critical section problem?

Critical section is the code segment of a process in which the process may be changing common variables, updating tables, writing a file and so on. Only one process is allowed to go into critical section at any given time (mutually exclusive).The critical section problem is to design a protocol that the processes can use to co-operate. The three basic requirements of critical section are:

  1. Mutual exclusion

  2. Progress

  3. bounded waiting

Bakery algorithm is one of the solutions to CS problem.