Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Semaforo
1. struct semaforo {
2. char nombre[GABY_NOM_SEM+1]; /* Nombre del sem. con sitio
para */
3. int contador; /* valor del sem. */
4. int num_aperturas; /* cuantos lo usan: si 0
libre */
5. lista_BCPs lista_bloqueados_sem;/* procesos bloqueados en
sem. */
6. };
7.
8. typedef struct semaforo semaforo;
9.
10. /*
11. * Semaforos del sistema
12. */
13. struct {
14. int num_sem_ocupados; /* Cuantos existen?
*/
15. lista_BCPs lista_espera_libre; /* Bloqueados
esperando libre */
16. semaforo tabla_semaforos[NUM_SEM]; /* La tabla de semaforos
*/
} info_semaforos;
17. return 0;
Simulación: