Sincronizacion de Eventos

SINCRONIZACION DE EVENTOS En sistemas distribuidos la sincronización es el uso correcto de la capa de protocolo petición

Views 67 Downloads 0 File size 546KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

SINCRONIZACION DE EVENTOS En sistemas distribuidos la sincronización es el uso correcto de la capa de protocolo petición respuesta donde por medio de esta sincronización se busca que las funciones ligadas a esta capa se desarrollen de una forma cronografía para que así se pueda presentar un orden a la hora de ejecutar cada una de estas sentencias y así contar con la comprensión de cada una de las sentencias. Como su nombre bien lo dice la capa de protocolo petición respuesta es la capa que busca que se lleve a cabo un intercambio constante de mensajes. Para entenderlo de otra forma se cuenta con el ejemplo de una llamada telefónica la cual dice: Se cuenta con dos personas hablando al teléfono donde para que exista un completo entendimiento de lo que se está hablando debe existir el rol de emisor y receptor. Ya que si existen los dos roles de emisor no existirá una compresión por ningún lado, es necesario que exista tanto un emisor como alguien el cual este prestando atención a lo que se está dialogando (receptor) al estar completamente enviado el mensaje el receptor manejara la información otorgada y así presentara una respuesta la cual hará que se presente un cambio de roles. 

Sincronización de relojes físicos. Como bien se sabe el tiempo no es una cosa que se pueda comprender de diversas formas se sabe que el tiempo esté dividió en horas minutos segundo etc. Simplemente se sabe que el tiempo no es ambiguo. Para que exista una perfecta sincronización se debe contar con una gran precisión en el tiempo ya que hay diversos procesos los cuales necesiten esta precisión. Para que exista esta precisión en los distintos softwares existentes encontramos los relojes físicos los cuales son un cristal de cuarzo con el cual cuentan todos los ordenadores para así darles seguimiento al tiempo. Ya que cada ordenador cuenta con un reloj diferente es casi imposible que todos los relojes de los ordenadores trabajen con precisión, con lo cual se presenta una desincronización con la cantidad de n ordenadores que se encuentran conectados, lo cual es conocido como distorsión de reloj. Esta distorsión puede hacer que los diversos programas que estén esperando la hora asociada con una archivo, objeto, proceso o mensaje sea correcto e independiente de la maquina en la que se generaron puedan fallar. Para la solución de esta distorsión de reloj se han desarrollado diversos algoritmos los cuales ayudan a que exista una sincronización entre los distintos ordenadores. o o o

Algoritmo Berkeley Algoritmo de Lamport Algoritmo de Cristian

EVENTOS BLOQUEANTES Un evento bloqueante es el que hace que un proceso que está en ejecución pase a un estado de bloqueo para que así el otro proceso con el que se está trabajando de su respuesta y al este dar su repuesta tanto al pasar a estado de bloqueo hace que el otro proceso pase a modo de ejecución

Podemos tener en cuenta el ejemplo de una llamada por teléfono donde cuando una persona da un mensaje la otra está esperando a recibirlo y cuando llega este mensaje la otra persona se queda en silencio esperando la respuesta de la otra persona POLLING Esta técnica es también conocida como muestreo y cumple la función de la sincronización entre dos procesos que ejecutan un evento en concreto de una forma recurrente, de modo que si desea que este proceso termine necesita que el proceso de la respuesta esperada Esta técnica también sirve como un evento bloqueante, pero en vez de que el evento se quede bloqueado el programador puede incluir diversas instrucciones las cuales se puedan ejecutar mientras este recibe una respuesta. Un ejemplo claro que podemos encontrar en la vida real es cuando dos personas cuadran una salida, pero deben saber que está haciendo cada una a qué horas salen y en donde se ven etc. Básicamente deben estar sincronizados, supongamos que cada persona está por terminar su jornada de trabajo en lo cual la persona A llama a la persona B para ver si su jornada ya termino en lo cual la persona B no contesta así que la persona A desea esperar un rato para volver a llamar y se dispone a realizar diversas tareas (las cuales serían las instrucciones que el programador a incluido) y después vuelve a llamar a B hasta que este le responda. CALLBACK Esta técnica consiste en que un proceso A le indica a otro B como poder ejecutarlo a lo que el proceso A le pide diversos requisitos para así ejecutarlo, así que cuando el proceso B requiera del proceso A este debe acumular los requisitos y así poder ejecutar diversas tareas que el proceso a contenga. Esta técnica se realizado con el motivo de que los procesos no se queden bloqueados ya que cuando el proceso A le pide diversos requisitos al proceso B mientras este los acumule el proceso A pueda llevar tareas sin interrupciones. Un ejemplo comparado con el anterior es cuando la persona A le deja un mensaje de texto a la persona B donde le dice cómo y cuándo comunicarse con él. Donde la persona B al llegar la hora marca a el número que le otorgo A para así estos comunicarse (interconectarse). SUPUESTOS Para contar con una comprensión total de los supuestos primero debemos tener en cuenta dos conceptos Funciones sincrónicas: estas son funciones que no conllevan eventos bloqueantes. Funciones asincrónicas: estas son funciones que conllevan eventos bloqueantes lo cual permite que las tareas que se están ejecutando sigan su curso sin ninguna interrupción. Ya que para la comunicación se cuenta con este tipo de funciones se deben evaluar los 4 tipos de sincronización posibles los cuales son conocidos como supuestos, estos siempre contaran con dos posibles escenarios donde el emisor puede realizara el envío de petición antes de la recepción o que este se realice después.

TIPO ENVIO Sincrónico Asincrónico Sincrónico Asincrónico

TIPO RECEPCIÓN Sincrónica Sincrónica Asincrónica Asincrónica

NUMERO SUPUESTO 1 2 3 4

SUPUESTO 1 Este supuesto está compuesto de un envió síncrono lo que significa que el emisor el cual es el que lo ha ejecutado ha sido bloqueado su desbloqueo se ejecutara cuando por parte de protocolo petición – respuesta confirme que él envió que se ha ejecutado ha sido recibido con éxito, por otra parte, se cuenta con una recepción síncrona la cual bloquea al receptor hasta que llegue el mensaje enviado.

Ya que se para los supuestos se contó con 2 diferentes escenarios como primer escenario contamos con el siguiente: a) por parte de este escenario la ejecución del envió se realizó antes de que la recepción se ejecutara, al encontrarse en esta situación si el receptor no se encuentra activo se necesita que el envío sea almacenado en algún mecanismo de almacenamiento temporal ya que si este mensaje se pierde o no se guarda ocurrirán problemas con la sincronización, al no haber un mecanismo de almacenamiento por parte del protocolo de petición respuesta no existirá una confirmación de envío por lo tanto el anfitrión quedara bloqueado y con esto al ejecutarse la recepción al no existir el envío el receptor no tendrá con que trabajar y también se quedara bloqueado

b) por parte del 2 evento encontramos que el receptor ya ha sido ejecutado con lo cual no existe la necesidad de contar con un espacio de almacenamiento temporal ya que al estar ejecutado la recepción ya contara con su propio almacenaje, es de tener en cuenta que al estar la recepción ejecutada esta estará bloqueado hasta que llegue la confirmación de envió por pare del protocolo para que así la recepción pueda trabajar con la información suministrada. SUPUESTO 2 Este supuesto este compuesto por un envió asíncrono y una recepción síncrona. a) como se puede ver en la imagen la ejecución de la recepción se ejecutará después de que el envió se haya realizado al igual que en el ejemplo anterior para que no ocurra ningún problema se deberá contar con un espacio de almacenamiento temporal para que al ser ejecutado la recepción no se encuentre con ningún problema de sincronización. Aunque este no es el único problema que se puede presentar. Al contar con un envió síncrono si ejecutamos el envió no se nos devolverá el estado de envió confirmado por parte del protocolo, a lo que, si ocurre un problema de sincronización por parte del receptor, este quedara bloqueado mientras el envió seguirá sus tareas sin darse por enterado que se ha perdido la sincronización. b) para este caso ya que la recepción se ejecuta antes de realizar el envió no habrá problemas de almacenamiento que estropeen la sincronización se da por entendido que cuando el envió se ejecute no habrá interrupción es sus tareas, pero por parte de la recepción estará bloqueada hasta recibir la ejecución del envió.

SUPUESTO 3 Este supuesto está compuesto de un envió síncrono y una recepción asincrónica.

a) en caso de que se realice la ejecución del envió antes de la ejecución de la recepción al ser el envió una función sincrónica este quedara bloqueado hasta que exista una confirmación por parte del protocolo como se ha visto en los anteriores supuestos se va a necesitar un espacio de almacenaje temporal para guardar la ejecución del envió. Al realizarse la ejecución de la recepción instantáneamente se generar la confirmación de envió a lo que el emisor podrá continuar trabajando y a su vez si no se encuentra problemas en el almacenamiento el receptor podrá continuar trabajando con normalidad. b) para este caso la ejecución del envío se realizará después de la ejecución de la recepción asíncrona esto puede presentar un gran problema ya que al estarse ejecutando la recepción con anterioridad el envío llegara a una cola de mensajes lo que hará que el emisor quede bloqueado hasta que exista una respuesta por parte del receptor, para este problema existe la solución la cual es la implementación de las técnicas polling y callback, de las cuales la mejor aplicación es la técnica de polling ya que esta al ser un ciclo donde el receptor constantemente va a estar ejecutando el evento recibir este al ejecutar el evento podrá sincronizarse con el emisor y así el emisor continuar su trabajo.

SUPUESTO 4 Este supuesto este compuesto de un envío Asíncrono y una recepción asincrónica. a) en caso de que el envío se realice antes de la recepción con tal de que el espacio de almacenamiento esté funcionando de manera correcta no existirá ningún problema en el desarrollo de las tareas, en caso de existir algún problema de almacenamiento tanto el emisor como el receptor trabajaran sin problemas ya que al ser las dos funciones asíncronas no existirá ningún fallo en el sistema distribuido, pero la ejecución del envío se perdería sin darse cuenta ninguno de los dos. b) en este caso al ser el receptor ejecutado con anterioridad se presenta el mismo problema que en el caso anterior, pero con la diferencia de que el emisor seguirá trabajando si problemas, como ya se sabe para la solución de esto se deberán utilizar cualquiera de las técnicas existentes, pero es de tener en cuenta de que si no se ejecutan las técnicas se pueden perder envíos.