title: Question about three requirements considering critical section problem
body: <p>Recently i'm reading the book <em>Operating System Concepts</em> Chapter VI about critical section problem, in section 6.2, we know that an algorithm for solving synchronization problem must meet three requirements: 1. Mutual Exclusion 2.Progress 3.Bounded Waiting.
  Obviously, if an algorithm meets second requirement (Progress), it doesn't necessarily imply that this algorithm meet Bounded Waiting one because of the process speed or scheduling issue. </p>
  
  <p>However, my question is that, if an algorithm meet Bounded Waiting requirement, can we imply from this that, this algorithm also meet Progress requirement?
  If no, what's the condition?
  If yes, why don't we raise ONLY the third requirement and delete the second one since the third one can imply second one.
  BTW, can any one explain the relationship (and differences) between second one and third one?</p>