Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
OPERATIVOS
Sincronizacin, Concurrencia y
Transacciones
Objetivos
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.
Se basa en la idea bsica que si una mquina falla, existe otra que pueda encargarse de su
trabajo.
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.
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
Componentes centralizados: Como por ejemplo un servidor de correo para todos los
usuarios.
Ninguna mquina tiene informacin completa acerca del estado del sistema.
Las mquinas slo toman decisiones solo con base en la informacin local.
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
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:
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
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.
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
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
Por razones de eficiencia y redundancia, por lo general es recomendable varios relojes fisicos, lo
cual implica dos problemas:
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.
El servidor responde lo ms rpido posible con un mensaje con el tiempo actual C_utc.
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 :
Segn el promedio de los tiempos obtenidos, indicar a cada maquina si debe aumentar o
disminuir la velocidad de reloj.
Tiempos - Estados
Algoritmo de Cristian
Algoritmo de Berkeley
Protocolo de Tiempo de Red
Re-Sincronizaciones permitidas
Modo Multicast
Modo Simtrico
Ordenamiento de eventos
Uso de los Relojes Lgicos
Ordenamiento de eventos
Multicast Casual
Exclusin Mutua
Algoritmo Centralizado:
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
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 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
Si entra a la regin crtica, realizar todo el trabajo necesario y cuando salga de la regin crtica
pasara la ficha.
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.
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
Se supone que los procesadores tienen un orden, fisico o logico de tal manera que cada
procesador conoce a su sucesor.
Prevencin - Hacer que los bloqueos sean imposibles desde un punto de vista estructural
Deteccin
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.
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.