Explanation
First, you should understand the meaning of this statement :Entry: loop while (turn == 1); it means that process can enter only in the critical section if the value of turn is 0 and vice versa for turn==0;
A mutual exclusive requirement prevents simultaneous access to a shared resource. Since semaphore turn is initialized to zero and this semaphore value is changing only after the critical section for given processes. So, this ensures at most one process in the critical section at a time, i.e., the mutual exclusive requirement is satisfied.
Progress means that process should eventually be able to complete. But directly Process 1 can not go critical section as the lock value is 0 initially and this process 1 can go CS only after process 0. So, the progress requirement is not satisfied.
In other words, we define progress ->
Progress ->the process which does not wish to execute in the critical section should not be blocking other processes.
Easy way -The people who want to use the restroom would compete for the key, it should be not that the person who doesn't use it, locks and go away. So If process 0 do not wants to go to critical section and process 1 wants to, it cannot as process 1 depends on process 0 to make the turn =1 to unlock the critical section.
Bounded waiting means no process should wait for a resource for an infinite amount of time. Process 1 cannot go directly and Process 1 can go in critical after process 0 into the critical section. So, Bounded waiting is satisfied.
More simplified explanation ->process 0 will first enter critical section as the turn is false and after that exit: turn =1 then process 1 can access the critical section as now turn =1 after exit from process 0 so process 1 can now enter the critical section …..so both processes can go into critical section ( one by one a) , no process has to wait forever.
Option (C) is correct.