Tarea
Los “semaphores” permiten al usuario solicitor o alterar el estatus de cierta información o proceso. Son usualmente utilizados como monitores y controlan la disponibilidad de losrecursos del sistema como los segmentos de memoria compartida. El funcionamiento básico se basa en que se puede inicializar, revisar o esperar hasta que deje de usarse (“clears”) y se inicialice (probar einicializar o “test-n-set”).
Subrutinas de “Semaphores”
Las subrutinas para los semaphores se pueden conseguir en la librería sem.h
Semget():
int semget(key_t key, int nsems, int semflg)• Crea y devuelve el valor del semaphore
• Parámetros:
o key: valor de acceso asociado con el ID del semaphore.
o nsems: especifica el numero de elementos en el arreglo delsemaphore
▪ La llamada falla cuando nsems > # elementos en el arreglo.
▪ Si no se conoce el conteo correcto de elementos, haciendo nsems = 0 asegura que la llamada serealizara.
o Semflg: especifica los permisos del acceso inicial y creación de las banderas (“flags”) de control.
• Devuelve el numero de ID del “semaphore”.
Semclt()
int semclt (intsemid, int semnum, int cmd, union senum arg)
• Cambia los permisos y otras características de un set de “semaphores”; lo destruye.
• Parámetros:
o semid: ID valido del semaphoreo semnum: selecciona un semaphore en un arreglo por su índice.
o union senum arg: argumento opcional
o cmd: una de las banderas de control:
▪ getval –devuelve el valor de un simple semaphore
▪ setval – setea (“sets”) el valor de un simple semaphore
▪ getpid – devuelve el ID de un proceso que ejecuto la ultima operaciónen el semaphore.
▪ getncnt – devuelve el numero de procesos en espera que aumente el valor de un semaphore
▪ getznt – devuelve el numero de procesos esperando en que...
Regístrate para leer el documento completo.