Vous êtes sur la page 1sur 33

SISTEMAS

OPERATIVOS

Sincronizacin, Concurrencia y
Transacciones
Objetivos

Explicar el paradigma distribuido

Explicar un algoritmo distribuido simple

Determinar cundo usar los algoritmos de consenso o de eleccin.


Caractersticas de un Sistema Distribuido

Transparencia

Flexibilidad

Eficacia

Escalabilidad
Transparencia

El Sistema Operativo Distribuido debe ser capaz controlar tanto los usuarios como los
programadores vean el ncleo del sistema distribuido como un nico procesador.

Tipos:

Transparencia de Localizacin

Transparencia de Migracin

Transparencia de Rplica

Transparencia de Concurrencia

Transparencia de Paralelismo
Flexibilidad

El Sistema Operativo Distribuido debe ser capaz de soportar cambios, actualizaciones y mejoras
que le permitan ir desarrollando al mismo tiempo que la evolucin tecnolgica.

Todo esto es debido al nuevo modelo micro-ncleo, comparado a su antecesor ncleo


monoltico.
Confiabilidad

Se basa en la idea bsica que si una mquina falla, existe otra que pueda encargarse de su
trabajo.

Formas de mejorar la confiabilidad:

El diseo no debe exigir el funcionamiento simultneo de un nmero sustancial de


componentes crticos.

El diseo debe ser redundante, es decir que siempre haya un duplicado de piezas clave en
el hardware y software en caso de fallo.

Los datos en el sistema no deben perderse ni mezclarse de alguna manera. Si los archivos
se almacenan de forma redundante en varios servidores, estos deben de ser consistentes.

Asegurar una buena seguridad.


Desempeo

El principal problema con respecto al desempeo, es la comunicacin que se de entre estos


componentes.

Para optimizar el desempeo se suele:

Reducir el nmero de mensajes entre componentes, lo cual requiere de un procesamiento en


paralelo con diferentes procesadores. Para ello debemos tener en cuenta el tamao de grano
de todos lo clculos:

Paralelismo de grano fino: Trabajo que implica un gran nmero de clculos pequeos y
que interactan en gran medida con otros componentes.

Paralelismo de grano grueso: Trabajo que implica grandes clculos y bajas tasas de
interaccin con otros componentes
Escalabilidad

Principio que gua a enormes sistemas distribuidos es evitar:

Componentes centralizados: Como por ejemplo un servidor de correo para todos los
usuarios.

Tablas centralizadas: Un directorio telefnico en lnea(Gran capacidad de memoria y no


tolerante a fallas).

Algoritmos centralizados: Realizacin de un ruteo con base en la informacin completa.

Ninguna mquina tiene informacin completa acerca del estado del sistema.

Las mquinas slo toman decisiones solo con base en la informacin local.

La falla de una mquina no arruina el algoritmo.


Sincronizacin de Sistemas Distribuidos

Se refiere a la cooperacin y sincronizacin que entre los componentes. Como por ejemplo
implementar las regiones crticas o asignar recursos a un sistema distribuido.

En los sistemas con un CPU los problemas relativos a las regiones crticas, la exclusin mutua y
la sincronizacin se resuelven en general mediantes los mtodos como el semforo o monitores.
Estos mtodos ya no son factibles cuando se trabaja con computadores distintos.
Sincronizacin de Procesos

Labores distribuidas

Informacin local es en la que se basar cualquier decisin

Evitar puntos nicos de fallo

No hay reloj comn

Controlar correctamente el tiempo y los estados globales

Control de las exclusiones mutuas

Fijar cuidadosamente los algoritmos de eleccin

Control de las transacciones


Sincronizacin de Relojes

Existen programas como make en UNIX, que dependen crucialmente del tiempo de
modificacin.

Funcionamiento de Make:

Es un programa que se utiliza para compilar mas rapido proyectos, el cual al ejecutarse make en
la lnea de comando lo que hace es revisar todos los archivos y acta dependiendo del tiempo de
modificacin de estos. Por ejemplo:

Se ejecuta make y encuentra el archivo input.c que se modific a la hora 2151 y el


correspondiente archivo objeto input.o que tiene 2150, se puede entender que es necesario
compilar input.c para tener el archivo objeto actualizado.
Relojes

Relojes Lgicos: Se refiere en un sistema distribuido que los componentes que interactan
entre s, tengas relojes igualmente sincronizados. No necesariamente deben estar sincronizados
con el tiempo real.

Relojes Fsicos: Se refiere en un sistema distribuido que los componentes que interactan entre
s, tengan relojes igualmente sincronizados y adems se aproximen con cierta exactitud al
tiempo real.
Relojes Lgicos y Fsicos

Es un temporizador que hace uso de un contador y un registro mantenedor. Su funcionamiento


depende de las oscilaciones de un cristal de cuarzo, el cual disminuye el valor del contador hasta
llegar a 0 y es all donde se activa una interrupcin ( marca de reloj ), donde se vuelve a cargar
mediante el registro mantenedor.

Cuando se tiene multiples computadoras es imposible asegurar que estos cristales oscilan a la
misma frecuencia, esta diferencia en los valores de los relojes se le conoce como distorsin del
reloj.
Relojes Lgicos y Fsicos

Lamport seal que la sincronizacin de relojes no tiene que ser absoluta. Si dos procesadores
no interactan, no es necesario que sus relojes estn sincronizados, puesto que la carencia de
sincronizacin no sera observable y por lo tanto no podra provocar problemas.

Lo ms importante por lo general no es que todos los procesos concuerden de manera exacta en
la hora, sino que coincidan en el orden en que ocurren los eventos.

No es esencial que la hora los componentes coincida con el tiempo real, es por ello que a estos
relojes es convenientes llamarles relojes lgicos.

En caso que exista una restriccin que los relojes a parte de que sean iguales, tambin se
aproximen al tiempo real. Se les conoce como relojes fsicos.
Sincronizar Relojes Lgicos

Lamport defini la relacin: ocurri antes de. De tal manera que si tenemos la expresion a -> b
se lee : a ocurri antes de b.

Esta relacin se puede observar de 2 maneras:

Si a y b son eventos en el mismo proceso y a ocurre antes que b, entonces a -> b es


verdadero.

Si a es el evento del envo del mensaje por un proceso y b es el evento de la recepcin del
mensaje por otro proceso, entonces a -> b tambin es verdadero.
Sincronizacin de Relojes Lgicos

La relacion ocurre antes de cumple las siguientes propiedades:

Transitiva: Si a -> b y b -> c => a -> c

Nota : Si x , y son eventos que ocurren en procesadores que no intercambian mensajes


=> x -> y es falso ^ y -> x es falso. Entonces se dice que estos eventos son concurrentes.

Sea C : una funcin que permite asociar un valor de tiempo a un evento en que todos los
procesadores estn de acuerdos. Entonces : Si a -> b => C( a ) < C( b )
Sincronizacin de Relojes Lgicos

Aqu se puede ver como


los eventos de enviar y
recibir mensajes
acuerdan el tiempo de
llegada aumentando el
contador en una unidad si
es necesario.
Todos los procesadores
estn de acuerdo que
evento ocurri antes que
otro.
Sincronizacin de Relojes Fsicos

Por razones de eficiencia y redundancia, por lo general es recomendable varios relojes fisicos, lo
cual implica dos problemas:

Sincronizar los relojes con el mundo real

Sincronizar los relojes entre s


Algoritmos de Sincronizacin de Relojes

Algoritmo de Cristian: Una de las mquinas tiene un receptor WWV y el objetivo es hacer que
todas las mquinas se sincronicen. A la mquina con el receptor WWV se le llamara servidor de
tiempo. El algoritmo consiste:

Las mquinas cliente envan un mensaje al Servidor para solicitar el tiempo actual, estas
solicitudes son enviadas cada cierto sigma/2 phi segundos.

sigma : Diferencia mxima entre dos computadores

phi : tasa mxima de alejamiento

El servidor responde lo ms rpido posible con un mensaje con el tiempo actual C_utc.

Tiempo de transmisin del mensaje : ( T1 - T0 )/2

Tiempo de propagar el mensaje : (T1 - T0 - I )/2


Algoritmo de Sincronizacin de Relojes

Algoritmo de Berkeley: A diferencia del algoritmo de Cristian, el cual su servidor era pasivo, el
servidor en el algoritmo de Berkeley es activo.

El algoritmo consiste :

Peridicamente realizar un muestreo de todas las mquinas para preguntarles el tiempo.

Segn el promedio de los tiempos obtenidos, indicar a cada maquina si debe aumentar o
disminuir la velocidad de reloj.
Tiempos - Estados

Sincronizar relojes para aplicaciones de tiempo real

Ordenacin natural de eventos distribuidos

Uso del UTC


Algoritmos

Algoritmo de Cristian

Algoritmo de Berkeley
Protocolo de Tiempo de Red

Sincronizacin de usuarios a la Internet con UTC

Manejo de fallos de conexin

Re-Sincronizaciones permitidas

Proteccin ante la prdida de conexin con el servicio de tiempo


Protocolo de Tiempo de Red

Modo Multicast

Modo de llamada a procedimiento

Modo Simtrico

Mensaje entre servidores es con datagramas UDP


Relojes Lgicos

Ordenamiento de eventos
Uso de los Relojes Lgicos

Envo de mensajes peridicamente

Ordenamiento de eventos

Deteccin de violaciones de causalidad

Multicast Casual
Exclusin Mutua

Algoritmo Centralizado:

Se elige a un procesador como coordinador, el cual recibir solicitudes de otros


procesadores indicando a qu regin crtica entrar y pidiendo permiso.

Si la regin crtica solicitada est vaco, entonces el coordinador le responde que tiene
permiso a la regin crtica, en caso contrario suele irse a una pila de espera hasta que la
regin crtica se encuentre disponible.

Este algoritmo se caracteriza por ser muy simple, pero tiene sus limitaciones. El
coordinador es un punto de falla, por lo que si se descompone, todo el sistema se puede
venir abajo.
Exclusin Mutua

Algoritmo Distribuido ( Ricart y Agrawala ) :

Un procesador desea entrar a una regin crtica, entonces construye un mensaje con el
nombre de la regin, su nmero de procesador y la hora actual; el cual es enviado a todos
los dems procesadores( contndose as mismo ).

La respuesta de los procesadores depende del estado con respecto a la regin crtica.

Si el receptor no est en la regin crtica y no desea entrar, enva un mensaje de regreso Ok al


emisor.

Si el receptor ya est en la regin crtica, no responde, sino que forma la solicitud en la fila.

Si el receptor desea entrar a la regin crtica, pero no lo ha logrado todava, compara la marca de
tiempo en el mensaje recibido con la marca contenida en el mensaje que envi a cada uno. La
menor marca gana. Si su mensaje recibido es menor entonces responde con Ok. En caso
contrario forma una solicitud en la fila y no enva nada.
Exclusin Mutua

Algoritmo de anillo de fichas:

Se construye un anillo lgico y a cada proceso se le asigna una posicin en el anillo.

Al proceso 0 se le da una ficha, el cual es transferida de un proceso k a un proceso k+1.

Cuando un proceso obtiene la ficha de su vecino, dependiendo de lo que desee dicho


proceso decidir entrar o no a la regin crtica.

Si entra a la regin crtica, realizar todo el trabajo necesario y cuando salga de la regin crtica
pasara la ficha.

En caso que dicho procesador no est interesado, pasar la ficha.

La desventaja de este algoritmo es la prdida de una ficha junto a procesador cado, y la


deteccin de esta ficha prdida es muy difcil.
Algoritmos de Eleccin

Tal y como pudimos ver en los algoritmos anteriores de exclusin Mutua, la ms eficaz y
confiable result ser el algoritmo centralizado, el cual haca uso de un procesador
coordinador. Por ello para la eleccin de este procesador coordinador tenemos los siguientes
algoritmos.

El algoritmo del granduln: En caso que se presenten procesadores idnticos, a estos se


les asigna un nmero por lo cual cada procesador tiene un nico nmero.

Primero un procesador se percata que el procesador coordinador est fallando, por lo cual manda
un mensaje de ELECCIN a los procesadores de mayor nmero que el actual. Este mensaje
tambin se da si un procesador se activa.

Si ningn otro procesador responde, entonces el procesador que mand el mensaje se hace
coordinador.

Si uno de los procesos con un nmero mayor responde, entonces toma el control.
Algoritmo de Eleccin

Algoritmo del anillo:

Se supone que los procesadores tienen un orden, fisico o logico de tal manera que cada
procesador conoce a su sucesor.

Algn procesador se percata que el procesador coordinador no funciona, entonces crea


un mensaje de ELECCIN con su propio nmero de proceso y la enva a su sucesor, si
ste se encuentra inactivo entonces pasa al sucesor de su sucesor as hasta encontrar
un proceso en ejecucin.

El procesador en ejecucin deja su numero de proceso en el mensaje de ELECCIN y la


enva a su sucesor.

Esto se ejecuta hasta llegar al procesador que realiz la eleccin.

Se escoje como coordinador aquel procesador de mayor numero, y se crea un mensaje


Bloqueos en Sistemas Distribuidos

Existen dos tipo de bloqueos en Sistemas Distribuidos:

Bloqueo de Comunicacin: Comnmente se da cuando un proceso A intenta enviar un


mensaje al proceso B, el proceso B intenta enviar un mensaje al proceso C y el proceso C
intenta enviar un mensaje al proceso A y no se dispone de buffers.

Bloqueo de Recursos: Principalmente se da cuando procesos se pelean por el acceso


exclusivo a los dispositivos de E/S, archivos, cerraduras u otros tipos de recursos.

Estrategias para el manejo de Bloqueos:

Algoritmo del Avestruz - Ignorar el problema

Deteccin - Permitir que los bloqueos ocurran, detectarlos y intentar recuperarse de


ellos

Prevencin - Hacer que los bloqueos sean imposibles desde un punto de vista estructural
Deteccin

Deteccin Distribuida de Bloqueos:

Cuando se detecta un bloqueos, la manera de cmo afrontar este hecho es abortado uno
o ms transacciones( diseadas para ser abortadas ). Al realizar dicha accin, el sistema
operativo restaura el estado anterior antes de iniciar dicha transaccin, punto en el cual
se llama de nuevo a dicha transaccin.

Deteccin Centralizada de Bloqueos:

El coordinador mantiene la grafica de recursos del sistema. Unin de todas las grficas
individuales. Cuando el coordinador detecta un ciclo, entonces este lo elimina uno de
estos procesos con el fin de romper el bloqueo.