3URJUDPRZDQLHZVSyáELH*QHZVWS

Podobne dokumenty
Komunikacja asynchroniczna w modelu rozproszonym

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

Wprowadzenie do programowania współbieżnego

Modelowanie procesów współbieżnych

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

Programowanie Równoległe i Rozproszone

4. Procesy pojęcia podstawowe

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

Rozwi zania klasycznych problemów w Rendezvous

Klient-Serwer Komunikacja przy pomocy gniazd

Programowanie równoległe i rozproszone. Monitory i zmienne warunku. Krzysztof Banaś Programowanie równoległe i rozproszone 1

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

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

Przegląd zagadnień programowania wspólbieżnego

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

Wprowadzenie do programowania współbieżnego i rozproszonego

4. Procesy pojęcia podstawowe

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

Semafor nie jest mechanizmem strukturalnym. Aplikacje pisane z użyciem semaforów są podatne na błędy. Np. brak operacji sem_post blokuje aplikację.

SYSTEMY OPERACYJNE WYKLAD 6 - procesy

Synchronizacja procesów i wątków

Proces z sekcją krytyczną. Synchronizacja procesów. Synchronizacja procesów, cd. Synchronizacja procesów, cd. Synchronizacja procesów, cd

Monitory. Jarosław Kuchta

Wykład 4. Synchronizacja procesów (i wątków) cześć I. Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB

WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA

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

Programowanie wspóªbie»ne

Strategia "dziel i zwyciężaj"

Programowanie Współbieżne. Wstęp

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

Semafor nie jest mechanizmem strukturalnym. Aplikacje pisane z użyciem semaforów są podatne na błędy. Np. brak operacji sem_post blokuje aplikację.

Systemy operacyjne. Zajęcia 11. Monitory

Analiza efektywności przetwarzania współbieżnego. Wykład: Przetwarzanie Równoległe Politechnika Poznańska Rafał Walkowiak Grudzień 2015

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

Klasyczne problemy synchronizacji

Algorytmika i pseudoprogramowanie

4. Procesy pojęcia podstawowe

Informatyka wprowadzenie do algorytmów (II) dr hab. inż. Mikołaj Morzy

Analiza efektywności przetwarzania współbieżnego

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

Podstawy Informatyki. Inżynieria Ciepła, I rok. Iteracja warunkowadopóki(while) Blok instrukcji. Pascal: begin instrukcja1; C: { end;

Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych

Wybrane działy Informatyki Stosowanej

Sortowanie przez wstawianie Insertion Sort

SOP2 - semafory. grudzień

ECDL Podstawy programowania Sylabus - wersja 1.0

Synchronizacja procesów

Definicje. Algorytm to:

Analiza ilościowa w przetwarzaniu równoległym

Informatyka A. Algorytmy

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

Programowanie współbieżne Wykład 5. Rafał Skinderowicz

Programowanie wielowątkowe. Tomasz Borzyszkowski

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

Wstęp do programowania 2

Opracował: Jan Front

EGZAMIN MATURALNY Z INFORMATYKI 11 MAJA 2018 POZIOM PODSTAWOWY. Godzina rozpoczęcia: 14:00 CZĘŚĆ I WYBRANE: Czas pracy: 75 minut

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

Zajęcia nr 5 Algorytmy i wskaźniki. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

PROBLEMY NIEROZSTRZYGALNE

Modelowanie i Programowanie Obiektowe

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

Porównanie czasów działania algorytmów sortowania przez wstawianie i scalanie

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

Monitory. Wady semafora

Przeplot. Synchronizacja procesów. Cel i metody synchronizacji procesów. Wątki współbieżne

Równoległe algorytmy sortowania. Krzysztof Banaś Obliczenia równoległe 1

Podziaª pracy. Cz ± II. 1 Tablica sortuj ca. Rozwi zanie

Technologie informacyjne Wykład VII-IX

Proces z sekcją krytyczną. Synchronizacja procesów. Synchronizacja procesów, cd. Synchronizacja procesów, cd. Synchronizacja procesów, cd

Programowanie współbieżne i rozproszone

Kompletna dokumentacja kontenera C++ vector w -

Algorytm poprawny jednoznaczny szczegółowy uniwersalny skończoność efektywność (sprawność) zmiennych liniowy warunkowy iteracyjny

Zapisywanie algorytmów w języku programowania

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

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

PRÓBNY EGZAMIN MATURALNY Z INFORMATYKI STYCZEŃ Arkusz I. Czas pracy: 60 minut Liczba punktów do uzyskania: 15

Algorytmy równoległe: prezentacja i ocena efektywności prostych algorytmów dla systemów równoległych

Procesy i wątki. Blok kontrolny procesu. Proces. Proces - elementy. Stan procesu. Blok kontrolny procesu

Stan procesu. gotowy - czeka na przydział procesora, zakończony - zakończył działanie.

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

Programowanie Równoległe i Rozproszone. Algorytm Kung a. Algorytm Kung a. Programowanie Równoległe i Rozproszone Wykład 8. Przygotował: Lucjan Stapp

INFORMATYKA W SZKOLE. Podyplomowe Studia Pedagogiczne. Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227

Algorytmy sortujące 1

Wprowadzenie. Dariusz Wawrzyniak 1

Fazy procesora i wejścia-wyjścia. Planowanie przydziału procesora. Czasy faz procesora. Planowanie przydziału procesora

Spis treści. Rozdział 1. Aplikacje konsoli w stylu ANSI C i podstawowe operacje w Visual C

Planowanie przydziału procesora

Koordynacja procesów w środowisku rozproszonym

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

Systemy operacyjne III

SYSTEMY OPERACYJNE: STRUKTURY I FUNKCJE (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX)

Komunikacja za pomocą potoków. Tomasz Borzyszkowski

Iteracje. Algorytm z iteracją to taki, w którym trzeba wielokrotnie powtarzać instrukcję, aby warunek został spełniony.

Proces z sekcją krytyczną. Synchronizacja procesów. Synchronizacja procesów, cd. Synchronizacja procesów, cd. Synchronizacja procesów, cd

Podstawy programowania. Wykład: 9. Łańcuchy znaków. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

RÓBNY EGZAMIN MATURALNY Z INFORMATYKI

Wstęp do programowania

Struktury danych i złożoność obliczeniowa Wykład 2. Prof. dr hab. inż. Jan Magott

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

Transkrypt:

3URJUDPRZDQLHZVSyáELH*QHZVWS Problem sortowania N liczb Algorytm sekwencyjny sortuj(1, N); NRV]WVRUWRZDQLDSU]H]SURVW]DPLDQN 2 SRUyZQD $OJRU\WPUyZQROHJá\ cobegin {wykonaj równolegle} VRUWXMSyáB1 VRUWXMSyáB11 coend; VFDODMSyáB11 NRV]WDOJRU\WPXUyZQROHJáHJRN 2 /8) + NSRUyZQD $OJRU\WPUHNXUHQF\MQ\NWyU\QDND*G\PSR]LRPLHUHNXUHQFML wykonuje równolegle dwa sortowania: - koszt: 1 +3 + 7 + 15 +... + (N-1) < 2N Z\PDJDX*\FLDN/2 procesorów =ár*rqrülorf]\qrzd algorytmu: rozmiar (liczba procesorów) czas $OJRU\WP\VRUWRZDQLDUyZQROHJáHJR - zrównoleglone sortowanie przez scalanie: Ο(N 2 ) VLHüVRUWXMFDSDU]\VWRQLHSDU]\FLH2N (log N) 4 ) RSW\PDOQDVLHüVRUWXMFD2N log N) 6LHüRVWDá\FKSRáF]HQLDFKND*G\SURFHVRUMHVWSRáF]RQ\]H VWDáOLF]ESURFHVRUyZVVLDGXMF\FK W sieci parzysto-nieparzystej]nd*ghjrnrpsdudwrudnru]\vwdvl tylko raz Sieci systolicznesrgf]dvsrmhg\qf]hjrsu]helhjxsurfhvru\v uaktywniane wielokrotnie

5yZQROHJáRüLSRWHQFMDOQDUyZQROHJáRü QDSR]LRPLHVSU]WX - na poziomie oprogramowania 3URJUDPRZDQLHZVSyáELH*QH 1RWDFMDLWHFKQLNLGRZ\UD*DQLDSRWHQFMDOQHMUyZQROHJáRFL - Problem synchronizacji i komunikacji cobegin VRUWXMSyáBQ VRUWXMSyáBQQ coend; VFDODMSyáBQQ 5yZQROHJáRüPR*HQLHW\ONRXVSUDZQLüG]LDáDQLHSURJUDPXDOH UyZQLH*SRSUDZLüMHJRMDNRüSHZQHSUREOHP\ SURJUDPLVW\F]QHV]QDWXU\UyZQROHJáH cobegin while(true) { /* proces 1 */ czytaj znak z klawiatury; pisz go do portu szeregowego; } while (TRUE) { /* proces 2 */ czytaj znak z portu szeregowego; pisz go na ekran; } coend; 3URFHV\ZVSyáELH*QH Proces sekwencyjnyuhdol]dfmdsurjudpxzrnuhorq\p URGRZLVNXEG(ZVWU]\PDQDUHDOL]DFMDZRF]HNLZDQLXQD pewne zdarzenie Cechy procesu sekwencyjnego: - obiekt aktywny, który ma przydzielone zasoby - stany

Wykonywany Zawieszony Gotowy 'ZDSURFHV\VHNZHQF\MQHVZVSyáELH*QHMHOLZ\NRQ\ZDQLH MHGQHJR]QLFK]DF]áRVLSRUR]SRF]FLXDOHSU]HG ]DNRF]HQLHPGUXJLHJR P1 P2 Proces ma przydzielony procesor wirtualny czas :VSyáELH*QRü jako DEVWUDNFMDUyZQROHJáRFL 3URJUDPZVSyáELH*Q\VNáDGDVL]NLONXFRQDMPQLHMGZyFK SURJUDPyZVHNZHQF\MQ\FKNWyU\FKFLJLZ\NRQDZF]HV SU]HSOHFLRQH3URFHV\WH]Z\NOHPXV]VLNRPXQLNRZDü, aby V\QFKURQL]RZDüG]LDáDQLHOXEZ\PLHQLDüGDQH Klasyfikacja: procesy UR]áF]QH interakcyjne konkurencyjne ZVSyá]DZRGQLF]FH NRRSHUXMFH ZVSyáSUDFXMFH 3RSUDZQRüSURJUDPyZZVSyáELH*Q\FK 1LHSU]\GDWQRüWHVWRZDQLDND*GRUD]RZHZ\NRQDQLHEáGQHJR SURJUDPXPR*HGDüLQQ\Z\QLN

&LJZ\NRQDZF]\SURJUDPXZVSyáELH*QHJRklasa SU]HSOHFLRQ\FKFLJyZZ\NRQDZF]\FKSURFHVyZVNáDGRZ\FK 'ODZ\ND]DQLDQLHSRSUDZQRFLZ\VWDUF]\SRGDüMHGHQ VFHQDULXV]SU]HSODWDQLDRSHUDFMLGODNWyUHJRMHVW(OH :ádvqrflsurjudpyz :ádvqrü]dshzqldqldeh]slhf]hvwzddqjsafety) DQDORJLDGRF]FLRZHMSRSUDZQRFLZSURJUDPRZDQLX sekwencyjnym - wynika z jawnej i statycznej specyfikacji programowanego problemu SU]\NáDG*GDQLHZ]DMHPQHJRZ\NOXF]DQLDUHMRQyZNU\W\F]Q\FK ZDUXQHNEH]Z]JOGQ\QLH]PLHQLDVLZF]DVLHZ\NRQ\ZDQLD programu) :ádvqrü*\zrwqrfl (ang. liveness) DQDORJLDGRFDáNRZLWHMSRSUDZQRFLZáDVQRüVWRSX GRW\F]\G\QDPLF]Q\FKDVSHNWyZND*GHRF]HNLZDQH]GDU]HQLH NLHG\QDVWSL SU]\NáDG\QDUXV]HQLDzastój, ]DJáRG]HQLH Zastój (ang. deadlocknd*g\surfhvzshzq\p]elru]hsurfhvyz F]HNDQD]GDU]HQLHNWyUHPR*HE\üVSRZRGRZDQHW\ONRSU]H] proces z tego zbioru przydzielony P1 potrzebny Zasób A Zasób B potrzebny P2 przydzielony =DJáRG]HQLH (ang. starvationsurfhvmhvwqlhvnrf]hqlhgáxjr ZVWU]\P\ZDQ\JG\*]GDU]HQLHQDNWyUHF]HND]DZV]H powoduje wznowienie innego procesu

PQLHMJUR(QHSURFHVRUQDGDOZ\NRQXMHVHQVRZQSUDF - zwykle trudniejsze do wykrycia 6SUDZLHGOLZRüQLHGHILQLXMHP\IRUPDOQLHF]DVDPLEG]LHP\ FHORZRRGQLHMRGVWSRZDüSULRU\WHW\ Pomocny formalizm: logika temporalna SR]QDF]D*HSMHVWzawsze prawdziwe SR]QDF]D*HSZNRFXEG]LHSUDZG]LZH 3RGDQHRSHUDWRU\XáDWZLDMZQLRVNRZDQLHRVWZLHUG]HQLDFK NWyU\FKSUDZG]LZRü]PLHQLDVLZF]DVLH 8GRZRGQLHQLHSRSUDZQRFLSURJUDPXZVSyáELH*QHJRZ\PDJD Z\ND]DQLD*HVVSHáQLRQH]DUyZQRZáDVQRFL]DSHZQLDQLDMDN L*\ZRWQRFL Schemat procesu repeat operacje lokalne SURWRNyáZVWSQ\ rejon krytyczny SURWRNyáNRFRZ\ forever Operacje lokalne - faza nieistotna z punktu widzenia V\QFKURQL]DFML3URFHVPR*HVL]DWU]\PDüZVZRMHMVHNFML ORNDOQHMDOHQLHPR*HWR]DNáyFLüSUDF\SR]RVWDá\FKSURFHVyZ Rejon krytycznyid]dz\pdjdmfdv\qfkurql]dfml3u]hzd*qlh chodzi o wzajemne wykluczanievluhmrqyzzádvqrü ]DSHZQLDQLD-HOLNLONDSURFHVyZSUyEXMHZHMüGRVZRLFK UHMRQyZNU\W\F]Q\FKWRMHGQHPXPXVLVLWRZNRFXXGDü EUDN]DVWRMX-HOLSURFHVFKFHZHMüGRUHMRQXNU\W\F]QHJRWR ZNRFXZHMG]LHEUDN]DJáRG]HQLD 3URWRNRá\NRQVWUXNFMHV\QFKURQL]XMFHSUREOHPM]\ND VSHF\ILNDFML0XV]E\üNUyWNLHLHIHNW\ZQH

3U]\MPRZDQH]DáR*HQLD 3URFHV\VVáDERSRZL]DQH (ang. loosely connectedzlnv]rü F]DVXSURFHVSRZLFDQDVZRMHRSHUDFMHORNDOQHDZUHMRQLH krytycznym przebywa krótko i okazjonalnie 1LHZROQRQLF]DNáDGDüREH]Z]JOGQ\FKLZ]JOGQ\FK V]\ENRFLDFKZ\NRQ\ZDQLD -HG\QH]DáR*HQLDGRW\F]FHF]DVXNWyUHVLSU]\MPXMHWR *DGHQSURFHVQLHSR]RVWDMHQLHVNRF]HQLHGáXJRZVZRLPUHMRQLH krytycznym MHOLVSURFHV\JRWRZHWRZVNRF]RQ\PF]DVLHMHGHQ]QLFK przejdzie w stan wykonywania Systemy scentralizowane i rozproszone ']LHORQH]PLHQQHJOREDOQHMDNRUHSUH]HQWDFMDSDPLFLZVSyOQHM w systemach scentralizowanych i wieloprocesorach.rpxqlndfmdsurfhvyzsrsu]h]z\v\ádqlhlrgelhudqlh komunikatów w systemach rozproszonych.odv\f]qhsureohp\zvsyáelh*qrfl Problem producenta i konsumenta 3U]\NáDG]*\FLD: fabryka, magazyn, odbiorca 3U]\NáDG]V\VWHPyZOLF]F\FKX*\WNRZQLNNRPSXWHUDEXIRU klawiatury, system operacyjny :DUXQNLSRSUDZQRFL.RQVXPHQWSRELHUDSRUFMZ\SURGXNRZDQSU]H]SURGXFHQWD - Producent czeka na wolne miejsce w buforze.rqvxphqwf]hndqdsháqhplhmvfhzexiru]h Warianty: - bez bufora - bufor jednoelementowy - bufor N-elementowy

- bufor nieograniczony (producent nie czeka) - wielu producentów - wielu konsumentów SRUFMHUy*QHMZLHONRFL =DMPXMHP\VLV\QFKURQL]DFMSURGXFHQWDLNRQVXPHQWD3UREOHP GRERUXZLHONRFLEXIRUDMHVWSR]DQDV]\PL]DLQWHUHVRZDQLDPL Problem czytelników i pisarzy 3U]\NáDG: rezerwacja miejsc lotniczych :DUXQNLSRSUDZQRFL - Gdy pisarz zapisuje, nikt inny nie czyta, ani nie pisze *G\F]\WHOQLNF]\WDLQQLF]\WHOQLF\PRJF]\WDü Warianty: SULRU\WHWF]\WHOQLNyZGRSXV]F]HQLH]DJáRG]HQLDSLVDU]\ SULRU\WHWSLVDU]\GRSXV]F]HQLH]DJáRG]HQLDF]\WHOQLNyZ UyZQHSULRU\WHW\EH]PR*OLZRFL]DJáRG]HQLD - ograniczona liczba miejsc w czytelni 3UREOHPSLFLXILOR]RIyZ 3U]\NáDGDEVWUDNF\MQ\DOHXND]XMF\SRGVWDZRZHSUREOHP\ ZVSyáELH*QRFL Warianty narodowe: ZáRVNLILOR]RIRZLHMHG]PDNDURQZLGHOFDPL FKLVNLILOR]RIRZLHMHG]U\*SDáHF]NDPL :DUXQNLSRSUDZQRFL )LOR]RIMHMHOLPDREDZLGHOFH )DGHQZLGHOHFQLHPR*HE\üMHGQRF]HQLHZSRVLDGDQLXGZyFK filozofów Warianty: ZLGHOFHSRGQRV]RQHSRNROHLPR*OLZRüEORNDG\ ZLGHOFHSRGQRV]RQHMHGQRF]HQLHPR*OLZRü]DJáRG]HQLD - dodatkowo lokaj