Professional Documents
Culture Documents
Sincronización de Procesos
INGENIERÍA EN INFORMÁTICA
Sistemas de Operación
(actualizado)
Sistemas Operativos
Procesos Independientes
Sistemas Operativos
Procesos Cooperativos
• Cooperación ⇒ sincronización y
comunicación.
• Sincronización ⇒ esperar hasta que se
produzca un determinado evento o se den
ciertas condiciones (por ejemplo, el uso de
semáforos para controlar el tráfico en vías
que se cruzan entre sí).
• Comunicación ⇒ intercambio de
información, datos, etc.
Sistemas Operativos
Procesos Cooperativos
• Ejemplo 1:
Sistemas Operativos
Procesos Cooperativos
• Ejemplo 2:
Sistemas Operativos
Procesos Cooperativos
Sistemas Operativos
Memoria Compartida
Sistemas Operativos
Memoria Compartida
Sistemas Operativos
Sincronización
Sistemas Operativos
Sincronización
Sistemas Operativos
Sincronización
Sistemas Operativos
Sincronización
Sistemas Operativos
Sincronización
Sistemas Operativos
Sincronización
Sistemas Operativos
Región Crítica
Sistemas Operativos
Región Crítica
Sistemas Operativos
Región Crítica
Sistemas Operativos
Región Crítica
Sistemas Operativos
Región Crítica
Sistemas Operativos
Región Crítica
Sistemas Operativos
Región Crítica
Sistemas Operativos
Región Crítica
• Deshabilitar interrupciones:
§ Consideraciones:
o Las interrupciones necesitan un servicio rápido ⇒
no hay que interferirlas demasiado → la RC
anterior debe ser lo más breve posible.
o Sólo bloquear las interrupciones cuyos
manejadores acceden a la sección crítica.
§ Esto no suele ser siempre viable en multi-
procesadores → el costo de deshabilitar las
interrupciones en todos los procesadores es
muy elevado.
Sistemas Operativos
Región Crítica
• ¿Esperar o bloquear?
§ Depende de cuanto se va a tardar (medido
respecto al costo de cambio de contexto y el
manejo de colas):
o Si la RC es corta, mejor esperar.
o Si la RC es larga, mejor bloquear.
§ La mayoría de los sistemas reales ofrecen
ambos mecanismos y se elige uno u otro en
función del caso.
Sistemas Operativos
Región Crítica
Sistemas Operativos
Región Crítica
Sistemas Operativos
Región Crítica
• Algoritmo 2 (avisadores):
Sistemas Operativos
Región Crítica
Sistemas Operativos
Región Crítica
Sistemas Operativos
Región Crítica
Sistemas Operativos
Región Crítica
Sistemas Operativos
Región Crítica Condicional
Sistemas Operativos
Semáforos
Sistemas Operativos
Semáforos
• Si s es un semáforo:
§ Wait(s): P(Proberem – probar)
Decrementa el valor de s; si su valor es
mayor que 0. Si es igual a 0 el proceso
se “bloquea” en el semáforo.
§ Signal(s): V(Verhogen – incrementar)
Si lo hay, desbloquea algún proceso
bloqueado en s. Si no, incrementa el
semáforo en 1.
• Initial(s, v):
Inicializa el semáforo s al valor entero v.
Sistemas Operativos
Semáforos
Sistemas Operativos
Semáforos
• Tipos:
§ Contador o general: valor entero que puede
variar en un dominio no restringido; existen
varias instancias de un recurso.
§ Binario: valor entero que sólo puede variar
entre 0 y 1.
Sistemas Operativos
Semáforos
• Exclusión mutua:
§ Para cada proceso, cada SC debe ir
precedido de un “wait(s)” sobre un semáforo
binario s y debe terminar con un “signal(s)”.
Sistemas Operativos
Semáforos
• Condiciones de sincronización:
§ Se asocia un semáforo a cada condición;
cuando un proceso ha hecho que se cumpla
una determinada condición c, lo indica
ejecutando un “signal(c)”; un proceso
esperará a que la condición sea cierta
mediante un “wait(c)”
§ Se suelen utilizar semáforos generales (no
binarios). Permiten controlar la asignación de
recursos. El valor del semáforo indicará
cuántos recursos disponibles hay en cada
momento.
Sistemas Operativos
Semáforos
Sistemas Operativos
Semáforos
Sistemas Operativos
Semáforos
• Limitaciones:
§ Uso no forzado, sólo por convención.
§ No son un mecanismo de comunicación.
§ No está limitado el tiempo que un proceso
puede estar bloqueado en un semáforo.
§ Normalmente, no poseen una operación para
saber el estado sin exponerse a un bloqueo.
§ En general, son mecanismos de bajo nivel.
Sistemas Operativos
Semáforos
• Interbloqueo (deadlock):
§ Se produce cuando dos o más procesos
esperan indefinidamente por un suceso que
debe ser provocado por uno de los procesos
que esperan.
Sistemas Operativos
Semáforos
• Interbloqueo (deadlock):
§ Es fácil producirlo con semáforos.
§ La solución es usar siempre el mismo orden
para los semáforos en todos los procesos;
pero no siempre es posible hacerlo.
Sistemas Operativos
Semáforos
• Inanición:
§ Un proceso nunca será eliminado de la cola
del semáforo en el cual está suspendido.
§ A diferencia del interbloqueo:
o No es cierto que el proceso no obtendrá nunca el
recurso (el proceso espera por algo que, siempre
que esté disponible, no le es asignado, por
ejemplo por su baja prioridad).
o El recurso bajo contención está en uso continuo.
Sistemas Operativos