Rozproszone_moje_zad/dodatkowe
Jakub Adamski a59be95770 Temat B
2021-05-23 13:11:45 +02:00
..
21.tcl Temat B 2021-05-23 13:11:45 +02:00
Graf_pelny.png Temat B 2021-05-23 13:11:45 +02:00
konsola.txt Temat B 2021-05-23 13:11:45 +02:00
krok1.png Temat B 2021-05-23 13:11:45 +02:00
krok2.png Temat B 2021-05-23 13:11:45 +02:00
krok3.png Temat B 2021-05-23 13:11:45 +02:00
krok4.png Temat B 2021-05-23 13:11:45 +02:00
krok5.png Temat B 2021-05-23 13:11:45 +02:00
README.md Temat B 2021-05-23 13:11:45 +02:00

Zadanie 21

Opis dzialania

Wstep

Tworze graf pelny o 8 wierzcholkach.

Glowna idea - kazdy wierzcholek probuje dodac do swojego zbioru jak najwieksza ilosc innych wierzcholkow.

Wierzcholek probujacy dodac inny porownuje najpierw czy jego zbior jest wiekszy niz wierzcholka ktorego probuje przejac. Tylko w takim wypadu moze to zrobic. Liderem zostaje ten o najwiekszym zbiorze.

Wysylane komunikaty

  • Collect - dolacz sie do mnie

  • Join - dolaczam sie do ciebie

  • Ack - moj zbior jest wiekszy od twojego

  • Ref - moj zbior jest mniejszy od twojego

  • Check - sprawdź ten zbior czy jest wiekszy od twojego

Dzialanie wierzcholka

Na poczatku wysylam sygnal collect do dowolnego sasiada. System odbioru komunikatow:

  • Jesli dostane collect i moj zbior jest pusty lub mniejszy od wierzcholka wysylajacego to wysylam do niego komunikat join, w przeciwnym wypadku wyslij check do "posiadacza zbioru"

  • Jesli dostane check i moj zbior jest wiekszy niz wierzcholka wysylajacego to wysylam do niego ack, w przeciwnym wypadku wysylam ref

  • Jesli dostane ack to wysylam join do wierzcholka wysylajacego.

  • Jesli dostane ref to nie robie nic.

  • Jesli dostane join to powiekszam swoj zbior i wysylam collect do innego losowego wierzcholka.

Program

Kroki:

  1. Startuje od check = 0.
  2. Wykonuje procedure egzekucja.
  3. Wierzcholek 0 uruchomi swoje dzialanie jako pierwszy.
  4. Ustawiam check = 1. Uruchamiam wizualizacje.
  5. Wykonuje procedure egzekucja.
  6. Uruchomi sie dzialanie losowo wybranego wierzcholka.
  7. Wracam do kroku 4. Program dziala az nie znajde lidera.