Presentacion - WordPress.com

Report
S ISTEMAS D ISTRIBUIDOS
LSCA. Luis Alberto López Cámara
[email protected]
2291642105 (Movistar)
2291570694 (Telcel)
http://sduv.wordpress.com
B IBLIOGRAFÍA
Sistemas Distribuidos
George Coulouris, Jean Dollimore
Addison Wesley
3° Ed.
Principles of Distributed Database System
M. Tamer Ozsu, Patrick Valduriez
Prentice Hall
2° Ed.
Cliente/Servidor y Objetos Guía de supervivencia
Robert Orfali, Dan Harkey y Jeri Edwars
Oxford
3° Ed.
E VALUACIÓN
ASPECTOS
PONDERACION
Examen Escrito
30%
Exposición
30%
Proyecto Final
40%
PROPUESTA
Origen de los sistemas distribuidos
• Hasta principios de los años 80:
– Los computadores son máquinas costosas y de
gran tamaño
– Sistemas operativos multiusuario de tiempo
compartido
• A partir de los años 80:
– Auge de los computadores personales (PCs).
• Avances tecnológicos continuos
• Bajo coste
• Sistemas operativos monousuario
– Aparición de las redes de computadores de alta
velocidad
• Redes de Área Local (LANs)
• Redes de Área Extensa (WANs
Origen de los sistemas distribuidos
Ejemplo: evolución de los ordenadores
personales
Origen de los sistemas distribuidos
Consecuencias:
– Es fácil y tiene un coste asequible la construcción de un sistema distribuido,
compuesto por varios computadores conectados por una red de comunicación de
alta velocidad
• Desde el punto de vista hardware
– Construir un sistema distribuido no presenta grandes dificultades
• El problema fundamental es el software
– Es difícil hacer software para sacar partido a un sistema distribuido
Qué es un sistema distribuido
• DEFINICIÓN 1.1:
– Un Sistema Distribuido es una colección de computadores
independientes que se presentan a los usuarios como un único
sistema [Tanenbaum],
Qué es un sistema distribuido
– Un Sistema Distribuido es una colección de
computadores interconectados a través de una red
comunicación, de forma que cada computador tiene su
propio procesador, memoria y periféricos,y las
comunicaciones entre dos computadores diferentes se
llevan a cabo mediante el paso de mensajes a través de la
red [Sinha, 1997]
– Un Sistema Distribuido es una colección de
computadores heterogéneos interconectados a través de
una red [Galli, 2000]
– Un Sistema Distribuido es aquél en el que sus
componentes, localizados en una red de computadores, se
comunican y sincronizan entre sí mediante el intercambio
de mensajes [Coulouris et at 2001]

Características de los sistemas distribuidos

concurrencia de los componentes

carencia de un reloj global

fallos independientes de los componentes

Uso de un sistema de comunicación

Ausencia de memoria común

Sincronización del trabajo

Ausencia de un estado global perceptible por un observador


Comunicación a través de mensajes
Ejemplos de sistemas distribuidos

Internet

Una intranet que es una porción de internet gestionada por una organización

La computación móvil y ubicua
¿ Q UÉ ES I NTERNET ?

La Red de Internet la forman muchos ordenadores conectados entre sí y que están
repartidos por todos los países del mundo. En este momento tu estás conectado a
esa Red mundial.

Navegar en Internet es ver páginas web mediante un programa que está preparado
para ello. Los más conocidos son el Explorer y el Netscape. En ellas encontrarás
juegos, pasatiempos, imágenes o que puedes guardar en tu ordenador

Las intranets están enlazadas conjuntamente por conexiones troncales
(backbones). Una conexión o red troncal es un enlace de red con una gran
capacidad de transmisión, que puede emplear conexiones de satélite, cables de
fibra óptica y otros circuitos de gran ancho de banda.

En Internet hay disponibles servicios multimedia, que permiten a los usuarios el
acceso a datos de audio y vídeo, incluyendo música, radio y canales de televisión
y mantener videoconferencias.
INTRANETS

Una intranet es una porción de Internet que es, administrada separadamente y que tiene
un límite que puede ser configurado para hacer cumplir políticas de seguridad local. La
Figura 1.2 muestra una intranet típica. Está compuesta de varias redes de área local
(LANs) enlazadas por conexiones backbone. La configuración de red de una intranet
particular es responsabilidad de la organización que la administra y puede variar
ampliamente, desde una LAN en un único sitio a un conjunto de LANs conectadas
perteneciendo a ramas de la empresa u otra organización en diferentes países.

Una intranet está conectada a Internet por medio de un encaminador (router), lo que
permite a los usuarios hacer uso de servicios de otro sitio como el Web o el correo
electrónico. Permite también acceder a los servicios que ella proporciona a los
usuarios de otras intranets

El papel del cortafuegos es proteger una intranet impidiendo que entren o salgan
mensajes no autorizados. Un cortafuegos se implementa filtrando los mensajes que
entran o salen, por ejemplo de acuerdo con su origen o destino. Un cortafuegos podría
permitir, por ejemplo, sólo aquellos mensajes relacionados con el correo electrónico o
el acceso web para entrar o salir de la intranet que protege.
L OS PRINCIPALES TEMAS RELACIONADOS CON
EL DISEÑO DE COMPONENTES PARA SU USO EN
INTRANETS SON :

• Los servicios de ficheros son necesarios para permitir a los
usuarios compartir datos,

• Los cortafuegos tienden a impedir el acceso legítimo a servicios,
cuando se precisa
compartir recursos entre usuarios externos e internos, los cortafuegos
deben ser
complementados con el uso de mecanismos de seguridad más
refinados.

• El coste de instalación y mantenimiento del software es una
cuestión importante.
Estos costes pueden ser reducidos
utilizando arquitecturas de sistema como redes de computadores y
clientes ligeros
2 Racas
70
Terminal
es
70Terminales
LP
60 Terminales
2 Racas
MEXICO
60 Terminales
30 Terminales
2 Racas
1Racas
Oficina Administrativa
50 Terminales
Fibra Óptica
Fibra Óptica
1 Raca
15 Terminales
3 Racas
UTP
Novel
Linux
AS/400
NT – NT4 Server
-- 2003 Server
Cuarto de control de Sistemas
10 Terminales
COMPUTACION MOVIL Y UBICUA

En la computación móvil, los usuarios que están fuera de su hogar intranet disponen de
la posibilidad de acceder a los recursos mediante los dispositivos que llevan con ellos.
Pueden continuar accediendo a Internet; pueden acceder a los recursos de su intranet; y
se está incrementando la posibilidad de que utilicen recursos, como impresoras, que
están suficientemente próximos a donde se encuentren

Computación ubicua es la utilización concertada de muchos dispositivos de
computación pequeños y baratos que están presentes en los entornos físicos de los
usuarios, incluyendo la casa, la oficina y otros. El término ubicuo está pensado para
sugerir que los pequeños dispositivos llegarán a estar tan extendidos en los objetos de
cada día que apenas nos daremos cuenta de ellos. O sea, su comportamiento
computacional estará ligado con su función física deforma íntima y transparente.

La computación ubicua y móvil se solapan, puesto que un usuario moviéndose puede
beneficiarse, en principio, de los computadores que están en cualquier parte. Pero, en
general, son distintas. La computación ubicua podrá beneficiar a los usuarios mientras
permanecen en un entorno sencillo como su casa o un hospital. De forma similar, la
computación móvil tiene ventajas si sólo se consideran computadores convencionales
y dispositivos como computadores portátiles e impresoras.
R ECURSOS
COMPARTIDOS WEB

Los usuarios están tan acostumbrados a los beneficios de compartir
recursos que pueden pasar por alto su significado. Normalmente
compartimos recursos hardware como impresoras, recursos de datos
como ficheros, y recursos con una funcionalidad más específica como
máquinas de búsqueda.

Las intranets están enlazadas conjuntamente por conexiones troncales
(backbones). Una conexión o red troncal es un enlace de red con una
gran capacidad de transmisión, que puede emplear conexiones de satélite,
cables de fibra óptica y otros circuitos de gran ancho de banda.

En Internet hay disponibles servicios multimedia, que permiten a los
usuarios el acceso a datos de audio y vídeo, incluyendo música, radio y
canales de televisión y mantener videoconferencias.
E L W ORLD W IDE
WEB

Es un sistema en evolución para publicar y acceder a recursos y servicios a través de
Internet. Utilizando el software de un navegador web, fácilmente disponible como Netscape
o Internet Explorer, los usuarios utilizan el Web para recuperar y ver documentos de muchas
clases, para escuchar secuencias de audio y ver secuencias de vídeo, y para interaccionar con
un conjunto ilimitado de servicios.

El Web comenzó su vida en el centro europeo para la investigación nuclear (CERN), Suiza,
en 1989 como un vehículo para el intercambio de documentos entre una comunidad de
físicos, conectados a Internet [Berners-Lee 1999].

Una característica fundamental del Web es que proporciona una estructura hipertexto entre
los documentos que almacena

El Web es un sistema abierto: puede ser ampliado e implementado en nuevas formas sin
modificar
E L W EB ESTÁ BASADO EN TRES
COMPONENTES TECNOLÓGICOS DE CARÁCTER
ESTÁNDAR BÁSICOS :

• El lenguaje de etiquetado de hipertexto (HTML, Hypertext Markup
Language) es un lenguaje para especificar el contenido y el diseño
de las páginas que son mostradas por los navegadores.

• Localizadores Uniformes de Recursos (URL, Uniform Resource
Locaíor) que identifican documentos y otros recursos almacenados
como parte del Web.

• Una arquitectura de sistema cliente-servidor, con reglas estándar
para interacción (el protocolo de transferencia hipertexto-HTTP,
HyperText Transfer Protocol) mediante la cual los navegadores

HTML. El lenguaje de etiquetado de hipertexto se utiliza para especificar el texto
e imágenes que forman el contenido de una página web, y para especificar corno serán
formateados para la presentación al usuario. Una página web contiene elementos
estructurados como
cabeceras, párrafos, tablas e imágenes. HTML se utiliza también para especificar enlaces y
qué recursos están asociados con ellos.

URLs. El propósito de un URL es identificar un recurso de tal forma que permita al
navegador localizarlo. Los navegadores examinan los URLs con el fin de buscar los recursos
correspondientes de los servidores web

Cada URL, en su forma global, tiene dos componentes:

esquema: localización-específica-del-esquema

. En general, los URLs de HTTP son de la forma:

http://nombredelservid.or [.-puerto]

[/nombredelpathdelservidor] ['.Cargamentos]

HTTP. El protocolo de transferencia hipertexto [www.w3.org IV] define las formas en las
que los navegadores y otros tipos de clientes interaccionan con los servidores web.
sus principales características

Interacciones petición-respuesta: HTTP es un protocolo de petición-respuesta. El cliente
envía un mensaje de petición al servidor que contiene el URL del recurso solicitado.
(Elservidor sólo precisa la parte del URL que sigue al propio nombre DNS del servidor.) El
servidor localiza el nombre de recorrido y, si existe, devuelve el contenido del fichero en un
mensaje de respuesta al cliente. En caso contrario, devuelve un mensaje de error.

Tipos de contenido: los navegadores no son necesariamente capaces de manejar o hacer buen
uso de cualquier tipo de contenido. Cuando un navegador hace una petición, incluye una lista
de los tipos de contenido que prefiere, por ejemplo, en principio puede ser capaz de sacar en
pantalla imágenes en formato GIF pero no en JPEG. El servidor puede ser capaz de tener
esto en cuenta cuando devuelve el contenido al navegador. El servidor incluye el tipo de
contenido en el mensaje de respuesta de forma que el navegador sabrá cómo procesarlo. Las
cadenas de caracteres que indican el tipo de contenido se llaman tipos MIME, y están
estandarizados en el RFC 1521 [Borensteín y Freed 1993]. Por ejemplo, si el contenido es de
tipo lext/html entonces el navegador interpretará el texto como HTML y lo mostrará en
pantalla; si el contenido es de tipo image/GlF el navegador lo tratará como una imagen en
formato GIF, si el contenido es de tipo aplicaüonjzip entonces los datos están comprimidos
en formato zip y el navegador lanzará una aplicación externa para descomprimirlos. El
conjunto de acciones que un navegador tomará para un tipo de contenido dado es
configurable, y los lectores deben preocuparse de comprobar estos defectos en sus propios
navegadores.
 Un
recurso por solicitud: en la versión 1.0
de HTTP (que es la versión más utilizada en el momento en que se
escribe esto), el cliente solicita un recurso por cada petición HTTP. Si
una página web contiene nueve imágenes, por ejemplo, el navegador
realizará un total de diez peticiones separadas para obtener el contenido
completo de la página. Los navegadores normalmente hacen varias
peticiones concurrentemente, para reducir el retardo total para el
usuario.
 Control
de acceso simple: por defecto,
cualquier usuario con una conexión de red a un servidor web puede
acceder a cualquiera de los recursos publicados. Si los usuarios desean
restringir el acceso a un recurso, pueden configurar el servidor para
plantear un desafío a cual quier usuario que lo pida. Los usuarios
correspondientes deben probar entonces que tienen derecho para acceder
al recurso, por ejemplo tecleando una contraseña (password).
C ARACTERÍSTICAS MÁS AVANZADAS ,
SERVICIOS Y PÁGINAS DINÁMICAS

.
Por ejemplo, cuando se compra algo en una tienda
electrónica, el usuario rellena con frecuencia un
formulario web para proporcionar sus detalles
personales o para especificar exactamente lo que se
desea comprar. Un formulario web es una página que
contiene instrucciones para el usuario y elementos para
la introducción de datos como campos de texto y cajas
de comprobación. Cuando un usuario envía el
formulario (normalmente pulsando un botón o una
tecla de retorno (return), el navegador envía una
petición HTTP a un servidor web, que contiene los
valores enviados por el usuario.
C ÓDIGO
DESCARGADO :

Un programa CGI se ejecuta en el servidor. A veces los diseñadores
de servicios Web precisan algún código relacionado con el servicio
para ejecutar en el navegador, en el computador del usuario. Por
ejemplo, código escrito en Javascript [wwvv.netscape.com] se
descarga a menudo con un formulario web para proporcionar una
interacción con el usuario de mejor calidad que la proporcionada por
los artefactos estándar de HTML

un applet es una pequeña aplicación que descarga automáticamente
el navegador y se ejecuta cuando se descarga la página
correspondiente

Los applets pueden acceder a la red y proporcionar interfaces de
usuario específicas, utilizando las posibilidades del lenguaje, Java
D ISCUSIÓN

SOBRE EL
W EB .
El extraordinario éxito del Web se basa en la facilidad con la que
pueden publicarse recursos, una estructura de hipertexto apropiada

Primero, su modelo de hipertexto es deficiente en algunos aspectos.
Si se borra o mueve algún recurso, ocurre que los llamados enlaces
descolgados a este recurso permanecen, causando cierta frustración
a los usuarios. También aparece el problema habitual de los usuarios
perdidos en el hiperespacio
Objetivos de diseño
Transparencia
• Seguridad
• Rendimiento
• Heterogeneidad
• Flexibilidad
• Fiabilidad
• Escalabilidad
• Tratamiento de Fallos
Transparencia
• El principal objetivo de un SOD es que el sistema se
presente a los usuarios como un único computador
monoprocesador virtual Diversos conceptos de
transparencia
Transparencia en un Sistema
Distribuido
Transparencia
Descripcion
Acceso
diferencias en la representacion de los datos y como
accesar los recursos.
Localización
Donde se encuentra un recurso
Migración
Que un recurso pueda moverse de un lugar a otro
Relocalización
Que un recurso pueda moverse de un lugar a otro
mientras que esta en uso
Replicación
Que puedan existir replicas de un recurso
Concurrencia
Que un recurso pueda ser compartido por varios usuarios
Fallas
Permitir la recuperacion de un recurso en caso de fallas
Persistencia
Que un recurso pueda estar en memoria o en disco
Diferentes formas de transparencia en un sistema distribuido
Seguridad
• La seguridad es una característica fundamental en un SO
multiusuario
• En un sistema distribuido la información se transmite
entre los diferentes nodos del mismo mediante paso de
mensajes
• Requisitos para garantizar la seguridad de los mensajes:
– El emisor de un mensaje debería saber que su mensaje
ha sido recibido
– El receptor de un mensaje debería saber que ha sido
enviado por el emisor adecuado
– Tanto el emisor como el receptor deberían tener
garantías de que los mensajes no son observados ni
alterados durante la transmisión.

Ataques de denegación de servicio: otro problema
de seguridad ocurre cuando un usuario desea obstaculizar un
servicio por alguna razón. Esto se obtiene al bombardear el servicio
con un número suficiente peticiones inútiles de modo que los
usuarios serios sean incapaces de utilizarlo.

Seguridad del código móvil: el código móvil necesita
ser tratado con cuidado. Suponga que alguien recibe un programa
ejecutable adherido a un correo electrónico: los posibles efectos al
ejecutar el programa son impredecibles; por ejemplo, pudiera
parecer que presentan un interesante dibujo en la pantalla cuando en
realidad están interesados en el acceso a los recursos locales, o
quizás pueda ser parte de un ataque de denegación de servicio
Rendimiento
• La existencia de más recursos (procesadores y
memoria) debería permitir que las aplicaciones se
ejecuten más rápido en un sistema distribuido que
en uno centralizado
• Problemas:
– Las aplicaciones tienen que ser paralelizadas
(distribuidas)
– Minimizar el tráfico en la red
– Equilibrado de carga
• Problema de compromiso: conseguir que un SOD
sea transparente, flexible y fiable penaliza el
rendimiento
Heterogeneidad
• Un SOD heterogéneo se compone de conjuntos de
computadores que pueden diferir tanto en aspectos
hardware como software
• Heterogeneidad implica que puede existir
incompatibilidades
– Los procesadores y los lenguajes de programación no
usan la misma representación de los datos
• Solución: utilizar formatos de datos comunes
• Ejemplo: XDR (RPC de Sun), CDR (CORBA)
– Diversidad de protocolos
• Solución: Adopción de protocolos estándar
Ejemplo: TCP/IP
Heterogeneidad
• Se buscan soluciones de alto nivel para tratar la
heterogeneidad
•– Middleware es un software que reside entre la
aplicación y los sistemas operativos, protocolos y
hardware subyacente y cuyo objetivo es permitir que
componentes heterogéneos y distribuidos se interconecten
y colaboren entre si.
Flexibilidad
• Un SO flexible admite la modificación de sus componentes y
la adición de nuevos servicios
– El factor que más influye es el diseño del núcleo del SO
• Dos arquitecturas básicas
– Núcleos monolíticos
- Micronúcleos
Fiabilidad
• Se supone que un SOD debe ser más fiable que un SO
centralizado debido a la existencia de varios elementos de
un
mismo tipo
– Sin embargo, al existir más elementos es más probable
que falle alguno
– Un sistema es tolerante a fallos cuando puede seguir
funcionando aunque fallen algunos de sus componentes
• Estrategias a seguir:
– Diseño de servicios que no requieran el funcionamiento
de un número elevado de componentes
– Redundancia
Escalabilidad
• Una de las ventajas de los sistemas distribuidos es que
pueden crecer para adaptarse a incrementos de carga de
Trabajo
• Un sistema es escalable cuando puede crecer sin
problemas
– Sin embargo, añadir nuevos recursos
• Puede generar una sobrecarga sobre otros recursos
• Puede requerir modificaciones en el sistema que pueden
ser costosas de realizar
• Principio básico de diseño:
– Evitar en lo posible utilizar componentes y algoritmos
centralizados.
Problemas de Escalabilidad
Concepto
Ejemplo
Servicios Centralizados
Un unico servidor para todos los usuarios
Datos Centralizados
Un unico enlace
Algoritmos Centralizados
Hacer el ruteo con algoritmos centralizados
Limitaciones de la escalabilidad.
Tecnicas de Escalamiento
1.5
Dividir los nombres en zonas como lo hace el DNS
Otras tecnicas de
Escalamiento..
Usando Replicas :
Estan pueden ser colocadas
en algunos Servidores proximos al cliente.
Usando Cache: Es traer una imagen del recurso tan cerca
Del cliente como sea posible.
Ambos casos traen problemas de consistencia
T RATAMIENTO
DE
FALLOS

Los sistemas computacionales a veces fallan. Cuando aparecen fallos
en el hardware o el software, los programas pueden producir
resultados incorrectos o pudieran parar antes de haber completado
el cálculo pedido.

Los fallos en un sistema distribuido son parciales; es decir, algunos
componentes fallan mientras otros siguen funcionando
Técnicas para tratar fallos:

Detección de fallos: algunos fallos son detectables. Por ejemplo, se
pueden utilizar sumas decomprobación (checksums) para detectar
datos corruptos en un mensaje o un archivo.

El reto está en arreglárselas en presencia de fallos que no pueden
detectarse pero que sí pueden esperarse.

Enmascaramiento de fallos: algunos fallos que
han sido detectados pueden ocultarse o atenuarse. Dos ejemplos de ocultación de
fallos son:

1. Los mensajes pueden retransmitirse cuando falla la recepción.

2. Los archivos con datos pueden escribirse en una pareja de
discos de forma que si uno está deteriorado el otro seguramente
está en buen estado.

Simplemente eliminar un mensaje corrupto es un ejemplo de
atenuar un fallo (pudiera retransmitirse de nuevo). Probablemente
el lector se dará cuenta de que las técnicas indicadas para ocultar
los fallos no tienen garantía de funcionamiento las peores
situaciones; por ejemplo, los datos en el segundo disco pudieran
también estar corrompidos, o el mensaje bien pudiera no llegar a
tiempo no importa cuantas veces se retransmita

Tolerancia de fallos: la mayoría de los servicios en Internet
exhiben fallos; es posible que no sea práctico para ellos pretender detectar y
ocultar todos los fallos que pudieran aparecer en una red tan grande y con tantos
componentes. Sus clientes pueden diseñarse para tolerar ciertos fallos, lo que
implica que también los usuarios tendrán que tolerarlos generalmente. Por
ejemplo, cuando un visualizador web no puede contactar con un servidor web no
hará que el cliente tenga que esperar indefinidamente mientras hace sucesivos
intentos; informará al usuario del problema, dándole la libertad de intentarlo más
tarde

Recuperación frente a fallos: la recuperación
implica el diseño de software en el que, tras una caída del servidor, el estado de
los datos pueda reponerse o retractarse (roll back) a una situación anterior. En
general, cuando aparecen fallos los cálculos realizados por algunos programas se
encontrarán incompletos y al actualizar datos permanentes (archivos e
información ubicada en almacenamiento persistente) pudiera encontrarse en un
estado inconsistente .

Redundancia: puede lograrse que los servicios toleren fallos
mediante el empleo redundante de componentes. Considere los
siguientes ejemplos:

1. Siempre deberá haber al menos dos rutas diferentes entre
cuales quiera dos routers (encaminadores) en Internet.

2. En el Sistema de Nombres de Dominio, cada tabla de nombres
se encuentra replicada en dos servidores diferentes.

3. Una base de datos puede encontrarse replicada en varios
servidores para asegurar que los datos siguen siendo accesibles
tras el fallo de cualquier servidor concreto; los servidores pueden
diseñarse para detectar fallos entre sus iguales; cuando se detecta
algún error en un servidor se redirigen los clientes a los
servidores restantes.

El diseño de técnicas eficaces para mantener réplicas
actualizadas de datos que cambian rápidamente sin
una pérdida excesiva de prestaciones es un reto.

Los sistemas distribuidos proporcionan un alto grado
de disponibilidad frente a los fallos del hardware. La
disponibilidad de un sistema mide la proporción de
tiempo en que está utilizable. Cuando falla algún
componente del sistema distribuido sólo resulta
afectado el trabajo relacionado con el componente
defectuoso. Así como cuando un computador falla el
usuario puede desplazarse a otro, también puede
iniciarse un proceso de servicio en otra ubicación.
Conceptos del Hardware
Los Sistemas de computadores los podemos dividir en :
Multiprocesadores: Aquellos que comparten memoria
Multicomputadores: Aquellos que no
Clasificacion de acuerdo a su conexión:
De acuerdo a la arquitectura de interconexion pueden
clasificarse en:
Bus:Por un solo cable se mueve el mensaje
Switch: El mensaje se puede mover por un conjunto de
Cables de los cuales se debe decidir el camino.
Conceptos del Hardware
1.6
Diferentes organizaciones de procesadores y memorias en
sistemas de computadores distribuidos
Multiprocesadores
Todos los procesadores tienen acceso directo a una
memoria compartida.
Los multiprocesadores bassados en bus consisten de un
numero de CPUs conectados a un bus comun con un
modulo de memoria.
El problema con este modelo es que con unos cuantos
CPUs el bus estara sobrecargado de trafico
Solucion:

Colocar memorias cache de alta velocidad entre cpu y
bus.

El cache mantendrá las palabras de memoria
accesadas recientemente. Todas las solicitudes a la
memoria se harán a través del cache, si lo requerido
está en la cache, la cache responderá al cpu. Si la en
la cache comunmente se encuentra lo requerido se
tendra la tasa de acierto será alta.

El problema que se da utilizando buses es la limitacion al crecimiento aun
usando cache.

Una solucion es la de crear un sistema utilizando un croosbar o un omega.
Clasificacion en base a la
arquitectura.
Sistemas de Multicomputadores Homogeneos
Construido de la misma tecnologia.
. Procesadores iguales
Memoria igual
Usados en sistemas paralelos.

Los multicomputadores basados en buses: Los procesadores estan
conectados por medio de redes de multiaccesos compartidos.

Los multicomputadores basados en switch: Los mensajes son
encaminados a traves de la red; Dos topologias comunes:


Grids.

Hipercubos.
Los multicomputadores basados en switch.

Procesadores paralelos masivos :


Miles de Cpus.
Clusters de workstation: colección de pc’s y workstations conectados.
S ISTEMAS DE
M ULTICOMPUTADORES
H ETEROGENEOS .

Construido de multicomputadores heterogeneos.

Tipos de procesadores diferentes

Tamaño de memoria diferentes

Ancho de banda I/O diferentes.

Usados en sistemas de redes de computadores
C ONCEPTOS DE S OFTWARE .
El hardware es importante para los sistemas distribuidos pero el
software permite definir el alcance de un S.D.
Los S.D. estan muy ligados con los S.O.

Administrador de recursos.

Permite a multiples usuarios y aplicaciones compartir cpu,
memorias, perifericos, dispositivos, la red, toda clase de
datos.

Permite proveer maquinas virtuales sobre las cuales las
aplicaciones pueden ser ejecutadas.
C ONCEPTOS DE S OFTWARE .
Los S.O. para sistemas distribuidos se dividen en:

Fuertemente acoplados.


Objetivo es mantener una vista global de los recursos
administrados.
Debilmente acoplados.

Cada sistema de computo con su propio S.O. trabajando en
conjunto para ofrecer sus servicios y recursos a los otros.
Fuertemente acoplados conocidos como S.O.D usados para
multiprocesadores y multicomputadores homogeneos.

Sistemas fuertemente acoplados.


Sistemas debilmente acoplados.


Tratar de mantener una vista global de los recursos que administran.
Sistemas que trabajan juntos para ofrecer sus servicios y recursos locales a
clientes remotos.
Sistemas Operativos Distribuidos.

S.O. de multiprocesador:
Administra los recursos de un multiprocesador.

S.O. de multicomputador:
Para computadores homogeneos.
S ISTEMAS O PERATIVOS
DE UN
ÚNICO PROCESADOR .
La meta principal de estos sistemas es permitir a los usuarios y
aplicaciones compartir recursos:

Memoria.

Cpu.

Disco y perifericos.
Protegiendo los espacios de memoria de cada una de las aplicaciones el
sistema operativo debe tener control sobre los recursos de
hardware, la operación basica:

Modo dual.

Modo usuario.

Modo supervisor.
Sistemas Operativos multiprocesadores.
Multiples
procesadores tengan acceso a memoria
compartida.
S.O.
Multiprocesadores.
–Requieren multiples procesadores
con memoria compartida.
Sincronización:
–Semáforos.
–Señal 0,1.
Monitores:
–Procedimientos a objetos
compartidos.
–Semáforos símples como variables
mutex.
Sistemas operativos de
multicomputadores
Son totalmente diferentes en estructura y
complejidad que un sistema de
multiprocesadores
No
tienen memoria compartida.
La comunicación es por medio de
pase de mensajes.

Cada maquina contiene:

S.O. propio. Para administrar sus recursos locales.

Un modulo para el manejo de la comunicación entre los
procesadores. Por medio de pase de mensajes.

Una capa que ofrece los servicios de una máquina de
multiprocesadores (memoria compartida, asignar tareas,
enmacarar los fallos de hardware, almacenamiento,
comunicación entre procesos).

El paso de mensajes provoca que los mensajes se enlisten.

En el emisor o en el rceptor

Existen algunos puntos de bloqueo en un sistema de buffer:

Emisor: si se llena el buffer del emisor entonces S1 se bloquea.

Receptor su buffer esta lleno:

Cuando no hay buffer.

Cuando el buffer está vacío.

Memoria Compartida Distribuida

Basado en el concepto de paginación.
El sistema es divido
en paginas de 4 u 8
KB. Con fallos de
paginas para
permitir la
busqueda de una
pagina

El Tamaño de las paginas pueden causar:

Cuando usamos páginas muy grandes puede ocasionar un falso de
página compartida cuando una pagina contiene datos de procesos
independientes que estan corriendo en diferentes procesadores.

Una gran cantidad de transferencia en la red elevando el costo

Una paginas grandes pueden reducir el numero de transferencias.
Sistemas Operativos de Red

En contraste a un SOD un SOR No
asume que el hardware es
homogeneo y que podria manejarse
como un simple sistema.

Son generalmente construidos de
sistemas de uniprocesadores

Cada uno con su propio sistema
operativo

Cada computador conectado a una
red de computadores

El SOR provee servicios disponibles
en una maquina especifica

Accesar informacion remota por
medio de comandos login.

Copiando archivos localmente.

Un sistema mas moderno podria ser un servidor de
archivos en una maquina suministrando servicios de
lectura y/o escritura sobre archivos a clientes colocados
en otras maquinas.

Los servidores de archivos generalmente mantienen un
Sistema de archivo jerarquico con un directorio raiz y
subdirectorios:

Las estaciones pueden Importarlos o Montarlos
aumentando su sistema de archivo local.
El montaje puede ser aplicado en diferentes lugares
El problema que existe un SOR es el de no transparencia
referente a la seguridad esto es es necesario un login y
cuando se desea cambiar debera hacerse en la maquina
servidor
Sistema
Operativo Distribuido y un Sistema
Operativo de Red califican par un sistema
distribuido.
Sistemas
operativos distribuidos
–No manejan computadoras independientes.
Sistemas
operativos de red.
–No presentan la vista global de un sistema coherente.
Que hacer para tomar los ventajas de uno y de otro
Lo escalable y apertura de un SOR
La transparencia y libertad de uso de un SOD

Solución : colocar una Capa de software que sea utilizada
en un SOR para una colección de maquinas heterogeneas y
proveer transparencia de distribucion .

Muchos sistemas distribuidos son construidos por una capa
adicional llamada MIDDLEWARE
Middleware:
Software que reside entre la aplicación y los sistemas
operativos, protocolos y hardware adyacente y que cuyo
objetivo es permitir que componentes hetereogneos y
distribuidos se interconecten y colaboren entre si.
P OSICIÓN M IDDLEWARE .

Muchas apalicaciones distribuidas hacen uso directo
de las interfases de programación ofrecidas por los
sistemas operativos de red.
ejemplo: comunicación por sockets (para los procesos
intercambien sus mensajes).

Las aplicaciones hacen uso de interfases del sistema de
archivo local.

una solución es colocar una capa de software entre
aplicaciones y el sistema operativo de red
(middleware) para ofrecer un alto nivel de abstracion.
Middleware:
requiere
que el sistema operativo
local de cada máquina
administre sus propios
recursos. Es decir
middleware no
administrara los recursos
Middleware gestiona
los servicios locales.
Modelos Middleware
-Llamadas a procedimientos remotos RPC: permitir a los procesos
invocar a procedimientos implementados en maquinas remotas transfiriendo
los parametros necesarios y regresar los resultados al proceso que inicio la
llamada. Este modelo permite hacer sentir que el procedimiento fuera
llamado localmente.
-Sistema de archivos Distribuidos: Tratar a los recursos como archivos
puede lograrse el poder compartirlos ya sea locales o remotos
-Objetos distribuidos: la Invocacion de objetos distribuidos es permitir
que cada objeto implemente una interfase que mantenga todos los detalles
internos del objeto para sus usuarios esta consiste de los metodos que
implementan el objeto. Cuando un proceso invoca un metodo la interfase de
la maquina donde esta el proceso simplemente transforma la invocacion del
metodo en un mensaje que es enviado al objeto. El objeto ejecuta el metodo
invocado y devuelve el resultado. La interfase transforma el mensaje dentro
de un valor de respuesta el cual es manejado por el proceso que invoco.
-Documentos distribuidos: Es el modelo utilizado por la Web la
informacion esta organizada en documentos, los documentos contienen
enlaces a otros documentos. Siguiendo el enlace el documento es traido de su
localidad y desplegado
Servicios Middleware
Existen muchos servicios que los sistemas de middleware ofrecen , tales como:
Transparencia de acceso: ofreciendo facilidades de comunicación a traves de las
redes de computadores.
Llamado: La forma de organizar los nombres de algun recurso permitira
compartirse un ejemplo de esto es la web en donde los documentos son llamados
por el significado de un URL el cual mantiene el nombre del servidor donde el
documento se encuentra.
Persistencia: Esta alcanzada por medio de un sistema de archivos distribuidos o
base de datos proviendo de facilidades a las aplicaciones para conectarse a estas.
Generalmente ofrecidas por transacciones distribuidas permitiendo que varias
operaciones de lectura / escritura sean atomicas (se deben realizar todas para que
surta efecto en los datos sobre los cuales las operaciones trabajan) considerando
que los datos pudieran estar disperso en el sistema.
Seguridad:
Distributed OS
Item
Network
OS
Middlewarebased OS
Multiproc.
Multicomp.
Grado de transparencia
Muy alto
Alto
bajo
alto
Mismo S.O.
si
si
No
No
Numero de copias
1
N
N
N
Bases para la comunic.
Memoria
compartida
Mensajes
Archivos
Modelo
Admon. De recursos
Global,
central
Global,
Distribuido
Por nodo
Por nodo
Scalability
No
Moderado
si
varios
Apertura
Cerrado
cerrado
abierto
abierto
Comparacion de sistemas distribuidos basados en Sistemas
Operativos de multiprocesadores, multicomputadores. De
red y middleware.
Modelo cliente servidor
Los procesos estan divididos en 2 grupos
Clientes: Procesos que solicitan un servicio a un servidor
Servidores: Procesos que implementan un servicio
especifico ejemplo: servicio de sistema de archivos o de
base de datos.

1.25 Interacion General entre un cliente y un
servidor.
La comunicación entre un cliente y un servidor puede
implemente por medio de los protocolos de red.
Simplemente el cliente empaca el mensaje con el servicio
solicitado para el servidor.
El servidor procesa la solicitud y empaca un mensaje con el
resultado para el cliente.
An Example Client and Server (1)

The header.h file used by the client and server.
An Example Client and Server (2)

A sample server.
An Example Client and Server (3)
1-27 b

A client using the server to copy a file.
Modelo Cliente Servidor
Capas de una aplicacion
Una aplicación cliente servidor esta compuesta de tres niveles.
Nivel Interfase de Usuario
Nivel de Procesamiento
Nivel de datos

Nivel de interfase de usuario.
- Consiste de los programas que permiten a los usuarios finales interactuar con las aplicaciones.


Screen de caracteres

Display graficos con menus pop-up, pull-down.

Ventanas graficas.

Iconos.
Nivel de procesamiento.

Contiene las reglas de funcionalidad de la aplicación, ejemplo: motor de busqueda.
las reglas en un motor de busqueda es un programa que transforma el string de
estrada del usuario en uno o mas queries de bases de datos.
Nivel de datos.
_ Contiene los programas que mantienen los datos sobre los cuales la aplicación actua.
_ Los datos son persistentes
- Basados en un sistema de archivo o base de datos
- Es el responsable de mantener la consistencia de los datos para las aplicaciones
- Los metadatos tales como descripcion de la tabla, restricciones y aplicaciones especificas
son almacenadas en este nivel. Un ejemplo podria ser cuando una tarjeta de credito alcanza
un nivel a traves de una regla de restriccion (por medio de trgger) podria activarse en el
P ROCESSING L EVE
1-28

Organizacion general de un motor de busqueda de
internet.
Arquitectura cliente servidor
Arquitectura de Multicapas
La idea basica de un modelo cliente servidor consiste de
tener :
Una maquina cliente que contenga la interfase del
usuario .
Una maquina servidor que contenga el nivel de
procesamiento y el nivel de datos.
A esto se le considera modelo de arquitectura de 2
capas.
Multitiered Architectures (1)
1-29

Alternativas de organizaciones cliente-servidor
(a) – (e).
Multitiered Architectures (2)
1-30

un ejemplo de un servidor actuando como un cliente.

similar documents