Nie obrażaj więc mojej inteligencji poprzez czynione na pokaz zaniżanie własnej.
PROGRAMOWANIE WSPÓŁBIENE
Cz , e ±¢ I Dr in». Wojciech Mikanik wojciech.mikanik@polsl.pl pokój 503 (V p.) Wprowadzenie Luty 2009 Dr in». Wojciech Mikanik PROGRAMOWANIE WSPÓŁBIENE Dr in». Wojciech Mikanik PROGRAMOWANIE WSPÓŁBIENE Wprowadzenie Program przedmiotu Wykład I Wiadomo±ci podstawowe I Specyfikowanie współbie»no±ci I Programowanie w modelu z pami¦ci¡ wspóln¡ I Wła±ciwo±ci programów współbie»nych i równoległych I Programowanie w modelu z pami¦ci¡ rozproszon¡ I Przykłady 1. Program przedmiotu 2. Literatura 3. Informacje ró»ne 4. Procesy sekwencyjne i współbie»ne 5. Modele programowania współbie»nego Laboratorium I Pthreads: I Uruchamianie w¡tków I Muteksy I Zmienne warunkowe (monitory) I OpenMP Dr in». Wojciech Mikanik PROGRAMOWANIE WSPÓŁBIENE Dr in». Wojciech Mikanik PROGRAMOWANIE WSPÓŁBIENE Literatura Wiadomo±ci pomocnicze 1. M. Ben-Ari: Podstawy programowania współbie»nego i rozproszonego , Warszawa, WNT 1996. 2. Z. Czech (red.): Systemy operacyjne i j¦zyki oblicze« równoległych , wyd. I, Politechnika l¡ska, skrypt uczelniany nr 2121, Gliwice 1998. 3. Z. Weiss, T. Gru¹lewski: Programowanie współbie»ne i rozproszone , Warszawa, WNT 1993. Slajdy wykładowe: http://sun.aei.polsl.pl/pub/wmikanik/usmpw/usmpw.html 1. Algorytmy sekwencyjne: I sortowania I numeryczne (np. mno»enie macierzy) I algorytmy kombinatoryczne (np. problem komiwoja»era) I inne 2. J¦zyk C oraz C++ (Programowanie Komputerów) Dr in». Wojciech Mikanik PROGRAMOWANIE WSPÓŁBIENE Dr in». Wojciech Mikanik PROGRAMOWANIE WSPÓŁBIENE Pseudokod Proces sekwencyjny Oznaczenia: P — proces o i — operacja i-ta t ( o i ) — czas rozpocz¦cia operacji o i t ( o i ) — czas zako«czenia operacji o i Dl a procesu sekwencyjnego zachodzi t ( o i ) t ( o i + 1 ) t ( o i )= t ( o i + 1 ) I Oparty na C/C++ I Dodane deklaracje i instrukcje, które b¦d¡ stopniowo wprowadzane podczas wykładu I Krótki opis składni dost¦pny przez WWW http://sun.aei.polsl.pl/pub/wmikanik/usmpw/usmpw.html I Notacja , a nie j¦zyk programowania I rodek, nie cel o 1 o 2 o 3 o 4 o 5 o 6 o 7 P - t proces P jest aktywny Dr in». Wojciech Mikanik PROGRAMOWANIE WSPÓŁBIENE Dr in». Wojciech Mikanik PROGRAMOWANIE WSPÓŁBIENE Proces sekwencyjny Procesy współbie»ne Oznaczenia: P k — k-ty proces o k i — i-ta operacja k-tego procesu Sekwencja operacji procesu P 1 : o 1 1 ; o 1 2 ; o 1 3 ; o 1 4 ; o 1 5 ; o 1 6 Sekwencja operacji procesu P 2 : o 2 1 ; o 2 2 ; o 2 3 ; o 2 4 ; o 2 5 ; o 2 6 Mo»liwe sekwencje operacji współbie»nego wykonania P 1 i P 2 : I o 1 1 ; o 2 1 ; o 1 2 ; o 2 2 ; o 1 3 ; o 2 3 ; o 1 4 ; o 2 4 ; o 1 5 ; o 2 5 ; o 1 6 ; o 2 6 I o 1 1 ; o 1 2 ; o 1 3 ; o 1 4 ; o 1 5 ; o 1 6 ; o 2 1 ; o 2 2 ; o 2 3 ; o 2 4 ; o 2 5 ; o 2 6 I o 1 1 ; o 1 2 ; o 1 3 ; o 1 4 ; o 2 1 ; o 2 2 ; o 1 5 ; o 1 6 ; o 2 3 ; o 2 4 ; o 2 5 ; o 2 6 I ::: t ( o i )< t ( o i + 1 ) o 1 o 2 o 3 o 4 o 5 o 6 o 7 P - t – – – proces P jest nieaktywny NIC NIE WIEMY O WZGLDNEJ SZYBKOCI WYKONANIA PROCESÓW WSPÓŁBIENYCH Dr in». Wojciech Mikanik PROGRAMOWANIE WSPÓŁBIENE Dr in». Wojciech Mikanik PROGRAMOWANIE WSPÓŁBIENE Procesy współbie»ne Równoległo±¢ operacji procesów Procesy współbie»ne Przeplatanie operacji procesów o 2 1 o 2 2 o 2 3 o 2 4 o 2 5 o 3 1 o 3 2 o 3 3 o 3 4 o 3 5 o 3 6 o 3 7 o 3 8 o 3 9 o 3 10 P 2 P 3 o 1 1 o 1 2 o 1 3 o 1 4 o 1 5 o 1 6 o 2 1 o 2 2 o 2 3 o 2 4 o 2 5 o 2 6 o 2 7 o 2 8 o 2 9 o 2 10 P 1 P 2 o 1 1 o 1 2 o 1 3 o 1 4 o 1 5 o 1 6 o 1 7 o 1 8 o 1 9 o 1 10 - t P 1 - t t ( o 1 1 )= t ( o 2 1 ) NIC NIE WIEMY O WZGLDNEJ SZYBKOCI WYKONANIA PROCESÓW WSPÓŁBIE»NYCH t ( o 1 1 )< t ( o 2 1 )< t ( o 1 1 ) Dr in». Wojciech Mikanik PROGRAMOWANIE WSPÓŁBIENE Dr in». Wojciech Mikanik PROGRAMOWANIE WSPÓŁBIENE Modele programowania współbie»nego Pami¦¢ wspólna (jedna przestrze« adresowa) Modele programowania współbie»nego Pami¦¢ rozproszona (wiele przestrzeni adresowych) Sie¢ poł¡cze« Pami¦¢ wspólna P 0 P 1 P n 1 . . . . . . M n 1 M 0 M 1 P 0 P 1 P n 1 Swobodny dost¦p do dowolnej komórki pami¦ci Ka»dy proces ma swoje własne dane, do których ma wył¡czny dost¦p. Dr in». Wojciech Mikanik PROGRAMOWANIE WSPÓŁBIENE Dr in». Wojciech Mikanik PROGRAMOWANIE WSPÓŁBIENE Omawiane zagadnienia Cz , e ±¢ II 1. Instrukcje fork , join , quit 2. Instrukcja cobegin 3. Instrukcja parfor Specyfikowanie współbie»no±ci Dr in». Wojciech Mikanik PROGRAMOWANIE WSPÓŁBIENE Dr in». Wojciech Mikanik PROGRAMOWANIE WSPÓŁBIENE Instrukcje: fork , join , quit voidP(void){ ...//instrukcje ... ... quit; }//P voidM(void){ ... forkP(); ... joinP; ... ... }//M main(void){ M(); Instrukcje: fork , join , quit M czeka na P fork P() join P fork P() join P M ? ? M ? ? P 6 quit P 6 - t quit - t } Dr in». Wojciech Mikanik PROGRAMOWANIE WSPÓŁBIENE Dr in». Wojciech Mikanik PROGRAMOWANIE WSPÓŁBIENE Instrukcje: fork , join , quit P czeka na M Nazwy procesów voidP(void){ ...//instrukcje ... ... quit; }//P voidM(void){ ... forkP(); forkP(); ... joinP;//nazakonczeniektoregoprocesu ... //czekamy? }//M main(void){ M(); fork P() join P M ? ? P 6 quit - t } Dr in». Wojciech Mikanik PROGRAMOWANIE WSPÓŁBIENE Dr in». Wojciech Mikanik PROGRAMOWANIE WSPÓŁBIENE |
Menu
|