Universidad de Costa Rica

Escuela de Ciencias de la Computación e Informática

CI-0122 Sistemas operativos

Ejemplos

CI0122 / Ejemplos / 2014-i


mutex m;
bool estado = false; // false == hombre
int gente = 0;
Semaforo cola(3);


persona( bool genero )
{
   while( true )
   {
      Trabajar();

      m.wait();
      if( estado == genero || gente == 0 )
      {
         estado = genero;
         m.signal();
         cola.wait();

         m.wait;
         ++gente;
         m.signal();

         Banno();
 
         m.wait();
         --gente;
         m.signal();
         cola.signal();
      }
      else
         m.signal();
   }
}