Está en la página 1de 35

Módulo III

Sistemas de archivos distribuidos.


Memoria compartida distribuida
Contenido 2

Sistemas de archivos distribuidos, transacciones, bases de datos distribuidas,


memoria distribuida ............................................................................................ 4

Introducción .................................................................................................... 4

Desarrollo ....................................................................................................... 5

Sistemas de archivos distribuidos ...................................................................... 5

Principales características .............................................................................. 5

Propiedades de los Sistemas de Archivos Distribuidos .................................. 5

Aspectos de diseño ........................................................................................ 7

Aspectos de Implementación .......................................................................... 8

Mediciones dinámicas en el uso de archivos .............................................. 9

Estructura del sistema ................................................................................. 9

Caching ..................................................................................................... 13

Replicación................................................................................................ 14

Transacciones distribuidas ............................................................................... 15

Conceptos básicos ....................................................................................... 15

Propiedades.................................................................................................. 15

Tipos de transacciones ................................................................................. 18

Transacciones distribuidas planas y anidadas .......................................... 18

Estados de una transacción.......................................................................... 19

Diagrama de Transición de Estados de una transacción .............................. 20

Bloqueos ....................................................................................................... 20

Bloqueos ................................................................................................... 21

Niveles de bloqueo .................................................................................... 21

Sistemas Distribuidos
Prof. Rubén Báez
Modos de bloqueo ..................................................................................... 22
3
Diseño de una transacción ........................................................................ 22

Base de datos distribuida ................................................................................. 23

Ejemplo de Base de Datos Distribuida ......................................................... 24

Ventajas de las Bases de Datos Distribuidas ............................................... 24

Desventajas de las Bases de Datos Distribuidas.......................................... 26

Memoria distribuida .......................................................................................... 27

Sistemas con Memoria Compartida Distribuida ............................................ 27

Características y funcionamiento .................................................................. 27

Estructura ..................................................................................................... 28

Modelo de Sincronización ............................................................................. 28

Clasificación de Sistemas Paralelos y Distribuidos....................................... 28

Modelos de Consistencia de la Memoria ...................................................... 30

Modelos de Consistencia de la Memoria................................................... 30

Consistencia Estricta ................................................................................. 31

Consistencia Secuencial ........................................................................... 31

Consistencia Causal ................................................................................. 32

Consistencia Relajada............................................................................... 33

Aproximaciones a la implementación ........................................................... 34

Bibliografía .................................................................................................... 35

Sistemas Distribuidos
Prof. Rubén Báez
Sistemas de archivos distribuidos, 4

transacciones, bases de datos


distribuidas, memoria distribuida

Introducción

Los Sistemas Distribuidos funcionan, en gran medida, con paradigmas que los
hacen bastante complejos al momento de su diseño, implementación o
mantenimiento.

Desde el modelo cliente/servidor hasta la gestión de los componentes como


objetos, se replantean muchos aspectos de los Sistemas Distribuidos que se
inician desde el manejo de los Sistemas de Archivos, se continúa con el
tratamiento de las Transacciones, pasando por la administración de las Bases

Sistemas Distribuidos
Prof. Rubén Báez
de Datos Distribuidas y llegando hasta la propia gestión de la Memoria
5
Compartida.

Desarrollo

Sistemas de archivos distribuidos


Un Sistema de Archivos Distribuidos (Distributed File Systems - DFS), es una
implementación distribuida del clásico modelo de tiempo compartido de un
sistema de archivos, donde varios usuarios comparten archivos y almacenan
recursos.

Un sistema de Archivos Distribuidos permite a los procesos el acceso


transparente y eficiente de archivos que permanecen en servidores remotos.

Principales características

Entre las principales características que presentan podemos ver que:

► Son útiles en Intranets, redes locales y sistemas distribuidos


► Son responsables de la organización, almacenamiento, recuperación,
nominación, compartimiento y protección de los archivos
► Proporcionan una interfaz de programación que abstrae a los
programadores de los detalles de localización y asignación del
almacenamiento

Propiedades de los Sistemas de Archivos


Distribuidos

Un sistema de archivos se caracteriza por un conjunto de propiedades generales:

► Proporciona almacenamiento de información permanente


► Identifica los archivos en un espacio de nombres (normalmente
estructurado)

Sistemas Distribuidos
Prof. Rubén Báez
► Es posible el acceso concurrente desde varios procesos
6
► En sistemas multiusuario proporciona protección de accesos

Un Sistema de Archivos Distribuidos tiene también como objetivos las siguientes


propiedades:

► Transparencia en la identificación: espacio de nombres único e


independiente del cliente
► Transparencia de acceso: permite el acceso a los archivos de la misma
forma que como un sistema de archivo local
► Transparencia de localización: se desconoce la ubicación exacta de los
archivos
► Transparencia de movilidad: la ubicación de los archivos puede ser
cambiada
► Transparencia de prestaciones: continúa funcionando mientras la carga
del servicio varíe en un rango
► Transparencia de escalabilidad: es posible incrementar la capacidad
del sistema y usuarios de este de manera relativamente sencilla
► Escalabilidad: espacios de nombres estructurados, y replicación para
evitar cuellos de botella
► Robustez ante fallos: el servidor no debe verse afectado por los fallos
de los clientes, lo que incumbe a la gestión del estado de los clientes en
el servidor
► Disponibilidad y tolerancia a fallos: implican alguna forma de
replicación. Un aspecto de la disponibilidad es permitir el funcionamiento
en modo desconectado, que requiere caching de archivos enteros
► Consistencia: el objetivo es mantener en lo posible la semántica de los
sistemas centralizados
► Seguridad: la necesidad de autenticación remota implica nuevos
modelos de protección, basados en credenciales en lugar de listas de
accesos

Sistemas Distribuidos
Prof. Rubén Báez
► Actualizaciones concurrentes: soporta varios clientes modificando los
7
mismos datos de manera concurrente
► Replicación de archivos: puede ser implementada por redundancia o
caching
► Heterogeneidad: del hardware y sistema de operación
► Seguridad: mecanismos de control de acceso y autenticación
► Eficiencia: el desempeño debe ser similar a sistemas de archivos locales

Aspectos de diseño

Un sistema de archivos distribuidos generalmente tiene tres componentes


importantes: Servicio de Archivos, Servicio de Directorios y Módulo Cliente.

Servicio de Archivos: ofrece operaciones sobre archivos individuales: leer,


escribir, agregar.

Aspectos importantes:

► Administración de los atributos (información que no es parte del archivo


en sí mismo)
► Responsable de la protección contra accesos no permitidos, a través de
capacidades o listas de control de acceso.
► Responsable del modelo de acceso: por carga/descarga o por acceso
remoto

Figura 1. Modelo de acceso por carga/descarga o por acceso remoto.

Sistemas Distribuidos
Prof. Rubén Báez
Servicio de Directorios: ofrece operaciones sobre directorios: crear y borrar
8
directorios, copiar y mover archivos entre directorios.

Aspectos importantes:

► Responsable de resolver el nombre de los archivos


► Debe proveer transparencia de los nombres con respecto a la localización
► Ofrecer nombres de dos niveles: nombres simbólicos y nombres binarios
► Administra la organización de los archivos: sistema jerárquico de archivos
► Maneja los enlaces lógicos y físicos

Módulo Cliente: se ejecuta en cada máquina cliente

Aspectos importantes:

► Integra y extiende las operaciones de los servicios de archivos y de


directorios a través de una interfaz sencilla
► Se ejecuta a nivel de usuario
► Mantiene información sobre las ubicaciones de los servidores de archivos
y de directorios
► Maneja el caching y buffering en el cliente
► Un aspecto de diseño importante se refiere a la semántica del sistema de
archivos
► Semántica de archivos compartidos y de sesión

Aspectos de Implementación

A la hora de realizar una implementación de un sistema de archivos distribuidos


es necesario considerar el uso de los archivos, la estructura del sistema, la
operación de los servidores, el caching de los archivos así como la manera de
crear y mantener las réplicas de los archivos.

Sistemas Distribuidos
Prof. Rubén Báez
Mediciones dinámicas en el uso de archivos 9

El mismo servidor de archivos registra en una bitácora (log) todas las


operaciones que realiza, para ser analizadas posteriormente.

Las mediciones dinámicas revelan lo siguiente:

► La frecuencia de las operaciones


► El número de archivos abiertos
► La cantidad de archivos compartidos
► La mayoría de los archivos está por debajo de 10K
► Esto hace suponer que es mejor transferir entre cliente/servidor archivos
completos en lugar de bloques de disco
► La mayoría de los archivos tienen vida corta
► Esto supone que es mejor crear el archivo en el cliente y mantenerlo ahí
hasta su eliminación, disminuyendo tráfico entre cliente/servidor
► Es poco usual compartir archivos
► Es mejor usar semántica de sesión y hacer “caching” de los archivos en
el cliente
► Existen distintas clases de archivos con propiedades diferentes
► Esto hace suponer que deben existir diferentes mecanismos para manejar
diferentes clases de archivos

Estructura del sistema

Se refiere a la organización interna de archivos y directorios y cómo estructurar


el servicio de los archivos y directorios.

De esta manera pueden ser:

► Combinados en un mismo servidor: las operaciones son directas

Sistemas Distribuidos
Prof. Rubén Báez
► Separados:
10
o abrir un archivo implica ir al Servidor de directorios, localizar el
archivo y luego ir al Servidor de Archivos para llevar a cabo la
lectura o escritura
o requiere mayor comunicación, pero es más flexible y el software es
más sencillo

Figura 2. Acceso a archivos con servidores de directorios y archivos separados

Asimismo, en un Sistema de Archivos Distribuidos se debe considerar si los


servidores de archivos y directorios deben contener la información de estado de
los clientes.

► Servidores sin estado (stateless)


o Cuando un cliente envía una solicitud a un servidor, éste la lleva a
cabo, envía la respuesta y elimina de sus tablas internas toda la
información relativa a dicha solicitud
o No guarda información del cliente entre solicitudes
o Cada solicitud debe ser autocontenida

Sistemas Distribuidos
Prof. Rubén Báez
► Servidores con estado
11
o Los servidores guardan información del estado de los clientes entre
solicitudes: tabla que asocia los descriptores de archivos con los
archivos propiamente dichos.

A continuación, en la Tabla 1 se puede observar una comparación de los


Servidores sin estado con los Servidores con estado.

Sistemas Distribuidos
Prof. Rubén Báez
Servidores sin estado Servidores con estado
12
Tolerante a fallos La recuperación quedará a cargo del cliente

No se desperdicia espacio Se desperdicia espacio

No existe límite para el número de Se pueden desbordar las tablas y no se


archivos abiertos podrán abrir más archivos

No hay problema si un cliente falla Si un cliente falla después de abrir un


archivos, el servidor está ante un dilema:

1) sus tablas se llenan de basura

2) eliminar archivos innecesarios

Mensajes más cortos Mensajes autocontenidos más largos

Mejor desempeño porque las tablas Desempeño pobre


pueden estar en memoria principal o
en caché

Es posible realizar lecturas No son posibles lecturas adelantadas


adelantadas

Es fácil reconocer operaciones Es difícil reconocer operaciones


idempotentes idempotentes

Puede manejar el bloqueo de Se requieren un servidor de locks especial


archivos

Tabla 1. Ventajas y desventajas de servidores con estados y sin estado

Sistemas Distribuidos
Prof. Rubén Báez
Caching 13

Permite saber dónde mantener los archivos o parte de ellos.

Figura 3. Caching de archivos

De esta manera se pueden presentar las siguientes situaciones:

► Guardarlo en el disco del servidor:

Ventajas: hay espacio, se requiere sólo una copia de cada archivo, archivos
accesibles a todos los clientes, no hay problemas de consistencia

Problema: bajo desempeño en la transferencia del archivo

Ventajas: mantiene las ventajas anteriores y mejora el desempeño

Problemas: -requiere determinar el tamaño de la unidad que administra


el caché, todo el archivo o por bloques

-se necesita un algoritmo de reemplazo cuando el caché


esté lleno

► Caching en el cliente: en el disco es lento, en general más lento que el


anterior. Es bueno para cuando son muchos datos. Ofrece mejor

Sistemas Distribuidos
Prof. Rubén Báez
desempeño a costa de mayor complejidad y posible semántica más
14
difusa.
► En memoria principal: en el espacio de direcciones del cliente,
administrado por librerías con llamadas al sistema. Cuando el proceso
termina, los archivos modificados se actualizan en el servidor.
► En el kernel: la ventaja es que el caché sobrevive al proceso. La
desventaja es que siempre hay que llamar al kernel.
► En un administrador de caché en espacio de usuario: libera al kernel
del sistema, fácil de programar, más flexible.

Replicación

Las razones para el servicio de réplicas son:

► Aumento de confiabilidad: al disponer de respaldos independientes de


cada archivo
► Disponibilidad: permitir accesos aunque falle uno de los servidores
► Desempeño: repartir carga de trabajo entre servidores

Formas de creación de réplicas:

► Réplica explícita: el cliente controla el proceso. Cuando crea un archivo


lo hace en un servidor específico y adicionalmente puede crear copias en
otros servidores
► Réplica retrasada: el cliente crea el archivo en un servidor, luego en
forma automática el servidor crea las copias sin conocimiento del cliente

Sistemas Distribuidos
Prof. Rubén Báez
Transacciones distribuidas 15

Conceptos básicos

Dentro de los Sistemas Distribuidos, hay muchos casos en que una sola
comunicación no resuelve problemas específicos de interacción entre dos
procesos. La interacción entre los procesos suele ser una secuencia de
comunicaciones y cálculos. En estas situaciones es adecuado operar en base a
transacciones.

El concepto de transacción se desarrolló en sistemas de manejo de bases de


datos para mantener la consistencia de la información almacenada. Los
mecanismos de transacciones simplifican la construcción de sistemas
confiables, y si son transparentes para las aplicaciones de usuario.

En general, el término transacción describe una secuencia de operaciones sobre


una o más bases de datos que transforma un estado consistente del sistema en
otro estado consistente. No todos los estados de un sistema son consistentes y,
por lo tanto, algunos cambios no son permitidos. Las aseveraciones que
describen los cambios permitidos reciben el nombre de restricciones de
consistencia.

Propiedades

Una transacción que se aplica a datos recuperables, puede estar formada por
operaciones simples o compuestas y su intención es que sea atómica.

Las transacciones tienen las siguientes propiedades:

► Consistencia: debe mantener la consistencia del sistema en que se


aplica
► Atomicidad: debe ejecutarse completamente o no ejecutarse

Sistemas Distribuidos
Prof. Rubén Báez
► Durabilidad: una vez que se completó con buen éxito, una transacción
16
no se puede cancelar (al menos que se aplique otra transacción)

Hay dos aspectos que se deben cumplir para lograr la atomicidad:

1. Todo-o-nada: si una transacción termina exitosamente, los efectos de todas


sus operaciones son registrados en los ítems de datos. Si falla no tiene ningún
efecto.

La propiedad todo-o-nada también considera como atomicidad ante fallas


cuando los efectos son atómicos, aun cuando el servidor falla.

2. Aislamiento: cada transacción debe ser ejecutada sin interferencias de otras


transacciones, es decir, los resultados intermedios de una transacción no deben
ser visibles a otras transacciones.

Harder y Reuter (1983) sugirieron el nemotécnico ACID para recordar las


propiedades de las transacciones.

Es obligatorio que una transacción cumpla con las propiedades establecidas por
el estándar ACID: Atomicity, Consistency, Isolation, Durability. Cada una de
estas cuatro condiciones tiene que cumplirse para asegurar que una transacción
esté correctamente diseñada.

A: Atomicidad (Atomicity) - propiedad todo-o-nada.

Esta condición asegura que la operación sea exitosa solamente si todas sus
partes se realizaron correctamente. Si una parte falla, la transacción se declara
no exitosa.

Para soportar la atomicidad ante fallas y la durabilidad, los ítems de datos deben
ser recuperables.

Hay dos tipos de fallas:

► Transacción falla por si misma por errores en los datos de entrada,


deadlocks, etc. Recuperación de la transacción

Sistemas Distribuidos
Prof. Rubén Báez
► Fallas por caídas del sistema, de los medios de E/S, de los procesadores,
17
de las líneas de comunicación, fallas de energía, etc. Recuperación de
caídas
► Para ello, el sistema es quien tiene la responsabilidad de decidir qué hacer
ante la recuperación de una falla:
o Terminar de ejecutar el resto de las acciones
o Deshacer las acciones que se había realizado
o Para proveer la recuperación se usan técnicas de almacenamiento
estable

C: Consistencia (Consistency) - una transacción toma el sistema en un estado


consistente y lo deja en un estado consistente.

Es la condición que asegura que sólo se empieza aquello que se puede acabar.
Por este motivo solamente se ejecutan aquellas operaciones que no van a
romper ninguna regla o directriz de integridad de la base de datos.

I: Aislamiento (Isolation): implica seriabilidad de las transacciones. Se les permite


a las transacciones ejecutarse concurrentemente si se obtiene el mismo efecto
de una ejecución secuencial (serialmente equivalentes).

Esta condición asegura que una operación no puede afectar a otras. Esto permite
que la realización de dos transacciones simultáneas sobre la misma porción de
información nunca generará ningún tipo de error.

D: Durabilidad (Durability). Sus actividades envuelven múltiples servidores.

Es la condición que asegura que una vez realizada la operación, el resultado de


ésta persistirá y no se podrá deshacer aunque falle el sistema.

Sistemas Distribuidos
Prof. Rubén Báez
Tipos de transacciones 18

Las transacciones distribuidas pueden ser simples (planas) o anidadas.

Se usa el término transacciones distribuidas para referirse a transacciones


planas o anidadas que acceden a objetos administrados por múltiples servidores.

Transacciones distribuidas planas y anidadas

En una transacción plana (T), el cliente hace requerimientos a más de un


servidor. Cada transacción accede a los objetos en los servidores
secuencialmente (X, Y, Z).

El cliente de la transacción plana espera completar todos sus requerimientos


antes de pasar a la próxima.

En una transacción anidada (T), la transacción de mayor nivel puede abrir


subtransacciones (T1 - T2) y, a su vez cada subtransacción puede abrir otras en
niveles más bajos de anidamiento en los servidores (X – Y) y así sucesivamente
con las subtransacciones (T11 – T12 – T21 – T22) en los servidores (M – N –P)
respectivamente.

Sistemas Distribuidos
Prof. Rubén Báez
19

Figura 4. Transacciones planas y anidadas (Coulouris, 2001)

Estados de una transacción

1. Activa: durante su ejecución.


2. Parcialmente comprometida: después de ejecutar su última instrucción.
3. Comprometida: al finalizar la transacción
4. Fallida: imposible de continuar su ejecución normal.
5. Abortada: transacción retrocedida y base de datos restaurada al estado
anterior a su ejecución. Se puede reiniciar o cancelar.

Sistemas Distribuidos
Prof. Rubén Báez
Diagrama de Transición de Estados de una 20

transacción

En la siguiente figura se puede observar los distintos estados por el que va


pasando una transacción.

2.
PARCIALMEN
TE
COMPROMETI
DA

1. ACTIVA COMPROMETI
DA

5. ABORTADA 4. FALIIDA

Figura 5. Estados de una transacción

Bloqueos

Los Sistemas Gestores de Bases de Datos (SGBD) aseguran el cumplimiento de


las propiedades ACID a través de mecanismos como los bloqueos.

Sistemas Distribuidos
Prof. Rubén Báez
Bloqueos 21

Un bloqueo es una información del tipo de acceso que se permite a un elemento.


El SGBD impone los bloqueos necesarios en cada momento. El gestor de acceso
a los datos implementa las restricciones de acceso. En algunos sistemas se
permite que el usuario pueda indicar el bloqueo más adecuado (locking hints).

Tipos de bloqueo con respecto a la operación:

► read-locks: sólo permite lectura


► write-locks: permite lectura y escritura

El gestor de bloqueos almacena los bloqueos en una tabla de bloqueos:

(<elemento>, <tipo de bloqueo>, <transacción>) = (E,B,T)

La transacción T tiene un tipo de bloqueo B sobre el elemento E.

Normalmente, E es clave, aunque no siempre, porque varias transacciones


pueden bloquear el mismo elemento de forma diferente.

Niveles de bloqueo

Los niveles de bloqueos especifican la granularidad del bloqueo.

► Fila: Fila individual


► Clave: Fila de un índice
► Página: Páginas (8KB)
► Extent: Extensión (grupo de 8 páginas contiguas de datos o índices)
► Table: Tabla completa
► Database: Base de datos completa

Sistemas Distribuidos
Prof. Rubén Báez
Modos de bloqueo 22

Especifica el modo en que se bloquea un elemento y puede ser:

► Compartido: para operaciones sólo de lectura. Se permiten lecturas


concurrentes, pero ninguna actualización
► Actualización: para operaciones que pueden escribir. Sólo se permite
que una transacción adquiera este bloqueo. Si la transacción modifica
datos, se convierte en exclusivo, en caso contrario en compartido
► Exclusivo: para operaciones que escriben datos. Sólo se permite que una
transacción adquiera este bloqueo
► Intención: se usan para establecer una jerarquía de bloqueo. Por
ejemplo, si una transacción necesita bloqueo exclusivo y varias
transacciones tienen bloqueo de intención, no se concede el exclusivo
► Intención compartida: bloqueo compartido
► Intención exclusiva: bloqueo exclusivo
► Compartido con intención exclusivo: algunos bloqueos compartidos y
otros exclusivos
► Actualización masiva: en operaciones de actualización masiva

Diseño de una transacción

Para el diseño de las transacciones se debe considerar:

► Una transacción debe ser corta en duración, porque ésta bloquea


recursos compartidos para otras transacciones
► Una transacción debe estar diseñada para que no espere una decisión,
para que no haya retrasos por una respuesta en medio de su ejecución

Sistemas Distribuidos
Prof. Rubén Báez
Base de datos distribuida 23

Una Base de Datos Distribuida (BDD) viene a ser una colección de base de datos
construida sobre una red y que pertenecen, lógicamente, a un solo sistema
distribuido, la cual cumple las siguientes condiciones:

► La información de la base de datos debe estar almacenada físicamente


en diferentes sitios de la red
► En cada sitio de la red, la parte de la información, se constituye como una
base de datos en sí misma
► Las bases de datos locales tienen sus propios usuarios locales, sus
propios Sistemas de Bases de Datos Distribuidas (SBDD) y programas
para la administración de transacciones, y su propio administrador local
de comunicación de datos
► Las bases de datos locales deben tener una extensión que gestione las
funciones de sociedad necesarias; la combinación de estos componentes
con los sistemas de administración de base de datos locales, es lo que se
conoce como Sistema de Gestión de Base de Datos Distribuidas
(SGBDD)
► El gestor global permite que los usuarios puedan acceder a los datos
desde cualquier punto de la red, como si lo hicieran con los datos de su
base de datos local, es decir, para el usuario, no debe existir diferencia en
trabajar con datos locales o datos de otros sitios de la red

Las Bases de Datos Distribuidas son como unidades virtuales, cuyas partes se
almacenan físicamente en varias bases de datos "reales" distintas, ubicadas en
diferentes sitios.

Sistemas Distribuidos
Prof. Rubén Báez
Ejemplo de Base de Datos Distribuida 24

Veamos el ejemplo de un banco que tiene tres sucursales, en cada sucursal, una
computadora controla las terminales de la misma y el sistema de cuentas. Cada
computadora con su sistema de cuentas local en cada sucursal constituye un
"sitio" de la BDD; las computadoras están conectadas por la red. Durante las
operaciones normales, las aplicaciones en las terminales de la sucursal
necesitan sólo acceder la base de datos de la misma. Como sólo acceden a la
misma red local, se les llaman aplicaciones locales.

Si lo vemos desde el punto de vista tecnológico, aparentemente lo importante es


la existencia de algunas transacciones que acceden a información en más de
una sucursal.

Estas transacciones son llamadas transacciones globales o transacciones


distribuidas. La existencia de transacciones globales será considerada como una
característica que nos ayude a discriminar entre las BDD y un conjunto de base
de datos locales.

Una transacción normal será una transferencia de fondos de una sucursal a otra.
Esta aplicación requiere de actualizar datos en dos diferentes sucursales y
asegurarse de la real actualización en ambos sitios o en ninguno. Asegurar el
buen funcionamiento de aplicaciones globales es una tarea difícil.

Ventajas de las Bases de Datos Distribuidas

► Descentralización. A diferencia de los sistemas centralizados donde


existe un administrador que controla toda la base de datos, en el sistema
distribuido existe un administrador global que lleva una política general y
delega algunas funciones a administradores de cada localidad para que
establezcan políticas locales y así un trabajo eficiente.

Sistemas Distribuidos
Prof. Rubén Báez
► Economía. Existen dos aspectos a tener en cuenta. 25

o Los costos de comunicación. Esto está relacionado a si las bases


de datos están muy dispersas y las aplicaciones hacen amplio uso
de los datos puede resultar más económico dividir la aplicación y
realizarla localmente.
o El otro aspecto está referido a que cuesta menos crear un sistema
de pequeños computadoras con la misma potencia que una única
computadora (a diferencia de sistemas paralelos reales).
► Mejora de rendimiento. Como los datos son almacenados y usados
donde son generados, permite distribuir la complejidad del sistema en los
diferentes sitios de la red, optimizando la labor.
► Mejora de fiabilidad y disponibilidad. La falla de uno o varios lugares o
el de un enlace de comunicación no implica la inoperatividad total del
sistema, incluso si tenemos datos duplicados puede que exista una
disponibilidad total de los servicios.
► Crecimiento. Es más fácil acomodar el incremento del tamaño en un
sistema distribuido, porque la expansión se lleva a cabo añadiendo poder
de procesamiento y almacenamiento en la red, al añadir un nuevo nodo.
► Flexibilidad. Permite acceso local y remoto de forma transparente.
► Disponibilidad. Pueden estar los datos duplicados con lo que varias
personas pueden acceder simultáneamente de forma eficiente. El
inconveniente, el sistema administrador de base de datos debe
preocuparse de la consistencia de los mismos.
► Control de concurrencia. El sistema administrador de base de datos
local se encarga de manejar la concurrencia de manera eficiente.

Sistemas Distribuidos
Prof. Rubén Báez
Desventajas de las Bases de Datos Distribuidas 26

► El rendimiento que es una ventaja podría verse contrapuesta por la


naturaleza de la carga de trabajo, pues un nodo puede verse abrumado,
por las estrategias utilizadas de concurrencia y de fallos, y el acceso local
a los datos. Esta situación se puede presentar cuando la carga de trabajo
requiere un gran número de actualizaciones concurrentes sobre datos
duplicados y que deben estar distribuidos
► La confiabilidad de los sistemas distribuidos también se puede ver
contrapuesta, dado que en este tipo de base de datos existen muchos
factores a tomar en cuanta como: La confiabilidad de los computadoras,
de la red, del sistema de gestión de base de datos distribuida, de las
transacciones y de las tazas de error de la carga de trabajo
► La mayor complejidad se enfrenta a este tipo de sistemas pues muchas
veces se traduce en altos gastos de construcción y mantenimiento. Esto
es debido a la gran cantidad de componentes hardware, muchas cosas
que aprender, y muchas aplicaciones susceptibles de fallar. Por ejemplo,
el control de concurrencia y la recuperación de fallos, requiere de personal
muy especializado y por tal costoso
► El procesamiento de base de datos distribuida es difícil de controlar,
pues los procesos generalmente se llevan a cabo en las áreas de trabajo
de los usuarios, e incluso el acceso físico no es controlado, lo que genera
una falta de seguridad de los datos.

Sistemas Distribuidos
Prof. Rubén Báez
Memoria distribuida 27

Sistemas con Memoria Compartida Distribuida

Un sistema con Memoria Compartida Distribuida (Distributed Shared Memory -


DSM) toma las ventajas de dos componentes: el software de los sistemas de
memoria compartida y el hardware de los sistemas de memoria distribuida.

Es una colección de estaciones de trabajo conectadas por una red LAN,


compartiendo un único espacio de memoria virtual. La ubicación de los datos, su
movimiento, etc., lo maneja el Sistema de Memoria Compartida Distribuida.

[Li, 1986] y [Li and Hudak, 1989] fueron los primeros en proponer el paradigma
de Memoria Compartida Distribuida y ha sido implementado sobre el paso de
mensajes.

Características y funcionamiento

► Comparten un solo espacio de direcciones paginado


► Una referencia a una página causa una falla de página que atrapa el
sistema operativo. Este último envía un mensaje a la máquina remota,
para solicitar la página
► La comunicación y sincronización se realiza a través de la memoria, la
comunicación es transparente para los procesos
► Es un sistema fácil de programar y fácil de construir pero el desempeño
es pobre
► Durante muchos años los trabajos de investigación se han enfocado en
solucionar este problema. Las soluciones buscan principalmente reducir
el tráfico de red
► Uso de cachés (surge el problema de la consistencia)

Sistemas Distribuidos
Prof. Rubén Báez
Estructura 28

► Orientada a Bytes: la DSM se utiliza como la memoria virtual ordinaria,


es decir como una cadena de bytes contiguos. Permiten que las
aplicaciones almacenen cualquier tipo de datos sobre la memoria
compartida. Los objetos compartidos son posiciones de memoria
direccionables directamente. Las únicas operaciones sobre los objetos
son: lee y escribe
► Orientado a Objetos: la memoria compartida se estructura como una
colección de objetos. Se proveen métodos o funciones sobre los objetos
que permiten leer/modificar sus variables miembro (nunca se acceden
directamente). La semántica de los objetos se usa para forzar la
consistencia
► Datos Inmutables: la DSM se muestra como una colección de datos
inmutables donde los procesos pueden leer, añadir o eliminar.

Modelo de Sincronización

► Para poder utilizar DSM se debe construir un servicio de sincronización


distribuida que incluya construcciones como bloqueos o semáforos.
► La sincronización se realiza a nivel de la aplicación.

Clasificación de Sistemas Paralelos y Distribuidos

Multiprocesadores

► Tienen memoria compartida


► Son sistemas altamente acoplados: cuando se envía un mensaje el
retardo es corto y el throughput es alto. Comunes en sistemas paralelos.

Sistemas Distribuidos
Prof. Rubén Báez
► Para comunicación: un proceso escribe y los otros leen
29
► Para la sincronización: se usan regiones críticas y existen herramientas
que ofrecen la exclusión mutua (semáforos, contadores, monitores)
► Los programas son más cortos y fáciles de comprender que los programas
escritos con pase de mensajes
► Es difícil diseñar una máquina donde varios procesadores utilicen la
misma memoria. Si la arquitectura está basada en bus, no es escalable.
Con switches se obtiene una mayor escalabilidad pero son costosos,
lentos, complejos

Multicomputadoras

► Cada procesador tiene su memoria privada


► Sistemas débilmente acoplados: el retardo es notable y el throughput
es bajo. Son más comunes en sistemas distribuidos
► La comunicación se hace a través del pase de mensajes, lo cual trae
complicaciones adicionales: pérdida de mensajes, pérdida de orden,
etc.
► Se han propuesto algunas soluciones para facilitar la programación:
Llamadas a Procedimientos Remotos (RPC), Métodos de Invocación
Remota (RMI), etc.
► Son fáciles de construir y también son escalables

De manera a poder comprender mejor, tenemos que hacer mención de los


Sistemas Paralelos y su clasificación:

► Memoria Centralizada y Compartida: utilizan multiprocesadores


► Memoria Distribuida y Privada: utilizados en los Sistemas Distribuidos

En la siguiente figura se puede observar un esquema de implementación de la


Memoria Compartida y Distribuida (DSM) respecto a los procesadores (P) y las
Memorias (M).

Sistemas Distribuidos
Prof. Rubén Báez
30

Figura 6. Memoria Compartida y Distribuida

Modelos de Consistencia de la Memoria

► Un modelo de Consistencia de Memoria [Mosberger 1993] especifica las


garantías de consistencia que un sistema otorga sobre los valores que los
procesos leen de los objetos, dado que en realidad acceden a una réplica
de cada objeto y que múltiples procesos pueden actualizar los objetos
► Los requisitos de consistencia pueden ser muy variados y dependen de la
aplicación en cada caso

Modelos de Consistencia de la Memoria

► Consistencia Estricta
► Consistencia Secuencial
► Consistencia Causal
► Consistencia Relajada

Sistemas Distribuidos
Prof. Rubén Báez
Consistencia Estricta 31

La consistencia estricta garantiza que los valores que se ven en memoria estén
en estricto orden de escritura.

► Cualquier lectura a la localidad de memoria x retorna el valor almacenado


por la última operación de escritura (antes de la lectura).
► Supone la existencia de un tiempo global. Determinar cuál fue la escritura
más reciente no siempre es posible
► En un solo procesador la consistencia estricta es lo esperado
► Si hay un cambio en una zona de memoria, todas las lecturas observarán
el nuevo valor sin importar cuán pronto se está haciendo la lectura (con
respecto a la escritura) o dónde están localizados los procesos que
realizan las operaciones

Consistencia Secuencial

La consistencia secuencial garantiza que los valores que se ven en memoria se


vean en el mismo orden por todas las CPU. No importan si es en un orden
diferente al que se hicieron las escrituras.

Cuando se ejecutan procesos en paralelo sobre diferentes máquinas, cualquier


mezcla de ejecución es un resultado aceptable, no obstante todos los procesos
deben ver la misma secuencia de referencias a memoria. Se respeta el orden de
los programas.

Un sistema de consistencia secuencial se puede implementar utilizando un único


servidor que administra los datos compartidos. Todos los procesos envían sus
operaciones de lectura y escritura al servidor que las ordena en forma global.

Sistemas Distribuidos
Prof. Rubén Báez
Consistencia Causal 32

► Si un evento B es causado o influenciado por un evento A, la causalidad


requiere que todo el mundo vea primero el evento A y luego el B
► Cuando encontramos una lectura seguida por una escritura, los dos
eventos están potencialmente relacionados en forma causal
► Un read está relacionado causalmente con la escritura que provee el dato
que se ha leído:

P1 escribe X

P2 lee X escribe Y (Y puede depender del valor leído de X)

► Si dos procesos escriben espontáneamente y simultáneamente una


variable, estos accesos no están relacionados causalmente
► Las operaciones que no están relacionadas causalmente se dice que son
concurrentes
► Las escrituras relacionadas causalmente deben ser vistas por todos los
procesos en el mismo orden. Las escrituras concurrentes pueden ser
vistas en un orden diferente, en diferentes máquinas
► Implementación: grafo de dependencia para determinar cuáles
operaciones son dependientes de otras y cuáles son concurrentes
► Un ente centralizado

Sistemas Distribuidos
Prof. Rubén Báez
Consistencia Relajada 33

La consistencia relajada garantiza que si se usan adecuadamente las


operaciones de sincronización, las escrituras que se hayan hecho en una sección
crítica de datos compartidos ya se habrán acabado antes de entrar otra vez.

Se proveen dos operaciones:

► Acquire: la memoria se asegura que todas las copias locales de las


variables protegidas se actualizan con las variables remotas.
► Release: con esta operación se propagan los cambios realizados a las
variables protegidas al resto de las máquinas
► El programador es el responsable de colocar estas operaciones
correctamente en su programa
► Realizar un acquire no garantiza que los cambios realizados sean
propagados al resto de las máquinas en forma inmediata
► De forma similar, el realizar un release no garantiza que se importen
cambios realizados por otras máquinas.

MODELOS DE
DESCRIPCIÓN
CONSISTENCIA

Todos los accesos compartidos se observan en el orden


ESTRICTA
en el que se realizan. Imposible implementar en DSM

Todos los procesos ven todos los accesos en el mismo


SECUENCIAL orden. Popular entre los programadores y ampliamente
usado. Desempeño pobre

Todos los procesos ven los accesos compartidos,


CAUSAL
relacionados causalmente, en el mismo orden

Sistemas Distribuidos
Prof. Rubén Báez
Los datos compartidos están consistentes cuando se
34
RELAJADA sale de la región crítica. Estos modelos pueden ser más
eficientes pero requieren más esfuerzo del programador

Tabla 2. Modelos de consistencia de la memoria

Aproximaciones a la implementación

► Hardware: hardware especializado para proveer a los procesadores una


visión consistente de la memoria compartida. Requieren de sistemas de
conexión de alta velocidad. Ejemplo: El prototipo del multiprocesador
Dash tiene 64 nodos conectados mediante una arquitectura de Acceso a
Memoria No Uniforme (Non-Uniform Memory Access – NUMA)
► Memoria Virtual Paginada: sistemas como Ivy, Munin, Mirage, Clouds,
Choices y Mether implementan DSM como una región de memoria virtual
que ocupa el mismo espacio de direcciones en el espacio de direcciones
de cada proceso participante. Esta implementación sólo es factible sobre
una colección de computadoras homogéneas con formatos de datos y
paginación comunes
► Middleware: algunos lenguajes del tipo de ORCA o sistemas como Linda,
JavaSpaces o Tspaces proporcionan DSM sin necesidad de soporte de
hardware o de paginación. Cuando un proceso accede a un dato
compartido, realiza una llamada que es interceptada por un proceso en
un nivel más bajo, el cual realiza el acceso local o una llamada remota
según se necesite. No está pensado para utilizar código existente de
memoria compartida. No se comparten posiciones de memoria sino
abstracciones de mayor nivel como objetos
► Sincronización: la implementación de DSM debe incluir los mecanismos
de sincronización como un componente integrado

Sistemas Distribuidos
Prof. Rubén Báez
Bibliografía 35

► Coulouris, G. (2012). Sistemas Distribuidos. Conceptos y Diseño. 5ta.


Edición. Addison-Wesley. México.
► Liu, M. (2004). Computación Distribuida. Fundamentos y Aplicaciones.
Pearson Educación. Madrid.
► Tanenbaum, A. (2008). Sistemas Operativos Distribuídos. Principios y
Paradigmas. Pearson Educación. México.

Sistemas Distribuidos
Prof. Rubén Báez

También podría gustarte