Introducción A Los Sistemas Distribuidos (resumen)
Enviado por • 12 de Junio de 2014 • 2.850 Palabras (12 Páginas) • 457 Visitas
Introducción a los sistemas
Distribuidos (resumen).
1.1.1 Tipos de sistemas
•Sistemas de lotes. Son los primeros sistemas operativos, que permitían procesar en diferido y secuencialmente datos suministrados en paquetes de tarjetas perforadas.
•Sistemas centralizados de tiempo compartido. Fue el siguiente paso, a mediados de los 60. El objetivo es incrementar la eficiencia en el uso de la
CPU, un recurso entonces caro y escaso.
•Sistemas de teleproceso. Se diferencian del modelo anterior en que los terminales más recientemente, sistemas personales son remotos y acceden a un sistema central utilizando una infraestructura de red (telefónica) y un protocolo de comunicaciones normalmente de tipo propietario.
•Sistemas personales. La motivación de este tipo de sistemas estuvo en proporcionar un sistema dedicado para un único usuario, lo que fue posible gracias al abaratamiento del hardware por la irrupción del microprocesador a comienzos de los 80.
•Sistemas en red. En la evolución del teleproceso, los terminales fueron ganando capacidad de cómputo y funcionalidad hasta convertirse en sistemas autónomos.
•Sistemas distribuidos. Los recursos de diferentes máquinas en red se integran de forma que desaparece la dualidad local/remoto. La diferencia fundamental con los sistemas en red es que la ubicación del recurso es transparente a las aplicaciones y usuarios, por lo que, desde este punto de vista, no hay diferencia con un sistema de tiempo compartido.
El modelo de sistema distribuido es el más general, por lo que, aunque no se ha alcanzado a nivel comercial la misma integración para todo tipo de recursos.
1.2 Propiedades de los sistemas distribuidos
Un sistema distribuido que pretenda ofrecer una visión de sistema único deberá cumplir las propiedades que se presentan a continuación.
1.2.1 Transparencia
El objetivo esencial de un sistema distribuido es proporcionar al usuario y a las aplicaciones una visión de los recursos del sistema como gestionados por una sola máquina virtual. La distribución física de los recursos es transparente.
•De la ubicación física de los recursos. Ni los usuarios ni las aplicaciones conocen en qué nodo reside el recurso accedido, o si éste es local o remoto.
•De replicación. Ni los usuarios ni las aplicaciones conocen cuántas unidades hay de cada recurso, ni si se añaden o eliminan copias del recurso.
•De paralelismo. Una aplicación puede ejecutarse en paralelo, sin que la aplicación tenga que especificarlo, y sin consecuencias sobre la ejecución, salvo por cuestiones de rendimiento.
•De compartición. El que un recurso compartido intente ser accedido simultáneamente desde varias aplicaciones no tiene efectos sobre la ejecución de la aplicación.
•De rendimiento. Inevitablemente, implementar las propiedades de los sistemas distribuidos será a costa de una pérdida de rendimiento.
1.2.2 Escalabilidad
Una de las características de los sistemas distribuidos es su modularidad, lo que le permite una gran flexibilidad y posibilita su escalabilidad, definida como la capacidad del sistema para crecer sin aumentar su complejidad ni disminuir su rendimiento.
La escalabilidad presenta dos aspectos. El sistema distribuido debe (1) proporcionar espacios de nombres suficientemente amplios, de forma que no supongan una limitación inherente, y (2) mantener un buen nivel de rendimiento en el acceso a los recursos cuando el sistema crece.
•Espacios de nombres. Los espacios de nombres, al igual que en los sistemas centralizados, pueden identificar objetos de diferente naturaleza, como ficheros, procesos, variables, o incluso direcciones de memoria (en los sistemas de memoria compartida distribuida, DSM).
•Complejidad/rendimiento. El crecimiento de un sistema distribuido puede introducir cuellos de botella y latencias que degradan su rendimiento. Además del incremento de los costes de comunicación por el aumento de la distancia física entre los componentes del sistema, la complejidad estructural de los algoritmos distribuidos es a menudo más que lineal con respecto al tamaño del sistema, como iremos comprobando a lo largo del curso.
1.2.3 Fiabilidad y tolerancia a fallos
La fiabilidad de un sistema puede definirse como su capacidad para realizar correctamente y en todo momento las funciones para las que se ha diseñado.
La fiabilidad se concreta en dos aspectos:
•Disponibilidad. Es la fracción de tiempo que el sistema está operativo.
El principal parámetro para medir la disponibilidad es el tiempo medio entre fallos (MTBF), pero hay que considerar también el tiempo de reparación. La disponibilidad se puede incrementar de dos formas: (a) utilizando componentes de mayor calidad, y/o (b) con un diseño basado en la replicación de componentes que permita al sistema seguir operando aun cuando alguno(s) de ellos falle(n). Ambas alternativas incrementan el coste del sistema; sin embargo, en el estado tecnológico actual, la replicación resulta, en general, menos costosa.
•Tolerancia a fallos. Aún con una alta disponibilidad, un fallo en un momento determinado puede tener consecuencias desastrosas. Piénsese en sistemas de tiempo real críticos que controlan dispositivos vitales (por ejemplo en medicina, centrales nucleares...). Es decir, aunque la replicación aumenta la disponibilidad, no garantiza por sí sola la continuidad del servicio de forma transparente. La tolerancia a fallos expresa la capacidad del sistema para seguir operando correctamente ante el fallo de alguno de sus componentes, enmascarando el fallo al usuario o a la aplicación.
1.2.4 Consistencia
La distribución de recursos introduce importantes beneficios. Por una parte, contribuye al incremento del rendimiento a través del paralelismo y promoviendo el acceso a copias locales del recurso (disminuyendo los costes de comunicación).
1.3 Aplicaciones distribuidas
En primer lugar, hay que distinguir entre aplicaciones distribuidas y aplicaciones paralelas. Una aplicación paralela es aquélla que puede dividirse en tareas que se ejecutan concurrentemente en diferentes elementos de proceso, con el objetivo de disminuir el tiempo de finalización. La mayoría de las aplicaciones pueden ejecutarse en paralelo, ateniéndose a determinados esquemas de cómputo (por ejemplo, siguiendo un modelo pipeline) que dependen
...