Sistema+Distribuido

=INTRODUCCIÓN=

Encontrar una unica definició́n que englobe toda la gama de posibles sistemas distribuidos es realmente complicado: cada definició́n puede prestar especial atenció́n a un determinado detalle dentro de lo que será́ el sistema. Una definición genérica sería la aparecida en [CDK94], en la que dice que “un sistema distribuido es una colecci ó́n de ordenadores autó́nomos o interconectados mediante una red y equipados con unos programas que permiten a estos ordenadores coordinar sus actividades y compartir sus recursos”. Frente a esta definició́n encontramos la definició́n aportada en [TS01], en la que expresa un sistema distribuido como “un conjunto de ordenadores independientes que ofrecen a sus usuarios la imagen de un sistema coherente unico”, habiendo subrayado en [TR85] el concepto de trasparencia.

Definiciones similares se pueden encontrar en [SS94] y [SG98], donde se hace especial hincapié́ en que para existir un sistema distribuido ha de existir paso de mensajes, frente a [Nut97] que propone englobar sistemas de paso de mensajes con sistemas de memoria compartida bajo el término de multicomputador, u otras alternativas como [Jua94] y [Mas98], que proponen un modelo con memoria compartida distribuida.

=DEFINICIÓN=

Uniendo las anteriores definiciones, se toma como definición empleada para sistema distribuido “ un conjunto de ordenadores interconectados mediante una red, con un conjunto de capas de software que pueden coordinar sus actividades y/o compartir recursos, que se comunican mediante mensajes y que ofrecen una imagen de sistema coherente unico”.

=OBJETIVOS=

Entre los objetivos que trata de cumplir un sistema distribuido tenemos:
 * 1) Facilitar el acceso de los usuarios a ciertos recursos remotos.
 * 2) Proporcionar escalabilidad al sistema, permitiendo que se pueda ampliar el número de servidores, distribuyendo la carga del sistema y aumentando la cantidad de clientes que pueden ser atendidos.
 * 3) Proporcionar transparecia de distribució́n, dentro de la cual se englobará́:
 * Transparencia de acceso, que oculta el modo de acceso a los recursos, sean remotos o locales.
 * Transparencia de ubicació́n, que oculta dónde se ubican los recursos.
 * Transparencia de migració́n, que oculta el hecho de trasladar un recurso a otro lugar.
 * Transparencia de reubicació́n, que oculta el traslado de un recurso durante su ejecución.
 * Transparencia de replicació́n, que oculta si se está accediendo a la copia principal o a una de las réplicas del recurso.
 * Transparencia de concurrencia, que oculta si están teniendo lugar varios accesos al recurso.
 * Transparencia de fallos, que oculta los errores del sistema y fallos en los componentes, y su recuperación.
 * Transparencia de persistencia, que oculta si un recurso está en memoria volá́til o persistente.

=CONCEPTOS CLAVE=


 * Elección de líder
 * Disponibilidad
 * Alta Disponibilidad
 * Fallos
 * Tolerancia a fallos

=REFERENCIAS=

//[CDK94] George Coulouris, Jean Dollmore, and Tim Kindberg. Distributed Systems: Concepts and Design. 1994.// //[TS01] Andrew S. Tanenbaum and Maarten Van Steen. Distributed Systems: Principles and Paradigms. Prentice Hall PTR, Upper Saddle River, NJ, USA, 2001.// //[TR85] Andrew S. Tanenbaum and Robbert Van Renesse. Distributed operating systems. ACM Comput. Surv., 17(4):419–470, 1985.// //[SG98] Abraham Silberchatz and Peter Baer Galvin. Operating System Concepts. 1998.// //[SS94] Mukesh Singhal and Niranjan G. Shivaratri. Advanced Concepts in Operating Sustems: Distributed, Datbase and Multiprocessor Operating Systems. 1994.// //[Nut97] Gary J. Nutt. Operating Systems: A modern Perspective. 1997.// //[Jua94] Vicente Cholvi Juan. Formalizació́n de modelos de memoria. 1994.// //[Mas98] Jordi Bataller Mascarell. Aplicacions distribuïdes sobre memòria compartida: suport i anàlisi formal. 1998.//