Upload
drianda
View
4.174
Download
0
Embed Size (px)
Citation preview
Sistemas Distribuidos-----------------------------------------------------------------------------------------------------------------------------------
ÍNDICE
1. CARACTERÍSTICAS DE UN SISTEMA DISTRIBUIDO ..................................................................... 1
A) CONCURRENCIA.-.........................................................................................................................1B) CARENCIA DE RELOJ GLOBAL.-.........................................................................................................1C) FALLOS INDEPENDIENTES DE LOS COMPONENTES.-................................................................................1D) SEPARACIÓN FUNCIONAL.-.............................................................................................................1E) DISTRIBUCIÓN INHERENTE.-............................................................................................................1F) HETEROGENEIDAD.-......................................................................................................................1
2. OBJETIVOS DE LOS SISTEMAS DISTRIBUIDOS ........................................................................... 2
3. VENTAJAS DE LOS SISTEMAS DISTRIBUIDOS ............................................................................. 3
3.1. VENTAJAS CON RESPECTO A SISTEMAS CENTRALIZADOS:.....................................................................33.2. VENTAJAS CON RESPECTO A PCS INDEPENDIENTES:...........................................................................3
4. DESVENTAJAS DE LOS SISTEMAS DISTRIBUIDOS ....................................................................... 4
4.1. SOFTWARE:.............................................................................................................................44.2. REDES:...................................................................................................................................44.3. SEGURIDAD:............................................................................................................................4
5. COMPLEJIDAD DE LOS SISTEMAS DISTRIBUIDOS ...................................................................... 5
5.1. SISTEMAS FUERTEMENTE ACOPLADOS............................................................................................65.2. SISTEMAS DÉBILMENTE ACOPLADOS...............................................................................................6
6. TÉCNICAS DE CONSTRUCCIÓN ...................................................................................... 7
6.1TRANSPARENCIA.........................................................................................................................76.2. CONFIABILIDAD.........................................................................................................................76.3. ESCALABILIDAD.........................................................................................................................76.4. FLEXIBILIDAD............................................................................................................................86.5. DESEMPEÑO............................................................................................................................8
Índice | i
Sistemas Distribuidos-----------------------------------------------------------------------------------------------------------------------------------
6.6. INTERCAMBIABILIDAD.................................................................................................................86.7. PORTABILIDAD..........................................................................................................................96.8. INTEROPERABILIDAD..................................................................................................................9
7. REQUERIMIENTOS DE APLICACIÓN .......................................................................................... 9
8. ARQUITECTURA BÁSICA ......................................................................................................... 10
8.1. MULTIPROCESADORES CON BASE EN BUSES...................................................................................108.2. MULTIPROCESADOR CON CONMUTADOR.......................................................................................118.3. MULTICOMPUTADORAS CON BASE EN BUSES..................................................................................11
9. SISTEMAS OPERATIVOS DISTRIBUIDOS .................................................................................. 11
9.1. SPRITE:.................................................................................................................................129.2. CHORUS:...............................................................................................................................139.3. AMOEBA:..............................................................................................................................139.4. SOLARIS-MC..........................................................................................................................14
BIBLIOGRAFÍA: .......................................................................................................................... 15
PAGINAS WEB CONSULTADAS: .................................................................................................. 15
ÍNDICE DE TABLAS
TABLA 1.VENTAJAS DE LOS SD SOBRE LOS CENTRALIZADOS.........................................................3TABLA 2.VENTAJAS DE LOS SD SOBRE COMPUTADORAS AISLADAS..............................................3TABLA 3.DESVENTAJAS DE LOS SD...............................................................................................4
ÍNDICE DE FIGURAS
ILUSTRACIÓN 1.SISTEMA SPRITE................................................................................................10ILUSTRACIÓN 2.SISTEMA AMOEBA............................................................................................11
Índice | ii
Sistemas Distribuidos-----------------------------------------------------------------------------------------------------------------------------------
Índice | iii
FUNDAMENTOS DE SISTEMAS DISTRIBUIDOS
1. CARACTERÍSTICAS DE UN SISTEMA DISTRIBUIDO
a) Concurrencia.- Esta característica de los sistemas distribuidos permite que los
recursos disponibles en la red puedan ser utilizados simultáneamente por los
usuarios y/o agentes que interactúan en la red.
b) Carencia de reloj global.- Las coordinaciones para la transferencia de
mensajes entre los diferentes componentes para la realización de una tarea, no
tienen una temporización general, está más bien distribuida en los componentes.
c) Fallos independientes de los componentes.- Cada componente del sistema
pudiera fallar de manera independientemente, y los demás continuar ejecutando
sus acciones.
Esto permite el logro de las tareas con mayor efectividad, pues el sistema en su
conjunto continua trabajando.
d) Separación funcional.- Las funciones se reparten entre diferentes entidades
e) Distribución inherente.- Evidentemente, los recursos se comparten de
manera remota, además las tareas se realizan sin que el usuario sea consciente
de qué recursos se utilizan ni dónde están localizados
f) Heterogeneidad.- Diversidad de dispositivos, aplicaciones, sistemas
operativos, lenguajes de programación, etc.
Sin embargo otros autores señalan las siguientes características de un sistema
distribuido:
-Las máquinas son autónomas.
-Las máquinas están unidas a una red de computadoras.
Página | 1
-Proveen facilidades de cómputo, son tan flexibles y ampliamente aplicables como
las computadoras convencionales, centralizadas o mainframes.
-Un sistema distribuido da la impresión que se esta usando una computadora
integrada de una forma sencilla.
-La instalación de un sistema distribuido esta dada de más de una computadora y
ellas se pueden encontrar en diferentes localizaciones.
-Cada computadora tiene la capacidad de comunicarse con otras dentro del
sistema.
-En un sistema distribuido los usuarios pueden acceder a recursos remotos del
mismo modo como lo hacen a los recursos locales.
2. OBJETIVOS DE LOS SISTEMAS DISTRIBUIDOS
El objetivo primordial de un sistema distribuido consiste en proporcionar a los
usuarios un entorno de utilización de un único sistema donde no se perciban la
existencia de múltiples sistemas.
Otros objetivos de los sistemas distribuidos son:
• Compartir información y otros recursos.
• Economizar el rendimiento (procesamiento y almacenamiento).
• Crecimiento incremental.
• Alta disponibilidad
• Confiabilidad (tolerancia a fallos)
Página | 2
3. VENTAJAS DE LOS SISTEMAS DISTRIBUIDOS
3.1. Ventajas con respecto a Sistemas Centralizados:
Algunas ventajas de los sistemas distribuidos sobre los centralizados son:
Elemento Descripción
EconomíaLos microprocesadores ofrecen mejor proporción precio/rendimiento que los mainframes
VelocidadUn sistema distribuido puede tener mayor poder de cómputo que un mainframe
Distribución inherenteAlgunas aplicaciones utilizan maquinas que están separadas a cierta distancia
ConfiabilidadSi una máquina se descompone, el sistema puede sobrevivir como un todo
Crecimiento por incrementosSe puede añadir poder de cómputo en pequeños incrementos
Tabla 1.Ventajass de los SD sobre los centralizadosFuente: www.geocities.ws
3.2. Ventajas con respecto a PCs Independientes:
Algunas ventajas de los sistemas distribuidos sobre las computadoras aisladas
son:
Elemento Descripción
Datos compartidosPermiten que varios usuarios tengan acceso a una base de datos común
Dispositivos compartidos
Permiten que varios usuarios compartan periféricos caros, como las impresoras de color
ComunicaciónFacilita la comunicación de persona a persona; por ejemplo mediante el correo electrónico
FlexibilidadDifunde la carga de trabajo entre las máquinas disponibles en la forma más eficaz en cuanto a los costos.
Tabla 2.Ventajas de los SD sobre computadoras aisladasFuente: www.geocities.ws
Página | 3
4. DESVENTAJAS DE LOS SISTEMAS DISTRIBUIDOS
Algunas desventajas de los sistemas distribuidos son:
Elemento Descripción
Software Existe poco software para los sistemas distribuidos
Redes La red se puede saturar o causar otros problemas
Seguridad Un acceso sencillo también se aplica a datos secretos
Tabla 3.Desventajas de los SD.Fuente: www.geocities.ws
4.1. Software: Es una de las principales desventajas de los sistemas distribuidos.
Existe poco software para los sistemas distribuidos en la actualidad en razón del
diseño, implantación y uso. Estos problemas están relacionados con el uso de
sistema operativo, lenguajes de programación y aplicaciones, así como del nivel
de conocimiento por parte del usuario y la certeza de saber qué tanto debe hacer
el sistema y qué tanto deben hacer los usuarios. Mientras mas se realice
investigación, este problema disminuirá, pero por el momento no puede
subestimarse.
4.2. Redes: La red se puede saturar o causar otros problemas como pérdida y
saturación de mensajes, costo de instalación de tendidos de cable o dispositivos
inalámbricos e interfaces de red.
4.3. Seguridad: Un acceso sencillo también se aplica a los datos secretos. Se
recomienda que la computadora principal esté aislada contra accesos no
permitidos, así como contemplar políticas de acceso a los sistemas, el cual debe
estar presente en el sistema distribuido o es un software aparte que apoya al
sistema distribuido.
Página | 4
5. COMPLEJIDAD DE LOS SISTEMAS DISTRIBUIDOS
Los sistemas distribuidos tienen más de dos décadas de haber surgido pero son
tan complicados en su construcción tanto como una red de transporte público
como el metro, y pasará más tiempo para que podamos entenderlos
correctamente y construir uno de la manera más apropiada
• La fuente básica de la complejidad de los SD recae en la interconexión de
componentes.
• Existen fallas en todos los sistemas, sólo que en un SD resultan más visibles. A
continuación se muestran algunos problemas del sistema.
• Al interconectar dos o más elementos entre si, sus funcionalidades se interfieren.
• Pueden existir también fallas de propagación.
• Se pueden tener fallas por el tamaño del sistema.
• Las aplicaciones "distribuidas" deben estar preparadas para soportar fallas
parciales; lo que representa una complejidad adicional en el diseño de éstas
aplicaciones.
• Se deben tener mecanismos para la localización de recursos, la recuperación de
éstos, así como la coordinación de las réplicas de los estados de los servidores.
• No se tiene disponibilidad de una memoria global y un reloj global, no se pueden
predecir los retardos y mensajes.
• Se requiere más capacidad de almacenamiento.
• Se requiere de sincronización para actualizar el estado del sistema.
• Compatibilidad.
Página | 5
• Los recursos compartidos deben ser accedidos por un proceso a la vez
(exclusión mutua) y deben liberarse.
• Seriabilización.
• Los procesos deben solicitar recursos locales o remotos y posteriormente
liberados en cualquier orden que puede ser no conocido.
5.1. Sistemas fuertemente acoplados
Estos sistemas son llamados así porque realizan la hazaña de múltiple
procesamiento de unidades, a menudo participa la memoria simple o espacio de
direcciones para llevar acabo un alto desempeño en un sistema de computo que
esta de otra manera centralizado.
En un sistema fuertemente acoplado, el retraso que se experimenta al enviar un
mensaje de una computadora a otra es corto o pequeño y también la tasa de
transmisión de los datos, esto quiere decir que el número de bits por segundo que
se pueden transmitir, es alta. Los sistemas fuertemente acoplados tienden a
utilizarse más como sistemas paralelos para trabajar con un solo problema.
5.2. Sistemas débilmente acoplados
Los sistemas débilmente acoplados son particularmente efectivos en poder y
flexibilidad en una simple computadora o una estación de trabajo, permitiendo el
acceso a los datos compartidos y recursos localizados en otros servidores vía una
red local de alta velocidad.
En un sistema débilmente acoplado el retraso que se experimenta al enviar los
mensajes entre las máquinas es grande y la tasa de transmisión de los datos es
baja. Los sistemas débilmente acoplados tienden a utilizarse como sistemas
distribuidos para trabajar con varios problemas no relacionados entre si, aunque
no siempre es así.
Página | 6
En general, los multiprocesadores tienden a estar más fuertemente acoplados que
las multicomputadoras, puesto que pueden intercambiar a la velocidad de sus
memorias, pero algunas multicomputadoras basadas en fibra óptica pueden
funcionar también con velocidad de memoria. A pesar de lo vago
6. TÉCNICAS DE CONSTRUCCIÓN
6.1Transparencia
Lograr que el sistema se vea como un todo. Los usuarios deben poder acceder los
objetos remotos de la misma forma que los locales. Es responsabilidad del
sistema de gestión de base de datos distribuida localizar el recurso y obtener la
interacción adecuada.
6.2. Confiabilidad
La confiabilidad tiene que ver con la consistencia de los datos. Si un archivo
importante se replica, hay que asegurarse que las réplicas se mantengan
consistentes; mientras más haya, más caro es mantenerlas, y más probable es
que haya inconsistencias. La seguridad es también un aspecto fundamental
de la confiabilidad.
6.3. Escalabilidad
El objetivo de la escalabilidad es garantizar que un sistema funcione
independientemente del número de computadoras conectadas. Un principio
básico en el diseño de sistemas escalables es que la carga de trabajo de
cualquier componente del sistema debe estar acotada por una constante
independiente del tamaño del sistema. Si no es así, entonces el crecimiento del
sistema estará limitado. En consecuencia, todo lo que huela a centralización a la
larga constituirá un freno a la escalabilidad.
Página | 7
6.4. Flexibilidad
La flexibilidad representa facilidades para cambios posteriores al diseño
(retroalimentación). Los sistemas distribuidos son nuevos; es importante, por
ende, que se puedan adaptar a nuevas tecnologías y a nuevos avances en el
tema.
6.5. Desempeño
Las características del desempeño en los sistemas distribuidos se pueden resumir
en lo siguiente:
• Minimizar el tiempo de respuesta.
• Maximizar el rendimiento en razón del número de trabajos efectuados en un
tiempo determinado.
• Minimizar el uso de recursos del sistema (CPU, memoria, archivos,
entrada/salida, red, etc.).
• Minimizar la cantidad de mensajes enviados en la red. En este caso intervienen
técnicas de inteligencia artificial.
Cabe mencionar que los diseñadores de sistemas distribuidos deben tratar de
nivelar o equilibrar el desempeño contra la confiabilidad.
6.6. Intercambiabilidad
Capacidad de poder cambiar cualquier componente del sistema sin afectar a sus
demás miembros, basado en el principio que consiste en diseñar los diferentes
elementos de un sistemas distribuido con una tolerancia tan estrecha que
cualquier elemento pueda ajustarse a cualquier otro elemento conjugado.
Página | 8
6.7. Portabilidad
Capacidad de funcionalidad de los sistemas computacionales en cualquier
arquitectura de hardware, refiriéndose a que un programa escrito para una
determinada arquitectura se puede compilar y ejecutar en otra arquitectura sin
modificación alguna.
Los sistemas distribuidos deben tener un nivel adecuado de portabilidad (los
programas pueden ser compilados y ejecutados en diferentes arquitecturas sin
tener que realizar modificaciones), al tiempo que hace que las aplicaciones sean
interoperativas.
Otra característica deseable del software con respecto a portabilidad es el tamaño
pequeño de los programas. En efecto, si es necesario posteriormente modificar
un programa, es mejor hacerlo en un programa pequeño -que en última instancia
puede rescribirse- que en uno grande. Esto reafirma la deseabilidad de programar
módulos pequeños.
6.8. Interoperabilidad
Capacidad que consiste en que varios sistemas distribuidos pueden interactuar y
trabajar juntos en la solución de un problema. Es importante notar que para que
los sistemas distribuidos cumplan con las normas o estándares internacionales, la
portabilidad, apertura e interoperabilidad deberán interactuar de manera correcta.
7. REQUERIMIENTOS DE APLICACIÓN
-Como primer punto debe existir un mecanismo de comunicación global entre los
procesos, de forma que cualquier proceso pueda comunicarse con cualquier otro.
-La administración de procesos también debe ser la misma en todas partes. La
forma en que se crean, destruyen, inician y detienen los procesos no debe variar
de una máquina a otra.
Página | 9
-Cualquier máquina puede hacer lo que quiera mientras obedezca los protocolos
estándar cuando participe en una comunicación cliente – servidor.
-Las llamadas al sistema deben ser diseñadas de manera que tengan sentido en
un ambiente distribuido.
-También el sistema de archivos debe tener la misma apariencia en todas partes.
Además, todo archivo debe ser visible desde cualquier posición, sujeto, por
supuesto, a restricciones de protección y seguridad.
-El hecho de tener la misma interfaz de llamadas al sistema en todas partes,
entonces se ejecutan núcleos idénticos en todos los CPU del sistema. Esto facilita
la coordinación de actividades globales. Por ejemplo, cuando se inicie un proceso,
todos lo núcleos debe cooperar en la búsqueda del mejor lugar para ejecutarlo.
-Cada núcleo debe tener un control considerable sobre sus propios recursos
locales. Por ejemplo, puesto que no existe memoria compartida, es lógico permitir
que cada núcleo controle su memoria.
8. ARQUITECTURA BÁSICA
8.1. Multiprocesadores con base en buses
Los multiprocesadores con base en buses constan de cierta cantidad de CPU,
conectados a un bus común, junto con un módulo de memoria. Una configuración
sencilla consta de un plano de base (backplane) de alta velocidad o tarjeta madre,
en el cual se pueden insertar las tarjetas de memoria y el CPU. Un bus típico
tiene 32 o 64 líneas de direcciones, 32 o 64 líneas de datos y 32 o más líneas de
control, todo lo cual opera en paralelo. Para leer una palabra de memoria, un CPU
coloca la dirección de la palabra deseada en las líneas de direcciones del bus y
coloca una señalen las líneas de control adecuadas para indicar que desea leer.
La memoria responde y coloca el valor de la palabra en las líneas de datos para
Página | 10
permitir la lectura de ésta por parte del CPU solicitante. La escritura funciona de
manera similar.
8.2. Multiprocesador con conmutador.
Para construir un multiprocesador con más de 64 procesadores, es necesario un
método distinto para conectar cada CPU con la memoria. Una posibilidad es
dividir la memoria en módulos para conectarlos a las CPU con un conmutador de
cruceta, como se muestra en la figura (a). Cada CPU y cada memoria tiene una
conexión que sale de él, como se muestra.
8.3. Multicomputadoras con base en buses.
La construcción de una multicomputadora, es decir, sin memoria compartida es
fácil. Cada CPU tiene conexión directa con su propia memoria local. El único
problema es la forma en que los CPU se comunicará entre sí. Es claro que aquí
también se necesita de cierto esquema de interconexión, pero como solo es para
la comunicación entre un CPU y otro, el volumen de tráfico será de varias órdenes
menores en relación con el uso de una red de interconexión para el tráfico CPU-
memoria.
Este esquema es muy similar, desde el punto de vista topológico, al procesador
basado en un bus, pero como tendrá menor tráfico, no necesita ser un bus con un
plano de base de alta velocidad. De hacho puede ser una LAN de menor
velocidad. Es más a menudo una colección de estaciones de trabajo en una LAN
que una colección de tarjetas de CPU que se insertan en un bus rápido.
9. SISTEMAS OPERATIVOS DISTRIBUIDOS
Los sistemas operativos distribuidos desempeñan las mismas funciones que un
sistema operativo normal, pero con la diferencia de trabajar en un entorno
distribuido. Su Misión principal consiste en facilitar el acceso y la gestión de los
recursos distribuidos en la red.
Página | 11
En un sistema operativo distribuido los usuarios pueden acceder a recursos
remotos de la misma manera en que lo hacen para los recursos locales. Permiten
distribuir trabajos, tareas o procesos, entre un conjunto de procesadores. Puede
ser que este conjunto de procesadores esté en un equipo o en diferentes, lo cual
es transparente para el usuario.
Los sistemas distribuidos deben de ser muy confiables y estables ya que si un
componente del sistema se descompone otro componente debe de ser capaz de
remplazarlo inmediatamente y no afectar los procesos del sistema.
Entre los diferentes Sistemas Operativos distribuidos que existen tenemos los
siguientes: Sprite, Mach, Chorus, Spring, Amoeba, Solaris-MC, Taos, etc.
9.1. Sprite:
Es un sistema operativo distribuido con un núcleo monolítico. Este sistema
operativo tiene la apariencia para los programadores de un sistema único, ya que
la distribución se produce dentro del propio núcleo y de este modo, Sprite nos da
la impresión de estar trabajando sobre un típico sistema UNIX.
Un sistema Amoeba esta conformado por una pila de procesadores, servidores
especializados, y terminales gráficas.
Ilustración 1.Sistema SpriteFuente: www.freewebs.com
Página | 12
9.2. Chorus:
El sistema operativo Chorus es un sistema operativo altamente escalable y de
implementación confiable, tanto así que se ha establecido entre los proveedores
superiores de Telecomunicaciones. El sistema operativo Chorus se utiliza en
conmutadores públicos, así como dentro del acceso a redes de trabajo,
conmutadores de conexión cruzada, sistemas de correo de voz, estaciones
celulares base, teléfonos-web y teléfonos celulares.
9.3. Amoeba:
Está escrito en C. Posee un lenguaje para el cómputo distribuido y paralelo
llamado Orca. No tiene el concepto de “máquina de origen”.
El Shell inicial se ejecuta en máquina arbitraria, pero los comandos tienen porqué
ejecutarse en la misma máquina que el Shell.
La arquitectura del sistema en Amoeba contempla una pila de procesadores,
servidores especializados y terminales gráficas. Una pila de procesadores tiene
una interfaz de red y memoria RAM. Es posible configurar un conjunto de
máquinas como una pila de procesadores.
Ilustración 2.Sistema AmoebaFuente: www.freewebs.com
Página | 13
9.4. Solaris-MC
Solaris MC es una extensión del núcleo de Solaris para operar en clúster. Éste
sistema incorpora ideas procedentes de Spring, aunque mantiene la estructura de
núcleo monolítico no adaptable que presenta UNIX.
En pocas palabras, Solaris MC es un sistema distribuido que no puede
considerarse como un sistema adaptable en realidad, aunque sea elegante y
extremadamente flexible.
Página | 14
BIBLIOGRAFÍA:
Tanenbaum Andrew S, “Sistemas Operativos Distribuidos”, Editorial Prenticf Hall
Hispanoamericana S.A., México, 1996.
Almidón Ortiz, Carlós Alcides, “Concepto de la Teoría de Sistemas”, Universidad
peruana Los Andes, Perú.
George Coulouris, “Sistemas Distribuidos: Conceptos y Diseño”, Editorial Addison
Wesley, 2001.
PAGINAS WEB CONSULTADAS:
http://www.frm.utn.edu.ar/soperativos/Archivos/Sistemas_Distribuidos.pdf
http://oposicionestic.blogspot.com/2011/06/sistemas-distribuidos.html
http://www.tamps.cinvestav.mx/~vjsosa/sistemas_distribuidos_panorama.pdf
Página | 15