Un sistema distribuido se define como una colección de computadoras autónomas conectadas por una red, que con el software adecuado pueden verse como una única entidad. Los sistemas distribuidos se implementan en diversas plataformas hardware desde pocas estaciones de trabajo conectadas localmente hasta Internet. En los sistemas distribuidos existen varios tipos de concurrencia que pueden producir inconsistencias como la actualización concurrente de datos, la replicación no sincronizada de datos o la falta de sincronización de relojes entre máquinas.
2. Sistemas Distribuidos
Un sistema distribuido se define como una colección
de computadores autónomos conectados por una red
Y con el software distribuido adecuado para que el
sistema sea visto por los usuarios como una única entidad
capaz de proporcionar facilidades de computación
3. Sistemas Distribuidos
Los sistemas distribuidos se implementan en diversas
plataformas hardware, desde unas pocas estaciones de trabajo
conectadas por una red de área local, hasta Internet, una
colección de redes de área local y de área extensa
interconectados, que en lazan millones de ordenadores.
4. Concurrencia
Cuando existen varios procesos en una única maquina
decimos que se están ejecutando concurrentemente
• Si el ordenador esta equipado con un único procesador
central, la concurrencia tiene lugar entrelazando la ejecución
de los distintos procesos.
•Si la computadora tiene N procesadores, entonces se
pueden estar ejecutando estrictamente a la vez hasta N
procesos.
5. Concurrencia
En los sistemas distribuidos hay muchas maquinas, cada
una con uno o mas procesadores centrales. Es decir, si hay M
ordenadores en un sistema distribuido con un procesador
central cada una entonces hasta M procesos estar ejecutándose
en paralelo.
A continuación se mencionaran los distintos tipos de
concurrencia que se producen:
6. Consistencia de Actualización
Cuando varios procesos acceden concurrentemente a un
dato para actualizarlo se puede producir una inconsistencia,
porque la actualización de todo el dato en su conjunto no se
realiza como una única operación atómica en exclusión mutua
7. Ejemplo
Supongamos que un cliente de un banco se conecta por internet al banco
para sacer dinero de una cuenta. Para asegurarse de que no se pierde el dinero si el
sistema se cae durante las operaciones, se utiliza esta secuencia de acciones:
BEGIN_TRANSACTION;
Retiro (cantidad, cuenta_1);
Deposito (cantidad, cuenta_2);
END_TRANSACTION;
Si el sistema se cae después del Registro, y antes de Depósito, al
rearrancar, las cuentas 1 y 2, estarán igual que antes de comenzar la
transacción. Esto es porque hasta que no se llega a END_TRANSACTION
no se reflejan en la memoria persistente las acciones encerradas en la
transacción.
8. Consistencia de Réplica
Cuando un conjunto de datos debe mantenerse replicado
en diversos ordenadores de la red, pudiendo ser modificado en
cualquiera de ellos, claramente se pueden producir situaciones en
las que tales datos no son iguales en todos los ordenadores al
mismo tiempo
9. Ejemplo
Podemos pensar en un juego multiusuario en la red.
Cuando un usuario toma cualquier acción, ésta debe propagarse
inmediatamente, mediante multicast, a los ordenadores del resto
de los usuarios. Si esto no es así, cada uno está teniendo una
visión distinta del mismo juego.
10. Consistencia de Caché
Cuando un cliente accede a un recurso (un fichero de
datos), se pueden guardar copias de estos datos en una
memoria local del cliente (memoria caché) para facilitar su
acceso en posteriores referencias, evitando tener que transferir
de nuevo los datos por la red. El problema de la consistencia
surge cuando un cliente actualiza datos que también residen en
las memorias caché de otros clientes
En ese momento se dice que las copias que están en
otras cachés quedan anticuadas
11. Consistencia de Reloj
Muchos de los algoritmos utilizados en aplicaciones y programación
de sistemas dependen de unas marcas de tiempo que indican el momento en
el que ha sucedido un evento.
El problema estriba en que no resulta fácil mantener la misma hora
física en todos los ordenadores o componentes de la red simultáneamente
Se podría enviar la hora por la red a todos los ordenadores, pues a pesar
de que la transmisión en sí ya requiere un tiempo, esto se podría solucionar
El tiempo de transmisión en una red es algo bastante impredecible
12. Consistencia de Interfaz de Usuario
Cuando un usuario está trabajando con una aplicación
interactiva distribuida ,y en la maquina cliente realiza una acción este
esta pendiente de lo que suceda es aquí donde se produce la
inconsistencia pues no se corresponde lo tecleado con lo reflejado en
la pantalla.