UPV-EHU / ATC Arquitecturas Paralelas 12-131 4. Sincronización de procesos en sistemas SMP - Introducción - Exclusión mutua - Sincronización mediante eventos.

Slides:



Advertisements
Presentaciones similares
IBD Clase 16.
Advertisements

El modelo de Von Neumann
Computadores de alta velocidad (la lista top500).
Concurrencia Exclusión mutua y sincronización
Tabla de Contenido Concurrencia.
TEMA 1 Introducción a la Programación Concurrente
Compiladores e intérpretes
Nuestro reto es educar al pensamiento, para que razone de acuerdo a ciertas reglas; con ello podremos ser más eficientes al momento en que ordenamos.
Multiprocesadores 3.1 Dominios de aplicación
I.T.E.S.R.C. Romina Tamez Andrea Martínez Ma. De Lourdes Solís
T5-multithreading SO-Grado Q1.
PROGRAMACIÓN PARALELA Tema 5: Análisis de algoritmos paralelos
PROCESADORES SUPERESCALARES
El presente material contiene
Arquitecturas Paralelas 12-13
CICLOS EN C – PARTE 2.
Unidad 6 Interbloqueos (Dead Lock)
DIAGRAMAS DE FLUJO Y PSEUDOCÓDIGO
Concepto de programa. Directorio Concepto de programa. Analisis del problema. Resolucion del problema. Desarroollo de un programa. Partes constitutivas.
Sistemas Operativos Distribuidos
Arquitecturas Paralelas IF - EHU Arquitecturas Paralelas 7. Coherencia de Datos en computadores DSM - Introducción - Directorios de coherencia: MP/MC -
SISTEMAS OPERATIVOS UNIDAD 1..
Arquitecturas Paralelas 12-13
UPV - EHU Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 1 Control de procesos y sincronización.
Técnicas Digitales III Ejemplo de multiprocesamiento - Semáforo Universidad Tecnológica Nacional Facultad Regional San Nicolás.
Tema 3. Optimización de Código
Sincronización de procesos
Arquitecturas Paralelas IF - EHU Arquitecturas Paralelas 8. Paralelización de bucles. Reparto de tareas. - Introducción - Paralelización de bucles - Mecanismos.
ESTRUCTURAS DE CONTROL
ISA (Instruction Set Architecture)
Concurrencia: interbloqueo e inanición
Unidad 2: Organización del CPU
Concurrencia: Exclusión Mútua y Sincronización
Capítulo 3 Concurrencia: exclusión mutua y sincronización. Comunicación entre procesos.
Conceptos generales: Concurrencia: Existencia simultánea de varios procesos en ejecución. IMPORTANTE: EXISTENCIA SIMULTÁNEA NO IMPLICA EJECUCIÓN SIMULTÁNEA.
Sistemas Concurrentes: el problema de la exclusión mutua I.T. Informática de Sistemas Curso
PROGRAMACIÓN PARALELA Tema 4: Metodología de la programación
Unidad III Administración de procesos
Organización del Computador I Verano MIPS (1 de 2) Basado en el capítulo 3 del libro de Patterson y Hennessy Verano 2004 Profesora Borensztejn.
Administración de Memoria Memoria Virtual
Sincronización de procesos Mariano Gómez Plaza.  Mariano Gómez Plaza Sincronización de procesos 2 Tipos de procesos IndependientesCooperantes.
IET110 Sistemas Operativos P04: Exclusión Mutua Prof. Jonathan MakucSlide: 1.
Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),
Planificación de Procesos
Planificación y Gestión de procesos
 El acceso concurrente a datos compartidos puede dar pie a inconsistencia de datos  Mantener la consistencia de los datos requiere mecanismos para asegurar.
Sincronización de Procesos Conceptos Problema SC Soluciones Software Soluciones Hardware Emely Arráiz Ene-Mar 08.
Capítulo 7 Gestión de memoria.
Monitores Mecanismo sincronización de nivel más alto que semáforos Construcción a nivel de lenguaje de programación que controla el acceso a datos compartidos.
Sincronización de Procesos
Sincronización de Procesos
Tema 9.6: Sincronización de Procesos
Monitores Cabudare, noviembre de 2010 Universidad Fermín Toro
Programación Básica con “NQC” Pedro F. Toledo – Patricio Castillo 18/08/2006.
Arquitecturas Paralelas
Teoría de Sistemas Operativos Sincronización Procesos Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz
Integrantes: Ma Carmen Zaragoza Santiago Leticia González Hernández Abraham Obispo Antonio Alexis González Ramírez Eduardo Hernández Tolentino.
Administrador de procesos
Teoría de Sistemas Operativos Departamento de Electrónica 2º Semestre, 2002 Gabriel Astudillo Muñoz
Tema 5: Multiprocesadores
Teoría de Sistemas Operativos Sincronización Procesos
Metodología de la programación
Protocolos de Sondeo SNOOPY
UTFSM - Sistemas Operativos
Introducción a los TADs
Estructuras de Decisión
PROCESADOR.- El procesador es el cerebro del sistema, encargado de procesar toda la información. Básicamente, es el "cerebro" de la computadora. Prácticamente,
Desventajas Poco eficiente: lectura y escritura en disco es lenta Necesita otro mecanismo de sincronización para acceder a los datos Son los procesos.
Arquitectura de Computadoras (Taller) Semestre II de 2008.
1 Tema 6: Concurrencia de Procesos Sistemas Operativos.
Transcripción de la presentación:

UPV-EHU / ATC Arquitecturas Paralelas Sincronización de procesos en sistemas SMP - Introducción - Exclusión mutua - Sincronización mediante eventos - Sincronización mediante barreras

UPV-EHU / ATC Arquitecturas Paralelas Introducción  La memoria de los sistemas SMP es compartida y los procesos se comunican por medio de variables compartidas.... ST A(R1),F2... LD F5,A(R1)... PiPj ? En la mayoría de aplicaciones, hay que sincronizar la utilización de las variables para que el significado del programa sea “lógico”.

UPV-EHU / ATC Arquitecturas Paralelas Introducción  ¿Qué pasará en este caso (CONT = 0) ?... LD F1,CONT ADDI F1,F1,#1 ST CONT,F1... Pi... LD F1,CONT ADDI F1,F1,#1 ST CONT,F1... Pj LD ADDI ST LD....ADDI....ST CONT = 1!!!

UPV-EHU / ATC Arquitecturas Paralelas  Necesitamos accesos a memoria atómicos (sin interferencias) para poder sincronizar procesos.  Sincronizaciones de dos tipos: - Secciones críticas trozos de código que se tienen que ejecutar en exclusión mutua (un solo proceso al mismo tiempo). - Sincronización mediante eventos punto a punto → eventos (productor/consumidor) global → barreras Introducción

UPV-EHU / ATC Arquitecturas Paralelas  Los procesos quedarán en espera hasta que ocurra algo; es decir se perderá tiempo.  Características de los mecanismos de sincronización: - Latencia baja - Tráfico limitado - Buena escalabilidad - Bajo coste de memoria - Igualdad de oportunidades Para esperar un intervalo de tiempo: -- espera activa -- bloqueo Introducción

UPV-EHU / ATC Arquitecturas Paralelas Exclusión mutua  Parte de código que sólo debe ser ejecutado por un único procesador simultáneamente, sección crítica.  Para controlar la ejecución de la sección crítica: - cerrojos: 0, abierto; 1, cerrado - funciones lock - unlock : lock(S) : analizar el cerrojo; si está abierto, cerrar y pasar a ejecutar la sección crítica; si no, esperar hasta que se abra el cerrojo. unlock(S) : abrir el cerrojo.

UPV-EHU / ATC Arquitecturas Paralelas Exclusión mutua lock:LD R1,S BNZ R1,lock ADDI R2,R0,#1 ST S,R2 RET... k := k + 1;... Sección crítica unlock: ST S, R0 RET  Necesitamos instrucciones atómicas de tipo RMW. unlock(S) lock(S) ?

UPV-EHU / ATC Arquitecturas Paralelas T&S - Swap 1.1Test&Set ▪ T&S R1,S R1 := MEM[S]; MEM[S] := 1; lock:T&S R1,S BNZ R1,lock RET unlock:ST S,R0 RET

UPV-EHU / ATC Arquitecturas Paralelas T&S - Swap 1.2Swap ▪ SWAP R1,S R1 MEM[S]; lock:ADDIR1,R0,#1 l1:SWAPR1,S BNZ R1,l1 RET unlock:ST S,R0 RET

UPV-EHU / ATC Arquitecturas Paralelas T&S - Swap En sistemas SMP es muy importante mantener el tráfico limitado.  Tráfico La instrucción T&S escribe siempre en el cerrojo; incluso cuando el cerrojo está cerrado; por lo tanto, se invalida el bloque que contiene el cerrojo una y otra vez. Como consecuencia se genera mucho tráfico de datos cuando hay varios procesos que están esperando a entrar en la sección crítica.

UPV-EHU / ATC Arquitecturas Paralelas TS/INV] S=0,INV P0 P1 ? P2 ? P3 ? P4 ? TS/INV] x P0 está en SC BRQ = pedir bloque / x = invalidado / control del bus = FIFO x BRQ x BRQ x BRQ... repetir! SC x x x x [TS BRQ [TS BRQ [TS BRQ [TS BRQ [TS.. TS/INV] [TS.. TS/INV] [TS... TS/INV] [TS.. T&S – Swap: simulación del tráfico

UPV-EHU / ATC Arquitecturas Paralelas T&S with backoff 1 Test&Set with backoff  Mejoras para minimizar el tráfico lock:T&S R1,S BNZ R1,esperar RET esperar:CALL ESPERA [ actualizar t. espera ] JMP lock Si el cerrojo está cerrado no intentar entrar una y otra vez: dejar un intervalo de tiempo sin intentarlo. Suele ser adecuado tener tiempos de espera exponenciales: t 0 = k; t 1 = k × c; t 2 = k × c 2 ;...(c>1)

UPV-EHU / ATC Arquitecturas Paralelas Test-and-T&S 2 Procedimiento Test-and-Test&Set  Mejoras para minimizar el tráfico lock:LD R1,S BNZ R1,lock T&S R1,S BNZ R1,lock RET Dividir la operación lock en dos partes: (a) leer hasta encontrar el cerrojo abierto ( LD ). (b) intentar cerrar el cerrojo de manera atómica ( T&S ).

UPV-EHU / ATC Arquitecturas Paralelas LD[TS S=0,INV P0 P1 LD P2 LD P3 LD P4 LD x TS/INV]LD.. TS/INV] LD LD LD... xxxxxxxx BRQ BRQ BRQ BRQ... SC Tráfico de datos (bloques) para que entre un proc. en SC → P + (P-1) + (P-2) para salir de SC → 1 en total → 3P – 2P proc. → 3P 2 /2 TS/INV] LD[TS LD[TS... LD[TS. x BRQ x BRQ x BRQ x BRQ..... x BRQ. Test-and-T&S: simulación de tráfico

UPV-EHU / ATC Arquitecturas Paralelas LL – SC / C&Swap 2.1Load Locked / Store Conditional ▪ LL R1,S R1 := MEM[S]; LSin [dir] := S; LSin [flag] := 1; - La operación atómica se divide en dos partes - Para asegurar la atomicidad se utiliza un flag de hardware ▪ SC S,R1 si (LSin [dir,flag] = S,1) MEM[S] := R1; LSin [flag] := 0; en todos los proc.(INV) R1 := 1; se ha escrito si_no R1 := 0 no se ha escrito

UPV-EHU / ATC Arquitecturas Paralelas LL – SC / C&Swap lock:ADDI R2,R0,#1 l1:LL R1,S BNZ R1,l1... SC S,R2 BZ R2,lock RET unlock:ST S,R0 RET 2.1Load Locked / Store Conditional Se genera tráfico una única vez, al entrar a la sección crítica; En el resto de los casos no se escribe!

UPV-EHU / ATC Arquitecturas Paralelas LL (1) [SC..... S=0,INV P0 P1 LL P2 LL P3 LL P4 LL SC] LL SC] LL SC] LL..... xxxxxxxx BRQ BRQ BRQ BRQ..... SC SC /INV] LL (1) [SC LL (1) [SC.. LL (1) [SC (0) x BRQ (0) x BRQ.... (0) x BRQ LL- SC: simulación del tráfico Tráfico de datos (bloques) para que entre un proc. en SC → P + (P – 1) para salir de SC → 0 en total → 2P – 1P proc. → P 2

UPV-EHU / ATC Arquitecturas Paralelas LL – SC / C&Swap 2.2Compare&Swap ▪ C&S R1,R2,S si (R1 = MEM[S]) MEM[S] R2; lock:ADDI R2,R0,#1 l1:C&S R0,R2,S BNZ R2,l1 RET

UPV-EHU / ATC Arquitecturas Paralelas Fetch&OP 3Fetch&Op ▪ Fetch&Incr R1,A R1 := MEM[A] MEM[A] := MEM[A] + 1; ▪ Fetch&Dcr R1,A ▪ Fetch&Add R1,R2,A R1 := MEM[A] MEM[A] := MEM[A] + R2;

UPV-EHU / ATC Arquitecturas Paralelas Tickets 1 Tickets  Alternativas para reducir el tráfico F&I R1,TICKET tick:LL R1,TICKET ADDI R2,R1,#1 SC TICKET,R2 BZ R2, tick Idea: ordenar las entradas a las secciones críticas. Dos variables: turno (a quién le corresponde entrar en la SC) y ticket, para conocer tu turno. Antes de entrar, obtener un ticket y después esperar hasta que llegue el turno.

UPV-EHU / ATC Arquitecturas Paralelas Tickets 1 Tickets lock:F&I R1,TICKET l1:LD R2,TURNO SUB R3,R1,R2 BNZ R3, l1 RET unlock: LD R1,TURNO ADDI R1,R1,#1 ST TURNO,R1 RET Tráfico: - cuando se obtiene el ticket - cuando se actualiza la variable turno  Alternativas para reducir el tráfico

UPV-EHU / ATC Arquitecturas Paralelas Vectores de cerrojos 2 Vectores de cerrojos Proceso en SC ÍNDICE : Siguiente posición de espera VC No utilizar la variable compartida TURNO, sino un cerrojo privado por cada proceso. Cada proceso avisa al siguiente. 1 0 Proceso en SC  Alternativas para reducir el tráfico

UPV-EHU / ATC Arquitecturas Paralelas Vectores de cerrojos 2 Vectores de cerrojos lock:F&I R1,INDICE l1:LD R2,VC(R1) BNZ R2, l1 ST MI_INDICE,R1 RET unlock: ADDI R2,R0,#1 LD R1, MI_INDICE ST VC(R1),R2 ADDI R1,R1,#1 ST VC(R1),R0 RET Tráfico: Solamente una vez, cuando se actualizan los componentes del vector de cerrojos  Alternativas para reducir el tráfico

UPV-EHU / ATC Arquitecturas Paralelas Tickets / Vectores de cerrojos: simulación del tráfico LD TURNO++,INV P0 P1 LD P2 LD P3 LD P4 LD LD LD... xxxxxxxx BRQ BRQ BRQ BRQ..... SC Tráfico de datos (bloques) Tickets → 1 + P → P(P+3) / 2 Vectores de cerrojos → → 3P VC(I+1)=0,INV P0 P1 LD.. P2 LD.... P3 LD.... P4 LD.... LD x BRQ SC

UPV-EHU / ATC  Tráfico para entrar en la sección crítica (un SMP de 8 procesadores; caso peor: P = 7 procesadores están esperando para entrar.) T&S (sin límite) Test-and-Test&SetP(3P-1)/270 bloques LL - SC P 2 49 bloques TicketsP(P+3)/235 bloques Vector de cerrojos3P21 bloques Resumen

UPV-EHU / ATC Arquitecturas Paralelas Sincronización mediante eventos 1 Sincronización punto a punto mediante eventos Sincronización habitual entre productor y consumidor mediante un flag. P1P2 A = F1(B); B = F2(A); post(flag); wait(flag); while (flag == 0); flag = 1; post(flag,i); wait(flag,i);

UPV-EHU / ATC Arquitecturas Paralelas Barreras 2 Sincronización mediante barreras Estructura de datos “barrera”: struct tipo_barrera { int S; int cont; int flag; } Sincronización global: se sincroniza un conjunto de procesos antes de seguir con la ejecución.

UPV-EHU / ATC Arquitecturas Paralelas Barreras Una barrera sencilla ( B, un struct de tipo tipo_barrera ) Barrera (B,P) { LOCK (B.S); if (B.cont == 0) B.flag = 0; B.cont++; mi_cont = B.cont; UNLOCK (B.S) if (mi_cont == P) { B.cont = 0; B.flag = 1; } else while (B.flag == 0); }

UPV-EHU / ATC Arquitecturas Paralelas Barreras Barrera reutilizable BARRERA (B,P) { val_sal = !(val_sal); LOCK (B.S); B.cont++; mi_cont = B.cont; UNLOCK (B.S) if (mi_cont == P) { B.cont = 0; B.flag = val_sal; } else while (B.flag != val_sal); }

UPV-EHU / ATC Arquitecturas Paralelas Barreras  Eficiencia: tráfico de datos Supogamos que las variables S, cont y flag están en bloques diferentes (para evitar la falsa compartición). En una barrera de P procesos el procesador Pi solicitará los siguientes bloques: - el de S, para ejecutar el lock - el de cont, para el incremento - el de flag, dos veces, al comienzo y al final del bucle de espera. >> total, 4P (sin contención en la entrada)

UPV-EHU / ATC Arquitecturas Paralelas Resumen - Los procesos paralelos necesitan sincronización (a menudo), bien sea para organizar secciones críticas o para “homogeneizar” la ejecución de un conjunto de procesos. - La sincronización debe generar el menor tráfico posible, y tiene que ocurrir lo más rápido posible. - Para crear secciones críticas hacen falta instrucciones especiales, atómicas: T&S / LL-SC. Se pueden utilizar distintas estrategias: Test-and-T&S, tickets, vectores de cerrojos...

UPV-EHU / ATC Arquitecturas Paralelas Resumen - Para sincronizar el productor y el consumidor basta con utilizar un flag (variable compartida). - Hay que utilizar barreras de sincronización para asegurar que los procesos de una aplicación paralela han llegado a cierto punto. Si es posible, las más adecuadas son las barreras que se pueden reutilizar.