Coordinación y sincronización de procesos sistemas operativos

¡Escribe tu texto aquí!1. ¿Por qué debemos tener sincronizados los relojes de los equipos que conforman un sistema


distribuido?
¿Qué mecanismos se utilizan para mantener los relojes sincronizados de estos equipos?

R: Es necesario porque se pueden producir diversos problemas de sincronización y/o actualización,

como la llegada de correos electrónicos donde puede ser que la respuesta llegue antes que una

pregunta o en casos más críticos donde no se guarde una actualización de sistema por que la nueva

versión tiene una hora anterior a otra.

Para mantener la sincronización se usan relojes lógicos o exclusión mutua.

2. ¿Por qué surge el problema de los generales bizantinos? ¿Qué solucionamos en los sistemas

distribuidos al solucionar el problema de los generales bizantinos?

R: El problema comienza cuando el capitán general envía la orden a los tenientes generales. Ya que

el capitán general puede ser traidor (y enviarles ordenes distintas), los tenientes deben

intercambiarse mensajes indicando cuál es la orden que les ha llegado del capitán general. Pero

claro, si hay algún teniente que es traidor, al resto de los tenientes les enviará órdenes

contradictorias para confundirles. Se pretende que, en cualquier caso, todos los generales leales

adopten la misma postura (atacar o retirarse).

La solución que sale de este problema es el de evitar ordenes erróneas de los procesadores, debido

a comportamientos malintencionados por fallos que enviarían mensajes con información errónea

por la red, generando un mal acuerdo entre los procesadores correctos.

3. ¿Cómo se maneja el problema de la sección critica en los sistemas distribuidos? De dos ejemplos.

R: Es importante el manejo de la sección crítica donde solo 1 proceso puede entrar a la vez, para

manejar este problema en sistemas distribuidos se elige un coordinador al cual se le debe consultar

si hay un proceso ocupando la sección crítica, de no ser así dicho proceso ocupará la sección crítica y

el coordinador registrará que la sección crítica está siendo usada y que proceso lo está usando. Si

otro proceso intentase hacer uso de dicha sección no podrá porque al consultar al administrador,

éste le indicará que debe esperar hasta que esté libre.

4. ¿En qué se diferencian los algoritmos de elección de los algoritmos de consenso en relación a las

soluciones propuestas para sincronización y manejo de exclusión mutua?

R: en que el algoritmo de elección se basa en elegir a un proceso coordinador cuando un nodo cae

mientras que el algoritmo de consenso están todo el tiempo identificando quien dice la verdad con

respecto a la hora real.

5. Algunas aplicaciones distribuidas necesitan estar sincronizados en el tiempo a través de los

distintos nodos que la conforman. Dentro de los mecanismos de sincronización nos encontramos

con métodos para la sincronización de relojes físicos, como el método de Cristian, y también nos

encontramos con otros métodos para la sincronización de los relojes lógicos como el método de

Lamport. De un ejemplo de caso donde es necesario la sincronización a través de relojes físicos

porque la alternativa de sincronización de relojes lógicos no es aplicable y viceversa.

R: Cuando utilizamos una base de tiempo Universal, se dice que utilizamos Relojes Físicos. Son útiles

en aplicaciones que se manejan eventos secuenciados a alta velocidad, de tal suerte que no hay

recursos disponibles para organizar la sincronización; En ciertos sistemas (por ejemplo, los sistemas

de tiempo real), es importante la hora real del reloj.
Para estos sistemas se necesitan relojes físicos

8 seg transcurridos

externos. Por razones de eficiencia y redundancia, por lo general son recomendables varios relojes

físicos, lo cual implica dos problemas:

1.- ¿Cómo sincronizamos los relojes con la hora exacta del mundo real?

2.- ¿Cómo sincronizamos los relojes entre sí?

Los relojes físicos deben ser iguales (estar sincronizados), no deben desviarse del tiempo real más

allá de cierta magnitud. Debido a la distorsión del tiempo y las derivas en los relojes de los distintos

CPU's, en ciertos sistemas es importante la hora real del reloj, por lo que se precisan relojes físicos

externos (más de uno) y se deben sincronizar con los relojes del mundo real.

6. Con respecto a la coordinación y acuerdo de los procesos distribuidos, se vieron en clase los

problemas de la exclusión mutua distribuida; de cómo elegir a un proceso, dentro de un conjunto,

para que desarrolle un papel especial, por ejemplo el de coordinador y de cómo llegar a un

consenso. Los algoritmos propuestos se basan fundamentalmente en el paso de mensajes entre

ellos. ¿Cómo afecta este paso de mensajes en la eficiencia de los algoritmos estudiados?

R: con el algoritmo de Cristian afecta mucho la sincronización porque si son demasiado los equipos a

sincronizar esto puede producir un bajo rendimiento en el funcionamiento de los procesos, por otro

lado el algoritmo de… no afecta mucho en le eficiencia pues este algoritmo no se preocupa por que

todos los equipos tengan la misma hora, sino que solo los procesos que interactúan y que el mensaje

enviado sea consistente con la hora que tiene el equipo actual.

7. El reloj de un computador A tiene la hora de 10:27:50 (hh:mm:ss) y se descubre que esta

adelantado por 4 segundos. ¿Por qué no es recomendable ajustar este reloj atrásándolo a la hora

correcta? Muestre numéricamente como debiera de ser ajustado este reloj de modo que su hora sea

correcta después de transcurridos 8 segundos. Considere que 1 segundo UTC está compuesto por

100 tics de reloj del computador.

R:

Comp. A 10:27:50 ->Adelantado 4 seg

8 seg para corregir error

1 seg = 100 tics Comp. A

Hora Real 10:27:46 10:27:50

Hora Corrección 10:27:54 Corregida 10:27:54

1 seg = 100 tics

4 seg = 800 tics

1 seg = x tics -> 200 tics

Para arreglar la hora, se aconseja a ralentizar el reloj del Comp. A, aumentando los tics en referencia

al valor que tiene para 1 segundo.

El retrasar el reloj nunca debe hacerse, pues se puede confundir a las aplicaciones. Pensemos, como

ejemplo del comando make, si se atrasase el reloj local, podría suceder que en un mismo equipo, la

hora de compilación de un programa fuera anterior a la hora de edición, lo cual confundiría al

comando make.

8. Un cliente intenta sincronizar su computador con un servidor de hora. Para ello, registra los

tiempos de ida y vuelta como también la hora devuelta por el servidor en una tabla. ¿Cuál de estos

registros debiera de utilizarse para sintonizar el reloj? ¿A qué hora debiera de colocarles el

computador del cliente? Estimar la precisión de la sintonización con respecto al reloj del servidor. Si

se sabe que el tiempo entre enviar y recibir un mensaje en el sistema implicado es de al menos 8 ms,

¿cambiaría su respuesta?

Ida y Vuelta (ms) Tiempo (hh:mm:ss)

22 10:54:23,674

25 10:54:25,450

20 10:54:28,342

R: a) Se elige el de menor tiempo de respuesta, ya que su margen de error es menor.

b) 20 ms = 0,02 seg / 2 <- Ida y Vuelta Relativa

Entonces, 10:54:28,342 + 0,01 seg

c) La precisión sería de +- 0,01 seg = 10 ms

d) En ese caso, si el enviar y recibir demora 8 ms (tiempo de proceso), entonces el valor del ida y

vuelta será de 12 ms, el cual daría con un valor de precisión de +- 6 ms, y como es menor al

calculado anteriormente, la respuesta se mantiene, y solamente variaría el valor de la precisión.

9. ¿Qué algoritmo utilizarías para sincronizar los ordenadores de un sistema distribuido que cuenta

con un servidor que dispone de una hora UTC? Comenta las líneas básicas del funcionamiento de

este algoritmo.

R: El algoritmo de Cristian: Periódicamente, cada ordenador cliente envía un mensaje al servidor de

tiempo preguntándole la hora actual. El servidor de tiempo responde con un mensaje que contiene

la hora actual. Cuando el cliente recibe el mensaje, debe actualizar su reloj. Si su hora local es

posterior al tiempo del servidor debe ralentizar la velocidad del reloj hasta ajustarse a la hora UTC (si

a cada interrupción del reloj normalmente se añaden 10 ms. Al contador de tiempo, se empiezan a

añadir solamente 9). Si su hora es anterior a la hora recibida, directamente actualiza su reloj, o bien

lo acelera hasta igualarlo a la hora UTC.

10. En algunos sistemas distribuidos no se dispone de un servidor de tiempo que esté sincronizado

con una hora UTC. ¿Qué algoritmo sincronización horaria se utiliza en estos casos? ¿Qué hace para

establecer la hora de referencia?

R: El algoritmo de Berkeley está pensado para entornos en los que no se dispone de ningún receptor

de tiempo UTC, y lo único que se pretende es que todos los ordenadores se mantengan

sincronizados con una misma hora.

En este algoritmo, entre todos los equipos del sistema distribuido eligen un coordinador para que

actúe como maestro o servidor de tiempo. Cuando los esclavos responden cada uno con su hora

local, el maestro estima los retardos de propagación de los mensajes con cada uno de los esclavos y

calcula un tiempo promedio con las horas recibidas y la suya propia.

Luego, envía a cada uno el desfase que tiene con la hora promedio calculada. Recibido este desfase,

cada equipo actualiza su reloj adelantándolo directamente, o ralentizándolo temporalmente en caso

de ir adelantado.

11. Una de las formas más simples que hay de gestionar la exclusión mutua en un sistema

distribuido es mediante el “algoritmo centralizado”, aunque también se dispone de un algoritmo

distribuido denominado “algoritmo por marcas de tiempo”. ¿Cuál de los dos te parece más

apropiado? ¿Por qué?

R: Ambos algoritmos funcionan de manera similar: hacen una solicitud para el ingreso de la regíón

crítica, por medio de un coordinador, hacia los procesos. Si este proceso quiere entrar, se envía la

orden de ingreso. Si llega un proceso mientras otro está en la RC, se deniega.

La diferencia se genera en que el centralizado el coordinador recibe solicitudes, mientras que el

distribuido por marcas de tiempo envía mensajes a los procesos para el ingreso a la RC.

Ante estos casos, la mejor opción sería el centralizado, ya que aunque se puedan generar problemas

de respuesta o de ingreso a la RC, si uno de los procesos se cae, la de Marca de Tiempo puede causar

este mismo problema, pero n veces debido a la cantidad de nodos que podría manejar este método.

12. Sean dos equipos con relojes físicos que presentan una velocidad de deriva de 1µs y de −1µs

respectivamente. ¿Cada cuánto tiempo, como máximo, deberían sincronizarse estos equipos para

que no difieran más de 1 ms en su hora?

R: Debido a que un equipo difiere en -1µs, y el otro difiere en 1µs, el total de la diferencia sería de

2µs, en el momento que transcurra 1 seg.

Para que 2µs se vuelvan 1ms de diferencia, se hace una regla de 3

1 seg = 2µs = 0,000002 seg

X seg = 1ms = 0,001 seg => 500 seg -> 8:20 minutos. Por lo tanto, la sincronización debe ser a lo más

a los 8 minutos.

13. ¿Cuál es el objetivo que persigue el consenso distribuido? ¿Se puede considerar que los

algoritmos de sincronización de relojes físicos se basan en el consenso distribuido?

R: El objetivo es el de cómo conseguir que un conjunto de procesos (en distintos nodos) se pongan

de acuerdo en el valor de un cierto dato.

Mediante este significado, los relojes físicos al querer ser sincronizados, están siguiendo el mismo

objetivo del consenso distribuido, ya que quieren llegar al mismo valor de la hora para un conjunto

de procesos relacionados.

14. En el algoritmo Bully, un proceso que se está recuperando de un fallo comienza un proceso de

elección y se convierte en el nuevo coordinador si tiene un identificador mayor que el actual

ocupante del cargo. ¿Es necesaria esta carácterística en el algoritmo?

R: Por supuesto que es necesaria ya que ésta funcionalidad le da sentido al algoritmo, el más fuerte

es quien lleva el mando en éste algoritmo, por lo que si un proceso se recupera de un fallo y éste es

el más fuerte será él quien se convierta en el coordinador.

15. ¿Cuáles son las ventajas y desventajas de crear una aplicación cliente servidor utilizando RPC,

RMI y GWT?

RPC RMI GWT

Ventajas Rápidos tiempos de

ejecución

Facilidad para

programar aplicaciones

graficas

Permite depurar código

web

Desventajas No es muy interactivo

gráficamente

Bajos tiempos de

ejecución

Solo sirve para entornos

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.