int counter = 0; Semaphore {cmutex,klappe1,klappe1Ready, klappe2,klappe2Ready}=1; linke_FR() { cmutex.p(); counter++; cmutex.v(); klappe1.p(); linke_Klappe_öffnen(); klappe1Ready.p(); cmutex.p(); counter--; cmutex.v(); } rechte_FR() { klappe2.p(); rechte_Klappe_öffnen(); klappe2Ready.p(); } VpAutomat() { while(true) { cmutex.p(); if(counter > 0) { klappe1.v(); verpacken(); klappe1Ready.v(); } else { klappe2.v(); verpacken(); klappe2Ready.v(); } cmutex.v(); } }