Sistemas Operativos Distribuidos Memoria compartida distribuida DSM Distributed
Sistemas Operativos Distribuidos Memoria compartida distribuida (DSM, Distributed Shared Memory) Fernando Pérez Costoya
Contenidos del Tema • • • Introducción Estrategias de implementación Aspectos de diseño de DSM Modelos de coherencia Ejemplo de implementación de DSm: – Sistema basada en páginas con coherencia secuencial Sistemas Operativos Distribuidos Fernando Pérez Costoya José María Peña Sánchez
Introducción (1/2) • Multiprocesadores con mem. compartida vs. s. distribuidos: – HW más complejo y difícilmente ampliable – SW más sencillo y mejor conocido • Modelo de programación en sistemas con mem. compartida – Llamadas a procedimiento (o invocación de métodos) – Comunicación mediante datos compartidos – Sincronización mediante semáforos • Modelo de programación tradicional en s. distribuidos – Basado en paso de mensajes Sistemas Operativos Distribuidos Fernando Pérez Costoya José María Peña Sánchez
Introducción (2/2) • Nuevo modelo de programación en s. distribuidos – RPC (o RMI) – Memoria compartida distribuida (DSM) • Memoria compartida implementada por software • Simulada mediante paso de mensajes • Permite comunicación mediante datos compartidos y sincronización mediante semáforos • Objetivo: – Sistemas fáciles de construir y programar • Problema: – Obtener un rendimiento aceptable Sistemas Operativos Distribuidos Fernando Pérez Costoya José María Peña Sánchez
Visión general de la DSM Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000 Sistemas Operativos Distribuidos Fernando Pérez Costoya José María Peña Sánchez
Estrategias de implementación (1/2) • DSM basada en hardware: – Multiprocesadores con arquitectura NUMA (p. Ej. Dash) – HW permite a un procesador acceder a memoria privada de otro – Dado carácter HW, queda fuera de esta exposición • DSM basada en páginas: – Único espacio de direcciones virtuales para todo el sistema • Intenta imitar a un multiprocesador – Fallo de página puede implicar solicitarla a máquina remota • SO notifica fallo a módulo DSM que envía mensaje solicitando página – Accesos a DSM convencionales (LOAD/STORE) – En principio, programas diseñados para multiprocesador pueden usarse directamente sin. Pérez Costoya Sistemas Operativos Distribuidos Fernando Pérez Costoya José María Peña Sánchez
DSM basada en páginas Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000 Sistemas Operativos Distribuidos Fernando Pérez Costoya José María Peña Sánchez
Estrategias de implementación (2/2) • DSM basada en variables compartidas: – Sólo se comparten variables marcadas como tal en programa – Compilador + entorno de ejecución encargados de gestionar accesos a estas variables – Acceso a DSM se convierte en llamada a entorno de ejecución – Ejemplos: Munin y Midway • DSM basada en objetos: – Se comparten objetos – DSM=Colección de objetos compartidos – Acceso a datos compartidos mediante métodos • Facilita control de accesos – Ejemplos: Linda, Orca Sistemas Operativos Distribuidos Fernando Pérez Costoya José María Peña Sánchez
Aspectos de diseño de DSM • Granularidad de los datos compartidos – Proceso accede a dato no presente en su máquina – ¿Qué se solicita? • Sólo el dato requerido Puede ser ineficiente • Unidad mayor que contiene dato Genera “falsesharing” – Inevitable en DSM basada en páginas • Thrashing – Procesos compitiendo por dato (realmente o por “falsesharing”) – Puede causar sobrecarga por transferencia de mensajes • Página “viaja” continuamende de procesador a procesador • Política de escritura: – Write-update: dato escrito se propaga a copias Fernando Pérez Costoya Sistemas Operativos Distribuidos Fernando Pérez Costoya José María Peña Sánchez
False-sharing • Ejemplo para un sistema DSM basado en páginas, producido por accesos a A y a B en dos procesadores distintos Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000 Sistemas Operativos Distribuidos Fernando Pérez Costoya José María Peña Sánchez
Modelos de coherencia • Buen rendimiento requiere múltiples copias de los datos • Compromiso entre coherencia y rendimiento: – Modelos de coherencia más “relajados” • Modelo de coherencia: – Contrato entre el SW y la memoria que establece qué reglas deben seguir las aplicaciones para funcionar correctamente • Aplicables a coherencia de cache en multiprocesadores • Numerosos modelos propuestos en literatura(Mosberger 1993) Fernando Pérez Costoya – Dependiendo de si distinguen entre tipos de accesos o Fernando Pérez Costoya José María Peña Sánchez
Ejemplo de acceso compartido Procesador 1 Procesador 2 x = 1; y = 1; print z z = 2; print x, y Orden de ejecución real P 1: x = 1; P 2: z = 2; P 1: y = 1; P 2: print x, y P 1: print z • Las variables valen inicialmente 0 • Análisis de resultados dependiendo del modelo de coherencia – ¿qué valores se imprimen? Sistemas Operativos Distribuidos Fernando Pérez Costoya José María Peña Sánchez
Coherencia atómica • Lectura de una posición de memoria devuelve el valor guardado por la operación de escritura más reciente • Orden absoluto con respecto al tiempo de accesos a memoria • Difícil de implementar en sistemas distribuidos • Único resultado válido: – P 2: {x=1, y=1}; P 1: {z=2} Sistemas Operativos Distribuidos Fernando Pérez Costoya José María Peña Sánchez
Coherencia secuencial • Modelo uniforme más débil (Lamport, 1979) • “Resultado equivalente a que los accesos a memoria de los procesadores se ejecutaran en algún orden secuencial apareciendo las operaciones de cada procesador en el orden especificado por su programa”. • Definición similar a la “seriabilidad” de las transacciones • Todos los procesadores ven accesos a memoria en el mismo orden que puede ser distinto del tiempo real Sistemas Operativos Distribuidos Fernando Pérez Costoya José María Peña Sánchez
Coherencia secuencial en el ejemplo • Algunos resultados válidos adicionales: – P 2: {x=0, y=0}; P 1: {z=2} • Posible orden: z=2; print x, y; x=1; y=1; print z – P 2: {x=1, y=0}; P 1: {z=2} • Posible orden: x=1; z=2; print x, y; y=1; print z • Algunos resultados inválidos (no hay un orden posible) – P 2: {x=0, y=0}; P 1: {z=0} – P 2: {x=1, y=0}; P 1: {z=0} – P 2: {x=0, y=1}; P 1: {z=2} Sistemas Operativos Distribuidos Fernando Pérez Costoya José María Peña Sánchez
Coherencia débil • No siempre se requiere propagar escrituras inmediatamente – P. ej. proceso en sec. crítica sólo necesita propagar cambios al salir • Modelo de coherencia híbrido (Dubois, 1986): – Se distinguen distintos tipos de variables • Uso de un nuevo tipo: variables de sincronización • Sólo accesos a v. sincronización tienen coherencia secuencial • Coherencia de liberación (Gharachorloo, 1990) – Modelo de coherencia de tipo débil – 2 operaciones sobre v. sincro: acquire. Lock y release. Lock – En acquire. Lock se recogen escrituras remotas Sistemas Operativos Distribuidos Fernando Pérez Costoya José María Peña Sánchez
Coherencia de liberación Process 1: acquire. Lock(); // enter critical section a : = a + 1; b : = b + 1; release. Lock(); // leave critical section Process 2: acquire. Lock(); // enter critical section print ("The values of a and b are: ", a, b); release. Lock(); // leave critical section Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000 Sistemas Operativos Distribuidos Fernando Pérez Costoya José María Peña Sánchez
Ejemplo de implementación de DSM • DSM basada en páginas con coh. secuencial e invalidación • Múltiples copias de páginas para mejorar rendimiento • Cada página tiene asociado: – Un estado: R (sólo lectura) o W (lectura/escritura) – Un propietario: el último proceso que la modificó • Página W sólo 1 copia en máquina propietaria • Página R copia en varias máquinas (1 propietaria) • Lectura: – Si tiene copia local: lee de la misma – Si no: la solicita a propietario y la marca R • Si el propietario la tenía W, la pasa a R (degradación) Sistemas Operativos Distribuidos Fernando Pérez Costoya José María Peña Sánchez
Ejemplo de implementación de DSM • Escritura: – Si propietario y W: escribe copia local – Si propietario y R: invalida copias, escribe local y marca W – Si copia local pero no propietario: • genera invalidación, se hace propietario, marca W y escribe – Si no copia local: • la solicita a propietario, genera invalidación, se hace propietario, marca W y escribe • Requiere poder localizar propietario y poseedores de copias – Mediante broadcast – 1 o más “controladores” mantienen información sobre Sistemas Operativos Distribuidos Fernando Pérez Costoya José María Peña Sánchez las páginas
- Slides: 19