Un sistema distribuido es una colección de procesadores que no comparten la memoria ni el reloj o sea cada procesador tiene su propia memoria y se comunican entre sí a través de una red de comunicación que puede estar formada por diferentes tecnologías, desde un bus de alta velocidad hasta una línea telefónica, entre otras. Para cada uno de los procesadores el resto de los procesadores, así como los recursos asociados a ellos, son recursos remotos. Observe la figura 1. Host A Host C Servidor Red Recursos Cliente º Host B Figura 1. Un sistema distribuido Razones para la existencia de los sistemas distribuidos Existen cuatro razones que justifican la existencia de estos sistemas: • Compartir recursos. Los usuarios de un host (estación, sitio) pueden disponer de los recursos de los demás host. En general se ofrecen mecanismos para compartir archivos remotos, procesar información en sistemas de bases de datos distribuidos, imprimir archivos en host remotos, usar equipos de hardware especializados, etc. • Aumentar la velocidad. Si un determinado problema se puede dividir en subproblemas de manera que diferentes procesadores se encarguen de cada una de las partes queda claro que ese hecho hará que se obtenga una solución más rápidamente. Otro elemento a tomar en cuenta es que si un procesador específico está muy cargado se puede pasar su trabajo hacia otro que esté menos cargado, lo cual se denomina carga compartida, lo que, evidentemente, redundará en una mayor velocidad de respuesta. • Confiabilidad. Si un host de un sistema distribuido falla el resto de los host pueden continuar funcionando. Si el sistema está compuesto por una cantidad de instalaciones autónomas (por ejemplo computadoras de propósito general) la falla de un host no afectará el resto, sin embargo si el sistema está formado por pequeñas máquinas y cada una de ellas tiene alguna responsabilidad crucial, una simple falla afectará la operación. Para resolver esta situación debe tenerse suficiente redundancia de recursos (en hardware y datos). La falla de un host debe detectarse por el sistema, el cual tendrá que tomar una acción adecuada para recuperarse de ella, entre las acciones a tomar se debe determinar si existe la posibilidad de que otro host se encargue de la tarea de aquel que falló haciendo la oportuna transferencia de funciones. • Comunicación. Como los host están conectados entre sí, pueden intercambiar información. La información se puede transferir aún cuando los host están a distancias considerables.