Sie sind auf Seite 1von 31

Capítulo I

Caracterización de los Sistemas


Distribuidos

Dr. Miguel Félix Mata Rivera


migfel@gmail.com
1
Concepto de Sistema
Distribuido(1)
En los términos más simples, un sistema distribuido es un
conjunto de programas que se ejecutan en una o más
computadoras y que coordinan sus acciones mediante el
intercambio de mensajes.
Una red de computadoras es una colección de
computadoras interconectadas por algún hardware que soporta el
paso de mensajes.
La mayoría de los sistemas distribuidos operan sobre una
red de computadoras, pero este no es siempre el caso. Se puede
construir un sistema distribuido en donde sus componentes se
ejecuten sobre una sola computadora multitarea.
Kenneth P. Birman

2
Concepto de Sistema
Distribuido(2)
P2
P3
P

P1

P4

3
Concepto de Sistema
Distribuido(3)
Un sistema distribuido consiste de una colección de
computadoras autónomas, unidas mediante una red y equipadas
con un sistema de software distribuido.
El sistema de software distribuido posibilita que las computadoras
coordinen sus actividades y que compartan sus recursos ya sea
hardware, software o datos.

Los usuarios de un sistema distribuido bien diseñado únicamente


perciben un único servicio aún cuando esté implementado por
varias computadoras en diferentes localidades físicas.
George Coulouris

4
Concepto de Sistema
Distribuido(4)

Servidor de
archivos

Red

Servidor de
impresión

5
Concepto de Sistema
Distribuido(5)
■ Un sistema distribuido consiste de un conjunto de procesos
que cooperan y compiten para alcanzar una meta común.
Estos procesos no comparten memoria global, y
únicamente se comunican por medio del intercambio de
mensajes. El retardo en la comunicación es finito pero
impredecible.
■ Las acciones de los procesos se modelan como tres tipos
de eventos: internos, envío de mensaje, y recepción de
mensaje.
■ Los procesos no comparten un reloj global al que puedan
acceder instantáneamente.
■ Michel Raynal 6
Ejemplos (1) Unix Distribuido
En un principio dominaban los sistemas multiusuario que se construían
alrededor de una computadora de tiempo compartido, con un sistema
operativo que se encargaba de proporcionar y administrar los recursos de
hardware.
Cuando se comenzaron a desarrollar los primeros sistemas
distribuidos, UNIX era el sistema multiusuario más ampliamente utilizado,
por lo que se adoptó como meta un sistema distribuido que cumpliese con
el modelo original de UNIX.
Los desarrollos comenzaron por incluir en el UNIX original soporte
para comunicación entre procesos, lo que se logró a finales de los 70s en
la Universidad de California en Berkeley con el UNIX 4BSD.

7
Ejemplos(2) Unix Distribuido

La implantación más ampliamente usada del modelo


distribuido de UNIX es la desarrollada por Sun
Microsystems, que tomo como base al UNIX 4BSD y le
adicionó elementos como el sistema de archivos de red
(NFS) que desarrolló sobre una implantación muy sencilla
de llamadas a procedimientos remotos (Sun RPC) además
del servicio de información de red (NIS).
Otras implantaciones de UNIX distribuido se han
abocado a eliminar algunas de las dificultades y
limitaciones impuestas por el modelo original de UNIX.
Ejemplos de esto tenemos a los sistemas operativos
distribuidos Mach, Chorus y Amoeba entre otros.
8
Ejemplos(3) Aplicaciones Comerciales
Muchos sistemas comerciales de procesamiento de datos y de
información incluyen comunicación, por ejemplo los sistemas de
reservación de las líneas aéreas, los sistemas operados por los bancos,
etc.
Estos tipo de sistemas requieren:

n alta confiabilidad
n seguridad contra interferencias externas
n privacidad
n acceso concurrente a bases de datos
n garantías de tiempos de respuesta
n puntos distribuidos de acceso al sistema
n Escalabilidad
n ser abiertos

9
Ejemplos(4) Aplicaciones de Redes de
Área Amplia
n Como marco para las aplicaciones que trabajan sobre redes
de área amplia tenemos a Internet, que surgió de ARPAnet
la primera red de computadoras de área amplia. La
característica clave en el diseño de Internet fue la
escalabilidad, para permitir a la red misma y a las
aplicaciones que corren sobre ella crecer en varios ordenes
de magnitud.
A pesar del descomunal crecimiento de Internet, el
software de comunicaciones sobre el que subyace no ha
tenido que ser modificado, de la misma manera, las
aplicaciones distribuidas desarrolladas sobre él persisten
hasta nuestros días sin cambios significativos.
10
Ejemplos(5)
Existen varios ejemplos de aplicaciones distribuidas sobre Internet
como:
n Correo electrónico (problema de resolución de nombres, añadir,

borrar y modificar nombre sin interrumpir la operación del


sistema),
• Servicio de netnews,

• WWW,

n Acceso a Datos Multimedia y Aplicaciones de teleconferencia


Muchas de las aplicaciones multimedia dependen de sistemas
distribuidos para permitir que sus usuarios interactúen o compartan
recursos.
11
Ejemplos(6)
Este tipo de sistemas distribuidos para aplicaciones
multimedia tienen necesidades especiales como:
n El audio y vídeo son continuos. Debido a que son generados y
deben ser reproducidos a cierta tasa fija.
n Las aplicaciones de videoconferencia y audioconferencia tienen un
requerimiento adicional concerniente al retardo entre el inicio de
una conversación en un punto y su reproducción en el destino.
Los servicios que se utilicen para almacenar y transmitir
datos con restricciones temporales deben garantizar ciertas
tasas de transmisión mínimas y retardos máximos, con el fin
de proporcionar una calidad aceptable. Los sistemas
operativos utilizados deben cumplir características de tiempo
real.
12
Características Clave

•Compartir recursos
•Abiertos
•Concurrentes
•Escalables
•Tolerantes a fallas
•Transparentes

13
Compartir Recursos(1)
El término "recurso" se utiliza para designar a las cosas
que se pueden compartir de manera útil en un sistema
distribuido. Como recurso podemos designar tanto
elementos de hardware como de software.
n Los dispositivos de hardware como discos, impresoras,

procesadores de alto desempeño, se comparten para


obtener mayor beneficio de ellos.
 En muchas aplicaciones es esencial compartir datos.

⇒ Trabajo colaborativo.

⇒ Bases de Datos Distribuidas.

⇒ Tele educación.

14
Compartir Recursos(2)
Los recursos en un sistema distribuido se encuentran encapsulados
en la máquina que los contiene y la única manera de acceder a ellos es
por medio de la red.
Para compartir los recursos de manera efectiva debe existir una
entidad de software que se encargue de administrar el recurso y que
presente una interfaz de comunicación por medio de la cual se pueda
acceder a él de manera confiable y consistente.
Se utiliza el término administrador de recursos para denotar a una
entidad de software que administra un conjunto de recursos de un tipo
en particular. Es responsabilidad de él proporcionar un esquema de
nombrado para acceder a cada uno de los recursos de manera individual,
y administrar los accesos concurrentes con el fin de proporcionar
confiabilidad y consistencia.

15
Compartir Recursos(3) Modelo
Cliente-Servidor
n Hay un conjunto de procesos servidores, cada uno actuando
como administrador de recursos, y una colección de
procesos clientes que desarrollan tareas que requieren
acceder a recursos de hardware y software compartidos.
Todos los recursos están sujetos a un administrador de
recursos que recibe solicitudes de parte de los clientes y les
devuelve los resultados de dicha solicitud.
En el modelo cliente-servidor se puede ver a cada
proceso servidor como un proveedor centralizado de los
recursos que administra.
Existe una distinción entre los servicios que se les
proporciona a los clientes y los servidores que se encargan
de proporcionarlos.
16
Compartir Recursos(4) Modelo
Basado en objetos:
n Cada recurso se visualiza como un objeto. Los objetos están
identificados de manera única dentro del sistema distribuido
y normalmente dicha identificación es independiente de su
localización. Cuando un programa intenta acceder a un
recurso le envía un mensaje al objeto en particular, el
mensaje se destina al proceso que implemente dicho objeto
el cual desarrolla la operación solicitada y devuelve un
mensaje de respuesta al programa que le solicitó el servicio.
El modelo orientado a objeto permite a los usuarios
percibir a todos los recursos de una manera uniforme. Al
igual que en el modelo cliente servidor, los objetos pueden
actuar como clientes o administradores de recursos.
17
Modelo Basado en Objetos
Objeto2

Objeto1

Objeto3

Objeto4

18
Abiertos
La característica de un sistema de ser abierto determina la
facilidad de extenderlo. Por ejemplo un sistema puede ser
abierto o cerrado con respecto a extensiones en el hardware o
en el software. La apertura se logra mediante la especificación y
documentación de las interfaces del sistema.
Para resumir podemos decir:
n Los sistemas abiertos se caracterizan por el hecho de

mantener sus interfaces públicas.


 Los sistemas distribuidos abiertos proporcionan
mecanismos de comunicación entre procesos uniformes
e interfaces públicas para el acceso a los recursos.
 Los sistemas distribuidos se pueden construir a partir de

hardware y software heterogéneos.

19
Concurrencia(1)
Cuando existen varios procesos en una sola computadora
decimos que se están ejecutando concurrentemente.
En un sistema distribuido que está basado en el modelo de
compartición de recursos, se puede tener procesamiento
paralelo por dos razones:

n Varios usuarios interactúan simultáneamente con


programas de aplicación.
n Varios servidores se ejecutan concurrentemente, cada
uno respondiendo a diferentes solicitudes de los
procesos clientes.

20
Concurrencia(2)
centauro dijkstra

Cliente Servidor
Servidor

knuth

Servidor Cliente Cliente

21
Escalabilidad(1)
Los sistemas distribuidos deben operar efectiva y
eficientemente sin importar su tamaño. El software de sistema y
las aplicaciones no deben necesitar cambios debido a un
aumento en el tamaño del sistema distribuido.
La filosofía en el diseño de sistemas distribuidos asume
que ningún recurso, ya sea de hardware o de software tiene un
número restringido. Al contrario, en función de la demanda de
dicho recurso, el sistema debe poder extenderse para
satisfacerla.
Entre las técnicas más comúnmente empleadas para cubrir
los requerimientos de escalabilidad tenemos:
n Replicación de datos

 Replicación de servicios

22
Escalabilidad(2)

23
Tolerancia a fallas(1)
El hecho de que un sistema distribuido consiste de un
conjunto de procesos que corren concurrentemente en varias
computadoras comunicadas mediante un subsistema de
comunicaciones cuyo desempeño es relativamente lento y poco
confiable en comparación con las computadoras, indica que
tarde o temprano sucederán errores en el sistema.
Existen varias aproximaciones para proveer servicios
tolerantes a fallas, en general un servicio tolerante a fallas
ocasionalmente puede fallar temporalmente, pero está diseñado
para recuperarse después de la falla sin ninguna pérdida de
datos.

24
Tolerancia a fallas(2)
La mayoría de las aplicaciones tolerantes a fallas se
pueden clasificar como basadas en transacciones o relacionadas
con control de procesos. El factor que distingue a estos dos
tipos es el tiempo de recuperación.
Los servicios basados en transacciones aceptan las fallas
ocasionales generalmente seguidas por procedimientos de
recuperación relativamente lentos.
Las aplicaciones de control de procesos tienen
requerimientos verdaderamente estrictos en cuanto al tiempo
de respuesta y por lo tanto la recuperación debe lograrse en un
intervalo de tiempo reducido.

25
Tolerancia a fallas(3)
Restaurar un servicio reiniciándolo y obteniendo sus datos
a partir de un archivo de recuperación puede ser demasiado
lento para algunas aplicaciones. El uso de réplicas del servicio
corriendo en otras computadoras puede hacer la recuperación
mucho más rápida. Si las réplicas siempre están actualizadas
entre sí, la recuperación de una sola falla puede ser
instantánea. El uso de varias réplicas activas puede ser costoso
en cuanto a recursos de cómputo se refiere.
El diseño de sistemas que toleran o que se pueden
recuperar de los fallos está basada principalmente en dos
aproximaciones:
n Redundancia de hardware.

n Recuperación por software.

26
Tolerancia a fallas(4)
Otra propiedad que pueden aumentar los sistemas
distribuidos es la disponibilidad: Si un servicio de datos está
replicado en dos o más servidores independientes en términos
de fallas, corriendo software equivalente, y alcanzables por
medios de comunicación independientes, entonces los clientes
pueden en principio acceder a un servidor alternativo en caso
de que el servidor por defecto falle o se vuelva inalcanzable.
n
disponibilidad = 1 − p
Existen otros esquemas para explotar completamente la
concurrencia y obtener buena tolerancia a fallas como los
grupos de procesos que permite que múltiples procesos
cooperen y compartan un solo mecanismo de comunicación.

27
Trasparencia(1)
La transparencia de un sistema distribuido se refiere al
hecho de ocultar dicha distribución tanto a los usuario como a
los programadores de aplicaciones, de manera tal, que perciban
al sistema distribuido como una sola entidad más que como a
un conjunto de componentes independientes.
El manual de referencia de ANSA (Advanced Network
Systems Architecture) y el modelo de referencia para
procesamiento distribuido abierto de la ISO identifican ocho
formas de transparencia:
 Transparencia de acceso. Los recursos locales y remotos

se acceden de la misma manera.


 Transparencia de localización . No es necesario conocer la

ubicación de un recurso para acceder a él.

28
Trasparencia(2)
 Transparencia a la concurrencia. Permite a varios
procesos trabajar concurrentemente y compartir recursos
sin interferirse los unos a los otros.
 Transparencia a la replicación. Permite utilizar múltiples
instancias de los recursos con el fin de aumentar la
confiabilidad y el desempeño sin que los usuarios
perciban dicha replicación.
 Transparencia a las fallas . Permite a los usuarios y
programas de aplicación completar sus tareas ante la
presencia de fallas de hardware y de software.
 Transparencia a la migración. Permite que las entidades
de información se muevan libremente por el sistema sin
afectar la operación de los usuarios ni de los programas
de aplicación.

29
Trasparencia(3)
 Transparencia de desempeño. Permite reconfigurar al
sistema para aumentar su desempeño en función de las
variaciones en la carga de trabajo.
 Transparencia a la escala . Permite que el sistema y las

aplicaciones se expandan, sin modificar la estructura del


sistema y los algoritmos de las aplicaciones.
Los dos tipos principales de transparencia son acceso y
localización, ya que son los dos factores que más afectan la
utilización de los recursos distribuidos. En común referirse a
ambas transparencias en su conjunto como transparencia de
red.
n rlogin

n mail

30
Antecedentes Históricos
70s 80s 90s
Mainframes centrales PCs y estaciones de Despegue de las
Sistemas de tiempo trabajo aplicaciones
compartido Interfaces amigables cliente/servidor
Recursos Redes de área local Más descentralización
centralizados Aparecen los Enorme difusión de
Interfaces de usuario primeros sistemas Internet gracias al Web
poco amigables operativos distribuidos Nuevas necesidades y
Aparecen las Mach, Sprite, Chorus, aplicaciones basadas en el
primeras redes ... Web
−Comercio electrónico
−Multimedia
−Sistemas de control
−Aplicaciones médicas
Middleware
Java
31

Das könnte Ihnen auch gefallen