Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Informatyka + 1 Współbieżność w informatyce i nie tylko Marcin Engel Instytut Informatyki Uniwersytet Warszawski.

Podobne prezentacje


Prezentacja na temat: "Informatyka + 1 Współbieżność w informatyce i nie tylko Marcin Engel Instytut Informatyki Uniwersytet Warszawski."— Zapis prezentacji:

1 informatyka + 1 Współbieżność w informatyce i nie tylko Marcin Engel Instytut Informatyki Uniwersytet Warszawski

2 informatyka + 2 Co to jest programowanie współbieżne? Zamiast wstępu obrazek z pewnej gry...

3 BeataBeata informatyka + 3 Lodowisko - model komputera AniaAnia CzarekCzarek DamianDamian

4 informatyka + 4 Język programowania Instrukcje są postaci: imię, ruch Ruch może być jednym z następujących poleceń: –Krok naprzód –Obrót w lewo –Obrót w prawo Przykład: Ania, krok naprzód

5 informatyka + 5 Wykonanie instrukcji BeataBeata AniaAnia CzarekCzarek DamianDamian Ania, krok naprzód

6 informatyka + 6 Przykładowy program... Ania, krok naprzód Czarek, obrót w lewo Czarek, krok naprzód Damian, krok naprzód

7 informatyka i jego wykonanie Ania, krok naprzódCzarek, obrót w lewoCzarek, krok naprzódDamian, krok naprzód BeataBeata AniaAnia CzarekCzarek DamianDamian CzarekCzarek

8 informatyka + 8 Niebezpieczne ruchy Łyżwiarz nie powinien wpaść na bandę Łyżwiarze nie powinni zderzyć się ze sobą

9 informatyka + 9 Niebezpieczne ruchy Ania, krok naprzód AniaAnia Damian, krok naprzód BeataBeata CzarekCzarek DamianDamian !!!

10 informatyka + 10 Instrukcja złożona Wprowadźmy do języka jeszcze jedną instrukcję: jeśli pole przed Tobą jest wolne, to krok naprzód, w przeciwnym razie obróć się w lewo

11 informatyka + 11 Sekwencyjny program dla łyżwiarzy... Powtarzaj –Ania, jeśli pole przed Tobą jest wolne, to krok naprzód, w przeciwnym razie obróć się w lewo –Beata, jeśli pole przed Tobą jest wolne, to krok naprzód, w przeciwnym razie obróć się w lewo –Czarek, jeśli pole przed Tobą jest wolne, to krok naprzód, w przeciwnym razie obróć się w lewo –Damian, jeśli pole przed Tobą jest wolne, to krok naprzód, w przeciwnym razie obróć się w lewo

12 informatyka i jego wykonanie AniaAnia CzarekCzarek BeataBeata DamianDamian BeataBeata DamianDamian AniaAnia CzarekCzarek

13 informatyka + 13 Wady programu sekwencyjnego Programista musi myśleć jednocześnie o wszystkich poruszających się łyżwiarzach Wszyscy łyżwiarze poruszają się w ten sam sposób i w takim samym tempie Trudno jest zindywidualizować zachowanie łyżwiarzy Efekt końcowy jest nierealistyczny

14 informatyka + 14 Inne podejście Trener przygotowuje program dla jednego łyżwiarza, na przykład powtarzaj: jeśli pole przed Tobą jest wolne, to krok naprzód, w przeciwnym razie obróć się w lewo Program jest wykonywany przez konkretnego łyżwiarza, więc nie trzeba poprzedzać instrukcji imieniem Wszyscy łyżwiarze otrzymują swój program i go wykonują

15 ... i jego wykonanie informatyka + 15 AniaAnia CzarekCzarek BeataBeata DamianDamian BeataBeata DamianDamian AniaAnia CzarekCzarek

16 informatyka + 16 Właśnie napisaliśmy program współbieżny!

17 informatyka + 17 Porównanie programu sekwencyjnego z programem współbieżnym W programie sekwencyjnym w danej chwili ruch wykonuje tylko jeden łyżwiarz W programie współbieżnym jednocześnie porusza się wielu łyżwiarzy

18 informatyka + 18 Wykonanie współbieżne Wykonanie współbieżne to realizacja kilku czynności w taki sposób, że kolejna rozpoczyna się przed zakończeniem poprzedniej

19 informatyka + 19 Zalety programu współbieżnego Większa elastyczność: –łatwo zmienić zachowanie łyżwiarza wręczając mu inny program Lepsza struktura programu

20 informatyka + 20 Procesy i programy Programy to obiekty statyczne (w naszym przykładzie kartki wręczane łyżwiarzom) Procesy to obiekty dynamiczne (w naszym przykładzie: łyżwiarze) wykonujące programy Różne procesy mogą wykonywać różne programy Dwa różne procesy mogą też wykonywać ten sam program Ten sam program może być wykonywany przez różne procesy

21 informatyka + 21 Wykonanie programu współbieżnego Równoległe: –asynchroniczne: każdy łyżwiarz jeździ własnym tempem (jak na poprzednich slajdach) –synchroniczne: wszyscy wykonują jeden ruch na sygnał W przeplocie: –łyżwiarze wykonują ruchy naprzemiennie ciągle w tej samej kolejności lub losowo na polecenie kierownika lodowiska

22 Wykonanie synchroniczne informatyka + 22 AniaAnia CzarekCzarek BeataBeata DamianDamian BeataBeata DamianDamian AniaAnia CzarekCzarek RUCH!

23 Wykonanie w przeplocie informatyka + 23 AniaAnia CzarekCzarek BeataBeata DamianDamian BeataBeata DamianDamian AniaAnia CzarekCzarek Ania!Beata!Czarek!Damian!

24 informatyka + 24 Wykonanie w przeplocie Wykonanie w przeplocie przypomina: –wykonanie sekwencyjne, bo w dowolnej chwili wykonuje się tylko jeden proces –wykonanie równoległe, zwłaszcza jeśli będziemy szybko przeplatać ruchy poszczególnych procesów

25 informatyka + 25 Inne przykłady systemów współbieżnych Wykonanie równoległe: –osoby na tej sali –samochody przejeżdżające przez skrzyżowanie Wykonanie w przeplocie: –uczeń uczący się różnych przedmiotów –kucharz przygotowujący obiad

26 informatyka + 26 Dlaczego współbieżność ma obecnie duże znaczenie? Rozwój sprzętu: –typowa konfiguracja 15 lat temu: procesor 16 MHz, pamięć 1 MB, dysk 60 MB –typowa konfiguracja dzisiaj: procesor 2,4 GHz, pamięć 4 GB, dysk 300 GB Upowszechnienie wielozadaniowych systemów operacyjnych na komputerach osobistych Rozwój sieci i Internetu

27 informatyka + 27 Jak komputery wykonują programy współbieżne? Wykonanie równoległe jest możliwe na komputerze wyposażonym w: –wiele procesorów albo –procesor wielordzeniowy Systemy operacyjne z podziałem czasu dają możliwość wykonywania procesów w przeplocie

28 informatyka + 28 Budowa systemu z podziałem czasu Kierownik lodowiska = moduł szeregujący systemu operacyjnego Procesy uruchomione w systemie znajdują się w kolejce procesów gotowych Pierwszy proces z tej kolejki otrzymuje procesor na określony kwant czasu Po upływie kwantu czasu następuje przełączenie kontekstu: proces wykonywany powraca na koniec kolejki procesów gotowych, a procesor otrzymuje kolejny proces z kolejki

29 Kolejka procesów gotowych informatyka + 29 Budowa systemu z podziałem czasu edytor tekstu arkusz kalkulacyjny przeglądarka kalkulator proces wykonywany

30 Kolejka procesów gotowych informatyka + 30 Przełączenie kontekstu edytor tekstu arkusz kalkulacyjny przeglądarka kalkulator koniec kwantu Kolejka procesów gotowych edytor tekstu arkusz kalkulacyjny przeglądarka kalkulator

31 informatyka + 31 Wirtualne procesory edytor tekstu arkusz kalkulacyjny przeglądarka kalkulator procesor wirtualny procesor fizyczny

32 informatyka + 32 Problemy z programami współbieżnymi Właściwa synchronizacja procesów Poprawna i efektywna komunikacja między procesami W dalszym ciągu naszkicujemy jedynie problemy związane z synchronizacją procesów

33 informatyka + 33 Błędna synchronizacja łyżwiarzy AniaAnia DamianDamian RUCH! pole przede mną jest wolne pole przede mną jest wolne !!!

34 informatyka + 34 Przygotowanie programu do uruchomienia Program pisze się w języku wysokiego poziomu Jest on następnie tłumaczony (kompilowany) na rozkazy maszynowe zrozumiałe dla komputera Jedna instrukcja języka wysokiego poziomu może odpowiadać wielu rozkazom maszynowym

35 informatyka + 35 Znów analogia do lodowiska Krok naprzód łyżwiarza składa się z wielu elementarnych ruchów: –przeniesienie ciężaru ciała na jedną nogę –odbicie się –ślizg –…–…

36 informatyka + 36 Niepodzielność instrukcji i rozkazów Przełączenie kontekstu może nastąpić między dowolnymi rozkazami Nie można więc zakładać, że instrukcje programu są niepodzielne Wykonanie w przeplocie programu łyżwiarza może również prowadzić do błędu

37 informatyka + 37 Błędna synchronizacja łyżwiarzy AniaAnia DamianDamian Ania! pole przede mną jest wolne pole przede mną jest wolne !!! Damian!

38 informatyka + 38 Współbieżny dostęp do konta załaduj saldo do AX odejmij 1000 od AX prześlij AX do saldo załaduj saldo do BX dodaj 1000 do BX prześlij BX do saldo saldo = 5000 saldo := saldo – 1000saldo := saldo

39 informatyka + 39 Możliwe wykonanie załaduj saldo do AX saldo = 5000 odejmij 1000 od AX prześlij AX do saldo załaduj saldo do BX dodaj 1000 do BX prześlij BX do saldo saldo = 6000

40 informatyka + 40 Inny przeplot załaduj saldo do AX saldo = 5000 odejmij 1000 od AX prześlij AX do saldo załaduj saldo do BX dodaj 1000 do BX prześlij BX do saldo saldo = 4000

41 informatyka + 41 I jeszcze jedna możliwość załaduj saldo do AX saldo = 5000 odejmij 1000 od AX prześlij AX do saldo załaduj saldo do BX dodaj 1000 do BX prześlij BX do saldo saldo = 5000

42 informatyka + 42 Jeszcze jeden przykład powtórz 5 razy: x := x + 1 powtórz 5 razy x := x + 1 x = 0 Czy na koniec zawsze x = 10? Czy zawsze x <= 10? Nie! Tak! Czy zawsze x >= 5?Nie!

43 informatyka + 43 Klasyczne problemy współbieżności Wzajemne wykluczanie Pięciu filozofów Producenci i konsumenci Czytelnicy i pisarze Przedstawimy dzisiaj dwa pierwsze z nich

44 informatyka + 44 Wzajemne wykluczanie powtarzaj: własne sprawy … sekcja krytyczna... Jak zapewnić, że sekcję krytyczną wykonuje w dowolnym momencie co najwyżej jeden proces?

45 informatyka + 45 Dodatkowe założenia Każdy proces znajdujący się w sekcji krytycznej opuści ją w skończonym czasie Nie zakłada się nic o własnych sprawach Procesy nie mogą być ze sobą ściśle związane (np. awaria jednego nie może powodować awarii drugiego)

46 informatyka + 46 Próba rozwiązania Stawiamy przed sekcją krytyczną sygnalizator świetlny (zmienna logiczna) Początkowo wyświetla on światło zielone Proces przed wejściem do sekcji sprawdza światło: –jeśli jest zielone – wchodzi do sekcji i zmienia światło na czerwone –jeśli jest czerwone – czeka Po opuszczeniu sekcji krytycznej proces zmienia światło na zielone

47 informatyka + 47 Działanie tego rozwiązania sek sekcja krytyczna własne sprawy

48 informatyka + 48 I znów błąd synchronizacyjny! Sprawdzenie światła i zmiana jego koloru nie muszą być niepodzielne!

49 informatyka + 49 Może się więc zdarzyć tak: sek sekcja krytyczna własne sprawy

50 informatyka + 50 Własność bezpieczeństwa Własność bezpieczeństwa programu współbieżnego to spełnienie przez niego wymagań synchronizacyjnych wynikających ze specyfikacji problemu Program musi być bezpieczny dla wszystkich możliwych przeplotów Bezpieczeństwo wzajemnego wykluczania: w sekcji krytycznej jest co najwyżej jeden proces

51 informatyka + 51 Druga próba rozwiązania Stawiamy przed sekcją krytyczną sygnalizator świetlny (zmienna logiczna) Początkowo wyświetla on światło czerwone Proces przed wejściem do sekcji sprawdza światło: –jeśli jest zielone – wchodzi do sekcji i zmienia światło na czerwone –jeśli jest czerwone – czeka Po opuszczeniu sekcji krytycznej proces zmienia światło na zielone

52 informatyka + 52 Działanie tego rozwiązania sek sekcja krytyczna Własne sprawy

53 informatyka + 53 Własność żywotności Własność żywotności oznacza, że każdy proces, który dotarł do fragmentu programu objętego synchronizacją, w końcu ten fragment wykona Żywotność wzajemnego wykluczania: każdy proces, który chce wejść do s. kryt., w końcu do niej wejdzie Program poprawny musi spełniać zarówno własność bezpieczeństwa jak i żywotności

54 informatyka + 54 Przejawy braku żywotności Zakleszczenie – w systemie nic się nie dzieje, a procesy oczekują na zdarzenie, które nigdy nie zajdzie Zagłodzenie – lokalny brak żywotności; pechowy proces nie może wykonywać się dalej

55 informatyka + 55 Zakleszczenie – przykład proces 1 proces 2 drukarka skaner ma chce

56 informatyka + 56 Zakleszczenie na skrzyżowaniu równorzędnym

57 informatyka + 57 Zagłodzenie na skrzyżowaniu

58 informatyka + 58 Problem pięciu filozofów myśligłodnyje

59 informatyka + 59 Pięciu filozofów – próba pierwsza Głodny filozof czeka, aż będzie wolny lewy widelec, po czym go podnosi Następnie czeka, aż będzie wolny prawy widelec, po czym go podnosi i rozpoczyna jedzenie Oddawanie widelców odbywa się w tej samej kolejności

60 informatyka + 60 Podnoszenie widelców – próba pierwsza myśligłodnyje głodnyjemyśli

61 informatyka + 61 Podnoszenie widelców – zakleszczenie myśligłodny myśligłodny myśli głodny myśligłodny myśligłodny

62 informatyka + 62 Pięciu filozofów – próba druga Głodny filozof czeka, aż będą dostępne oba widelce Następnie podnosi je jednocześnie, a po skończeniu jedzenia – jednocześnie je oddaje Jeśli tylko jeden widelec jest wolny, to pozostaje on na stole

63 informatyka + 63 Podnoszenie widelców – próba druga myśligłodnyje myśligłodnyje

64 informatyka + 64 Podnoszenie widelców – zagłodzenie myśligłodnyje myśligłodny je myśli głodny myśli

65 informatyka + 65 Pięciu filozofów – rozwiązanie poprawne Pierwsza próba + dodatkowy proces lokaj, który dopuszcza do stołu co najwyżej 4 filozofów jednocześnie.

66 informatyka + 66 Podsumowanie Programowanie współbieżne: –to ważna technika programowania zwłaszcza we współczesnej informatyce –umożliwia lepsze wykorzystanie mocy obliczeniowej współczesnych procesorów –prowadzi do tworzenia bardziej elastycznych programów o lepszej strukturze

67 informatyka + 67 Podsumowanie Programy współbieżne mogą być wykonywane: –synchronicznie –asynchronicznie –w przeplocie Wielozadaniowe systemy operacyjne wspierają współbieżność Systemy z podziałem czasu umożliwiają uruchamianie programów współbieżnych na jednym procesorze

68 informatyka + 68 Podsumowanie Problemy z programami współbieżnymi: –procesy wymagają synchronizacji –programy są trudne do analizy –ich wykonanie bywa nieintuicyjne –trudno wykazać ich poprawność

69 informatyka + 69 Podsumowanie Poprawność programu współbieżnego oznacza: –bezpieczeństwo –żywotność (brak zakleszczeń i zagłodzeń) Własności te muszą być zachowane dla każdego przeplotu

70 informatyka + 70 Podsumowanie Dobre mechanizmy synchronizacyjne ułatwiają tworzenie poprawnych programów Ale to już temat na inną opowieść...


Pobierz ppt "Informatyka + 1 Współbieżność w informatyce i nie tylko Marcin Engel Instytut Informatyki Uniwersytet Warszawski."

Podobne prezentacje


Reklamy Google