Вы находитесь на странице: 1из 14

ADMINISTRACIN DE SISTEMAS DISTRIBUIDOS

Instituto Tecnolgico Superior de Coatzacoalcos


INVESTIGACIN UNIDAD 4: DISEO DE SISTEMAS DISTRIBUIDOS
Alumno: Luis Enrique Izquierdo Velzquez
Carrera: Ingeniera en Sistemas Computacionales
Asignatura: Administracin de sistemas distribuidos
Grado: 9vo. Semestre
Grupo: B

Fecha de entrega: 23-Octubre-2014


Docente: Arturo Ivn Grajales Vzquez

Unidad 4: Diseo de Sistemas Distribuidos

Pgina | 1

ADMINISTRACIN DE SISTEMAS DISTRIBUIDOS

Contenido
INTRODUCCION .................................................................................................................................. 3
4.1 TCNICAS DE ESPECIFICACIN FORMAL......................................................................................... 4
4.1.1 REDES DE PETRI ......................................................................................................................... 4
4.1.2 PROMELA .................................................................................................................................. 6
4.2 MODELO TOLERANTE A FALLOS. ................................................................................................... 7
4.3 SINCRONIZACIN DE RELOJES ....................................................................................................... 8
4.4 COORDINACIN ENTRE PROCESOS DISTRIBUIDOS. ........................................................................ 9
4.4.1 EXCLUSIN MUTUA ................................................................................................................... 9
4.4.2 ALGORITMOS DE ELECCIN ...................................................................................................... 10
4.5 MEMORIA COMPARTIDA DISTRIBUIDA. ...................................................................................... 12
4.6 SISTEMAS DE TIEMPO REAL......................................................................................................... 13
CONCLUSIONES: ............................................................................................................................... 14
BIBLIOGRAFA: ................................................................................................................................. 14

Unidad 4: Diseo de Sistemas Distribuidos

Pgina | 2

ADMINISTRACIN DE SISTEMAS DISTRIBUIDOS

INTRODUCCION
Existen varias definiciones de un sistema distribuido, una de ellas es [9] [19]: ``Un sistema de
computacin distribuido consta de mltiples procesadores autnomos que no comparten
memoria principal, sino que cooperan a travs de una red de comunicaciones que los
interconecta'' (ver figura 4.1).
El trmino sistema operativo distribuido [9] [19] define una capa que hace transparente a los
usuarios la localizacin de los elementos que forman parte del sistema.
Los sistemas centralizados tienen un punto de fallo nico (hay un nico computador en el que
se ejecutan todas las aplicaciones). En los sistemas distribuidos, los elementos que lo
componen estn dispersos y, por lo tanto, tienen probabilidades de fallo independientes. Esta
caracterstica puede utilizarse para preveer la aparicin de fallos parciales y posibilitar su
tratamiento (otro computador puede sustituir al que ha fallado). De esta forma, el sistema
distribuido permite la construccin de sistemas que operan de forma continua.

Figura 4.1: Sistema distribuido

Los sistemas distribuidos necesitan de un soporte de comunicaciones. Este servicio de


comunicaciones debe ser fiable y con un rendimiento aceptable. Adems, en los sistemas
distribuidos aparecen los problemas clsicos de los sistemas concurrentes: recursos
compartidos, sincronizacin, etc.
En este captulo se realiza una aproximacin a estos sistemas, haciendo hincapi en los
mecanismos de comunicacin necesarios para el desarrollo de aplicaciones distribuidas y
justificando el paradigma de grupo como propuesta vlida para la implementacin de
aplicaciones distribuidas. [1]

Unidad 4: Diseo de Sistemas Distribuidos

Pgina | 3

ADMINISTRACIN DE SISTEMAS DISTRIBUIDOS

4.1 Tcnicas de especificacin formal


Las tcnicas de especificacin formal de sistemas concurrentes pueden agruparse en general
en dos niveles; en el primero se incluyen las tcnicas consistentes en el desarrollo de modelos
formales del sistema y en el segundo las tcnicas que realizan la especificacin del sistema
mediante la definicin de propiedades abstractas del mismo. [1]

4.1.1 Redes de Petri


Una Red de Petri es un modelo grfico, formal y abstracto para describir y analizar el flujo de
informacin, las Redes de Petri ayuda a mostrar informacin importante sobre la estructura y el
comportamiento dinmico de los sistemas modelados.
La teora de las Redes de Petri permite la representacin matemtica del sistema a ser
modelado.
Las Redes de Petri son de utilidad en el diseo de sistemas de hardware y software, para
especificacin, simulacin y diseo de diversos problemas de ingeniera.
Las Redes de Petri pueden considerarse como autmatas formales o como generadores de
lenguajes formales y tienen asociacin con la teora de grafos, tambin son excelentes para
representar procesos concurrentes, as como, procesos donde pueden existir restricciones
sobre la concurrencia, precedencia, o frecuencia de esas ocurrencias.
DEFINICION: Una estructura de Red de Petri RP, es una cuarteta RP = (P, T, I, O), donde:
1. P={p1,p2,...,pn} es un conjunto finito de plazas, n1.
2. T={t1,t2,...,tm} es un conjunto finito de transiciones m 1.
3. El conjunto de plazas y el conjunto de transiciones son disyunciones; entonces, RT 0 y
PT = 0
4. I:PT es la funcin de entrada, un mapeo desde las plazas de entrada hacia el conjunto de
transiciones.
5. O:TP es la funcin de salida, un mapeo desde las transiciones hacia el conjunto de plazas
de salida.
La cardinalidad del conjunto P es n, y la cardinalidad del conjunto T es m; n,m N (N en los
nmeros naturales).
Un elemento arbitrario de P es pi, donde i=1,. . .,n, y un elemento arbitrario de T es tj, donde
j=1,...,m.

Unidad 4: Diseo de Sistemas Distribuidos

Pgina | 4

ADMINISTRACIN DE SISTEMAS DISTRIBUIDOS


EJEMPLO 1. Considere la Red de Petri de la figura 1.1 cuya estructura est definida por la
cuarteta RP = (P, T, I, O), donde cada componente est compuesto por:
P = {p1, p2, p3, p4, p5} el conjunto de plazas,
T = {t1, t2, t3,t4} el conjunto de transiciones,
I(t1) = {p1} O(t1) = {p2,p3,p5 },
I(t2) = {p2,p3,p5 } O(t2) = {p5},
I(t3) = {p3} O(t3) = {p4},
I(t4) = {P4} O(t4) = {p2,p3}.

Figura 4.2 Grfica de la red de Petri equivalente de la estructura de


Red de Petri del Ejemplo 1

Grafo de la Red de Petri.


Una representacin grfica de una Red de Petri es de gran utilidad para ilustrar los conceptos
de la teora de las Redes de Petri.
En el grafo de la Red de Petri existen dos tipos de nodos que corresponden a las plazas y
transiciones, representadas por crculos y barras respectivamente (O, |).
Las funciones de entrada y salida se representan por arcos dirigidos desde las plazas a las
transiciones y desde las transiciones a las plazas ( ).
Un arco es dirigido desde una plaza pi hasta una transicin tj si la plaza es una entrada hacia
la transicin.
Similarmente, un arco es dirigido desde una transicin tj hacia una plaza pi si la plaza es una
salida desde la transicin.
Debido a que los arcos tienen direccin, entonces el grafo de la Red de Petri es del tipo Grafo
Dirigido. [1]

Unidad 4: Diseo de Sistemas Distribuidos

Pgina | 5

ADMINISTRACIN DE SISTEMAS DISTRIBUIDOS

4.1.2 Promela
Promela ms que nada se podra decir que es un lenguaje de modelado de verificacin, el
lenguaje permite la creacin dinmica de procesos concurrentes para modelar, por ejemplo, los
sistemas distribuidos.
Cuyo uso previsto es para verificar la lgica de los sistemas paralelos. Dado un programa en
PROMELA, Spin puede verificar el modelo de correccin mediante la realizacin de
simulaciones aleatorias o iterativos de la ejecucin del sistema modelado, o puede generar un
programa C que realiza una verificacin rpida exhaustiva del espacio de estado del sistema.
Durante las simulaciones y verificaciones SPIN cheques por la ausencia de puntos muertos ,
recepciones no especificadas, y el cdigo inejecutables.
El verificador tambin se puede utilizar para demostrar la exactitud de los invariantes del
sistema y se puede encontrar ciclos de ejecucin no de progreso.
Por ltimo, es compatible con la verificacin de las restricciones temporales de tiempo lineal; ya
sea con PROMELA nunca -demanda o formulando directamente las limitaciones en la lgica
temporal. Cada modelo puede ser verificada con la vuelta bajo diferentes tipos de suposiciones
sobre el medio ambiente. Una vez que la correccin de un modelo ha sido establecido con
Spin, este hecho se puede utilizar en la construccin y la verificacin de todos los modelos
posteriores.
Programas PROMELA consisten en procesos, canales de mensajes y variables. Los procesos
son objetos globales que representan las entidades concurrentes del sistema distribuido.
Canales de mensajes y las variables pueden ser declaradas globalmente o localmente dentro
de un proceso. Procesos de especificar el comportamiento de los canales, y las variables
globales definen el entorno en el que los procesos se ejecutan.

Nota: Spin es un paquete software que permite la verificacin formal de sistemas distribuidos.
En si es un sistema genrico de verificacin que soporta el diseo y la verificacin de sistemas
de procesos asncronos. Los modelos de verificacin de Spin estn enfocados en probar la
correccin de las interacciones de los procesos, abstrayndose lo ms posible de secuencia de
computaciones interna.
Este software fue desarrollado por el grupo de mtodos formales y verificacin de los
Laboratorios Bell, dando comienzo su desarrollo en 1980. [2]

Unidad 4: Diseo de Sistemas Distribuidos

Pgina | 6

ADMINISTRACIN DE SISTEMAS DISTRIBUIDOS

4.2 Modelo tolerante a fallos.


El objetivo de disear y construir sistemas distribuidos tolerantes a fallos es garantizar que el
sistema contine funcionando de manera correcta como un todo, incluso en presencia de fallas.
Se dice que un sistema falla cuando no cumple su especificacin. Como las computadoras y
los sistemas distribuidos se utilizan cada vez ms en misiones donde la seguridad es crtica, la
necesidad de soportar las fallas cada vez es mayor.
Un sistema consiste de un conjunto de componentes de hardware y software y son diseados
para proveer un servicio especfico. Un desperfecto de un sistema ocurre cuando el sistema no
desempea estos servicios de manera especificada.
Una posibilidad es que el fallo se deba a daos fsicos en uno o ms componentes de
hardware, con la consiguiente prdida de la informacin almacenada. La implementacin de la
tolerancia a fallos requiere que el sistema de almacenamiento guarde la misma informacin en
ms de un soporte fsico (redundancia), o en un equipo o dispositivo externo a modo de
respaldo.
De esta forma, si se produce alguna falla que pueda ocasionar prdida de datos, el sistema
debe ser capaz de restablecer toda la informacin, recuperando los datos necesarios a partir de
algn medio de respaldo disponible.
Por lo general, el concepto de tolerancia a fallos se identifica con el sistema de
almacenamiento en RAID (Redundant Array of Independent Disks).
Los sistemas RAID (a excepcin de RAID 0) se basan en la tcnica mirroring (en espejo),
que permite la escritura simultnea de los datos en ms de un disco del array.
Los sistemas de almacenamiento con tolerancia a fallos son vitales en ambientes donde se
trabaje con informacin crtica, como en el caso de las entidades financieras, gobiernos,
corporaciones, etc.
El nivel de tolerancia a fallos depender de la tcnica de almacenamiento utilizada y de la
cantidad de veces que la informacin se encuentre replicada. No obstante, la tolerancia frente a
errores nunca es absoluta, puesto que si fallasen todas las rplicas (mirrors) disponibles,
incluyendo la copia original, la informacin quedara incompleta y corrupta, y lo que es peor:
irrecuperable. [3]

Unidad 4: Diseo de Sistemas Distribuidos

Pgina | 7

ADMINISTRACIN DE SISTEMAS DISTRIBUIDOS

4.3 Sincronizacin de relojes


La sincronizacin de relojes en sistemas distribuidos consiste en garantizar que los procesos se
ejecuten en forma cronolgica y a la misma vez respetar el orden de los eventos dentro del
sistema.
En el caso de sistemas de una sola CPU, este problema se resuelve usando semforos, pero
en sistemas de mltiples CPUS la solucin ya implica el uso de otros mtodos o algoritmos,
para garantizar no solo la comunicacin entre procesos sino tambin la forma como estos
cooperan entre s.
Esta sincronizacin, en sistemas distribuidos, se hace ms compleja que en los sistemas
centralizados, puesto que la informacin y el procesamiento se mantienen en diferentes nodos.
La sincronizacin de relojes en sistemas distribuidos nos permite garantizar que los procesos
se ejecutan cronolgicamente y adems respetar el orden de los eventos dentro del sistema.
Las computadoras poseen un circuito para el registro del tiempo conocido como dispositivo
reloj. Es un cronmetro consistente en un cristal de cuarzo de precisin sometido a una tensin
elctrica.
Para lograr esto existen varios mtodos o algoritmos que se programan dentro del sistema
operativo, entre los cuales tenemos:

a. Algoritmo de UTC
Este algoritmo est basado en el uso del tiempo coordenado universal (siglas en ingls,
UTC), el cual es recibido por un equipo dentro del sistema distribuido. Este equipo,
denominado receptor de UTC, recibe a su vez solicitudes peridicas del tiempo del resto
de mquinas del sistema a cada uno de los cuales les enva una respuesta en el menor
plazo posible informando el tiempo UTC solicitado, con lo cual todas las mquinas del
sistema actualicen su hora y se mantenga as sincronizado todo el sistema. El receptor
de UTC recibe el tiempo a travs de diversos medios disponibles, entre los cuales se
menciona las ondas de radio, Internet, entre otros.
Un gran problema en este algoritmo es que el tiempo no puede correr hacia atrs:
o
o
o

El tiempo del receptor UTC no puede ser menor que el tiempo de la mquina que
le solicit el tiempo.
El servidor de UTC debe procesar las solicitudes de tiempo con el concepto de
interrupciones, lo cual incide en el tiempo de atencin.
El intervalo de transmisin de la solicitud y su respuesta debe ser tomado en
cuenta para la sincronizacin. El tiempo de propagacin se suma al tiempo del
servidor para sincronizar al emisor cuando ste recibe la respuesta.

Unidad 4: Diseo de Sistemas Distribuidos

Pgina | 8

ADMINISTRACIN DE SISTEMAS DISTRIBUIDOS

b. Algoritmo de Cristian
Un sistema distribuido basado en el algoritmo de Berkeley no dispone del tiempo
coordenado universal (UTC); en lugar de ello, el sistema maneja su propia hora. Para
realizar la sincronizacin del tiempo en el sistema, tambin existe un servidor de tiempo
que, a diferencia del algoritmo de Cristian, se comporta de manera activa. Este servidor
realiza un muestreo peridico del tiempo que poseen algunas de las mquinas del
sistema, con lo cual calcula un tiempo promedio, el cual es enviado a todas las
mquinas del sistema a fin de sincronizarlo. [4]

4.4 Coordinacin entre procesos distribuidos.


La sincronizacin es la coordinacin de procesos que se ejecutan simultneamente para
completar una tarea, con el fin de obtener un orden de ejecucin correcto y evitar as estados
inesperados. Ejemplo: Comunicacin en los sistemas operativos distribuidos. [5]

4.4.1 Exclusin mutua


El problema de exclusin mutua se basa en el acceso a un nico e indivisible recurso. Con el
auge de los sistemas distribuidos esta problemtica se convirti en una necesidad en diferentes
tipos de aplicaciones. Los algoritmos para soportar exclusin mutua en ambientes distribuidos
se clasifican en: pasajes de mensajes y datos compartidos (memoria compartida distribuida).
El trabajo se basa en algoritmos distribuidos de memoria compartida asincrnica. A partir del
algoritmo de Tournament se desarrolla un protocolo de simple escritura y mltiple lectura.
Obteniendo ventajas en el diseo e implementacin del mismo, ya que es mucho ms costoso
el acceso a variables compartidas de mltiple escritura que a variables compartidas de simple
escritura.
Con frecuencia, los sistemas con varios procesos se programan ms fcil mediante las
regiones crticas. Cuando un proceso debe leer o actualizar ciertas estructuras de datos
compartidas, primero entra a una regin crtica para lograr la exclusin mutua y garantizar que
ningn otro proceso utilice las estructuras de datos al mismo tiempo.
En los sistemas con un procesador, las regiones crticas se protegen mediante semforos,
monitores y construcciones similares. Analizaremos ahora algunos ejemplos de implantacin de
las regiones crticas y la exclusin mutua en los sistemas distribuidos.[5]

Unidad 4: Diseo de Sistemas Distribuidos

Pgina | 9

ADMINISTRACIN DE SISTEMAS DISTRIBUIDOS

4.4.2 Algoritmos de eleccin


Son los algoritmos para la eleccin de un proceso coordinador, iniciador, secuenciador.
El objetivo de un algoritmo de eleccin es garantizar que iniciada una eleccin sta concluya
con el acuerdo de todos los procesos con respecto a la identidad del nuevo coordinador.
Diseado por Garca Molina en el ao 1982, se refiere a que cuando un proceso observa que el
coordinador ya no responde a las solicitudes se inicia una eleccin. Un proceso P realiza una
eleccin de la siguiente manera:
1.- P enva un mensaje ELECCION a los dems procesos con un nmero mayor.
2.- Si nadie responde, P gana la eleccin y de convierte en el coordinador.
3.- si uno de los procesos con un nmero mayor responde, toma el control. El trabajo de P
termina
En cualquier momento, un proceso puede recibir un mensaje de eleccin de uno de sus
compaeros con un nmero menor. Cuando llega dicho mensaje, el receptor enva de regreso
un mensaje OK al emisor para indicar que est vivo y que tomar el control. El receptor realiza
entonces una eleccin, a menos que ya est realizando alguna.
En cierto momento, todos los procesos se rinden, menos uno, el cual se convierte en el nuevo
coordinador. Anuncia su victoria al enviar un mensaje a todos los procesos para indicarles que
a partir de ese momento es el nuevo coordinador. El mensaje se va propagando hacia el ms
grande.
El grupo consta de ocho procesos, numerados del 0 al 7. Antes, el proceso 7 era el
coordinador, pero acaba de fallar. El proceso 4 es el primero en notarlo, pero los que enva el
mensaje ELECCION a todos los procesos mayores que el, 5, 6 y 7. Los procesos 5 y 6
responden con OK. [6]

Unidad 4: Diseo de Sistemas Distribuidos

Pgina | 10

ADMINISTRACIN DE SISTEMAS DISTRIBUIDOS

Al recibir la primera de estas respuestas 4 sabe que su trabajo ha terminado. Sabe que alguno
de estos grandulones tomara el control y se convertir en el coordinador. Solo se sienta y
espera para ver quin es el ganador.

FIGURA 4.3 Algoritmos de eleccin

En la figura se muestra el algoritmo para la eleccin. El proceso 4 hace una eleccin.


Los procesos 5 y 6 responden e indican a 4 que se detenga. Ahora, 5 y 6 hacen una eleccin.
El proceso 6 indica a 5 que se detenga. El proceso 6 gana y se lo informa a todos.[6]

Unidad 4: Diseo de Sistemas Distribuidos

Pgina | 11

ADMINISTRACIN DE SISTEMAS DISTRIBUIDOS

4.5 Memoria compartida distribuida.


Los sistemas de Memoria Compartida Distribuida (MCD), son sistemas que, mediante software,
emulan semntica de memoria compartida sobre hardware que ofrece soporte solo para
comunicacin mediante paso de mensajes.
CONFIGURACIONES MCD:
Un computador paralelo es un conjunto de procesadores capaces de cooperar en la solucin
de un problema.
El problema se divide en partes. Cada parte se compone de un conjunto de instrucciones. Las
instrucciones de cada parte se ejecutan simultneamente en diferentes CPUs.
DE CIRCUITOS BASADOS EN BUS, ANILLO O CONMUTADOR.
Arquitecturas de MCD: Existen varias formas de implantar fsicamente memoria compartida
distribuida, a continuacin se describen cada una de ellas.
Memoria basada en circuitos: Existe una nica rea de memoria y cada micro tiene su propio
bus de datos y direcciones (en caso de no tenerlo se vuelve un esquema centralizado)
MCD basada en bus: En este esquema los micros comparten un bus de datos y direcciones por
lo que es ms barato de implementar, se necesita tener una memoria cach grande y
sumamente rpida.
MCD basada en anillos: Es ms tolerante a fallos, no hay coordinador central y se privilegia el
uso de la memoria ms cercana
MCD basada en conmutador: Varios micros se conectan entre s en forma de bus formando un
grupo, los grupos estn interconectados entre s a travs de un conmutador.[7]

Unidad 4: Diseo de Sistemas Distribuidos

Pgina | 12

ADMINISTRACIN DE SISTEMAS DISTRIBUIDOS

4.6 Sistemas de tiempo real


Se usa un sistema de tiempo real cuando los requisitos de tiempo de la operacin de un
procesador o del flujo de datos son estrictos; por ello, a menudo se utilizan como dispositivos
de control en aplicaciones dedicadas.
Los sensores envan datos al computador, el cual debe analizar estos datos y posiblemente
ajustar controles a fin de modificar las entradas de los sensores. Los sistemas que controlan
experimentos cientficos, los que producen imgenes mdicas, los de control industrial y
algunos sistemas de exhibicin son sistemas de tiempo real.
Esta clasificacin tambin incluye algunos sistemas de inyeccin de combustible para motores
de automviles, controladores de aparatos domsticos y sistemas de armamentos.
Un sistema operativo de tiempo real tiene restricciones de tiempo fijas bien definidas. El
procesamiento debe efectuarse dentro de los intervalos definidos, o el sistema fallar.
Existen dos:

Sistema de tiempo real duro:


Garantiza que las tareas crticas se terminarn a tiempo.
Objetivo:
Requiere que todos los retardos del sistema estn limitados, desde la obtencin de datos
almacenados hasta el tiempo que el sistema operativo tarda en atender cada solicitud que se le
presenta.
Las restricciones de tiempo determinan los recursos que estn disponibles en este tipo de
sistemas.

Sistemas de tiempo real blando:


Es el que tiene una tarea de tiempo real especifica goza de prioridad respecto a otras tareas
conserva esa prioridad hasta que se lleva a cabo.
Al igual que en los sistemas de tiempo real duros, es preciso limitar los retardos del ncleo: no
es posible mantener a una tarea de tiempo real esperando indefinidamente a que el ncleo la
ejecute
El tiempo real puede combinarse con otros tipos de sistemas.[8]

Unidad 4: Diseo de Sistemas Distribuidos

Pgina | 13

ADMINISTRACIN DE SISTEMAS DISTRIBUIDOS

Conclusiones:
El diseo de sistemas distribuidos abarcan una cantidad de aspectos considerables, por lo
cual su desarrollo implica mucha complejidad., tambin es cierto que existen ciertos aspectos
que requieren extremo cuidado al desarrollarse e implantarse como el manejo de fallos, el
control de la concurrencia, etc. Se nota tambin que muchas tecnologas estn en constante
desarrollo y maduracin, lo cual implica un minucioso estudio previo de muchos.

Bibliografa:
[1]http://www.iuma.ulpgc.es/users/lhdez/inves/pfcs/memoria-ivan/node2.html
[2]Redes de Petri BDD.PDF
[3] http://en.wikipedia.org/wiki/Promela
[4]http://sistemasoperativosdistribuidoss.blogspot.mx/2012/05/relojes-fisicos-y-logicos.html
[5]http://sistemasoperativosdistribuidoss.blogspot.mx/2012/05/usos-de-la-sincronizacion.html
[6]http://distribui2.blogspot.mx/2013/06/algoritmo-de-eleccion-grandulon.html
[7] http://sedici.unlp.edu.ar/handle/10915/23309
[8]Sistemas de tiempo real Elaborado por: Encarnacin Hernndez Francisco y Mariano Cruz
Carlos Alberto.ppt

Unidad 4: Diseo de Sistemas Distribuidos

Pgina | 14