Programowanie współbieżne i rozproszone zadania∗ 1. Udowodnij

Transkrypt

Programowanie współbieżne i rozproszone zadania∗ 1. Udowodnij
Programowanie współbieżne i rozproszone
zadania∗
1. Udowodnij, że dla flooding algorithm następujący fakt jest prawdziwy: procesor jest
osiągalny z pr wtedy i tylko wtedy, gdy kiedykolwiek pod zmienną parent nastąpiło
przypisanie.
2. Podaj przykład wykonania, w którym flooding algorithm w modelu asynchronicznym
z n węzłami nie konstruuje drzewa BFS (drzewa wszerz).
3. Jak wyeliminować komunikaty < already > z flooding algorithm w modelu synchronicznym, aby algorytm był dalej poprawny. Jaka będzie złożoność komunikacyjna
(message complexity) otrzymanego algorytmu.
4. Przeprowadź analizę złożoności komunikacyjnej (message complexity) flooding algorithm w modelu synchronicznym i asynchronicznym.
5. Przeprowadź analizę złożoności czasowej (time complexity) flooding algorithm w modelu synchronicznym i asynchronicznym.
6. Udowodnij, że nie istnieje anonimowy algorytm wyboru lidera w asynchronicznym,
pierścieniu.
7. Udowodnij, że nie istnieje anonimowy jednorodny algorytm wyboru lidera w synchroniczny pierścieniu.
8. Rozważmy pierścień, w którym przesyłanie komunikatów odbywa się w jednym kierunku (pierścień skierowany). Czy istnieje anonimowy jednorodny algorytm wyboru
lidera w modelu asynchronicznym? Jeżeli nie istnieje, to podaj dowód.
9. Rozważmy synchroniczny pierścień, w którym wszystkie procesory za wyjątkiem jednego mają ten sam identyfikator. Czy istnieje algorytm wyboru lidera. Jeżeli nie
istnieje, to podaj dowód.
10. Wymień znane algorytmy wyboru lidera w pieścieniu. Dla każdego z nich podaj złożoność komunikacyjną. Ponadto dla modelu synchronicznego podaj również złożoność
czasową.
11. Czy brak zagłodzenia (lockout) implikuje brak blokady (deadlock)?
12. Pokazać, że algorytm wzajamnego wykluczania na rejestrach read-modify-write dla
n procesorów (mutual exclusion using spinning) zapewnia wzajemne wykluczanie i
brak zagłodzenia (lockout).
Część zadań pochodzi z książki Hagit Attiya, Jennifer Welch, Distributed Computing: Fundamentals,
Simulations, and Advanced Topics, John Wiley and Sons, Inc. 2004
∗
1
13. Dlaczego zmienna Choosing[i] jest potrzebna w algorytmie piekarnianym. Skonstruuj wykonanie, w którym algorytm piekarniany bez zmniennej Choosing[i] narusza
wzajemne wykluczanie.
14. Pokazać, że algorytm dla wzajemnego wykluczania na rejestrach read-write dla dwóch
procesorów (bounded mutual exclusion algorithm for two processors) zapewnia brak
blokady (deadlock).
15. Podać algorytm rozwiązujący w f + 1 rundach problem konsensusu w przypadku
awarii typu crash.
Pokazać, że algorytm zapewnia: termination, validity i agreement.
Czy można zmniejszyć liczbę rund do f ? Uzasadnij odpowiedź.
16. Podać algorytm rozwiązujący w f rundach problem konsensusu w przypadku awarii
typu crash, jeżeli f = n − 1.
Pokazać, że algorytm zapewnia: termination, validity i agreement.
17. Podaj algorytm rozwiązujący w jednej rundzie problem konsensusu w przypadku
awarii typu clean crash. Procesor ulega awarii typu clean crash, jeżeli w rundzie, w
której ulega awarii wysyła wszystkie komunikaty albo nie wysyła ich wcale.
Pokazać, że algorytm zapewnia: termination, validity i agreement.
18. Podać przykład wykonania (dla konkretnego n), dla którego algorytm ponadwielomianowy (the exponential message consensus algorithm) dla awarii typu bizantyjskiego narusza warunki problemu konsensusu, jeżeli n = 3f .
19. Niech π będzie wierzchołkiem. Pokazać, że jeżeli π ma wspólną granicę, to π jest
wspólny.
20. Jaka jest długość komunikatu i złożoność komunikacyjna algorytmu ponadwielomianowego dla awarii typu bizantyjskiego.
21. Rozważmy wielomianowy algorytm dla problemu konsensusu w przypadku awarii
typu bizantyjskiego (polynomial consensus algorithm in the presence of Byzantine
failures). Pokazać, że jeżeli wszystkie procesory preferują v na początku fazy k, to
preferują one wartość v na końcu fazy k dla 1 ¬ k ¬ f + 1.
22. Rozważmy wielomianowy algorytm dla problemu konsensusu w przypadku awarii
typu bizantyjskiego (polynomial consensus algorithm in the presence of Byzantine
failures).
Niech g będzie fazą, w której król pg jest nieuszkodzony. Pokazać, że wszystkie nieuszkodzone procesory kończą fazę g z tą samą preferowaną wartością.
2
23. Korzystając z zadań 21 i 22, pokazać, że wielomianowy algorytm dla problemu konsensusu w przypadku awarii typu bizantyjskiego zapewnia: termination, validity i
agreement.
24. Podać przykład wykonania (dla konkretnego n), dla którego wielomianowy algorytm
dla problemu konsensusu w przypadku awarii typu bizantyjskiego narusza warunki
problemu konsensusu, jeżeli n = 3f .
25. Jaka jest długość komunikatu i złożoność komunikacyjna algorytmu wielomianowego
dla awarii typu bizantyjskiego.
3