Universidad de Costa RicaEscuela de Ciencias de la Computación e InformáticaCI-0122 Sistemas operativosEjemplos |
![]() |
CI0122 / Ejemplos |
int main(){
Semaforo puente(1);
int cont =0;
int tipo=0;
while(){
if !fork(){
Derecho();
}else{
Izquierdo();
}
}
}
Derecho(){
entrar(1);
...
salir();
}
Izquierdo(){
entrar(2);
...
salir();
}
entrar(int t){
if (cont ==0 || (tipo!=t && tipo!=0)){
puente.wait();
tipo=t;
}
cont++;
}
salir(){
cont--;
if(cont==0){
puente.signal();
}
}