Semáforos

Los semáforos son distintivos de señales globales en el sistema que configuran recursos mutuamente exclusivos (mútex). Utilícelos para hacer que algunos procesos esperen a que finalicen otros procesos.

Utilice Trabajos > Semáforos para ver los semáforos de trabajo que están en uso. También puede borrar semáforos, lo que quizá sea necesario en caso que un trabajo que se haya colgado o cancelado no pueda liberar el semáforo.

El panel Semáforos se utiliza en el panel Trabajos.
Implemente semáforos mediante un par de mandatos de punto: los mandatos.semget y .semput. Utilice el mandato .semget para "obtener" una etiqueta: después de que paso obtenga una etiqueta, cualquier paso (en cualquier proyecto) que intente obtener la misma etiqueta debe esperar hasta que el solicitante original la libere.
Nota: Un paso que contiene un mandato .semget espera hasta que el semáforo quede libre. Si un trabajo falla y deja su semáforo trabajo activo, el semáforo deberá ser borrado manualmente antes de que cualquier trabajo que utilice el semáforo pueda ejecutarse de nuevo.

Por ejemplo, suponga que tiene un programa que crea un controlador de impresora y desea que el programa lo utilice sólo un proceso en un momento dado. Dentro de cada programa que llama el programa, configure tres pasos con las líneas de mandatos siguientes:

Paso

Línea de mandatos

Obtener semáforo

.semget $BF_PROJECTNAME_PHYS

Ejecutar creador de controlador

printdrivermaker.exe windows

Liberar semáforo

.semput $BF_PROJECTNAME_PHYS

Puede establecer semáforos para recursos clave de la organización, tales como un servidor muy cargado o un programa de software con una licencia para un solo usuario. Cada paso que utiliza el recurso que desea proteger deber ir rodeado de los mandatos .semget y .semput.

Los semáforos siguen las reglas siguientes:


Comentarios