1 / 70

Współbieżność w informatyce i nie tylko

Współbieżność w informatyce i nie tylko. Marcin Engel Instytut Informatyki Uniwersytet Warszawski. informatyka +. 1. Co to jest programowanie współbieżne?. Zamiast wstępu obrazek z pewnej gry. informatyka +. 2. Ania. Czarek. Damian. Beata. Lodowisko - model komputera.

dareh
Download Presentation

Współbieżność w informatyce i nie tylko

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

  3. Ania Czarek Damian Beata Lodowisko - model komputera informatyka + 3

  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 informatyka + 4

  5. Ania Czarek Damian Beata Wykonanie instrukcji Ania, krok naprzód informatyka + 5

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

  7. Ania Czarek Damian Beata Czarek ... i jego wykonanie Ania, krok naprzód Czarek, obrót w lewo Czarek, krok naprzód Damian, krok naprzód informatyka + 7

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

  9. Ania Czarek Damian Beata Niebezpieczne ruchy !!! !!! Ania, krok naprzód Damian, krok naprzód informatyka + 9

  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 informatyka + 10

  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 informatyka + 11

  12. Ania Ania Czarek Damian Damian Czarek Beata Beata ... i jego wykonanie informatyka + 12

  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 informatyka + 13

  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ą informatyka + 14

  15. Ania Ania Czarek Damian Damian Czarek Beata Beata ... i jego wykonanie informatyka + 15

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

  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 informatyka + 17

  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 informatyka + 18

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

  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 informatyka + 20

  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 informatyka + 21

  22. Ania Ania Czarek Damian Damian Czarek Beata Beata Wykonanie synchroniczne RUCH! informatyka + 22

  23. Ania Ania Czarek Damian Damian Czarek Beata Beata Wykonanie w przeplocie Ania! Beata! Czarek! Damian! informatyka + 23

  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 informatyka + 24

  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 informatyka + 25

  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 informatyka + 26

  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 informatyka + 27

  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 informatyka + 28

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

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

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

  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 informatyka + 32

  33. Ania Damian Błędna synchronizacja łyżwiarzy pole przede mną jest wolne pole przede mną jest wolne !!! RUCH! informatyka + 33

  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 informatyka + 34

  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 • … informatyka + 35

  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 informatyka + 36

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

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

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

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

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

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

  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 informatyka + 43

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

  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) informatyka + 45

  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 informatyka + 46

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

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

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

  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 informatyka + 50

More Related