| | 1 | = Server Semaforo = |
| | 2 | |
| | 3 | * Semaforo con inizializzazione |
| | 4 | |
| | 5 | diff:tags/server-add-single-semaphore//tags/server-add-single-semaphore-init |
| | 6 | |
| | 7 | * Semafori multipli (identificati da un numero) |
| | 8 | |
| | 9 | diff:tags/server-add-single-semaphore-init//tags/server-add-multiple-semaphore |
| | 10 | |
| | 11 | |
| | 12 | Ora è possibile risolvere il seguente problema |
| | 13 | |
| | 14 | Un processo docente risponde alle domande di alcuni |
| | 15 | processi studente, con i seguenti vincoli: |
| | 16 | * in ogni momento un solo processo (docente o studente) |
| | 17 | emette messaggi (domande e risposte ottenute con printf sullo |
| | 18 | stdout) |
| | 19 | * ogni domanda degli studenti ottiene una specifica risposta |
| | 20 | * l'elaborazione della risposta da parte del docente |
| | 21 | richiede 2 secondi |
| | 22 | * ciascuno studente si astiene dal fare una nuova domanda |
| | 23 | finché il docente non ha risposta alla precedente |
| | 24 | * Ogni studente fa un'unica domanda |
| | 25 | |