SlideShare una empresa de Scribd logo
Sistemas Distribuidos
Antecedentes
Dos grandes avances tecnológicos en los 80’s
Desarrollo de microprocesadores
De una máquina de 10 millones de dólares que ejecuta una
instrucción por minuto, se pasa a máquinas de 1000
dólares que ejecutan 10 millones de instrucciones por
seg..
Invención de redes
Posibilidad de conectar uno o más computadoras entre sí
•Roll Royce de 100 dólares con un billón de kilómetros por litro
•Tamaño manual para abrir puerta: 200 pgs.
Introducción
• Redes de comunicación: Permiten conectar
decenas, centenas y todas las máquinas que se
requieran (Internet).
• Sistemas Operativos distribuidos que permitan
cooperar y multiplicar la potencia del cálculo.
Desarrollos conceptuales
1960s 1970s 1980s
Tiempo
Compartido
Gráficas
Redes
Computadoras
como
herramientas
personales
Estaciones de
trabajo
Cliente/Servidor
Redes Locales
Sistemas
abiertos,
escalables,
tolerantes
a fallas
Ideas
clave
Instituciones
pilares
Xerox Alto
Lisp machine
Apple II
Smalltalk
Aloha net
MIT CTSS
Cambridge TSS
Tenex, Unix
Sketchpad
ARPANET
experiencia requerimientos experiencia requerimientosCiclos
Xerox Dorado
Sun 1, Apollo Domain
Xerox: DFS, Grapevine
Berkeley Unix
Newcastle Connection
Cambridge DCS
Ethernet, Cambridge Ring
Sistema V - Stanford
Sun NFS
MIT: X-11, Argus
CMU: Accent, Andrew
Mach
Amoeba
Chrous
Sistemas Distribuidos
• Conjunto de computadoras independientes que se
presenta a los usuarios como un sistema único.
• Aspectos
– El hardware : máquinas autónomas, es decir,
que puedan operar sin la supervisión de
ninguna otra.
– El software : Debe conseguir que los usuarios
del sistema lo vean como una máquina central
convencional única
Sistemas Distribuidos
• Conjunto de entidades que se comunican entre
ellos a través de mensajes, los cuales son enviados
sobre vías de comunicación.
• Entidades:
Procesos, computadoras, redes computadoras,
dispositivos, procesadores etc..
Otras definiciones
“A distributed system is one in which the failure of a
computer you didn’t even know existed can render your own
computer unusuable”
Leslie Lamport
“A distributed system is one that stops from getting any work
done when a machine you’ve never never heard of crashes”
Distributed Systems (Ed. Sape Mullender)
edition 1, ACM Press 1989
Elementos de Sistemas
Distribuidos
(1) Procesos
reciben, manipulan, transforman y emiten datos
(2) Vías de comunicación
medio sobre el cual circulan los datos y que
forman una red local dotado de propiedades
estructurales y dinámicas.
Los procesos
- Término introducido por Dijkstra en 1968 para modelar las
relaciones entre diferentes unidades de ejecución independientes
que deben compartir recursos comunes, (materiales y lógicos)
- En sistemas distribuidos,
unidad de ejecución elemental de un algoritmo distribuido
o paralelo; diversas de esas unidades pueden ejecutarse
simultáneamente, y cada una es indivisible.
- Se consideran procesos secuenciales, (i.e. presentan un flujo de
control único).
- Sensibles al paralelismo de su ambiente
Las Vías de
Comunicación
• Medio a través del cual viajan los mensajes
• Sistema distribuido: vías de comunicación virtuales
• Propiedades:
1. Propiedades estructurales
2. Propiedades comportamentales
Propiedades Estructurales
• Son de naturaleza topológica
• Se refiere a las mallas de comunicación
• Toda topología es posible según el problema tratado y el
algoritmo distribuido que lo resuelve.
• Estructuras más comunes:
1. Anillo
2. Estrella
3. Árbol
4. Completo
Propiedades
Comportamentales
Hipótesis sobre comportamiento de las vías de comunicación.
1. Transmisión se hace sin duplicación de mensajes
2. Transmisión sin alteración de mensajes
3. Entre dos procesos el orden de recepción de mensajes
es idéntico a su orden de emisión: no hay desplazamientos
4. Tiempo espera de un mensaje es finito, (aunque aleatorio),
(no hay perdida de mensajes).
5. Tiempo atención limitado => existe una cota superior
si no hay perdida de mensaje
mensaje fue recibido
en caso contrario
mensaje recibido o perdido
Características de los sistemas
distribuidos
• 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.
Tolerancia a fallas
• Sistema distribuido que puede seguir funcionando,
(tal vez con un menor desempeño), a pesar de que
uno de sus componentes no este funcionando
(sistemas robustos).
– Redundancia de hardware
– Recuperación de software
Confiabilidad
• Datos transmitidos a través de vías de
comunicación
• Posibilidad de pérdida y modificación de datos
(Capacidades de recuperación de datos)
Disponibilidad
• Falla en una sola computadora multiusuario da
como resultado la no disponibilidad del sistema
para todos sus usuarios.
• Cuando uno de los componentes falla en un
sistema distribuido solo el trabajo que estaba
usando el componente es afectado.
• Un usuario puede moverse a otra estación si la que
usa falla, o un servidor puede reinicializarse en
otra computadora.
Apertura del sistema
• Sistemas abiertos distribuidos proporcionan
un mecanismo de comunicación de
procesos uniforme y publican interfaces
para el acceso a recursos compartidos.
• Pueden ser construidos a partir de software
y hardware heterogeneo.
Concurrencia
• Varios procesos se encuentran sobre una sola
computadora.
• Ejecución intercalada en el caso de un solo
procesador y simultanea si existen n procesadores.
• Ejecución paralela posible debido a:
– Varios usuarios invocan comandos o interactuan con
programas de aplicación.
– Varios procesos servidores se corren concurrentemente.
Escalabilidad
• Sistemas distribuidos deben operar efectiva
y eficientemente en diferentes escalas.
• Sistema distribuido práctico más chico: dos
estaciones y un servidor de archivos.
• Sistemas distribuidos grandes
Ventajas
- Relativamente fácil y económico poner en conjunto
sistemas compuestos de un gran número de procesadores,
(CPUs), conectados en red.
- Dos entidades trabajan más rápido que una sola.
- Necesidad de sincronizar los trabajos de cada componente
Objetivos
• Limitaciones geográficas
• Seguridad (En un sistema centralizado existe un
único punto de fallo)
• Aumento constante de Potencia de cómputo : Si
la potencia del sistema llega a ser insuficiente
(Adquirir un nuevo equipo MainFrame vs
Adquirir computadoras personales)
Aspectos clave en el Diseño de los
Sistemas Operativos Distribuidos
• Tolerancia a fallas.
• Transparencia a la ocurrencia (El usuario no
debe notar otros usuarios en el sistema).
• Transparencia al paralelismo (Asignar los
procesadores a las actividades del programa
sin el concurso del programador).
• Fiabilidad (Fiabilidad global del sistema).
Aspectos clave en el Diseño de los
Sistemas Operativos Distribuidos
• Escalabilidad (Habilitar crecimiento de acuerdo a
la demanda).
• Evitar Hw centralizado
• Evitar Sw centralizado
• Ninguna máquina debe tener toda la información
de todo el sistema
• No existe un reloj común
24
Aspectos Básicos de Diseño de
Sistemas Distribuidos
• Naming
• Comunicación
• Estructura software
• Asignación de carga
• Consistencia
25
Naming
• Nombramiento de los diferentes recursos
• Nombres deben de tener significados globales
• Involucra las siguientes consideraciones:
– La elección del tamaño del nombre para cada tipo de
recurso, (puede ser finito o potencialmente infinitio)
– Nombres deben de ser “mapeados” por identificadores
de comunicación
• Un nombre depende de su contexto, por lo que para
resolver un nombre es necesario el nombre y un contexto
26
Comunicación
• Componentes separados lógica y físicamente, por lo que
necesitan comunicarse entre ellos para interactuar
• Comunicación involucra las operaciones siguientes:
– la transferencia de datos
– la sincronización de la recepción con la emisión
• Dos enfoques en sistemas distribuidos:
– paso de mensajes
– llamado de procedimiento remoto
• Existen dos modelos:
– modelo de comunicación par a par
– modelo de comunicación grupal
27
Estructura software
• Sistemas centralizados son monolíticos:
– conjunto abstracciones que se ofrece a las aplicaciones
estan reunidas en una sola interfaz
• Sistemas distribuidos
– programas aplicación pueden accesar diferentes
servicios , en el cual cada uno cuenta con su propia
interfaz para accesar recursos
• Principales niveles
– aplicaciones
– soporte de lenguaje de programación
– sistema operativo
– hardware
28
Asignación carga
• Dado un proceso, en donde se va a ejecutar
• Modelo simple la capacidad de memoria y el desempeño
de un procesador de una estación determina el tamaño
máximo de tarea que se puede ejecutar
• Modelos
– modelo de servidor de estación
– modelo de piscina de procesadores
– modelo de la estación de trabajo
– modelo de memoria compartida distribuida
29
Consistencia
• Diferentes procesos accesan y actualizan datos
concurrentemente
• Los cambios no son instantaneos
• Un cierto conjunto de cambios debe de aparecer igual a
todos los otros procesos que integran el sistema distribuido.
• Tipos consistencia:
– consistencia de actualización
– consistencia de replica
– consistencia de caché
– consistencia de fallas
– consistencia de reloj
– consistencia de interfaz de usuario
30
Algoritmos Distribuidos
• Definición: abstracción lógica de un sistema
distribuido, se habla de un conjunto de procesos y de
líneas de comunicación virtuales
• Se habla de algoritmos concurrentes ejecutados en
diferentes procesadores,
• Originalmente los algoritmos eran diseñados para
ejecutarse procesadores distribuidos en un área grande
• Hoy en día incluye algoritmos usados en redes de área
local y multiprocesadores que comparten memoria
Atributos que diferencian a los
algoritmos distribuidos
• Método de comunicación entre procesos
– memoria compartida
– mensajes punto a punto y/o broadcast
– ejecución de procesos remotos (RPC)
• El modelo del tiempo
– completamente síncronos
– completamente asíncronos
– parcialmente síncronos
• El modelo de fallas
– sistema completamente fiable
– sistema tolera algunas fallas
– fallas bizantinas
• Los problemas a los que están dirigidos
– problemas de aplicación
– problemas de control
33
Algoritmos distribuidos aplicación
• Son los algoritmos que definen una aplicación
• Representan la interfaz final entre los usuarios y el
sistema distribuido
• Se apoyan en arquitecturas de software como:
– CORBA: Common Object Request Broker Architecture
– COM: Component Object Model
– EJB: Enterprise JavaBeans
34
Algoritmos distribuidos control
• Están por abajo de las aplicaciones
• Proporcionan dos tipos de servicios
– Proveedor de primitivas
• exclusión mutua
• envío/recepción mensajes
• control de concurrencia
• administración de archivos
– Observadores de propiedades
• interbloqueo
• terminación de la ejecución
• recolectores de basura
35
Algoritmos de aplicación y control
Medio de soporte de comunicaciones
A1
CTL1
A2
CTL2
Ai
CTLi
An
CTLn
.....
..... ....
.
....
.
CTLi :control de la i-ésima aplicación
Ai: aplicación
Características algoritmos distribuidos
• Desconocimiento del número de procesos
• Desconocimiento de la topología de la red
• Entradas independientes en sitios diferentes
• Varias programas ejecutandose al mismo tiempo,
empezando en tiempos diferentes y operando a
diferentes velocidades
• No determinismo en el procesador (processor
nondeterminism)
• Tiempos entrega de mensajes diferentes
• Orden entrega de mensajes desconocido
• Fallas en la comunicación y en los procesos
Aplicaciones Algoritmos Distribuidos
• Redes de computadoras
• Computadoras multiprocesadores
• Procesos cooperantes
• Celdas de manufactura
• Redes inalámbricas - computación
móvil
Problemas a Resolver en las WAN’s
Confiabilidad del intercambio de datos
Selección de rutas de comunicación
Control de tráfico
Prevención de cuellos de botella
Seguridad
Problemas Comunes en
LAN’s
Broadcasting y sincronización
Elección
Detección de terminación
Asignación de recursos
Exclusión mutua
Deadlock
Mantenimiento archivos distribuidos
Computadoras
Multiprocesadores
Computadora que consiste de diferentes
procesadores generalmente ubicados dentro
de un mismo espacio físico
Procesadores homogéneos
Pequeña escala geográfica
Objetivo principal:
mejorar la velocidad del cálculo
Los Algoritmos Distribuidos y
los Multiprocesadores
Implementación sistema envío de mensajes
Implementación memoria virtual compartida
Balance de carga
Tolerancia a fallas
Procesos Cooperantes
Procesos que interactuan para la solución
de un determinado problema, o para
proporcionar un servicio
Comparten memoria en común
Trabajan sobre el mismo procesador
Ejemplo: sistemas operativos, (daemons)
Algoritmos Distribuidos y los
Procesos Cooperantes
Exclusión mutua
Deadlocks
Sincronización
Intercambio de información
Asignación recursos
Celdas de Manufactura
Robots conectados entre ellos a través de un medio
de comunicación, cada uno desarrollando una
actividad en particular, con un objetivo global en
común
- ensamblaje
- control de un determinado sistema
Computación Móvil
Wireless Local Area Networks o WLAN’s.
Ausencia de cables como medio de comunicación.
Envío/recepción de ondas electromagnéticas que
viajan del emisor al receptor a través del espacio.
Computadoras desatadas (untethered o tetherless
computer).
Computadoras y aplicaciones móviles.
Computadoras nómadas.
Problemas Resueltos por los
Algoritmos Distribuidos
• Ruteo
• Pagging
• Información de la ubicación de la unidad móvil
(almacenamiento y actualización)
• Consistencia
• Seguridad
• Transferencias de llamadas
Algoritmos ¿distribuidos?
• ¿Qué distribuir?
• Datos
• Control
Distribuyendo los datos
• La distribución puede tomar diversas
formas:
• Duplicación
• Particionamiento
La Duplicación de Datos
Existe duplicación de un dato x, si este se encuentra
duplicado en n ejemplares x1, x2 .... xn, donde 1,2, .... n
son los identificadores de los sitios que participan en el
algoritmo distribuido.
Asegurar la coherencia mutua de las copias a todo
instante
las copias físicas xi tengan el mismo valor x
x1 = x2 = ...... xi ...... xn = x
Ejemplo de duplicación
x1
x2
x3
Pierre 500
Sam 700
Juan 900
Pierre 500
Sam 700
Juan 900
Pierre 500
Sam 700
Juan 900
Partición de Datos
Hablamos de particionamiento de datos cuando,
estando accesibles desde todos los sitios, los datos
son particionados de tal forma que cada una de las
particiones se encuentra sobre un sitio dado
Para obtener la totalidad de la información se tiene
que consultar a todo el mundo
I = (x1 + x2 + ... xi ... + xn)
Ejemplo de Partición
x1 x2
x3
Pierre 500 Sam 500
Juan 900
Distribuyendo el Control
• No existe una jerarquía estática
• No hay un proceso líder que en permanencia asegure el
control
• Puede ser necesario un algoritmo de asignación de
funciones
• Muy a menudo depende del problema que se intenta
resolver

Más contenido relacionado

La actualidad más candente

Los sistemas operativos
Los sistemas operativosLos sistemas operativos
Los sistemas operativos
Gabriel Piña
 
Sistemas operativos distribuidos
Sistemas operativos distribuidosSistemas operativos distribuidos
Sistemas operativos distribuidos
Jperez98
 
Sistema operativo distribuido
Sistema operativo distribuidoSistema operativo distribuido
Sistema operativo distribuido
Ramon1 rodriguez1
 
Sistemas operativos distribuidos
Sistemas operativos distribuidosSistemas operativos distribuidos
Sistemas operativos distribuidos
Victor Milano
 
Sistemas operativos distribuidos
Sistemas operativos distribuidosSistemas operativos distribuidos
Sistemas operativos distribuidos
Universidad Nororiental Gran Mariscal de Ayacucho
 
Omarlys
OmarlysOmarlys
Omarlys
yamiigonza
 
Taller no 3
Taller no 3Taller no 3
Taller no 3
DeBoRaNbA8
 
Sistema Operativo Distribuido
Sistema Operativo DistribuidoSistema Operativo Distribuido
Sistema Operativo Distribuido
Alejandro Rodriguez
 
Sistemas operativos distribuidos y sistemas distribuidos
Sistemas operativos distribuidos y sistemas distribuidosSistemas operativos distribuidos y sistemas distribuidos
Sistemas operativos distribuidos y sistemas distribuidos
cris_bar
 
Sistemas operativos distribuidos
Sistemas operativos distribuidosSistemas operativos distribuidos
Sistemas operativos distribuidos
Tensor
 
Sistemas operativos 2
Sistemas operativos 2Sistemas operativos 2
Sistemas operativos 2
Chulinneitor
 
Historia so
Historia soHistoria so
Historia so
waltersito2015
 
Sistemas Operativos Distribuidos
Sistemas Operativos DistribuidosSistemas Operativos Distribuidos
Sistemas Operativos Distribuidos
carlos7489
 
Sistemas operativos distribuidos
Sistemas operativos distribuidosSistemas operativos distribuidos
Sistemas operativos distribuidos
carlosmax10
 
Sistemas operativos distribuidos
Sistemas operativos distribuidosSistemas operativos distribuidos
Sistemas operativos distribuidos
Victor Reyes
 
Investigacion eq.3 inf-5 e
Investigacion eq.3 inf-5 eInvestigacion eq.3 inf-5 e
Investigacion eq.3 inf-5 e
Eduardo Diaz
 
Sistemas distribuidos
Sistemas distribuidosSistemas distribuidos
Sistemas distribuidos
davinson garcia
 
Sistema operativos distribuidos
Sistema operativos distribuidosSistema operativos distribuidos
Sistema operativos distribuidos
pgr95
 
Sistemas operativos distribuidos
Sistemas operativos distribuidosSistemas operativos distribuidos
Sistemas operativos distribuidos
nathalyrivasdiaz
 
Sistemas distribuidos
Sistemas distribuidosSistemas distribuidos
Sistemas distribuidos
AlbertVillegas1993
 

La actualidad más candente (20)

Los sistemas operativos
Los sistemas operativosLos sistemas operativos
Los sistemas operativos
 
Sistemas operativos distribuidos
Sistemas operativos distribuidosSistemas operativos distribuidos
Sistemas operativos distribuidos
 
Sistema operativo distribuido
Sistema operativo distribuidoSistema operativo distribuido
Sistema operativo distribuido
 
Sistemas operativos distribuidos
Sistemas operativos distribuidosSistemas operativos distribuidos
Sistemas operativos distribuidos
 
Sistemas operativos distribuidos
Sistemas operativos distribuidosSistemas operativos distribuidos
Sistemas operativos distribuidos
 
Omarlys
OmarlysOmarlys
Omarlys
 
Taller no 3
Taller no 3Taller no 3
Taller no 3
 
Sistema Operativo Distribuido
Sistema Operativo DistribuidoSistema Operativo Distribuido
Sistema Operativo Distribuido
 
Sistemas operativos distribuidos y sistemas distribuidos
Sistemas operativos distribuidos y sistemas distribuidosSistemas operativos distribuidos y sistemas distribuidos
Sistemas operativos distribuidos y sistemas distribuidos
 
Sistemas operativos distribuidos
Sistemas operativos distribuidosSistemas operativos distribuidos
Sistemas operativos distribuidos
 
Sistemas operativos 2
Sistemas operativos 2Sistemas operativos 2
Sistemas operativos 2
 
Historia so
Historia soHistoria so
Historia so
 
Sistemas Operativos Distribuidos
Sistemas Operativos DistribuidosSistemas Operativos Distribuidos
Sistemas Operativos Distribuidos
 
Sistemas operativos distribuidos
Sistemas operativos distribuidosSistemas operativos distribuidos
Sistemas operativos distribuidos
 
Sistemas operativos distribuidos
Sistemas operativos distribuidosSistemas operativos distribuidos
Sistemas operativos distribuidos
 
Investigacion eq.3 inf-5 e
Investigacion eq.3 inf-5 eInvestigacion eq.3 inf-5 e
Investigacion eq.3 inf-5 e
 
Sistemas distribuidos
Sistemas distribuidosSistemas distribuidos
Sistemas distribuidos
 
Sistema operativos distribuidos
Sistema operativos distribuidosSistema operativos distribuidos
Sistema operativos distribuidos
 
Sistemas operativos distribuidos
Sistemas operativos distribuidosSistemas operativos distribuidos
Sistemas operativos distribuidos
 
Sistemas distribuidos
Sistemas distribuidosSistemas distribuidos
Sistemas distribuidos
 

Similar a 7 introsd

Sistemas distribuidos
Sistemas distribuidosSistemas distribuidos
Sistemas distribuidos
Luis Yallerco
 
Portafolio de so en pdf
Portafolio de so en pdfPortafolio de so en pdf
Portafolio de so en pdf
Nel Marquez
 
Sistemas operativos distribuidos.
Sistemas operativos distribuidos.Sistemas operativos distribuidos.
Sistemas operativos distribuidos.
scorpion_esab
 
Sistemas distribuidos
Sistemas distribuidosSistemas distribuidos
Sistemas distribuidos
Tensor
 
Sistemas distribuidos
Sistemas distribuidosSistemas distribuidos
Sistemas distribuidos
Tensor
 
Libro so
Libro soLibro so
UNIDAD 1 TEMA 1 .pptx
UNIDAD 1 TEMA 1 .pptxUNIDAD 1 TEMA 1 .pptx
UNIDAD 1 TEMA 1 .pptx
ItatyVivar1
 
Apuntes de-sistemas-operativos-ii-e2
Apuntes de-sistemas-operativos-ii-e2Apuntes de-sistemas-operativos-ii-e2
Apuntes de-sistemas-operativos-ii-e2
annyshey
 
Base expo
Base expoBase expo
Base expo
Sergio Carreño
 
INTRODUCCION A SISTEMAS OPERATIVOS
INTRODUCCION A SISTEMAS OPERATIVOSINTRODUCCION A SISTEMAS OPERATIVOS
INTRODUCCION A SISTEMAS OPERATIVOS
Richard Eliseo Mendoza Gafaro
 
TIPOS DE SOFTWARE
TIPOS DE SOFTWARETIPOS DE SOFTWARE
TIPOS DE SOFTWARE
DeBoRaNbA8
 
Unidad 1 Sistemas Operativos en Ambientes Distribuidos.
Unidad 1 Sistemas Operativos en Ambientes Distribuidos.Unidad 1 Sistemas Operativos en Ambientes Distribuidos.
Unidad 1 Sistemas Operativos en Ambientes Distribuidos.
A6M0
 
sistemas_Operativos_Distribuidos
sistemas_Operativos_Distribuidossistemas_Operativos_Distribuidos
sistemas_Operativos_Distribuidos
Adriana Rodriguez
 
TIPOS DE SOFTWARE
TIPOS DE SOFTWARETIPOS DE SOFTWARE
TIPOS DE SOFTWARE
Jenni2011
 
Unidad 1 equipo 4
Unidad 1 equipo 4Unidad 1 equipo 4
Unidad 1 equipo 4
Eric Trapaga Lozada
 
Sistemas operativos unidad_ii
Sistemas operativos unidad_iiSistemas operativos unidad_ii
Sistemas operativos unidad_ii
Leo Garcia
 
Unidad 1 sistemas operativos
Unidad 1 sistemas operativosUnidad 1 sistemas operativos
Unidad 1 sistemas operativos
Fenix Sven
 
Sistemas Operativos Distribuidos
Sistemas Operativos DistribuidosSistemas Operativos Distribuidos
Sistemas Operativos Distribuidos
Valentina
 
Puntos extra (sistemas distribuidos)
Puntos extra (sistemas distribuidos)Puntos extra (sistemas distribuidos)
Puntos extra (sistemas distribuidos)
Horacio Ibarra Almaguer
 
Yamilet gonzalez
Yamilet gonzalezYamilet gonzalez
Yamilet gonzalez
yamiigonza
 

Similar a 7 introsd (20)

Sistemas distribuidos
Sistemas distribuidosSistemas distribuidos
Sistemas distribuidos
 
Portafolio de so en pdf
Portafolio de so en pdfPortafolio de so en pdf
Portafolio de so en pdf
 
Sistemas operativos distribuidos.
Sistemas operativos distribuidos.Sistemas operativos distribuidos.
Sistemas operativos distribuidos.
 
Sistemas distribuidos
Sistemas distribuidosSistemas distribuidos
Sistemas distribuidos
 
Sistemas distribuidos
Sistemas distribuidosSistemas distribuidos
Sistemas distribuidos
 
Libro so
Libro soLibro so
Libro so
 
UNIDAD 1 TEMA 1 .pptx
UNIDAD 1 TEMA 1 .pptxUNIDAD 1 TEMA 1 .pptx
UNIDAD 1 TEMA 1 .pptx
 
Apuntes de-sistemas-operativos-ii-e2
Apuntes de-sistemas-operativos-ii-e2Apuntes de-sistemas-operativos-ii-e2
Apuntes de-sistemas-operativos-ii-e2
 
Base expo
Base expoBase expo
Base expo
 
INTRODUCCION A SISTEMAS OPERATIVOS
INTRODUCCION A SISTEMAS OPERATIVOSINTRODUCCION A SISTEMAS OPERATIVOS
INTRODUCCION A SISTEMAS OPERATIVOS
 
TIPOS DE SOFTWARE
TIPOS DE SOFTWARETIPOS DE SOFTWARE
TIPOS DE SOFTWARE
 
Unidad 1 Sistemas Operativos en Ambientes Distribuidos.
Unidad 1 Sistemas Operativos en Ambientes Distribuidos.Unidad 1 Sistemas Operativos en Ambientes Distribuidos.
Unidad 1 Sistemas Operativos en Ambientes Distribuidos.
 
sistemas_Operativos_Distribuidos
sistemas_Operativos_Distribuidossistemas_Operativos_Distribuidos
sistemas_Operativos_Distribuidos
 
TIPOS DE SOFTWARE
TIPOS DE SOFTWARETIPOS DE SOFTWARE
TIPOS DE SOFTWARE
 
Unidad 1 equipo 4
Unidad 1 equipo 4Unidad 1 equipo 4
Unidad 1 equipo 4
 
Sistemas operativos unidad_ii
Sistemas operativos unidad_iiSistemas operativos unidad_ii
Sistemas operativos unidad_ii
 
Unidad 1 sistemas operativos
Unidad 1 sistemas operativosUnidad 1 sistemas operativos
Unidad 1 sistemas operativos
 
Sistemas Operativos Distribuidos
Sistemas Operativos DistribuidosSistemas Operativos Distribuidos
Sistemas Operativos Distribuidos
 
Puntos extra (sistemas distribuidos)
Puntos extra (sistemas distribuidos)Puntos extra (sistemas distribuidos)
Puntos extra (sistemas distribuidos)
 
Yamilet gonzalez
Yamilet gonzalezYamilet gonzalez
Yamilet gonzalez
 

7 introsd

  • 2. Antecedentes Dos grandes avances tecnológicos en los 80’s Desarrollo de microprocesadores De una máquina de 10 millones de dólares que ejecuta una instrucción por minuto, se pasa a máquinas de 1000 dólares que ejecutan 10 millones de instrucciones por seg.. Invención de redes Posibilidad de conectar uno o más computadoras entre sí •Roll Royce de 100 dólares con un billón de kilómetros por litro •Tamaño manual para abrir puerta: 200 pgs.
  • 3. Introducción • Redes de comunicación: Permiten conectar decenas, centenas y todas las máquinas que se requieran (Internet). • Sistemas Operativos distribuidos que permitan cooperar y multiplicar la potencia del cálculo.
  • 4. Desarrollos conceptuales 1960s 1970s 1980s Tiempo Compartido Gráficas Redes Computadoras como herramientas personales Estaciones de trabajo Cliente/Servidor Redes Locales Sistemas abiertos, escalables, tolerantes a fallas Ideas clave Instituciones pilares Xerox Alto Lisp machine Apple II Smalltalk Aloha net MIT CTSS Cambridge TSS Tenex, Unix Sketchpad ARPANET experiencia requerimientos experiencia requerimientosCiclos Xerox Dorado Sun 1, Apollo Domain Xerox: DFS, Grapevine Berkeley Unix Newcastle Connection Cambridge DCS Ethernet, Cambridge Ring Sistema V - Stanford Sun NFS MIT: X-11, Argus CMU: Accent, Andrew Mach Amoeba Chrous
  • 5. Sistemas Distribuidos • Conjunto de computadoras independientes que se presenta a los usuarios como un sistema único. • Aspectos – El hardware : máquinas autónomas, es decir, que puedan operar sin la supervisión de ninguna otra. – El software : Debe conseguir que los usuarios del sistema lo vean como una máquina central convencional única
  • 6. Sistemas Distribuidos • Conjunto de entidades que se comunican entre ellos a través de mensajes, los cuales son enviados sobre vías de comunicación. • Entidades: Procesos, computadoras, redes computadoras, dispositivos, procesadores etc..
  • 7. Otras definiciones “A distributed system is one in which the failure of a computer you didn’t even know existed can render your own computer unusuable” Leslie Lamport “A distributed system is one that stops from getting any work done when a machine you’ve never never heard of crashes” Distributed Systems (Ed. Sape Mullender) edition 1, ACM Press 1989
  • 8. Elementos de Sistemas Distribuidos (1) Procesos reciben, manipulan, transforman y emiten datos (2) Vías de comunicación medio sobre el cual circulan los datos y que forman una red local dotado de propiedades estructurales y dinámicas.
  • 9. Los procesos - Término introducido por Dijkstra en 1968 para modelar las relaciones entre diferentes unidades de ejecución independientes que deben compartir recursos comunes, (materiales y lógicos) - En sistemas distribuidos, unidad de ejecución elemental de un algoritmo distribuido o paralelo; diversas de esas unidades pueden ejecutarse simultáneamente, y cada una es indivisible. - Se consideran procesos secuenciales, (i.e. presentan un flujo de control único). - Sensibles al paralelismo de su ambiente
  • 10. Las Vías de Comunicación • Medio a través del cual viajan los mensajes • Sistema distribuido: vías de comunicación virtuales • Propiedades: 1. Propiedades estructurales 2. Propiedades comportamentales
  • 11. Propiedades Estructurales • Son de naturaleza topológica • Se refiere a las mallas de comunicación • Toda topología es posible según el problema tratado y el algoritmo distribuido que lo resuelve. • Estructuras más comunes: 1. Anillo 2. Estrella 3. Árbol 4. Completo
  • 12. Propiedades Comportamentales Hipótesis sobre comportamiento de las vías de comunicación. 1. Transmisión se hace sin duplicación de mensajes 2. Transmisión sin alteración de mensajes 3. Entre dos procesos el orden de recepción de mensajes es idéntico a su orden de emisión: no hay desplazamientos 4. Tiempo espera de un mensaje es finito, (aunque aleatorio), (no hay perdida de mensajes). 5. Tiempo atención limitado => existe una cota superior si no hay perdida de mensaje mensaje fue recibido en caso contrario mensaje recibido o perdido
  • 13. Características de los sistemas distribuidos • 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.
  • 14. Tolerancia a fallas • Sistema distribuido que puede seguir funcionando, (tal vez con un menor desempeño), a pesar de que uno de sus componentes no este funcionando (sistemas robustos). – Redundancia de hardware – Recuperación de software
  • 15. Confiabilidad • Datos transmitidos a través de vías de comunicación • Posibilidad de pérdida y modificación de datos (Capacidades de recuperación de datos)
  • 16. Disponibilidad • Falla en una sola computadora multiusuario da como resultado la no disponibilidad del sistema para todos sus usuarios. • Cuando uno de los componentes falla en un sistema distribuido solo el trabajo que estaba usando el componente es afectado. • Un usuario puede moverse a otra estación si la que usa falla, o un servidor puede reinicializarse en otra computadora.
  • 17. Apertura del sistema • Sistemas abiertos distribuidos proporcionan un mecanismo de comunicación de procesos uniforme y publican interfaces para el acceso a recursos compartidos. • Pueden ser construidos a partir de software y hardware heterogeneo.
  • 18. Concurrencia • Varios procesos se encuentran sobre una sola computadora. • Ejecución intercalada en el caso de un solo procesador y simultanea si existen n procesadores. • Ejecución paralela posible debido a: – Varios usuarios invocan comandos o interactuan con programas de aplicación. – Varios procesos servidores se corren concurrentemente.
  • 19. Escalabilidad • Sistemas distribuidos deben operar efectiva y eficientemente en diferentes escalas. • Sistema distribuido práctico más chico: dos estaciones y un servidor de archivos. • Sistemas distribuidos grandes
  • 20. Ventajas - Relativamente fácil y económico poner en conjunto sistemas compuestos de un gran número de procesadores, (CPUs), conectados en red. - Dos entidades trabajan más rápido que una sola. - Necesidad de sincronizar los trabajos de cada componente
  • 21. Objetivos • Limitaciones geográficas • Seguridad (En un sistema centralizado existe un único punto de fallo) • Aumento constante de Potencia de cómputo : Si la potencia del sistema llega a ser insuficiente (Adquirir un nuevo equipo MainFrame vs Adquirir computadoras personales)
  • 22. Aspectos clave en el Diseño de los Sistemas Operativos Distribuidos • Tolerancia a fallas. • Transparencia a la ocurrencia (El usuario no debe notar otros usuarios en el sistema). • Transparencia al paralelismo (Asignar los procesadores a las actividades del programa sin el concurso del programador). • Fiabilidad (Fiabilidad global del sistema).
  • 23. Aspectos clave en el Diseño de los Sistemas Operativos Distribuidos • Escalabilidad (Habilitar crecimiento de acuerdo a la demanda). • Evitar Hw centralizado • Evitar Sw centralizado • Ninguna máquina debe tener toda la información de todo el sistema • No existe un reloj común
  • 24. 24 Aspectos Básicos de Diseño de Sistemas Distribuidos • Naming • Comunicación • Estructura software • Asignación de carga • Consistencia
  • 25. 25 Naming • Nombramiento de los diferentes recursos • Nombres deben de tener significados globales • Involucra las siguientes consideraciones: – La elección del tamaño del nombre para cada tipo de recurso, (puede ser finito o potencialmente infinitio) – Nombres deben de ser “mapeados” por identificadores de comunicación • Un nombre depende de su contexto, por lo que para resolver un nombre es necesario el nombre y un contexto
  • 26. 26 Comunicación • Componentes separados lógica y físicamente, por lo que necesitan comunicarse entre ellos para interactuar • Comunicación involucra las operaciones siguientes: – la transferencia de datos – la sincronización de la recepción con la emisión • Dos enfoques en sistemas distribuidos: – paso de mensajes – llamado de procedimiento remoto • Existen dos modelos: – modelo de comunicación par a par – modelo de comunicación grupal
  • 27. 27 Estructura software • Sistemas centralizados son monolíticos: – conjunto abstracciones que se ofrece a las aplicaciones estan reunidas en una sola interfaz • Sistemas distribuidos – programas aplicación pueden accesar diferentes servicios , en el cual cada uno cuenta con su propia interfaz para accesar recursos • Principales niveles – aplicaciones – soporte de lenguaje de programación – sistema operativo – hardware
  • 28. 28 Asignación carga • Dado un proceso, en donde se va a ejecutar • Modelo simple la capacidad de memoria y el desempeño de un procesador de una estación determina el tamaño máximo de tarea que se puede ejecutar • Modelos – modelo de servidor de estación – modelo de piscina de procesadores – modelo de la estación de trabajo – modelo de memoria compartida distribuida
  • 29. 29 Consistencia • Diferentes procesos accesan y actualizan datos concurrentemente • Los cambios no son instantaneos • Un cierto conjunto de cambios debe de aparecer igual a todos los otros procesos que integran el sistema distribuido. • Tipos consistencia: – consistencia de actualización – consistencia de replica – consistencia de caché – consistencia de fallas – consistencia de reloj – consistencia de interfaz de usuario
  • 30. 30 Algoritmos Distribuidos • Definición: abstracción lógica de un sistema distribuido, se habla de un conjunto de procesos y de líneas de comunicación virtuales • Se habla de algoritmos concurrentes ejecutados en diferentes procesadores, • Originalmente los algoritmos eran diseñados para ejecutarse procesadores distribuidos en un área grande • Hoy en día incluye algoritmos usados en redes de área local y multiprocesadores que comparten memoria
  • 31. Atributos que diferencian a los algoritmos distribuidos • Método de comunicación entre procesos – memoria compartida – mensajes punto a punto y/o broadcast – ejecución de procesos remotos (RPC) • El modelo del tiempo – completamente síncronos – completamente asíncronos – parcialmente síncronos
  • 32. • El modelo de fallas – sistema completamente fiable – sistema tolera algunas fallas – fallas bizantinas • Los problemas a los que están dirigidos – problemas de aplicación – problemas de control
  • 33. 33 Algoritmos distribuidos aplicación • Son los algoritmos que definen una aplicación • Representan la interfaz final entre los usuarios y el sistema distribuido • Se apoyan en arquitecturas de software como: – CORBA: Common Object Request Broker Architecture – COM: Component Object Model – EJB: Enterprise JavaBeans
  • 34. 34 Algoritmos distribuidos control • Están por abajo de las aplicaciones • Proporcionan dos tipos de servicios – Proveedor de primitivas • exclusión mutua • envío/recepción mensajes • control de concurrencia • administración de archivos – Observadores de propiedades • interbloqueo • terminación de la ejecución • recolectores de basura
  • 35. 35 Algoritmos de aplicación y control Medio de soporte de comunicaciones A1 CTL1 A2 CTL2 Ai CTLi An CTLn ..... ..... .... . .... . CTLi :control de la i-ésima aplicación Ai: aplicación
  • 36. Características algoritmos distribuidos • Desconocimiento del número de procesos • Desconocimiento de la topología de la red • Entradas independientes en sitios diferentes • Varias programas ejecutandose al mismo tiempo, empezando en tiempos diferentes y operando a diferentes velocidades • No determinismo en el procesador (processor nondeterminism) • Tiempos entrega de mensajes diferentes • Orden entrega de mensajes desconocido • Fallas en la comunicación y en los procesos
  • 37. Aplicaciones Algoritmos Distribuidos • Redes de computadoras • Computadoras multiprocesadores • Procesos cooperantes • Celdas de manufactura • Redes inalámbricas - computación móvil
  • 38. Problemas a Resolver en las WAN’s Confiabilidad del intercambio de datos Selección de rutas de comunicación Control de tráfico Prevención de cuellos de botella Seguridad
  • 39. Problemas Comunes en LAN’s Broadcasting y sincronización Elección Detección de terminación Asignación de recursos Exclusión mutua Deadlock Mantenimiento archivos distribuidos
  • 40. Computadoras Multiprocesadores Computadora que consiste de diferentes procesadores generalmente ubicados dentro de un mismo espacio físico Procesadores homogéneos Pequeña escala geográfica Objetivo principal: mejorar la velocidad del cálculo
  • 41. Los Algoritmos Distribuidos y los Multiprocesadores Implementación sistema envío de mensajes Implementación memoria virtual compartida Balance de carga Tolerancia a fallas
  • 42. Procesos Cooperantes Procesos que interactuan para la solución de un determinado problema, o para proporcionar un servicio Comparten memoria en común Trabajan sobre el mismo procesador Ejemplo: sistemas operativos, (daemons)
  • 43. Algoritmos Distribuidos y los Procesos Cooperantes Exclusión mutua Deadlocks Sincronización Intercambio de información Asignación recursos
  • 44. Celdas de Manufactura Robots conectados entre ellos a través de un medio de comunicación, cada uno desarrollando una actividad en particular, con un objetivo global en común - ensamblaje - control de un determinado sistema
  • 45. Computación Móvil Wireless Local Area Networks o WLAN’s. Ausencia de cables como medio de comunicación. Envío/recepción de ondas electromagnéticas que viajan del emisor al receptor a través del espacio. Computadoras desatadas (untethered o tetherless computer). Computadoras y aplicaciones móviles. Computadoras nómadas.
  • 46. Problemas Resueltos por los Algoritmos Distribuidos • Ruteo • Pagging • Información de la ubicación de la unidad móvil (almacenamiento y actualización) • Consistencia • Seguridad • Transferencias de llamadas
  • 47. Algoritmos ¿distribuidos? • ¿Qué distribuir? • Datos • Control
  • 48. Distribuyendo los datos • La distribución puede tomar diversas formas: • Duplicación • Particionamiento
  • 49. La Duplicación de Datos Existe duplicación de un dato x, si este se encuentra duplicado en n ejemplares x1, x2 .... xn, donde 1,2, .... n son los identificadores de los sitios que participan en el algoritmo distribuido. Asegurar la coherencia mutua de las copias a todo instante las copias físicas xi tengan el mismo valor x x1 = x2 = ...... xi ...... xn = x
  • 50. Ejemplo de duplicación x1 x2 x3 Pierre 500 Sam 700 Juan 900 Pierre 500 Sam 700 Juan 900 Pierre 500 Sam 700 Juan 900
  • 51. Partición de Datos Hablamos de particionamiento de datos cuando, estando accesibles desde todos los sitios, los datos son particionados de tal forma que cada una de las particiones se encuentra sobre un sitio dado Para obtener la totalidad de la información se tiene que consultar a todo el mundo I = (x1 + x2 + ... xi ... + xn)
  • 52. Ejemplo de Partición x1 x2 x3 Pierre 500 Sam 500 Juan 900
  • 53. Distribuyendo el Control • No existe una jerarquía estática • No hay un proceso líder que en permanencia asegure el control • Puede ser necesario un algoritmo de asignación de funciones • Muy a menudo depende del problema que se intenta resolver