Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Qu es un Sistema Distribuido?
Un sistema distribuido es una coleccin de computadoras independientes que aparecen ante los usuarios como una nica computadora. - Andrew S. Tanembaum, Sistemas operativos Distribuidos.
En un software dbilmente acoplado en hardware dbilmente acoplado es normal que los comandos para conectarse de manera remota a otra estacion de trabajo lo haga mediante un comando como:
rlogin machina Esto convierte la estacion de trabajo en una terminal enlazada con la maquina remota. Los comandos escritos en el teclado se envian a la maquina remota y la salida de la maquina remota se exhibe en la pantalla.
rcp machine1:file1 machine2:file2 Esto copiara el archivo file 1 de machine1 a machine2 con el nombre file2.
Aunque es mejor que nada, esta forma de comunicacin es primitiva en extremo y ha provocado que los diseadores de sistemas busquen formas mas convenientes de comunicacin y distribucin de la informacin. Un metodo consiste en proporcionar un sistema de archivos globalm compartido, accesible desde todas las estaciones de trabajo, a estas se les llama servidores de archivos, y estos aceptan solicitudes de lectura y escritura de archivos por parte de los programas usuarios que se ejecutan en las otras maquinas llamadas clientes Es posible que todas las maquinas ejecuten el mismo sistema operativo, pero esto no es necesario, minimo deben coincidir en el formato y significado de los mensajes que podrian intercambiar, en una situacin como esta, en la que cada maquina tiene un alto grado de autonomia y existen pocos requisitos a lo largo de todo el sistema, las
Esto es con software fuertemente acoplado en hardware dbilmente acoplado (osea multicomputadoras). El objetivo de un sistema de este tipo es crear la ilusion en las mentes de los usuarios que toda la red de computadoras es un sistema de tiempo compartido, en vez de una coleccin de maquinas diversas. Algunos autores se refieren a esta propiedad como la imagen de unico sistema, otros mencionan que un sistema distribuido es aquel que se ejecuta en una coleccin de maquinas enlazadas
Por ultimo se analizara el software y hardware fuertemente acoplados. Aunque existen varias maquinas de proposito especial en esta categora (como las maquinas dedicadas a las bases de datos), los ejemplos mas comunes de proposito general son los multiprocesadores que operan como un sistema de tiempo compartido de UNIX, solo que con varios CPU en vez de uno. La caracteristica clave de este tipo de sistema es la existencia de una cola de ejecucin: una lista de todos los procesos en el sistema que no estan bloqueados en forma lgica y listos para su ejecucin.
Aqu se veran algunos de los aspectos claves de diseo con los que deben trabajar las personas que piensan construir un sistema operativo distribuido.
1.5.1 Transparencia
Esta se puede lograr en dos niveles distintos. Lo mas facil es ocultar la distribucin a los usuarios y en una forma mas difcil sera hacer que el sistema sea transparente para los programas. La transparencia de migracin: es que los recursos deben moverse de una posicin a otra sin tener que cambiar sus nombres.
Si un sistema distribuido tiene transparencia de replica, entonces es libre de fabricar por su cuenta copias adicionales de los archivos y otros recursos sin que lo noten los usuarios. Si el sistema es transparente con respecto a la concurrencia los usuarios no notaran la existencia de otros usuarios. Y por ultimo la transparencia con respecto al paralelismo supone que un sistema distribuido debe aparecer ante los usuarios como un sistema tradicional de tiempo compartido con un procesador.
1.5.2 Flexibilidad
Es importante que el sistema sea flexible ya que apenas estamos aprendiendo a construir sistemas distribuidos. Existen dos escuelas de pensamiento en cuanto a la estructura de los sistemas distribuidos, una mantiene que cada maquina debe ejecutar un ncleo tradicional que proporcione la mayoria de los servicios, y la otra sostiene que el ncleo debe proporcionar lo menos posible y que el grueso de los servicios del sistema operativo se obtenga a partir de los servidores a nivel usuario, a estos metodos se les conocen como ncleo monoltico y microncleo.
El ncleo monolitico es el sistema operativo campeon reinante aumentado con capacidades de red y la integracin de servicios remotos, pero el micronucleo es el retador en ascenso ya que los sistemas distribuidos diseados a partir de cero utilizan ese metodo ya que es mas flexible y proporciona solo 4 servicios minimos: Un mecanismo de comunicacin entre procesos.
1.5.3 Confiabilidad
Uno de los objetivos de la construccion de sistemas ditribuidos fue el hacerlos mas confiables que los sistemas de un procesador, la idea es que si una maquina falla otra se encargue del trabajo.
Veremos los dos aspectos de la confiabilidad: Disponibilidad: fraccin de tiempo en que se puede utilizar el sistema despus de alguna contingencia. Tolerancia de fallas: los sistemas distribuidos pueden disear de forma que esconda las fallas, es decir, ocultarlos de
1.5.4 Desmpeo
En particular, cuando se ejecuta una aplicacin de un sistema distribuido, no debe parecer peor que su ejecucin en un solo procesador, por desgracia esto es mas difcil de lograr que decir. Hay varias metricas del desempeo, el tiempo de respuesta es una, pero tambien son el rendimiento (numero de trabajos por hora), uso del sistema y cantidad consumida de la capacidad de la red.
Una posible forma es prestar atencin al tamao de grano de los calculos para determinar el desempeo, en general los trabajos que implican gran numero de trabajos de pequeos calculos, en particular aquellos que interactuan en gran medida con otrs pueden ser la causa de algunos problemas en los sistemas distribuidos con una comunicacin lenta en terminos relativos esto es exhibir un paralelismo de grano fino, por otro lado los trabajos que implican grandes calculos y bajas tasas de interaccion asi como pocos datos, paralelismo de grano grueso puede
1.5.5 Ecalabilidad
La mayor parte de los sistemas distribuidos estan diseados para trabajar con unos cuantos cientos de CPU, es posible que despus tengan mayores ordenes de magnitud y las solucion es que funcione bien para 200 maquinas o mas dependiendo el caso.