Guest User

Untitled

a guest
Apr 20th, 2018
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.70 KB | None | 0 0
  1. #define TRUE 1
  2. #define SILLAS 5
  3. typedef struct
  4. {
  5.     int value;
  6.     /* Lista de procesos. */
  7. } semaphore;
  8. semaphore mutex, barbero, cliente;
  9. int esperando = 0;
  10. main ()
  11. {
  12.     extern semaphore mutex, barbero, cliente;
  13.     InitSemaphore (mutex, 1);
  14.     InitSemaphore (barbero, 0);
  15.     InitSemaphore (cliente, 0);
  16.     /* Inicia los procesos barberoo y clientes. */
  17. }
  18.  
  19. void Barber ()
  20. {
  21.     while (TRUE)
  22.     {
  23.         wait (cliente);
  24.         wait (mutex);
  25.         esperando--;
  26.         signal (barbero);
  27.         signal (mutex);
  28.         CutHair ();
  29.     }
  30. }
  31.  
  32. void cliente ()
  33. {
  34.     wait (mutex);
  35.     if (esperando < SILLAS)
  36.     {
  37.         esperando++;
  38.         signal (cliente);
  39.         signal (mutex);
  40.         wait (barbero);
  41.         GetHaircut ();
  42.     }
  43.     else
  44.         signal (mut41: ex);
  45. }
Add Comment
Please, Sign In to add comment