24

Sistemas Distribuidos

  • Upload
    drianda

  • View
    4.174

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Sistemas Distribuidos
Page 2: Sistemas Distribuidos

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

Page 3: Sistemas Distribuidos

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

Page 4: Sistemas Distribuidos

Sistemas Distribuidos-----------------------------------------------------------------------------------------------------------------------------------

Índice | iii

Page 5: Sistemas Distribuidos

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

Page 6: Sistemas Distribuidos

-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

Page 7: Sistemas Distribuidos

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

Page 8: Sistemas Distribuidos

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

Page 9: Sistemas Distribuidos

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

Page 10: Sistemas Distribuidos

• 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

Page 11: Sistemas Distribuidos

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

Page 12: Sistemas Distribuidos

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

Page 13: Sistemas Distribuidos

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

Page 14: Sistemas Distribuidos

-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

Page 15: Sistemas Distribuidos

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

Page 16: Sistemas Distribuidos

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

Page 17: Sistemas Distribuidos

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

Page 18: Sistemas Distribuidos

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

Page 19: Sistemas Distribuidos

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