Modelowanie procesów współbieżnych



Podobne dokumenty
Wprowadzenie do programowania współbieżnego

Klasyczne problemy współbieżności. Problem producenta i konsumenta Problem czytelników i pisarzy Problem pięciu filozofów

3URJUDPRZDQLHZVSyáELH*QHZVWS

Programowanie współbieŝne. Paweł Rogaliński Politechnika Wrocławska

Programowanie Współbieżne. Wstęp

Nazwa Wydziału Nazwa jednostki prowadzącej moduł Nazwa modułu kształcenia Kod modułu Język kształcenia Efekty kształcenia dla modułu kształcenia

procesów Współbieżność i synchronizacja procesów Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

Mechanizmy komunikacji. spotkania symetryczne (język CSP) spotkania asymetryczne (Ada) przestrzenie krotek (Linda) potoki, komunikaty i kanały (Unix)

Przetwarzanie wielowątkowe przetwarzanie współbieżne. Krzysztof Banaś Obliczenia równoległe 1

Modelowanie procesów współbieżnych

SYLABUS/KARTA PRZEDMIOTU

Część I. Uwaga: Akceptowane są wszystkie odpowiedzi merytorycznie poprawne i spełniające warunki zadania. Zadanie 1.1. (0 3)

EGZAMIN MATURALNY W ROKU SZKOLNYM 2017/2018 INFORMATYKA

Uniwersytet w Białymstoku Wydział Ekonomiczno-Informatyczny w Wilnie SYLLABUS na rok akademicki 2012/2013

Systemy operacyjne III

Projektowanie oprogramowania cd. Projektowanie oprogramowania cd. 1/34

Ingerencja w kod systemu operacyjnego (przerwania) Programowanie na niskim poziomie (instrukcje specjalne) Trudności implementacyjne (alg.

NAZWA PRZEDMIOTU/MODUŁU KSZTAŁCENIA:

Program jest więc strukturą statyczną zapisaną na jakimś nośniku. Natomiast proces jest wykonującym się programem.

1. Liczby i w zapisie zmiennoprzecinkowym przedstawia się następująco

PROJEKT WSPÓŁFINANSOWANY ZE ŚRODKÓW UNII EUROPEJSKIEJ W RAMACH EUROPEJSKIEGO FUNDUSZU SPOŁECZNEGO OPIS PRZEDMIOTU

Równoległość i współbieżność

Równoległość i współbieżność

Mechanizmy pracy równoległej. Jarosław Kuchta

Algorytmy i złożoność obliczeniowa. Wojciech Horzelski

Semafory. // G - globalna dla wszystkich. // Wada - aktywne oczekiwanie Test_and_Set(Li); exit when Li = 0; end loop sekcja_krytyczna(i); G := 0;

Projektowanie algorytmów równoległych. Zbigniew Koza Wrocław 2012

PRZEWODNIK PO PRZEDMIOCIE

Systemy operacyjne. Paweł Pełczyński

Przegląd zagadnień programowania wspólbieżnego

EGZAMIN MATURALNY OD ROKU SZKOLNEGO

Podstawy modelowania programów Kod przedmiotu

Wprowadzenie do programowania współbieżnego i rozproszonego

Nazwa przedmiotu: MODELOWANIE I ANALIZA SYSTEMÓW INFORMATYCZNYCH. Modeling and analysis of computer systems Forma studiów: Stacjonarne

Egzamin / zaliczenie na ocenę*

Grupa treści kształcenia, w ramach której przedmiot jest realizowany Przedmiot kierunkowy

Uniwersytet w Białymstoku Wydział Ekonomiczno-Informatyczny w Wilnie SYLLABUS na rok akademicki 2010/2011

5. Model komunikujących się procesów, komunikaty

KARTA PRZEDMIOTU. 1. NAZWA PRZEDMIOTU: Zespołowy projekt informatyczny. 2. KIERUNEK: Matematyka. 3. POZIOM STUDIÓW: I stopnia

Programowanie współbieżne Wykład 2. Iwona Kochańska

Algorytmy dla maszyny PRAM

Sortowanie danych. Jolanta Bachan. Podstawy programowania

Programowanie współbieżne i rozproszone

Modelowanie jako sposób opisu rzeczywistości. Katedra Mikroelektroniki i Technik Informatycznych Politechnika Łódzka

KARTA PRZEDMIOTU. Systemy czasu rzeczywistego: D1_9

PRZEWODNIK PO PRZEDMIOCIE

Technologie Informacyjne

PROBLEMY NIEROZSTRZYGALNE

<Nazwa firmy> <Nazwa projektu> Specyfikacja dodatkowa. Wersja <1.0>

Wprowadzenie do systemów operacyjnych. mgr inż. Krzysztof Szałajko

WYKŁAD. Jednostka prowadząca: Wydział Techniczny. Kierunek studiów: Elektronika i telekomunikacja

4. Procesy pojęcia podstawowe

Informatyka. informatyka i nauki komputerowe (computer science)

Tworzenie programów równoległych cd. Krzysztof Banaś Obliczenia równoległe 1

EGZAMIN MATURALNY 2011 INFORMATYKA

Programowanie komputerów

Podstawy Informatyki Systemy sterowane przepływem argumentów

Inzynieria Oprogramowania 2... nazwa przedmiotu SYLABUS A. Informacje ogólne. Wydział Ekonomiczno-Informatyczny w Wilnie

Dr inż. hab. Siergiej Fialko, IF-PK,

4. Procesy pojęcia podstawowe

Programowanie współbieżne Wykład 7. Iwona Kochaoska

Teraz bajty. Informatyka dla szkół ponadpodstawowych. Zakres rozszerzony. Część 1.

Programowanie w języku C++ Podstawowe paradygmaty programowania

Programowanie współbieżne i równoległe. dr inż. Marcin Wilczewski 2013

Algorytm - pojęcie algorytmu, sposób zapisu, poziom szczegółowości, czynności proste i strukturalne. Pojęcie procedury i funkcji.

Analiza ilościowa w przetwarzaniu równoległym

Algorytmy i Struktury Danych.

Opis efektów kształcenia dla modułu zajęć

Czujniki obiektowe Sterowniki przemysłowe

1 Podstawowe definicje i pojęcia współbieżności

Podstawy programowania.

Procesy i systemy dynamiczne Nazwa przedmiotu SYLABUS A. Informacje ogólne

Zagadnienia egzaminacyjne INFORMATYKA. Stacjonarne. I-go stopnia. (INT) Inżynieria internetowa STOPIEŃ STUDIÓW TYP STUDIÓW SPECJALNOŚĆ

Programowanie obiektowo zorientowane. Mirosław Głowacki Wykład w języku C++

Projektowanie i Analiza Algorytmów

Klasa 2 INFORMATYKA. dla szkół ponadgimnazjalnych zakres rozszerzony. Założone osiągnięcia ucznia wymagania edukacyjne na. poszczególne oceny

ξ II.UWr Wprowadzenie do STM

Projekt systemu informatycznego

Podstawy metodologiczne symulacji

1. Nagłówek funkcji: int funkcja(void); wskazuje na to, że ta funkcja. 2. Schemat blokowy przedstawia algorytm obliczania

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych. Algorytmy i struktury danych Laboratorium Nr 4

PRZEWODNIK PO PRZEDMIOCIE

INFORMATYKA POZIOM ROZSZERZONY

INFORMATYKA POZIOM PODSTAWOWY

Kurs programowania. Wykład 12. Wojciech Macyna. 7 czerwca 2017

Algorytmy i struktury danych

Zagadnienia egzaminacyjne INFORMATYKA. stacjonarne. I-go stopnia. (INT) Inżynieria internetowa STOPIEŃ STUDIÓW TYP STUDIÓW SPECJALNOŚĆ

Odniesienie do efektów kształcenia dla obszaru nauk EFEKTY KSZTAŁCENIA Symbol

EGZAMIN MATURALNY W ROKU SZKOLNYM 2017/2018 INFORMATYKA

Wstęp do informatyki. Maszyna RAM. Schemat logiczny komputera. Maszyna RAM. RAM: szczegóły. Realizacja algorytmu przez komputer

Języki i metodyka programowania

miejsca przejścia, łuki i żetony

Systemy wbudowane. Uproszczone metody kosyntezy. Wykład 11: Metody kosyntezy systemów wbudowanych

Kurs MATURA Z INFORMATYKI

Numeryczna algebra liniowa

PRZEWODNIK PO PRZEDMIOCIE

INFORMATYKA POZIOM ROZSZERZONY

Transkrypt:

Modelowanie procesów współbieżnych dr inż. Maciej Piotrowicz Katedra Mikroelektroniki i Technik Informatycznych PŁ piotrowi@dmcs.p.lodz.pl http://fiona.dmcs.pl/~piotrowi -> Modelowanie...

Literatura M. Ben-Ari, Podstawy programowania współbieżnego, WNT 1989 lub M. Ben-Ari, Podstawy programowania współbieżnego i rozproszonego, WNT, 1996 K. Jensen, Coloured Petri Nets, Basic Concepts, Analysis Methods and Practical Use, Vol. 1-3, Springer 1996 Dodatkowo: A. Jaszkiewicz, Inżynieria oprogramowania, Wydawnictwo Helion, Warszawa, 1997. S. Szejko (red.), Metody wytwarzania oprogramowania, Mikom, 2002 J. Górski (red.), Inżynieria oprogramowania w projekcie informatycznym, Mikom, 1999

Program przedmiotu Idea i abstrakcja programowania współbieżnego Problem wzajemnego wykluczania Pojęcia semafora i monitora Podstawy modelowania formalnego Sieci miejsc i przejść Kolorowane sieci Petriego Metody analizy formalnej współbieżnych systemów informatycznych Laboratorium: Wykorzystanie kolorowanych sieci Petriego do modelowania współbieżnych systemów informatycznych

Program sekwencyjny... begin for i:=1 to n do read(a[k]); sort(1,n); for k:=1 to n do write(a[k]); end... procedure sort(lewy,prawy:integer)... begin for i:=lewy to prawy do for j:=i+1 to prawy do if a[j]<a[i] then begin temp:=a[j]; a[j]:=a[i]; a[i]:=temp; end end;... Przykład sortowanie liczb

Ulepszenie algorytmu dzielimy zbiór wejściowy na 2 części sortujemy obie części oddzielnie scalamy otrzymane zbiory Liczba porównań Algorytm zwykły n 2 /2 Ulepszony 2*(n/2) 2 /2 + n (scalanie) = n 2 /4 + n

Przykładowe wartości n n 2 /2 n 2 /4 + n n 2 /8 + n 10 50 35 23 40 800 440 140 100 5 000 2 600 1 350 1 000 500 000 251 000 126 000

Dalsze usprawnienia Sortowanie obu części można wykonać równolegle (np. na dwóch procesorach). Notacja:... cobegin sort(1,n) sort(n+1,2n) coend scal(1,n,n+1,2n)...

Podstawowe zagadnienie Które czynności należy/można wykonać współbieżnie?... cobegin sort(1,n) sort(n+1,2n) scal(1,n,n+1,2n) coend... sort 1 sort 2 scal początkowo 4, 2, 7, 6, 1 8, 5, 0, 3, 9 sortuje 1 2, 4, 7, 6, 1 8, 5, 0, 3, 9 sortuje 2 2, 4, 7, 6, 1 5, 8, 0, 3, 9 scalanie jw. jw. 2 scalanie jw. jw. 2, 4 scalanie jw. jw. 2, 4, 5

Czy program jest poprawny Sortowanie sekwencyjne testy na krótkich zbiorach wejściowych powtarzalność sekwencji determinizm Program współbieżny wiele możliwych wykonań programu zachowanie zależne od warunków wejściowych, procedur składowych, szybkości procesora/ów

Programowanie współbieżne Termin używany do określenia technik i notacji programistycznych służących do wyrażenia potencjalnej równoległości oraz do rozwiązywania zagadnień związanych z powstającymi przy tym problemami synchronizacyjnymi i komunikacyjnymi. Implementacja równoległości wiąże się ze sprzętem i oprogramowaniem, w zasadzie niezależnymi od programowania współbieżnego. Można zatem rozważać równoległość bez wdawania się w szczegóły implementacyjne.

Rozwój programowania współbieżnego Wyrosło na gruncie potrzeb związanych z systemami operacyjnymi Lata 50-te fizyczna obsługa komputera jest rozłączna z jego pracą to może być współbieżne z obliczeniami Programy nadzorujące odczyt wielu wsadów jednocześnie, zadania przetwarzane kolejno, bez strat czasowych programiści tracili możliwość obserwacji działania programu napotykając błąd, komputer zapisywał obraz pamięci i wykonywał kolejny program przyczyny błędu szukał programista czas obrotu rzędu godzin, a nawet dni

Rozwój c.d. Ograniczenia przepustowości czytników wydzielenie odrębnych jednostek do przetwarzania wejścia i wyjścia (spooling przechwytywanie, np. zapis na taśmę) operacje proste prosty sprzęt niewielki wzrost kosztów Wieloprogramowość przełączanie komputera między zadaniami możliwość pracy wielu programistów przy wielu terminalach (wrażenie komputera na wyłączność ) omijanie zamyślonego programisty) Systemy wieloprocesorowe model przeplatanych obliczeń pozostaje aktualny

Abstrakcja programowania współbieżnego Badanie abstrakcyjnych zadań programistycznych podlegających ustalonym regułom. Nie jest studium systemów operacyjnych bądź systemów czasu rzeczywistego. Techniki p.w. mogą być użyte w istniejących systemach (spełniających reguły). Składowe systemu wyłamujące się z reguł powinny być wyjątkowo starannie opisywane i implementowane.

Program współbieżny Kilka procesów sekwencyjnych Komunikacja między procesami synchronizacja działań wymiana danych Współdzielone zasoby (np. pamięć) Nie musi istnieć wspólna pamięć główna (programowanie rozproszone)

Problem wzajemnego wykluczania Abstrakcja wielu problemów synchronizacyjnych, jeden z dwóch najistotniejszych problemów programowania współbieżnego. Fragment A1 procesu P1 i fragment A2 procesu P2 wykluczają się nawzajem, jeśli wykonanie A1 nie może nałożyć się w czasie z wykonaniem A2. Jeżeli oba procesy starają się wykonać kolizyjne fragmenty jednocześnie, należy zapewnić przyblokowanie jednego z nich. Typowy przykład: przydział zasobów.

Założenia do rozwiązania problemu Pozwolić działać tylko jednemu procesowi. Współbieżność możliwa tylko przy luźnym powiązaniu procesów rzadkie i krótkie żądania komunikacji. strefa lokalna protokół wstępny strefa krytyczna protokół końcowy Program główny Koszty współbieżności

Wymagania Krótkie protokoły minimalizacja kosztów Krótki czas przebywania w strefie krytycznej Niezawodność urządzeń i procedur dostępu do nich Zabezpieczenie przed błędnym działaniem procesów (błąd nie powinien mieć wpływu na pozostałe procesy)

Poprawność systemów i programów częściowa poprawność (bezpieczeństwo) Dotyczy własności statycznych programu (np. wzajemne wykluczanie). Jeśli program zakończy się, to poda prawidłowy wynik. Program nie znajdzie się w stanie niepożądanym. całkowita poprawność (żywotność) Dotyczy własności dynamicznych Program zakończy się i poda prawidłowy wynik. Program osiągnie w końcu każdy pożądany stan. (w końcu = w nieokreślonym, skończonym czasie)

Przejawy braku żywotności Blokada programu globalny brak żywotności Każdy proces ze zbioru jest wstrzymany w oczekiwaniu na zdarzenie, które może być spowodowane tylko przez inny proces z tego zbioru. Blokada nie musi wystąpić nie zawsze jest wykrywana w testach. Zagłodzenie programu lokalny brak żywotności Proces nie jest wznowiony, mimo iż zdarzenie, na które czeka, wystąpiło dowolną liczbę razy. Trudniejsze do wykrycia i poprawienia.