I've noticed that "all" OS textbooks present the Critical-Section Problem with examples of code that are in infinite loops. E.g.,
while (true) {
// code here to do the entry section protocol
// critical section here
// code here to do the exit section protocol
// remainder section
}
Why is this? From my experience there can be many processes that run and enter critical sections (inspecting and updating shared variables) where the code is not in an infinite loop. This business of always have code in loops seem to unnecessarily complicate matters for students.
Is there something I'm just not understanding about this concept?