Reloj lógico distribuido

reloj lógico

Los relojes lógicos se utilizan para capturar las dependencias causales de los eventos en un proceso informático distribuido.

El reloj lógico es una función que toma el evento eee se asigna al dominio del tiempoTTAlgún valor en T , expresado como C ( e ) C(e)C ( e ) , y como eventoeela marca de tiempo de e .

ei → ej e_i \rightarrow e_jmiyomij, entonces C ( ei ) > C ( ej ) C(e_i)>C(e_j)C ( miyo)>C ( mij) , pero no al revés. Por lo tanto, no podemos juzgar el orden en que ocurrieron dos eventos según el tamaño de la marca de tiempo.

Para resolver este problema, agregamos el número de proceso a la marca de tiempo, denotado como C i ( e ) C_i(e)Cyo( e ) . Para dos procesospi p_ipagyoy pj p_jpagj,若i < j i<ji<j , llamadopi p_ipagyoLa prioridad es menor que pj p_jpagjprioridad.

Tenga en cuenta que la prioridad de un proceso se puede especificar arbitrariamente Aquí, para facilitar la comprensión, el número de proceso se utiliza como prioridad.

这时,eix → ejy ⇔ C i ( eix ) < C j ( ejy ) o C i ( eix ) = C j ( ejy ) and i < j e_i^x \rightarrow e_j^y \Leftrightarrow C_i(e_i^x) <C_j(e_j^y)~~o~~ C_i(e_i^x)=C_j(e_j^y)~y~i<jmiixmijtuCyo( miix)<Cj( mijtu) o C    yo( miix)=Cj( mijtu) y yo _  <j


Método de cálculo del reloj lógico:
  • El valor inicial del reloj lógico de cada proceso es 0.
  • si el proceso iiCuando ocurre un evento en i , el valor de su reloj lógico aumenta en uno, es decir,C i = C i + 1 C_i=C_i+1Cyo=Cyo+1 _
  • Si el proceso que iiyo para procesarjjCuando j envía un mensaje, el valor del reloj lógico del proceso i primero se incrementa en uno, y luegoC i C_iCyoY el mensaje se manda en pasado, el proceso jjj actualiza su propio reloj lógico comoC j = max ( C i , C j ) + 1 C_j=max(C_i,C_j)+1Cj=máx ( C _yo,Cj)+1 _

Supongo que te gusta

Origin blog.csdn.net/weixin_46878177/article/details/127349848
Recomendado
Clasificación