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



Podobne dokumenty
Modelowanie procesów współbieżnych

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

4. Procesy pojęcia podstawowe

Wprowadzenie do programowania współbieżnego

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

SYSTEMY OPERACYJNE WYKLAD 6 - procesy

Programowanie współbieżne i rozproszone

Poziom kwalifikacji: I stopnia. Liczba godzin/tydzień: 2W E, 2L PRZEWODNIK PO PRZEDMIOCIE

Synchronizacja procesów i wątków

KARTA KURSU. Systemy operacyjne

4. Procesy pojęcia podstawowe

E-ID1G-06-s5. Programowanie współbieżne. Informatyka I stopień (I stopień / II stopień) Ogólno akademicki (ogólno akademicki / praktyczny)

4. Procesy pojęcia podstawowe

Programowanie równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz

PRZEWODNIK PO PRZEDMIOCIE

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

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

Zapoznanie z technikami i narzędziami programistycznymi służącymi do tworzenia programów współbieżnych i obsługi współbieżności przez system.

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

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

Architektura komputerów II - opis przedmiotu

16. Taksonomia Flynn'a.

dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1

Zał nr 4 do ZW. Dla grupy kursów zaznaczyć kurs końcowy. Liczba punktów ECTS charakterze praktycznym (P)

Obliczenia równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz

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

Wykład Ćwiczenia Laboratorium Projekt Seminarium

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

Ocenianie ciągłe (praca przy Formująca tablicy oraz przy komputerze) pisemne, końcowe zaliczenie pisemne

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

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

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

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

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

Systemy operacyjne. Wprowadzenie. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

SYSTEMY OPERACYJNE WYKLAD 6 - wątki

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

Podstawy Informatyki Systemy sterowane przepływem argumentów

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

Wstęp do programowania 2

Czujniki obiektowe Sterowniki przemysłowe

Programowanie komputerów

Systemy operacyjne. Literatura do zagadnień wykładowych (1) Literatura do zagadnień wykładowych (2) Program przedmiotu. Forma zaliczenia przedmiotu

Systemy operacyjne. Program przedmiotu

Systemy operacyjne. Program przedmiotu. Forma zaliczenia przedmiotu. Dariusz Wawrzyniak 1

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

Programowanie I. O czym będziemy mówili. Plan wykładu nieco dokładniej. Plan wykładu z lotu ptaka. Podstawy programowania w językach. Uwaga!

WYKŁAD. Jednostka prowadząca: Wydział Techniczny. Kierunek studiów: Elektronika i telekomunikacja. Nazwa przedmiotu: Język programowania C++

Paweł Skrobanek. C-3, pok

Programowanie w Javie nazwa przedmiotu SYLABUS A. Informacje ogólne

KARTA KURSU. Student zna podstawy analizy, projektowania i programowani obiektowego oraz podstawy języka C++.

miejsca przejścia, łuki i żetony

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

Systemy operacyjne. wykład dr Marcin Czarnota laboratorium mgr Radosław Maj

KARTA KURSU (realizowanego w module specjalności)

E-I-0006-s3. Informatyka I stopień (I stopień / II stopień) ogólnoakademicki (ogólno akademicki / praktyczny)

KARTA MODUŁU KSZTAŁCENIA

Sieci Petriego. Sieć Petriego

Technika mikroprocesorowa. Systemy operacyjne czasu rzeczywistego

Algorytmy i Struktury Danych

Systemy Operacyjne. wykład 1. Adam Kolany. Październik, Instytut Techniczny Państwowa Wyższa Szkoła Zawodowa w Nowym Sączu

Podstawy programowania wykład

SYLABUS DOTYCZY CYKLU KSZTAŁCENIA realizacja w roku akademickim 2016/2017

Systemy operacyjne. Systemy operacyjne. Systemy operacyjne. Zadania systemu operacyjnego. Abstrakcyjne składniki systemu. System komputerowy

Literatura. 11/16/2016 Przetwarzanie równoległe - wstęp 1

Budowa i zasada działania komputera. dr Artur Bartoszewski

E-1IZ2-06-s4. Informatyka I stopień (I stopień / II stopień) ogólnoakademicki (ogólno akademicki / praktyczny)

E-I2S-2001-s1. Informatyka II stopień (I stopień / II stopień) Ogólno akademicki (ogólno akademicki / praktyczny)

Podstawy Programowania

PRZEWODNIK PO PRZEDMIOCIE

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

PRZEWODNIK PO PRZEDMIOCIE

Wielowątkowość. Programowanie w środowisku rozproszonym. Wykład 1.

10/14/2013 Przetwarzanie równoległe - wstęp 1. Zakres przedmiotu

WIELODOSTĘPNE SYSTEMY OPERACYJNE 1 (SO1)

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

Biorąc udział w projekcie, możesz wybrać jedną z 8 bezpłatnych ścieżek egzaminacyjnych:

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

KARTA KURSU. Programowanie obiektowe

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

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

Projektowanie oprogramowania cd. Projektowanie oprogramowania cd. 1/34

Technologie informacyjne - wykład 12 -

SYLABUS/KARTA PRZEDMIOTU

I. KARTA PRZEDMIOTU CEL PRZEDMIOTU

Analiza i projektowanie obiektowe w UML Kod przedmiotu

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

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

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32

Procesy i wątki. Krzysztof Banaś Obliczenia równoległe 1

3URJUDPRZDQLHZVSyáELH*QHZVWS

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2013/2014

Systemy operacyjne III

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

Programowanie Równoległe i Rozproszone

K_W04 K_W04 K_W04. Opis

PRYWATNA WYŻSZA SZKOŁA BUSINESSU, ADMINISTRACJI I TECHNIK KOMPUTEROWYCH S Y L A B U S

PRZEWODNIK PO PRZEDMIOCIE

KARTA PRZEDMIOTU. 1. NAZWA PRZEDMIOTU: Algorytmizacja i programowanie. 2. KIERUNEK: Matematyka. 3. POZIOM STUDIÓW: I stopnia

Modelowanie i Programowanie Obiektowe

Transkrypt:

Programowanie współbieŝne Paweł Rogaliński Politechnika Wrocławska pawel.rogalinski pwr.wroc.pl

Literatura podstawowa M. Ben-Ari: Podstawy programowania współbieŝnego i rozproszonego, WNT, Warszawa 1996. Z. Weiss, T. Gruźlewski: Programowanie współbieŝne i rozproszone w przykładach i zadaniach, WNT, Warszawa 1993. K. Barteczko: Java od podstaw do technologii, Wydaw. MIKOM, Warszawa 2004. B. Eckel: Thinking in Java edycja polska wydanie IV, Wydaw. HELION, Gliwice 2006. B. Goetz i in,: Java WspółbieŜność dla praktyków Wydaw. HELION, Gliwice 2007. Dokumentacja pakietu java.util.concurrent java.sun.com/j2se/1.5.0/docs/api The Java Tutorials: Concurrency http://java.sun.com/docs/books/tutorial/essential/concurrency/ Paweł Rogaliński - programowanie współbieŝne 2

Literatura podstawowa Stephen J. Hartley: Java as a Concurrent Programming Language for Operating Systems and Related Courses http://elvis.rowan.edu/~hartley/javaconcprog/ D. Lea: Concurrent Programming in Java: Design Principles and Patterns, Addison-Wesley, 1999. http://gee.cs.oswego.edu/dl/cpj/index.html Paweł Rogaliński - programowanie współbieŝne 3

Literatura uzupełniająca M. Ben-Ari: Podstawy programowania współbieŝnego, WNT, Warszawa 1989. M. J. Bach: Budowa systemu operacyjnego UNIX, WNT, Warszawa 1995. W. R. Stevens: Programowanie zastosowań sieciowych w systemie UNIX, WNT, Warszawa, 1995. Red. A. Karbowski, Obliczenia równoległe i rozproszone, Oficyna Wydaw. Politechniki Warszwskiej, 2001. S. Kozielski, Z. Szczerbiński: Komputery równoległe, WNT, Warszawa 1991. B. Borowik: Programowanie równoległe w zastosowaniach, Wydaw. NIKOM 2001. H. Schildt: Java. Kompendium programisty, Wydaw. HELION, Gliwice 2005. Paweł Rogaliński - programowanie współbieŝne 4

Program wykładu Pojęcie współbieŝności, procesy Poprawność programów współbieŝnych własności bezpieczeństwa i Ŝywotności Problem wzajemnego wykluczania algorytm Dekkera Klasyczne problemy współbieŝności: czytelnicy i pisarze, producent i konsument, problem pięciu filozofów Semafory definicja, typy semaforów, przykłady zastosowań Monitory definicja, przykłady zastosowań Mechanizmy synchronizacji w języku Java Wykład kończy się egzaminem Paweł Rogaliński - programowanie współbieŝne 5

W języku potocznym często mówimy: oni przeszli na drugą stronę ulicy jednocześnie. Mamy na myśli, Ŝe obaj byli na jezdni w tym samym czasie, ale niekoniecznie dokładnie w tej samej chwili na jezdnię wkraczali i dokładnie w tej samej chwili jezdnię opuszczali. W języku potocznym często mówimy: Ten profesor prowadzi jednocześnie wykłady z filozofii i socjologii. Mamy na myśli, Ŝe cykl wykładów z obu dziedzin odbywa się w tym samym semestrze, ale poszczególne wykłady odbywają się w róŝnych terminach. Paweł Rogaliński - programowanie współbieŝne 6

WspółbieŜność zespół zjawisk, czynności lub działań odbywających się jednocześnie. Uwaga: jednoczesność polega ta tym, Ŝe drugie zjawisko (czynność) rozpoczyna się przed zakończeniem poprzedniego zjawiska (czynności). Paweł Rogaliński - programowanie współbieŝne 7

WspółbieŜność przestrzenna kilka niezaleŝnych jednostek realizuje swoje zadania Paweł Rogaliński - programowanie współbieŝne 8

kolejne fazy produkcji WspółbieŜność czasowa - kilka współbieŝnych zadań znajduje się w róŝnych fazach wykonania ruch samochodów na taśmie Paweł Rogaliński - programowanie współbieŝne 9

Programowanie - ogół czynności związanych z opracowywaniem algorytmów, kodowaniem ich w określonym języku programowania i uruchamianiem ich w systemie komputerowym. Program - sformalizowany zapis algorytmu, składający się z deklaracji danych i ciągu wykonywanych instrukcji zapisanych w określonym języku programowania. Proces - program będący w trakcie wykonywania. Efektem działania procesu jest sekwencja zmian stanu systemu komputerowego odbywających się zgodnie z algorytmem zapisanym w programie. Paweł Rogaliński - programowanie współbieŝne 10

Program jest obiektem statycznym (formalnym opisem tego, co ma być wykonane). Proces jest obiektem dynamicznym (ciągiem sekwencyjnie wykonywanych instrukcji programu). KaŜdy program jest skończony, natomiast procesy mogą być skończone lub (teoretycznie) nieskończone. Paweł Rogaliński - programowanie współbieŝne 11

KaŜdy proces wykonuje się w pewnym środowisku, którego niezbędnymi elementami są: procesor (dokonujący zmian stanu systemu) oraz pamięć (w której przechowywany jest kod programu oraz dane). procesor pamięć operacyjna (program) pamięć masowa (dane) Paweł Rogaliński - programowanie współbieŝne 12

Graf stanów procesu proces proces aktywny aktywny (running) (running) zakończenie (terminate) wywłaszczenie (preemptt) wznowienie (schedule) czekanie na zdarzenie (wait for event) tworzenie (create) proces proces gotowy gotowy (ready) (ready) zdarzenie zaszło (event occured) proces proces wstrzymany wstrzymany (blocked) (blocked) Paweł Rogaliński - programowanie współbieŝne 13

rodzaje procesów dane wejściowe transformacyjny reaktywny proces transformacyjny Proces transformacyjny proces skończony, którego celem jest wykonanie pewnych obliczeń (czyli przekształcenie pobranych danych tak, by na końcu uzyskać właściwe wyniki) dane wyjściowe Paweł Rogaliński - programowanie współbieŝne 14

rodzaje procesów transformacyjny reaktywny proces reaktywny Proces reaktywny proces, który moŝe być wykonywany dowolnie długo (teoretycznie nieskończenie długo), i którego podstawowym celem jest interakcja (naprzemienna wymiana informacji) z otoczeniem. Paweł Rogaliński - programowanie współbieŝne 15

procesy sekwencyjne proces 1 proces 2 czas } procesor A procesy quasi-równoległe proces 1 proces 2 czas } procesor A procesy równoległe proces 1 proces 2 czas } procesor A } procesor B Paweł Rogaliński - programowanie współbieŝne 16

PROCESY sekwencyjne w danej chwili rozpoczęty jest co najwyŝej 1 proces współbieŝne w danej chwili moŝe być rozpoczętych kilka procesów quasi-równoległe procesy są wykonywane na jednym procesorze z podziałem czasu równoległe procesy są wykonywane na oddzielnych procesorach w środowisku scentralizowanym (wspólna pamięć) w środowisku rozproszonym (sieć połączeń) Paweł Rogaliński - programowanie współbieŝne 17

System scentralizowany i rozproszony Programowanie współbieŝne moŝe dotyczyć zarówno systemów jednoprocesorowych jak i systemów wieloprocesorowych opartych na wspólnej pamięci (systemy scentralizowane), lub architektury wieloprocesorowej połączonej siecią komputerową (systemy rozproszone), gdzie kaŝdy procesor dysponuje swoją pamięcią. SIEĆ LOKALNA WSPÓLNA WSPÓLNA PAMIĘĆ PAMIĘĆ PROCESOR PROCESOR PROCESOR KANAŁ KOMUNIKACYJNY PROCESOR PROCESOR PROCESOR PAMIĘĆ PAMIĘĆ PAMIĘĆ system scentralizowany system rozproszony Paweł Rogaliński - programowanie współbieŝne 18

oddziaływanie (interakcja) procesów współpraca współzawodnictwo proces 1 proces 2 dane (zmienne dzielone) i sygnały synchronizacyjne (komunikaty) Współpraca procesów jedno zadanie podzielone jest na kilka podzadań realizowanych współbieŝnie przez oddzielne procesy, które muszą wymieniać między sobą dane oraz sygnały synchronizacyjne proces n Współpraca procesów Paweł Rogaliński - programowanie współbieŝne 19

oddziaływanie (interakcja) procesów proces 1 wspólne zasoby współpraca współzawodnictwo proces 2 Współzawodnictwo procesów oddzielne zadania realizowane są przez oddzielne procesy, które współzawodniczą o dostęp do ograniczonych zasobów. proces n Współzawodnictwo procesów Paweł Rogaliński - programowanie współbieŝne 20

Termin programowanie współbieŝne uŝywa się do określenia technik i notacji programistycznych słuŝących do wyraŝania jednoczesności oraz rozwiązywania zagadnień związanych z powstałymi przy tym problemami synchronizacji i komunikacji. Programowanie współbieŝne jest bardzo waŝnym zagadnieniem, gdyŝ pozwala zajmować się jednoczesnością bez wdawania się w szczegóły implementacyjne. MoŜliwość takiego abstrahowania okazała się na tyle uŝyteczna przy pisaniu programów, Ŝe nowoczesne języki programowania wyposaŝono juŝ w mechanizmy programowania współbieŝnego. Paweł Rogaliński - programowanie współbieŝne 21

Podstawowe cele programowania współbieŝnego : 1. przyspieszenie wykonywania obliczeń ; 2. lepsze wykorzystanie zasobów (sprzętu); 3. umoŝliwienie współpracy wielu uŝytkownikom; 4. udostępnienie stylu programowania ułatwiającego tworzenie duŝych, przejrzyście zorganizowanych programów. Uwaga. Wyjątkowo korzystne okazuje się siępołączenie idei idei współbieŝności i i obiektowości (programowanie tzw. tzw. obiektów współbieŝnych jest jest bardzo bardzo dobrym dobrym sposobem modelowania rzeczywistych zjawisk). Paweł Rogaliński - programowanie współbieŝne 22

Poziomy przetwarzania i programowania współbieŝnego 1. Poziom prac równoczesna realizacja niezaleŝnych programów 2. Poziom zadań program podlega dekompozycji na niezaleŝne zadania, które są wykonywane równolegle np.. w postaci wątków. Zadaniami są wydzielone fragmenty programu, najczęściej w formie procedur lub niezaleŝnych iteracji pętli programowych. 3. Poziom instrukcji równocześnie są wykonywane niezaleŝne instrukcje programu 4. Poziom operacji wewnątrz rozkazu fazy realizacji rozkazu, które są niezaleŝne, wykonywane są równolegle (potokowe wykonywanie rozkazów) Im Im niŝszy niŝszy poziom poziom przetwarzania, przetwarzania, tym tym większą większą rolę rolę w przetwarzaniu przetwarzaniu współbieŝnym współbieŝnym odgrywają odgrywają mechanizmy mechanizmy sprzętowe sprzętowe (poziom (poziom 4 4 jest jest niedostępny niedostępny dla dla programisty programisty cała cała współbieŝność współbieŝność jest jest zapewniona zapewniona sprzętowo). sprzętowo). Im Im wyŝszy wyŝszy poziom, poziom, tym tym istotniejsze istotniejsze stają stają się się mechanizmy mechanizmy programowe, programowe, zanika zanika natomiast natomiast zaleŝność zaleŝność od od sprzętu sprzętu (poziom (poziom 1 1 moŝna moŝna realizować realizować zarówno zarówno w systemach systemach wieloprocesorowych wieloprocesorowych (kaŝdy (kaŝdy program program jest jest wykonywany wykonywany na na innym innym procesorze), procesorze), jak jak i i w jednoprocesorowych jednoprocesorowych (korzystając (korzystając z z podziału podziału czasu). czasu). Paweł Rogaliński - programowanie współbieŝne 23