Está en la página 1de 12

UNIVERSIDAD REGIONAL AUTONOMA DE LOS ANDES

” UNIANDES QUEVEDO”

NOMBRE:

MILTON EMANUEL GAIBOR SANCHEZ

DOCENTE:

ASIGNATURA:

TEMA

REALIZAR UN INFORME SOBRE COMPUTACION DISTRIBUIDA


INTRODUCCIÓN

Desde el inicio de la era de la computadora moderna (1945), hasta cerca de


1985, sólo se conocía la computación centralizada. A partir de la mitad de la
década de los ochenta aparecen dos avances tecnológicos fundamentales:

Desarrollo de microprocesadores poderosos y económicos con arquitecturas de


8, 16, 32 y 64 bits.

Desarrollo de redes de área local (LAN) de alta velocidad, con posibilidad de


conectar cientos de máquinas a velocidades de transferencia de millones de
bits por segundo (mb/seg).

Aparecen los sistemas distribuidos, en contraste con los sistemas


centralizados.

Un sistema distribuido es un sistema en el que los


componentes hardware o software:

 Se encuentran en computadores unidos mediante una red


 Se comunican únicamente mediante paso de mensajes

Los S. O. para sistemas distribuidos han tenido importantes desarrollos, pero


todavía existe un largo camino por recorrer. Los usuarios pueden acceder a
una gran variedad de recursos computacionales:

De hardware y de software.

Distribuidos entre un gran número de sistemas computacionales conectados.

Características de un sistema distribuido: 

Concurrencia. En una red de computadores, la ejecución concurrente de un


programa es la norma.

Inexistencia de un reloj global. Necesidad de temporalidad para


coordinación/sincronización.

Fallos independientes.
 Por aislamiento de la red (red)
 Por parada de un computador (hardware)
 Por terminación anormal de un programa (software)

El concepto de transmisión de mensajes se originó a finales de la década de


los 60. A pesar de que el multiprocesador de propósito general y las redes de
computadoras no existían en ese momento, surgió la idea de organizar un
sistema operativo como una colección de procesos de comunicación donde
cada proceso tiene una función específica, en la cual, no pueden interferir otros
(variables no compartidas). De esta forma, en los años 70 nacieron los
primeros sistemas distribuidos generalizados, las redes de área local (LAN)
como Ethernet 2.

Este suceso generó inmediatamente una gran cantidad de lenguajes,


algoritmos y aplicaciones, pero no fue hasta que los precios de las LANs
bajaron, cuando se desarrolló la computación cliente/servidor. A finales de la
década de 1960 se creó ‘Advanced Research Projects Agency Network’
(ARPANET). Esta agencia fue la espina dorsal de Internet hasta 1990, tras
finalizar la transición al protocolo TCP/IP, iniciada en 1983. En los primeros
años de 1970, nace el correo electrónico ARPANET, el que es considerado
como la primera aplicación distribuida a gran escala. 3.

Durante las dos últimas décadas se han realizado investigaciones en materia


de algoritmos distribuidos y se ha avanzado considerablemente en la madurez
del campo, especialmente durante los años ochenta. Originalmente la
investigación estaba muy orientada hacia aplicaciones de los algoritmos en
redes de área amplia (WAN), pero hoy en día se han desarrollado modelos
matemáticos que permiten la aplicación de los resultados y métodos a clases
más amplias de entornos distribuidos.

Existen varias revistas y conferencias anuales que se especializan en los


resultados relativos a los algoritmos distribuidos y la computación distribuida.
La primera conferencia sobre la materia fue el simposio ‘Principles of
Distributed Computing’ (PoDC) en 1982, cuyos procedimientos son publicados
por ‘Association for Computing Machinery, Inc’. ‘International Workshops on
Distributed Algorithms’ (WDAG) se celebró por primera vez en Ottawa en 1985
y después en Ámsterdam (1987) y Niza (1989). Desde entonces, sus actas son
publicadas por Springer-Verlag en la serie ‘Lecture Notes on Computer
Science’. En 1998, el nombre de esta conferencia cambió a Distributed
Computing (DISC). Los simposios anuales sobre teoría de computación
(‘SToC’) y fundamentos de informática (FoCS) cubren toda el área fundamental
de la informática, llevando a menudo documentos sobre computación
distribuida.

Las actas de ‘SToC’ son publicadas por ‘Association for Computing Machinery,
Inc.’ y los de FoCS por el IEEE. ‘The Journal of Parallel and Distributed
Computing (JPDC), ‘Distributed Computing’ e ‘Information Processing Letters’
(IPL) publican algoritmos distribuidos regularmente. 

Así fue como nacieron los sistemas distribuidos.

Modelos

Los sistemas destinados a ser utilizados en entornos del mundo real deben
estar diseñados para funcionar correctamente en la gama más amplia posible
de circunstancias y ante posibles dificultades y amenazas. Las propiedades y
los problemas de diseño de sistemas distribuidos pueden ser capturados y
discutidos mediante el uso de modelos descriptivos. Cada modelo tiene la
intención de proporcionar una descripción abstracta y simplificada pero
consistente de un aspecto relevante del diseño del sistema distribuido.

Algunos aspectos relevantes pueden ser: el tipo de nodo y de red, el número


de nodos y la responsabilidad de estos y posibles fallos tanto en la
comunicación como entre los nodos. Se pueden definir tantos modelos como
características queramos considerar en el sistema, pero se suele atender a
esta clasificación:
12
Modelos físicos: Representan la forma más explícita para describir un
sistema, identifican la composición física del sistema en términos
computacionales, principalmente atendiendo a heterogeneidad y escala.
Podemos identificar tres generaciones de sistemas distribuidos:

Primeros sistemas distribuidos: Surgen los años 70-80 en respuesta a las


primeras redes locales (Ethernet). El objetivo era brindar calidad de servicio
(coordinación y sincronización) desde el inicio, constituyendo el punto básico
del que partir en el futuro.
Sistemas distribuidos escalables en Internet: Nacen en base al gran
crecimiento de internet en los años 90. Se empieza a implantar un entorno de
redes interconectadas, más conocido como red de redes (Internet), dando lugar
a un aumento considerable en cuanto al número de nodos y al nivel de
heterogeneidad. Se definen estándares abiertos como CORBA o el servicio
web.
Sistemas distribuidos contemporáneos: Los sistemas distribuidos han adquirido
nuevas características que también se deben incluir al momento de diseñar e
implementar un sistema (extensibilidad, seguridad, concurrencia,
transparencia...etc). La aparición de la computación móvil, la computación
ubicua o la computación en la nube y las arquitecturas de clusters hacen
necesaria la implementación de elementos computacionales más complejos
sujetos a un control centralizado, ofreciendo una amplia variedad de
aplicaciones y servicios acorde a su demanda (miles de nodos).

Modelos arquitectónicos: El objetivo general de este tipo de modelo es


garantizar el reparto de responsabilidades entre componentes del sistema
distribuido y la ubicación de dichos componentes. Las principales
preocupaciones son determinar la relación entre procesos y hacer al sistema
confiable, adaptable y rentable.

Cliente-Servidor: modelo de diseño de software en el que las tareas se reparten


entre los proveedores de recursos o servicios, llamados servidores, y los
demandantes, llamados clientes. Los clientes realizan peticiones al servidor,
otro programa, que le da una respuesta. Pero también un servidor puede ser
cliente de otros servidores. Un buen ejemplo sería un servidor web, que es un
cliente de servidor DNS.
Una buena práctica es la replicación para aumentar las prestaciones y
disponibilidad, más conocido como servidor espejo. Otra opción pueden ser
los servidores proxy, que usan cachés con los datos más recientes solicitados.
Derivados: código móvil, agente móvil, computadores en red, clientes ligeros
o Cloud Computing.
Peer-to-peer: Sistemas de igual a igual, es decir, todos los elementos
interconectados tienen el mismo papel. Se trata de un servicio totalmente
descentralizado y auto-organizado, facilitando un equilibrio dinámico de las
cargas (de almacenamiento y de procesamiento) entre las computadoras del
sistema.
Modelos de fallos: estudio e identificación de las posibles causas de fallo.
Pueden clasificarse según la entidad, dando lugar a fallos de proceso o fallos
de comunicación, o según el problema, dando lugar a fallos por omisión o
arbitrarios:

Fallos por omisión en procesos: Fallos del procesamiento, fallo-parada (el


proceso para y permanece parado) o detección del fallo por timeout, el proceso
no responde (solo en modelos síncronos)
Fallos por omisión en comunicaciones: fallos en el envío (no se coloca el
mensaje en el búfer) o en la recepción (el proceso no recibe el mensaje).

Ventajas 

Ambiente geográficamente distribuido: En primer lugar, en muchas


situaciones, el entorno informático en sí mismo está geográficamente
distribuido. Como ejemplo, consideremos una red bancaria. 

Speed up: En segundo lugar, existe la necesidad de acelerar los cálculos. La


velocidad de cómputo en los uniprocesadores tradicionales se está acercando
rápidamente al límite físico. Mientras que los procesadores súper escalares y
VLIW estiran el límite introduciendo un paralelismo a nivel arquitectónico
(cuestión de la instrucción), las técnicas no se escalan mucho más allá de un
cierto nivel.

Compartir recursos: En tercer lugar, existe la necesidad de compartir los


recursos. El usuario de la computadora A puede querer usar una impresora
láser conectada con la computadora B, o el usuario de la computadora B puede
necesitar un poco de espacio extra en el disco disponible en la computadora C
para almacenar un archivo grande. En una red de estaciones de trabajo, es
posible que la estación de trabajo A quiera utilizar la potencia de cálculo en
reposo de las estaciones de trabajo B y C para aumentar la velocidad de un
determinado cálculo.

Tolerancia a fallos: Por último, los poderosos uniprocesadores, o sistemas de


computación construidos alrededor de un solo nodo central son propensos a un
completo colapso cuando el procesador falla. Muchos usuarios consideran que
esto es arriesgado. Sin embargo, están dispuestos a transigir con una
degradación parcial del rendimiento del sistema, cuando un fallo paraliza una
fracción de los muchos elementos de procesamiento o enlaces de un sistema
distribuido

Inconvenientes 

Escalabilidad: El sistema debe diseñarse de tal manera que la capacidad


pueda ser aumentada con la creciente demanda del sistema.

Heterogeneidad: La infraestructura de comunicaciones consiste en canales de


diferentes capacidades.

Gestión de los recursos: En los sistemas distribuidos, los recursos se


encuentran en diferentes lugares. El enrutamiento es un problema en la capa
de red y en la capa de aplicación.

Seguridad y privacidad: Dado que los sistemas distribuidos tratan con datos e
información sensible, se deben tener fuertes medidas de seguridad y
privacidad. La protección de los activos del sistema distribuido, así como los
compuestos de nivel superior de estos recursos son cuestiones importantes en
el sistema distribuido.
Transparencia: La transparencia significa hasta qué punto el sistema
distribuido debe aparecer para el usuario como un sistema único. El sistema
distribuido debe ser diseñado para ocultar en mayor medida la complejidad del
sistema.

Apertura: La apertura significa hasta qué punto un sistema es diseñado


utilizando protocolos estándar para apoyar la interoperabilidad. Para lograr
esto, el sistema distribuido debe tener interfaces bien definidas.

Sincronización: Uno de los principales problemas es la sincronización de los


cálculos consistentes en miles de componentes. Métodos actuales de
sincronización como los semáforos, los monitores, las barreras, la llamada a
procedimientos remotos, la invocación de métodos de objetos y el paso de
mensajes, no escalan bien.

Interbloqueo y condiciones de carrera: El interbloqueo y las condiciones de


carrera son otras grandes cuestiones en el sistema distribuido, especialmente
en el contexto de las pruebas. Se convierte en un tema más importante
especialmente en el entorno de multiprocesadores de memoria compartida.

Formalmente, un problema computacional consiste en instancias junto con una


solución a cada una de ellas. Las instancias se pueden traducir como
preguntas que nosotros hacemos al computador y las soluciones como las
respuestas del mismo a nuestras preguntas.

Teóricamente, la informática teórica busca encontrar la relación entre


problemas que puedan resolverse mediante un computador (teoría de la
computabilidad) y la eficiencia al realizarlo(teoría de la complejidad
computacional).

Comúnmente, hay tres puntos de vista:

 Algoritmos paralelos en el modelo de memoria compartida.

Un algoritmo paralelo define múltiples operaciones para ser ejecutadas en cada


paso. Esto incluye comunicación/coordinación entre las unidades de
procesamiento.
Un ejemplo claro para este tipo de modelos sería el modelo de máquinas de
acceso aleatorio paralelo (PRAM).

- Memoria RAM paralela


- Memoria central compartida
- Conjunto de unidades de procesamiento (PUs)
- El número de unidades de procesamiento y el tamaño de la memoria
es ilimitado.

Detalles del modelo PRAM

-Ejecución lock-step

Es un ciclo de 3 fases:

1. Se leen las celdas de memoria.


2. Se ejecutan los cálculos y computaciones locales.
3. Escribir en la memoria compartida.
Todas las unidades de procesamiento ejecutan estos pasos
sincrónicamente.
No hay necesidad de una sincronización explícita.
-Acerca de los accesos simultáneos a la memoria:
Modelos PRAM:

CREW: Lectura simultánea, escritura exclusiva


CRCW: Lectura simultánea, escritura simultánea
EREW: Lectura exclusiva, escritura exclusiva

APLICACIONES

Sistemas Comerciales. - Inicialmente fueron construidos con hardware


dedicado y entornos centralizados, son, por sus características de distribución
geográfica y necesidad de acceso a sistemas distintos, ideales para
implementarse en sistemas distribuidos. Requieren ciertas características de
fiabilidad, seguridad y protección. Algunos ejemplos son:
Sistemas de reservas de líneas aéreas.
Aplicaciones bancarias.
Cajas y gestión de grandes almacenes.
Redes WAN.- Debido al gran crecimiento de este tipo de redes (Internet), ha
tomado gran importancia el intercambio de información a través de la red. Y
para esto tenemos los siguientes ejemplos:
Los servicios comunes que brinda Internet: Correo electrónico, servicio de
noticias, transferencia de archivos, la Wrld Wide Web, etc.
Aplicaciones Multimedia.- Son las últimas incorporaciones a los sistemas
distribuidos. Estas aplicaciones imponen ciertas necesidades de hardware para
poder tener una velocidad y regularidad de transferencia de una gran cantidad
de datos. Los ejemplos de estos sistemas son:
 Videoconferencia.
 Televigilancia.
 Juegos multiusuarios.
Enseñanza asistida por ordenador.
Áreas de la informática aplicada a los Sistemas Distribuidos.- En este punto se
tienen en cuenta toda la variedad de aplicaciones de los sistemas distribuidos,
pues su diseño involucra a muchas áreas, por ejemplo:
 Comunicaciones.
 Sistemas operativos distribuidos.
 Base de datos distribuidas.
 Servidores distribuidos de ficheros.
 Lenguajes de programación distribuidos.
 Sistemas de tolerancia de fallos

Los sistemas distribuidos abarcan una cantidad de aspectos considerables, por


lo cual su desarrollo implica mucha complejidad. Existen ciertos aspectos que
requieren extremo cuidado al desarrollarse e implantarse como el manejo de
fallos, el control de la concurrencia, etc.

Existen muchos temas de investigación relacionados con los sistemas


distribuidos, por ejemplo los planteados en el apartado de Desafíos. Se nota
también que muchas tecnologías están en constante desarrollo y maduración,
lo cual implica un minucioso estudio previo de muchos factores antes de
apostar por alguna tecnología en especial.

También podría gustarte