MECANISMO DE SEMÁFOROS
Jaramillo González Axl Eduardo
Zúñiga Gutiérrez José Angel
 Es una variable entera a la que solo se accede mediante
dos operaciones individuales estándar: espera y señal.
 Todas las modificaciones del valor entero del semáforo
en las operaciones espera y señal deben ejecutarse de
forma indivisible. Es decir, cuando un proceso modifica el
valor del semáforo, ningún otro proceso puede modificar
simultáneamente el valor de dicho semáforo.
IMPLEMENTACIÓN
 La principal desventaja de la definición de
semáforo dada aquí es que requiere una espera
activa. Mientras un proceso está en su sección
crítica, cualquier otro proceso que intente entrar en
su sección crítica debe ejecutar continuamente un
bucle en el código de entrada. Este bucle continuo
plantea claramente un problema en un sistema real
de multiprogramación, donde una sola CPU se
comparte entre muchos procesos.
 La espera activa desperdicia ciclos de CPU que algunos
otros procesos podrían usar de forma productiva. Este
tipo de semáforo también se denomina cerrojo mediante
bucle sin fin, ya que el proceso "permanece en un bucle
sin fin" en espera de adquirir el cerrojo. Los cerrojos
mediante bucle sin fin tienen una ventaja y es que no
requieren ningún cambio de contexto cuando un proceso
tiene que esperar para adquirir un cerrojo.
 Los cambios de contexto pueden llevar un tiempo
considerable. Por tanto, cuando se espera que los
cerrojos se mantengan durante un periodo de tiempo
corto, los cerrojos mediante bucle sin fin pueden resultar
útiles; por eso se emplean a menudo en los sistemas
multiprocesador, donde una hebra puede "ejecutar un
bucle" sobre un procesador mientras otra hebra ejecuta
su sección critica en otro procesador.
 Un proceso bloqueado, que está esperando, debe
reiniciarse cuando algún otro proceso ejecuta una
operación de señal. El proceso se reinicia mediante una
operación reinicio, que cambia al proceso del estado de
espera al estado de preparado. El proceso se coloca en
la cola de procesos preparados.
 Cada semáforo tiene un valor entero y una lista de
procesos. Cuando un proceso tiene que esperar en un
semáforo, se añade a la lista de procesos. Una
operación de señal elimina un proceso de la lista de
procesos en espera y lo reinicia.
 La operación bloqueo suspende al proceso que la ha
invocado. La operación reinicio reanuda la ejecución de
un proceso bloqueado. Estas dos operaciones las
proporciona el sistema operativo como llamadas al
sistema básicas.
 El aspecto critico de los semáforos es que se
deben ejecutar individualmente: tenemos que
garantizar que dos procesos no puedan ejecutar
al mismo tiempo sendas operaciones en espera
y señal sobre el mismo semáforo. Se trata de un
problema de sección crítica.
 En un entorno multiprocesador, hay que
deshabilitar las interrupciones en cada
procesador; si no se hace así, las instrucciones
de los diferentes procesos (que estén
ejecutándose sobre diferentes procesadores)
pueden intercalarse de forma arbitraria.
Deshabilitar las interrupciones en todos los
procesadores puede ser una tarea compleja y,
además, puede disminuir seriamente el
rendimiento. Por tanto, los sistemas de
semáforos deben proporcionar técnicas
alternativas de bloqueo, como por ejemplo
cerrojos mediante bucle sin fin, para asegurar
que las operaciones en espera y señal se
ejecuten individualmente.
INTERBLOQUEOS E INANICIÓN
 La implementación de un semáforo con una cola de
espera puede dar lugar a una situación en la que
dos o más procesos estén esperando
indefinidamente a que se produzca un suceso que
solo puede producirse como consecuencia de las
operaciones efectuadas por otro de los procesos
en espera. El suceso en cuestión es la ejecución
de una operación Señal. Cuando se llega a un
estado así, se dice que estos procesos se han inter
bloqueado.
 Decimos que un conjunto de procesos está en un estado
de interbloqueo cuando todos los procesos del conjunto
están esperando un suceso que solo puede producirse
como consecuencia de las acciones de otro proceso del
conjunto. Los sucesos que más nos interesan aquí son
los de adquisición y liberación de recursos, pero también
hay otros tipos de sucesos que pueden dar lugar a
interbloqueos.
 Otro problema relacionado con los interbloqueos es el
del bloqueo indefinido o muerte por inanición, una
situación en la que algunos procesos esperan de forma
indefinida dentro del semáforo. El bloqueo indefinido
puede producirse si añadimos y eliminamos los procesos
a la lista asociada con el semáforo utilizando un
esquema LIFO (last-in, first-out).

Mecanismo de-semáforos

  • 1.
    MECANISMO DE SEMÁFOROS JaramilloGonzález Axl Eduardo Zúñiga Gutiérrez José Angel
  • 2.
     Es unavariable entera a la que solo se accede mediante dos operaciones individuales estándar: espera y señal.  Todas las modificaciones del valor entero del semáforo en las operaciones espera y señal deben ejecutarse de forma indivisible. Es decir, cuando un proceso modifica el valor del semáforo, ningún otro proceso puede modificar simultáneamente el valor de dicho semáforo.
  • 3.
    IMPLEMENTACIÓN  La principaldesventaja de la definición de semáforo dada aquí es que requiere una espera activa. Mientras un proceso está en su sección crítica, cualquier otro proceso que intente entrar en su sección crítica debe ejecutar continuamente un bucle en el código de entrada. Este bucle continuo plantea claramente un problema en un sistema real de multiprogramación, donde una sola CPU se comparte entre muchos procesos.
  • 4.
     La esperaactiva desperdicia ciclos de CPU que algunos otros procesos podrían usar de forma productiva. Este tipo de semáforo también se denomina cerrojo mediante bucle sin fin, ya que el proceso "permanece en un bucle sin fin" en espera de adquirir el cerrojo. Los cerrojos mediante bucle sin fin tienen una ventaja y es que no requieren ningún cambio de contexto cuando un proceso tiene que esperar para adquirir un cerrojo.
  • 5.
     Los cambiosde contexto pueden llevar un tiempo considerable. Por tanto, cuando se espera que los cerrojos se mantengan durante un periodo de tiempo corto, los cerrojos mediante bucle sin fin pueden resultar útiles; por eso se emplean a menudo en los sistemas multiprocesador, donde una hebra puede "ejecutar un bucle" sobre un procesador mientras otra hebra ejecuta su sección critica en otro procesador.
  • 6.
     Un procesobloqueado, que está esperando, debe reiniciarse cuando algún otro proceso ejecuta una operación de señal. El proceso se reinicia mediante una operación reinicio, que cambia al proceso del estado de espera al estado de preparado. El proceso se coloca en la cola de procesos preparados.  Cada semáforo tiene un valor entero y una lista de procesos. Cuando un proceso tiene que esperar en un semáforo, se añade a la lista de procesos. Una operación de señal elimina un proceso de la lista de procesos en espera y lo reinicia.  La operación bloqueo suspende al proceso que la ha invocado. La operación reinicio reanuda la ejecución de un proceso bloqueado. Estas dos operaciones las proporciona el sistema operativo como llamadas al sistema básicas.
  • 7.
     El aspectocritico de los semáforos es que se deben ejecutar individualmente: tenemos que garantizar que dos procesos no puedan ejecutar al mismo tiempo sendas operaciones en espera y señal sobre el mismo semáforo. Se trata de un problema de sección crítica.
  • 8.
     En unentorno multiprocesador, hay que deshabilitar las interrupciones en cada procesador; si no se hace así, las instrucciones de los diferentes procesos (que estén ejecutándose sobre diferentes procesadores) pueden intercalarse de forma arbitraria. Deshabilitar las interrupciones en todos los procesadores puede ser una tarea compleja y, además, puede disminuir seriamente el rendimiento. Por tanto, los sistemas de semáforos deben proporcionar técnicas alternativas de bloqueo, como por ejemplo cerrojos mediante bucle sin fin, para asegurar que las operaciones en espera y señal se ejecuten individualmente.
  • 9.
    INTERBLOQUEOS E INANICIÓN La implementación de un semáforo con una cola de espera puede dar lugar a una situación en la que dos o más procesos estén esperando indefinidamente a que se produzca un suceso que solo puede producirse como consecuencia de las operaciones efectuadas por otro de los procesos en espera. El suceso en cuestión es la ejecución de una operación Señal. Cuando se llega a un estado así, se dice que estos procesos se han inter bloqueado.
  • 10.
     Decimos queun conjunto de procesos está en un estado de interbloqueo cuando todos los procesos del conjunto están esperando un suceso que solo puede producirse como consecuencia de las acciones de otro proceso del conjunto. Los sucesos que más nos interesan aquí son los de adquisición y liberación de recursos, pero también hay otros tipos de sucesos que pueden dar lugar a interbloqueos.  Otro problema relacionado con los interbloqueos es el del bloqueo indefinido o muerte por inanición, una situación en la que algunos procesos esperan de forma indefinida dentro del semáforo. El bloqueo indefinido puede producirse si añadimos y eliminamos los procesos a la lista asociada con el semáforo utilizando un esquema LIFO (last-in, first-out).