Buenas, como estas? Tambien te puede pasar esto:
En el caso de intercambiar 1 y 2, y suponiendo la siguiente ejecución:
1) Se ejecuta consumer_process y se pasa por P(exclusive_access), dando paso y restando uno al valor del semáforo (quedando en cero), y luego queda bloqueado en P(number_deposited), ya que está inicializado en cero.
2) Luego, se ejecuta producer_process, quedando bloqueado en P(exclusive_access).
En conclusión, cada proceso queda esperando por eventos del otro, por lo que llegamos a una situación de DEADLOCK.
Saludos!