Consider system of n processes {p0, p1, … pn-1}
Each process has critical section segment of code
=> Process may be changing common variables, updating table,
writing file, etc
=> When one process in critical section, no other may be in its
critical section
Critical section problem is to design protocol to solve this
Each process must ask permission to enter critical section in
entry section, may follow critical section with exit section,
then remainder section
Especially challenging with preemptive kernels