Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
TOLERANCIA A FALLOS
Que el sistema de archivos sea tolerante a fallos implica qué el sistema debe
guardar copias del mismo archivo en distintos ordenadores para garantizar la
disponibilidad en caso de fallo del servidor original.
Se debe aplicar un algoritmo que nos permita mantener todas las copias
actualizadas de forma constante, o un método alternativo que solo nos permita al
archivo actualizado como invalidar el resto de copias cuando en cualquiera de ellas se
vaya a realizar una operación de escritura.
En ambos casos el objetivo es desarrollar sistemas con modos de fallos bien definidos.
HARDWARE:
• Utilización de componentes fiables.
• Técnicas rigurosas de ensamblaje de subsistemas.
SOFTWARE:
• Especificación rigurosa de requisitos.
• Métodos de diseños comprobados.
• Lenguajes con abstracción de datos y modularidad.
LA REALIZACION SE BASA EN DOS ETAPAS
1. Evitación de fallos: impedir que se introduzcan fallos durante la construcción
del sistema.
2. Eliminación de fallos: consiste en encontrar y corregir los fallos que se
producen en el sistema una vez construido.
TECNICAS DE ELIMINACION DE FALLOS
Comprobaciones:
• Revisiones del diseño.
• Verificación de los programas.
• Inspección del código.
Pruebas:
• Son necesarias pero insuficientes.
• Nunca llegan a ser exhaustivas
• Solo sirven para mostrar que hay errores pero no que no los hay.
• Los errores de especificaciones no se detectan.
LIMITACIONES DE LA PREVENCION DE FALLOS
• Los componentes del hardware fallan a pesar de las técnicas de prevención.
• La prevención es insuficiente si la frecuencia o la duración de las reparaciones
es corta.
• No se puede detener el sistema para efectuar reparaciones.
• La alternativa es utilizar técnicas de tolerancia a fallos.
TOLERANCIA A FALLOS
• Tolerancia completa: el sistema continúa funcionando durante un tiempo sin
perder funcionabilidad
• Degradación elegante: El sistema sigue funcionando con una pérdida parcial
de funcionabilidad hasta que se repare el fallo.
• Parada segura: el sistema se detiene en un estado que asegura la integridad
del entorno hasta que se repare el fallo.
•
Comunicación Cliente-Servidor (Socket)
Sockets Son el mecanismo de sincronización distribuida más importante.
Para escribir datos en un socket se utilizan las siguientes primitivas: write, writev, send,
sendto y sendmsg, siendo las más utilizadas write y send(sfd, buf, len, flags).
Son un servicio orientado a conexión, donde los datos se transfieren sin encuadrarlos
en registros o bloques. Si se rompe la conexión entre los procesos, éstos serán
informados de tal suceso para que tomen las medidas oportunas.
Son un servicio de transporte sin conexión. Son más eficientes que TCP, pero en su
utilización no está garantizada la fiabilidad. Los datos se envían y reciben en paquetes,
cuya entrega no está garantizada. Los paquetes pueden ser duplicados, perdidos o
llegar en un orden diferente al que se envió.
Sockets Raw
Son sockets que dan acceso directo a la capa de software de red subyacente o a
protocolos de más bajo nivel. Se utilizan sobre todo para la depuración del código de
los protocolos.
Diferencias entre Sockets Stream y Datagrama
En UDP, cada vez que se envía un datagrama, hay que enviar también el descriptor
del socket local y la dirección del socket que va a recibir el datagrama, luego los
mensajes son más grandes que los TCP. Como el protocolo TCP está orientado a
conexión, hay que establecer esta conexión entre los dos sockets antes de nada, lo
que implica un cierto tiempo empleado en el establecimiento de la conexión, que no es
necesario emplear en UDP.
Los datagramas son bloques de información del tipo lanzar y olvidar. Para la mayoría
de los programas que utilicen la red, el usar un flujo TCP en vez de un datagrama UDP
es más sencillo y hay menos posibilidades de tener problemas. Sin embargo, cuando
se requiere un rendimiento óptimo, y está justificado el tiempo adicional que supone
realizar la verificación de los datos, la comunicación a través de sockets TCP es un
mecanismo realmente útil.
Comunicación en Grupo
Bibliografía:
http://es.wikipedia.org/wiki/RPC
http://www.mcc.unam.mx/~cursos/Algoritmos/javaDC99-1/resumen2.html#Streams
http://www.fismat.umich.mx/mn1/manual/node24.html
http://espejos.unesco.org.uy/simplac2002/Ponencias/Segurm%E1tica/VIR011.doc
http://exa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/SO8.htm