Pr-1st-1.1-m07-Slajd21: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Szopen (dyskusja | edycje)
Nie podano opisu zmian
 
m Zastępowanie tekstu – „<math> ” na „<math>”
 
(Nie pokazano 1 pośredniej wersji utworzonej przez tego samego użytkownika)
Linia 6: Linia 6:


{|
{|
|<math> \mathit\Sigma(\tau _1) = </math>
|<math>\mathit\Sigma(\tau _1) =</math>
|<math> \langle  \langle present_1(\tau _1) = False </math>
|<math>\langle  \langle present_1(\tau _1) = False</math>
|<math> outLog_1 (\tau _1) = \{token_1\} </math>
|<math>outLog_1 (\tau _1) = \{token_1\}</math>
|<math> inLog_1(\tau _1) = \emptyset \rangle </math>
|<math>inLog_1(\tau _1) = \emptyset \rangle</math>
|-
|-
|
|
|<math> \langle present_2(\tau _1) = False </math>
|<math>\langle present_2(\tau _1) = False</math>
|<math> outLog_2(\tau _1) = \emptyset </math>
|<math>outLog_2(\tau _1) = \emptyset</math>
|<math> inLog_2(\tau _1) = \emptyset \rangle </math>
|<math>inLog_2(\tau _1) = \emptyset \rangle</math>
|-
|-
|
|
|<math> \langle present_3 (\tau _1) = False </math>
|<math>\langle present_3 (\tau _1) = False</math>
|<math> outLog_3 (\tau _1) = \emptyset </math>
|<math>outLog_3 (\tau _1) = \emptyset</math>
|<math> inLog_3(\tau _1) = \emptyset \rangle \rangle </math>
|<math>inLog_3(\tau _1) = \emptyset \rangle \rangle</math>
|}
|}


Linia 31: Linia 31:


{|
{|
|<math> \mathit\Sigma(\tau _2) = </math>
|<math>\mathit\Sigma(\tau _2) =</math>
|<math> \langle \langle present_1(\tau _2) = False </math>
|<math>\langle \langle present_1(\tau _2) = False</math>
|<math> outLog_1 (\tau _2) = \{token_1\} </math>
|<math>outLog_1 (\tau _2) = \{token_1\}</math>
|<math> inLog_1(\tau _2) = \emptyset \rangle </math>
|<math>inLog_1(\tau _2) = \emptyset \rangle</math>
|-
|-
|
|
|<math> \langle present_2(\tau _2) = True </math>
|<math>\langle present_2(\tau _2) = True</math>
|<math> outLog_2(\tau _2) = \emptyset </math>
|<math>outLog_2(\tau _2) = \emptyset</math>
|<math> inLog_2(\tau _2) = \{ token_1 \} \rangle </math>
|<math>inLog_2(\tau _2) = \{ token_1 \} \rangle</math>
|-
|-
|
|
|<math> \langle present_3 (\tau _2) = False </math>
|<math>\langle present_3 (\tau _2) = False</math>
|<math> outLog_3 (\tau _2) = \emptyset </math>
|<math>outLog_3 (\tau _2) = \emptyset</math>
|<math> inLog_3(\tau _2) = \emptyset \rangle \rangle </math>
|<math>inLog_3(\tau _2) = \emptyset \rangle \rangle</math>
|}
|}




Jak widać, w chwili <math>\tau _2</math> kanał jest już pusty i istotnie <math>outLog_1(\tau _2) \setminus inLog_2(\tau _2) = \emptyset </math>.  
Jak widać, w chwili <math>\tau _2</math> kanał jest już pusty i istotnie <math>outLog_1(\tau _2) \setminus inLog_2(\tau _2) = \emptyset</math>.  


Po wysłaniu przez <math>P_2</math> znacznika do procesu <math>P_3</math> osiągany jest kolejny stan, <math>\mathit\Sigma (\tau _3)</math>:
Po wysłaniu przez <math>P_2</math> znacznika do procesu <math>P_3</math> osiągany jest kolejny stan, <math>\mathit\Sigma (\tau _3)</math>:


{|
{|
|<math> \mathit\Sigma(\tau _3) = </math>
|<math>\mathit\Sigma(\tau _3) =</math>
|<math> \langle \langle present_1(\tau _3) = False </math>
|<math>\langle \langle present_1(\tau _3) = False</math>
|<math> outLog_1 (\tau _3) = \{token_1\} </math>
|<math>outLog_1 (\tau _3) = \{token_1\}</math>
|<math> inLog_1(\tau _3) = \emptyset \rangle </math>
|<math>inLog_1(\tau _3) = \emptyset \rangle</math>
|-
|-
|
|
|<math> \langle present_2(\tau _3) = False </math>
|<math>\langle present_2(\tau _3) = False</math>
|<math> outLog_2(\tau _3) = \{ token_2 \} </math>
|<math>outLog_2(\tau _3) = \{ token_2 \}</math>
|<math> inLog_2(\tau _3) = \{ token_1 \} \rangle </math>
|<math>inLog_2(\tau _3) = \{ token_1 \} \rangle</math>
|-
|-
|
|
|<math> \langle present_3 (\tau _3) = False </math>
|<math>\langle present_3 (\tau _3) = False</math>
|<math> outLog_3 (\tau _3) = \emptyset </math>
|<math>outLog_3 (\tau _3) = \emptyset</math>
|<math> inLog_3(\tau _3) = \emptyset \rangle \rangle </math>
|<math>inLog_3(\tau _3) = \emptyset \rangle \rangle</math>
|}
|}



Aktualna wersja na dzień 22:15, 11 wrz 2023

Modele stanów globalnych – przykład 1 (2)

Modele stanów globalnych – przykład 1 (2)

Po wysłaniu znacznika token1 będącego konkretną wiadomością typu TOKEN (każda wiadomość, a więc również każdy znacznik, ma swój unikalny identyfikator mId ) w kierunku procesu P2, znacznik przez pewien czas znajduje się w kanale C1,2 (przypomnijmy, że w ogólności czas przebywania wiadomości w kanale jest skończony, lecz nie znany a priori ). Tak więc w chwili τ1 stan globalny można opisać następująco:

Σ(τ1)= present1(τ1)=False outLog1(τ1)={token1} inLog1(τ1)=
present2(τ1)=False outLog2(τ1)= inLog2(τ1)=
present3(τ1)=False outLog3(τ1)= inLog3(τ1)=

Zauważmy, że znajomość stanów lokalnych procesów P1 oraz P2 w chwili τ1 pozwala łatwo wyznaczyć stan kanału C1,2 jako różnicę mnogościową outLog1(τ1) oraz inLog2(τ1).

Po odebraniu znacznika token1 przez proces P2 system osiąga stan Σ2:

Σ(τ2)= present1(τ2)=False outLog1(τ2)={token1} inLog1(τ2)=
present2(τ2)=True outLog2(τ2)= inLog2(τ2)={token1}
present3(τ2)=False outLog3(τ2)= inLog3(τ2)=


Jak widać, w chwili τ2 kanał jest już pusty i istotnie outLog1(τ2)inLog2(τ2)=.

Po wysłaniu przez P2 znacznika do procesu P3 osiągany jest kolejny stan, Σ(τ3):

Σ(τ3)= present1(τ3)=False outLog1(τ3)={token1} inLog1(τ3)=
present2(τ3)=False outLog2(τ3)={token2} inLog2(τ3)={token1}
present3(τ3)=False outLog3(τ3)= inLog3(τ3)=

Następnie znacznik jest odbierany przez P3 i osiągany jest kolejny stan, a potem w analogiczny sposób następne.

<< Poprzedni slajd | Spis treści | Następny slajd >>