Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Podstawowe pojęcia programowania współbieżnego Jarosław Kuchta.

Podobne prezentacje


Prezentacja na temat: "Podstawowe pojęcia programowania współbieżnego Jarosław Kuchta."— Zapis prezentacji:

1 Podstawowe pojęcia programowania współbieżnego Jarosław Kuchta

2 Współbieżność w życiu codziennym Jednocześnie: Jednocześnie: chodzimy chodzimy oddychamy oddychamy prowadzimy rozmowę prowadzimy rozmowę jemy? jemy? Korzystamy ze współdzielonego zasobu - gardła

3 Współbieżność w systemach operacyjnych Jednoczesna: Jednoczesna: edycja tekstu edycja tekstu sprawdzanie pisowni sprawdzanie pisowni zapisywanie dokumentu zapisywanie dokumentu

4 Współbieżność a równoległość Wykonanie współbieżne – w tym samym czasie z punktu widzenia niezależnego obserwatora Wykonanie współbieżne – w tym samym czasie z punktu widzenia niezależnego obserwatora Wykonanie równoległe – w tym samym czasie na przynajmniej dwóch procesorach Wykonanie równoległe – w tym samym czasie na przynajmniej dwóch procesorach Wniosek – wykonanie współbieżne wymaga mniej procesorów niż wątków sterowania – w szczególności możliwe jest na jednym procesorze. Wniosek – wykonanie współbieżne wymaga mniej procesorów niż wątków sterowania – w szczególności możliwe jest na jednym procesorze.

5 Wykonanie współbieżne z podziałem czasu Kwanty czasu procesora przydzielane są na przemian dla wielu wątków Kwanty czasu procesora przydzielane są na przemian dla wielu wątków Przełączenie wątków wymaga zapamiętywania i odtwarzania stanów poszczególnych wątków Przełączenie wątków wymaga zapamiętywania i odtwarzania stanów poszczególnych wątków Kwanty czasu nie muszą być tej samej długości Kwanty czasu nie muszą być tej samej długości Wątki mogą być aktywowane z różną częstością Wątki mogą być aktywowane z różną częstością Jeśli kwanty czasu są odpowiednio krótkie, to wątki wydają się być wykonane równolegle, choć naprawdę są tylko wykonane współbieżnie Jeśli kwanty czasu są odpowiednio krótkie, to wątki wydają się być wykonane równolegle, choć naprawdę są tylko wykonane współbieżnie wątek 1wątek 2

6 Wątek a proces Wątek – sekwencja operacji wykonywanych jedna po drugiej. Wątek – sekwencja operacji wykonywanych jedna po drugiej. Proces – wątek, który ma osobno przydzieloną pamięć. Proces – wątek, który ma osobno przydzieloną pamięć. Procesy w systemach operacyjnych = programy Procesy w systemach operacyjnych = programy Wątki – jeden proces może mieć wiele wątków, które współdzielą pamięć Wątki – jeden proces może mieć wiele wątków, które współdzielą pamięć

7 Kluczowe problemy współbieżności Współdzielenie zasobów Współdzielenie zasobów Problem zakleszczenia (blokady) Problem zakleszczenia (blokady) Problem zagłodzenia Problem zagłodzenia

8 Współdzielone zasoby Między programami – pamięć dyskowa (pliki), drukarka, mysz, klawiatura, usługi systemowe Między programami – pamięć dyskowa (pliki), drukarka, mysz, klawiatura, usługi systemowe Między wątkami – pamięć operacyjna Między wątkami – pamięć operacyjna

9 Sekcja krytyczna Fragment programu, który tylko jeden z wątków może wykonywać w jednym czasie Fragment programu, który tylko jeden z wątków może wykonywać w jednym czasie wątek 1wątek 2 Działam na własnych danych Czy mogę wejść? Wykonuję sekcję krytyczną Blokuję wejście Czy mogę wejść? Odblokowuję wejście Działam na własnych danych Wykonuję sekcję krytyczną Blokuję wejście Odblokowuję wejście

10 Algorytm pojedynczego wątku Działam na własnych danych Czy mogę wejść? Wykonuję sekcję krytyczną Blokuję wejście Odblokowuję wejście Działam na własnych danych T Czekam chwilę F protokół wstępny protokół końcowy protokół wstępny i końcowy muszą być zgodne dla wszystkich wątków

11 Wymagania czasowe Żaden wątek nie może przebywać w sekcji krytycznej w nieskończoność (również z powodu sytuacji wyjątkowej czy błędu). Żaden wątek nie może przebywać w sekcji krytycznej w nieskończoność (również z powodu sytuacji wyjątkowej czy błędu). Zachowanie wątków poza sekcją krytyczną jest dowolne. Zachowanie wątków poza sekcją krytyczną jest dowolne. Wątki mogą się wykonywać z różnymi szybkościami Wątki mogą się wykonywać z różnymi szybkościami

12 Zakleszczenie (blokada) wątek 1wątek 2 Czekam na dane z wątku 2 Czy dostałem dane? Wysyłam dane do wątku 2 Czekam na dane z wątku 1 Czy dostałem dane? Wysyłam dane do wątku 1 NN

13 Zagłodzenie wątek 1wątek 2 Działam na własnych danych Czy mogę wejść? Wykonuję sekcję krytyczną Blokuję wejście Czy mogę wejść? Odblokowuję wejście Działam na własnych danych Wykonuję sekcję krytyczną Blokuję wejście Odblokowuję wejście wątek 3 Działam na własnych danych Czy mogę wejść? Wykonuję sekcję krytyczną Blokuję wejście Czy mogę wejść? wątek 3 zostaje zagłodzony – nie uzyskuje dostępu do współdzielonego zasobu Czy mogę wejść?

14 Bezpieczeństwo i żywotność Poprawność programu sekwencyjnego Poprawność programu sekwencyjnego częściowa poprawność – jeśli program się zatrzyma, to zwróci poprawne wyniki częściowa poprawność – jeśli program się zatrzyma, to zwróci poprawne wyniki własność stopu – program zawsze kiedyś się zatrzyma (nie zapętli się) własność stopu – program zawsze kiedyś się zatrzyma (nie zapętli się) Bezpieczeństwo programów współbieżnych – uogólnienie własności częściowej poprawności Bezpieczeństwo programów współbieżnych – uogólnienie własności częściowej poprawności dwa programy nigdy nie znajdą się jednocześnie w swoich sekcjach krytycznych dwa programy nigdy nie znajdą się jednocześnie w swoich sekcjach krytycznych Żywotność programów współbieżnych – uogólnienie własności stopu Żywotność programów współbieżnych – uogólnienie własności stopu jeśli program czeka na wejście do sekcji krytycznej, to w końcu do niej wejdzie jeśli program czeka na wejście do sekcji krytycznej, to w końcu do niej wejdzie

15 Sprawiedliwość Gdy programy są identyczne: Gdy programy są identyczne: równy podział czasu równy podział czasu naprzemienne wejścia do sekcji krytycznej naprzemienne wejścia do sekcji krytycznej Gdy programy są różne? Gdy programy są różne? priorytety priorytety zapobieganie zagłodzeniu zapobieganie zagłodzeniu


Pobierz ppt "Podstawowe pojęcia programowania współbieżnego Jarosław Kuchta."

Podobne prezentacje


Reklamy Google