You are on page 1of 75

Sistemas Distribuidos

M.Sc. Carlo Corrales D.


sistemasdistribuidosunsa@hotmail.com

http://epis-sd.tk

Referencias Bibliogrficas

Sistemas Distribuidos : Conceptos y Diseo G. Coulouris, J. Dollimore, T. Kindberg Addison-Wesley Sistemas Operativos Distribuidos A. S. Tanenbaum Prentice-Hall

Agenda

Introduccin Ejemplos de Sistemas Distribuidos Conceptos de Hardware Conceptos de Software Recursos compartidos y Web Desafos Modelo de 3 Capas

Un Sistema Distribuido de piedra

Introduccin

Un sistema distribuido es una coleccin de computadoras independientes, conectadas en red, comunican y coordinan sus acciones nicamente mediante el paso de mensajes, que aparecen ante los usuarios del sistema como una nica computadora. Esta definicin tiene dos aspectos:
Hardware: Las mquinas son autnomas. Software: Los usuarios piensan que el sistema es como una nica computadora.

Sistema Distribuido

Motivacin para Sistemas Distribuidos


Construir y utilizar sistemas distribuidos tiene su origen en un deseo de compartir recursos. Estos recursos se extienden desde los componentes de hardware como los discos y las impresoras hasta las entidades de software definidas como ficheros, base de datos y objetos de datos de todos los tipos.

Consecuencias de los S.D.*

Concurrencia: Realizar muchos trabajos en forma simultnea. La coordinacin de programas que comparten recursos es importante. Inexistencia de reloj global: No existe una idea global del tiempo correcto. Fallos independientes: Todos los sistemas pueden fallar y se tiene la responsabilidad de planificar las consecuencias de posibles fallos.

* Sistemas Distribuidos

Ventajas de los S.D.


Con respecto a los centralizados
Elemento
Economa
Velocidad Distribucin inherente

Descripcin
Los microprocesadores ofrecen mejor proporcin precio/rendimiento que los mainframes. Un sistema distribuido puede tener mayor poder de cmputo que un mainframe.
Algunas aplicaciones utilizan mquinas que estn separadas a cierta distancia.

Confiabilidad

Si una mquina se descompone, el sistema puede sobrevivir como un todo.

Crecimiento por Se puede aadir poder de cmputo en incrementos pequeos incrementos.

Ventajas de los S.D.


Con respecto a las PC independientes
Elemento
Datos compartidos Dispositivos compartidos

Descripcin
Permiten que varios usuarios tengan acceso a una base de datos comn. Permiten que varios usuarios compartan perifricos, como las impresoras.

Comunicacin Facilita la comunicacin de persona a persona; por ejemplo, mediante el correo electrnico. Flexibilidad Difunde la carga de trabajo entre las mquinas disponibles en la forma ms eficaz en cuanto a los costos.

Ejemplos de S.D. : Internet


intranet % % ISP % %

backbone

satellite link desktop computer: server: network link:

Ejemplos de S.D. : Intranet


emai l ser ver pri nt and ot her ser ver s Local ar ea net w ork

Desk t o p co mp u t er s

Web ser ver

emai l ser ver Fi e server l pri nt ot her server s t he r est of t he I nt ernet r out er/ f i r ew al l

Ejemplos de S.D. : Computacin Mvil

I nt er net

Ho s t

nt r anet i

W i r el e s s L AN

W AP g a t e wa y

Ho m e i nt r anet

M obi e l phone Pr n i t er Ca m e r a Lapt op Ho s t si t e

Ejemplo: Napster

Agenda

Introduccin Ejemplos de Sistemas Distribuidos Conceptos de Hardware Conceptos de Software Recursos compartidos y Web Desafos Modelo de 3 Capas

Concepto de hardware

Se han propuesto diversos esquemas de clasificacin para los sistemas de computo con varios CPU. Es probable que la taxonoma mas citada sea la de Flynn.

Conceptos de hardware

SISD (Single Instruction, Single Data), un flujo de instrucciones y uno de datos. SIMD (Single Instruction, Multiple Data), un flujo de instrucciones y varios flujos de datos. MISD (Multiple Instruction, Single Data), un flujo de varias instrucciones y uno de datos. MIMD (Multiple Instruction, Multiple Data), que significa un grupo de computadoras independientes.

SISD

Modelo Von Neumann

MISD

Diferentes operaciones sobre un mismo dato.

SIMD

Sncrona

MIMD

Asncrona

Conceptos de Hardware

Multiprocesadores

Basado en buses

Multiprocesadores

A) switch crossbar B) omega switching network

Agenda

Introduccin Ejemplos de Sistemas Distribuidos Conceptos de Hardware Conceptos de Software Recursos compartidos y Web Desafos Modelo de 3 Capas

Conceptos de Software

Sistema operativo uniprocesador

Hay dos tipos de sistemas operativos con varios CPUs:


Sistemas operativos de redes. Sistemas realmente distribuidos.

Sistemas operativos de redes

Cada mquina tiene un alto grado de autonoma y existen pocos requisitos a lo largo de todo el sistema. Un ejemplo es una red de estaciones de trabajo conectadas mediante una LAN. A veces es posible que un usuario se conecte de manera remota con otra estacin de trabajo mediante un comando como login machine.

Sistemas realmente distribuidos

Estn formados por un software fuertemente acoplado en un hardware dbilmente acoplado. El objetivo es crear la ilusin en las mentes de los usuarios que toda la red de computadoras es un sistema de tiempo compartido, en vez de una coleccin de mquinas diversas.

Sistemas Operativos Multiprocesador

Un monitor que proteje a un entero contra accesos concurrentes.

monitor Counter { private:

int count = 0;
public: int value() { return count;} void incr () { count = count + 1;} void decr() { count = count 1;} }

Sistemas Operativos Multiprocesador (2)


monitor Counter { private: void decr() { if (count ==0) { blocked_procs = blocked_procs + 1; wait (unblocked); blocked_procs = blocked_procs 1; } else count = count 1; } }

int count = 0;
int blocked_procs = 0; condition unblocked; public: int value () { return count;} void incr () { if (blocked_procs == 0) count = count + 1; else

signal (unblocked);
}

Un monitor que proteje a un entero contra accesos concurrentes, bloqueando un proceso.

Sistemas Operativos Multicomputador (1)

Estructura general de un sistema operativo multicomputador


1.14

Sistemas Operativos Multicomputador (2)

Alternativas para bloquear y enviar al bufer en el paso de mensajes.


1.15

Sistemas Operativos Multicomputador (3)


Synchronization point Block sender until buffer not full Block sender until message sent Block sender until message received Block sender until message delivered Send buffer Yes No No No Reliable comm. guaranteed? Not necessary Not necessary Necessary Necessary

Relacin entre el bloqueo, buffering, y comunicaciones confiables.

Sistemas Operativos de Memoria Compartida Distribuida (1)


a)

b)

c)

Pginas de espacio de direccin distribuido entre 4 mquinas Situacin luego de que la CPU 1 referencia a la pgina 10 Situacin si la pgina 10 es de solo lectura y se usa replicacin

Sistemas Operativos de Memoria Compartida Distribuida (2)

Compartir falso de una pgina entre 2 procesos independientes.

1.18

Sistemas Operativos de Red (1)

Estructura General de un Sistema operativo de Red.

1-19

Sistemas Operativos de Red (2)

Dos clientes y un servidor en un sistema operativo de red.

1-20

Sistemas Operativos de Red (3)

Diferentes clientes pueden montar servidores en diferentes lugares.

1.21

Conceptos de Software

Hay dos tipos de software en Sistemas Distribuidos:


Software concurrente. Software de Redes.

Software Concurrente

Puede simultneamente correr mltiples clculos computacionales interactuando potencialmente entre ellos.

Software de Redes

Define protocolos que permiten que dispositivos computacionales intercambien mensajes y realicen servicios remotamente.

Motivacin para Software Concurrente

Nivel de los avances de HW y SW

Ejemplo: procesadores multi-core & Sistemas operativos multi-hilos

Simplificar la estructura de programas

Ejemplo: permitiendo operaciones de bloquedo

Motivacin para Software Concurrente

Incrementa la performance

Ejemplo: computacin paralela & comunicaciones Ejemplo: No detener al hilo de la interfaz

Mejorando el tiempo de respuesta

Motivacin para Software de Redes

Colaboracin & comercio

Ejemplo: compartir archivos, medios sociales, transacciones en lnea e-commerce, cadenas de proveedores, B2B, etc.
Ejemplo: Computacin en la nuble

Escalabilidad

Motivacin para Software de Redes

Disponibilidad

Ejemplo: minimizar puntos simples de fallas va replicacin.


Ejemplo: va recursos compartidos.

Efectividad en costo

Agenda

Introduccin Ejemplos de Sistemas Distribuidos Conceptos de Hardware Conceptos de Software Recursos compartidos y Web Desafos Modelo de 3 Capas

Recursos Compartidos y Web

Servicio: gestiona una coleccin de recursos relacionados y presenta su funcionalidad a los usuarios y aplicaciones a travs de operaciones Servidor: Programa en ejecucin (un proceso) en un computador en red que acepta peticiones de programas que se estn ejecutando en otros computadores denominados clientes.

World Wide Web


www.google.com Web servers www.cdk3.net www.w3c.org File system of www.w3c.org http://www.w3c.org/Protocols/Activity.html http://www.google.comlsearch?q=kindberg Browsers

Internet
http://www.cdk3.net/

Protocols

Activity.html

World Wide Web

La Web es un sistema abierto: puede ser ampliado e implementado en nuevas formas sin modificar su funcionalidad existente. Componentes:
HTML (HyperText Markup Language) URL (Uniform Resource Locator) HTTP (HyperText Transfer Protocol)

Agenda

Introduccin Ejemplos de Sistemas Distribuidos Conceptos de Hardware Conceptos de Software Recursos compartidos y Web Desafos Modelo de 3 Capas

Desafos

Heterogeneidad Extensibilidad Seguridad Escalabilidad Tratamiento de fallos Concurrencia Transparencia

Heterogeneidad

Ejecucin de aplicaciones conjunto heterogneo de:


Redes Hardware de computadores Sistemas operativos Lenguajes de programacin Implementaciones de diferentes desarrolladores.

sobre

un

Heterogeneidad : Middleware

El trmino middleware se aplica al estrato software que provee una abstraccin de programacin, as como un enmascaramiento de la heterogeneidad subyacente de las redes hardware, sistemas operativos y lenguajes de programacin. COM+, CORBA, son ejemplos de ello. Adems, el middleware proporciona un modelo computacional uniforme que incluyen invocacin sobre objetos remotos, acceso remoto mediante SQL, procesamiento de transacciones, etc.

Middleware

Extensibilidad

Determina si el sistema puede ser extendido y reimplementado en diversos aspectos. Grado en el cual se pueden aadir nuevos servicios de comparticin de recursos y ponerlos a disposicin para el uso por una variedad de programas clientes. Esto slo se logra con la publicacin de las interfaces clave (similar a la estandarizacin)

Seguridad

Los recursos de informacin tienen un alto valor intrnseco para sus usuarios. La seguridad de los recursos de informacin tiene 3 componentes:

Confidencialidad. Integridad. Disponibilidad.

La seguridad esta basada en principios criptogrficos.

Escalabilidad

Se dice que un sistema es escalable si conserva su efectividad cuando ocurre un incremento significativo en el nmero de recursos y el nmero de usuarios.
Date Computers Web servers Percentage

1993, July 1995, July 1997, July more

1,776,000
6,642,000 19,540,000 56,218,000

130
23,500 1,203,096 6,598,697

0.008
0.4 6 12

Tratamiento de fallos

Los fallos en un sistema distribuido son parciales; es decir, algunos componentes fallan mientras otros siguen funcionando. Tcnicas para tratar fallos:

Deteccin de fallos. Enmascaramiento de fallos. Tolerancia de fallos. Recuperacin frente a fallos. Redundancia.

Concurrencia

Tanto los servicios como las aplicaciones proporcionan recursos que pueden compartirse entre los clientes en un sistema distribuido. Existe por lo tanto una posibilidad de que varios clientes intenten acceder a un recurso compartido a la vez. Ms concretamente, suponga que cada recurso se encapsula en un objeto y que las invocaciones se ejecutan en hilos de ejecucin concurrentes (threads).

Transparencia

Es la ocultacin de la separacin de los componentes en un sistema distribuido, de forma que se perciba el sistema como un todo ms que como una coleccin de componentes independientes. Las transparencias de mayor alcance seran:
Transparencia de acceso. Transparencia de ubicacin. Transparencia de concurrencia. Transparencia de replicacin. Transparencia frente a fallos.

Transparencia en un Sistema Distribuido


Transparency Access Location Migration Relocation Replication Concurrency Failure Description Hide differences in data representation and how a resource is accessed Hide where a resource is located Hide that a resource may move to another location Hide that a resource may be moved to another location while in use Hide that a resource may be shared by several competitive users Hide that a resource may be shared by several competitive users Hide the failure and recovery of a resource Hide whether a (software) resource is in memory or on disk

Persistence

Tcnicas de Escala

La diferencia entre chequear cmo se llenan formularios:

En un servidor o en un cliente

Agenda

Introduccin Ejemplos de Sistemas Distribuidos Conceptos de Hardware Conceptos de Software Recursos compartidos y Web Desafos Modelo de 3 Capas

Modelo de 3 capas

Para construir aplicaciones distribuidas lo ideal es pasar de arquitecturas de 2 capas a arquitecturas de 3 capas.

De 2 capas a 3 capas
Cliente 1
Proceso 1 MiApp.exe Driver SQL

Cliente 2
Proceso 2 MiApp.exe Driver SQL

DBMS (SQL)

Cliente n
Proceso n MiApp.exe Driver SQL

De 2 capas a 3 capas

Las aplicaciones de 2 capas requiere una conexin separada al servidor de la base de datos por cada usuario, y la computadora del usuario debe tener el apropiado driver para un especifico gestor de base de datos (DBMS). El cdigo de la interfaz se mezcla con la lgica del negocio y el cdigo de acceso a los datos.

* Sistemas Distribuidos

De 2 capas a 3 capas
Cliente 1
MiApp.exe SQL driver Oracle driver
Oracle

Cliente 2
OtraApp.exe SQL driver Oracle driver

DBMS (SQL)

Cliente n
NewApp.exe Driver SQL Oracle driver Mainframe

Mainframe

Fraccionamiento de la capa de presentacin

La solucin al problema de 2 capas se puede solucionar agregando una capa para la lgica del negocio. Esto elimina la dependencia entre las aplicaciones cliente y los servidores de base de datos

Fraccionamiento de la capa de presentacin


Aplicacin COM+ Oracle

Cliente 1 MiApp.exe Cliente 2 OtraApp.exe Cliente n NewApp.exe

Object

Object

DBMS (SQL) Object

Object Object Oracle driver SQL driver Mainframe driver Mainframe

Aplicaciones basados en la web


Cliente 1
I.Explorer Windows Web server Aplicacin COM+ Oracle

peticin HTTP

Object

Cliente 2
Netscape Macintosh

Object peticin HTTP Object

DBMS (SQL) Object

Cliente n
Mosaic Linux

peticin HTTP

Object Oracle driver SQL driver Mainframe driver

Mainframe

Ejemplo de procesamiento por niveles

1-28

The general organization of an Internet search engine into three different layers

Multitiered Architectures (1)

Alternative client-server organizations (a) (e).

1-29

Multitiered Architectures (2)

An example of a server acting as a client.

1-30

Arquitecturas Modernas

1-31

Resumen

Los sistemas distribuidos estn por todas partes como es Internet, Intranets y la computacin mvil y ubicua. La comparticin de recursos es el principal factor que motiva la construccin de sistemas distribuidos (Cliente/Servidor). La construccin de los S.D. presentan muchos desafos: Heterogeneidad, Extensibilidad, Seguridad, Escalabilidad, Tratamiento a fallos, Concurrencia y Transparencia.

You might also like