Mutual Exclusion is satisfied. Because when a process detects other's flag to be TRUE, it waits.
Now the bigger question that remains is what else is satisfied — Bounded Wait or Progress?
Check this from Galvin.
»»» Progress is when a process that doesn't wish to enter its Critical Section poses no problems for a process that wishes to enter.
Here, if a process doesn't wish to enter CS, it won't execute the entry section => its flag won't be set to TRUE.
So Progress is satisfied.
But wait.
Suppose $P_i$ got preempted right after making its flag = TRUE.
Then $P_j$ started to execute, and it put its flag = TRUE as well.
Now they're in a deadlock.
When there's deadlock, there's no progress.
»»» Bounded Wait is violated when there's no upper limit to the number of times a process enters its Critical Section before it gives another process a chance to enter.
Here, if both the processes want to enter — they'll set their flags to TRUE. And this
while ( flag[j] ) do no-op;
will prevent $P_i$ to keep entering its Critical Section without giving $P_j$ its turn. Vice versa.
Bounded Wait is satisfied.
Option A