SEMÁFOROS
Se usan en exclusión mutua y sincronización.
¿Qué aportan?
• Simplicidad en protocolos de sincronización
• No son necesarios bucles de espera
Un semáforo es una variable entera no negativa que puede
actualizarse sólo con dos procedimientos: P y V, o wait y signal.
Wait(S) Si S>0 se decrementa S en 1
Si S<=0 se bloquea hasta que S>0, y al desbloquearse se
decrementa en 1.
Signal(S) ++S
¡Son indivisibles!
Mutex
Cuando dos o más subprocesos tienen que obtener acceso a un recurso compartido al mismo tiempo, el sistema necesita un mecanismo de sincronización para garantizar que sólo uno de los subprocesos utilice el recurso en ese momento. Mutex es un primitivo de sincronización que otorga acceso exclusivo al recurso compartido a un solo subproceso. Cuando un subproceso adquiere una exclusión mutua (mutex), el siguiente subproceso que intenta adquirir dicha exclusión mutua se suspende hasta que el primer subproceso libera la exclusión mutua.
Barrera(Barriers)
Enunciado. Un proceso crea N hilos. El comportamiento de cada uno consiste en la ejecución de un bucle con tres partes:
A
BARRERA
B
En cada iteración del bucle los hilos ejecutarán A sin realizar ninguna sincronización; a continuación todos ellos esperan a que el resto llegue a la BARRERA. Una vez que todos han llegado a la barrera (todos han ejecutado A), continúan ejecutando B y el bucle se repite.
Salidas. Cada hilo deberá informar del número de iteración junto con el punto del bucle que acaba de ejecutar.
Finalización. Ejecutar la iteración un cierto número de veces
Esquema del problema
Muchos problemas de cálculo se pueden resolver de acuerdo al siguiente esquema:
Ejemplos:
–procesamiento de imágenes
–funciones definidas sobre mallas de puntos
–resolución de sistemas de ecuaciones
–problemas de optimización, etc.
La ejecución de “esperar al resto de procesos” es una sincronización, este tipo se denomina “sincronización por barrera”.
http://it.aut.uah.es/danihc/DHC_files/menus_data/SCTR/Sinc_Com_Variables.pdf
http://msdn.microsoft.com/es-es/library/system.threading.mutex(VS.80).aspx
http://www.mitecnologico.com/Main/BarrerasBarrier
domingo, 15 de febrero de 2009
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario