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

Wielkość: px
Rozpocząć pokaz od strony:

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

Transkrypt

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

2 Tematyka wykładu Wprowadzenie. Podstawowe pojęcia Wątki i procesy. Metody i modele synchronizacji Klasyczne problemy współbieżne i ich rozwiązania Programowanie współbieżne w Javie i C# Organizacja zajęć Laboratorium: Procesy w Uniksie, programowanie z biblioteką pthread, programowanie współbieżne w językach C#/JAVA Ocenianie: z przedmiotu można otrzymać maksymalnie 40 punktów (30 laboratorium + 10 wykład). Zaliczenie przedmiotu na ocenę 3: >20 punktów 2

3 Paradygmaty programowania Programowanie proceduralne Programowanie obiektowe Programowanie współbieżne obejmuje projektowanie i tworzenie programów, które w fazie wykonania składają się z co najmniej dwóch jednostek wykonywanych współbieżnie (każdy z nich jest procesem sekwencyjnym). Wykonywanie współbieżne może wymagać zapewnienia komunikacji/synchronizacji pomiędzy jednostkami konkurującymi o dostęp do zasobów współdzielonych Programowanie równoległe Współbieżnie: jedna jednostka wykonania rozpoczyna swoją pracę zanim druga zakończy swoje działanie. Obliczenia współbieżne mogą być wykonywane w systemach jedno- i wieloprocesorowych Z czego wynika potrzeba współbieżności? Równoległość. Jednoczesność. Współbieżność Kiedy możliwe jest osiągnięcie przetwarzania równoległego? Nie wszystkie procesy współbieżne są równie ciekawe 3

4 Motywacja programowania równoległego i współbieżnego Obliczenia współbieżne stanowią szerszą klasę niż obliczenia równoległe (mogą być wykonywane zarówno w systemach jedno- jak i wieloprocesorowych) Komputery współcześnie produkowane to maszyny wieloprocesorowe (wielordzeniowe). Programowanie równoległe i współbieżne zapewnia wykorzystanie mocy zapewnianej na poziomie sprzętowym (fizycznym) Przetwarzanie równoległe zapewnia przyspieszenie obliczeń w stosunku do przetwarzania sekwencyjnego Przetwarzanie współbieżne (nawet w środowiskach jednoprocesorowych) pozwalają na dekompozycję funkcjonalną zadań/programów (niezależne przetwarzanie danych, operacje IO, komunikacja z użytkownikiem, etc.) 4

5 Programy współbieżne i przeplot Program współbieżny złożony jest procesów sekwencyjnych wykonywanych współbieżnie Każdy możliwy ciąg wykonań kolejnych akcji/instrukcji procesów sekwencyjnych stanowi przeplot Projektując programy współbieżne nie można założyć, że pewne przeploty są niemożliwe do zrealizowania. Eliminacja możliwych, niepożądanych przeplotów powinna odbywać się na etapie projektowania rozwiązania i jest osiągana przez synchronizację Przykład: 1 2 A B P1 P2 1 2 A B procesy 1 A B 2 1 A 2 B A B 1 2 A 1 2 B A 1 B 2 możliwe przeploty 5

6 Przetwarzanie w środowiskach z pamięcią wspólną (1) W systemach z pamięcią wspólną zasób pamięci jest współdzielony przez wszystkie procesory (w szczególności przez jeden procesor) Konieczne jest zapewnienie bezpiecznego wykonania poszczególnych zadań przez jeden lub wiele procesorów (izolacja zadań). Dlaczego? Bezpieczeństwo zapewnia odpowiednia organizacja jednostek przetwarzania (procesy, wątki) w systemie operacyjnym oraz mechanizmy synchronizacji (kontroli dostępu do danych) W systemach z pamięcią wspólną poszczególne zadania realizowane są przez procesy i wątki funkcjonujące w ramach jednego procesu Proces to jednostka sekwencyjnie wykonywanych przetwarzań (strumień sekwencyjnie wykonywanych instrukcji)/program w trakcie wykonywania. System operacyjny zapewnia wzajemną izolację procesów (zalety i wady) Każdy proces posiada kod, segment danych (zmienne globalne), stos (adresy powrotu z wywoływanych procedur oraz zmienne lokalne oraz rejestry Wątki są jednostkami przetwarzania wydzielonymi w ramach procesu. Posiadają wspólny kod oraz dane (współdzielą zmienne globalne), niezależne stosy (zmienne lokalne) i rejestry. Wątki mają dostęp do pamięci współdzielonej 6

7 Przetwarzanie w środowiskach z pamięcią wspólną (2) Wspólny segment danych wątków jednego procesu wykorzystywany jest do zapewnienia komunikacji (wymiany danych) pomiędzy wątkami Gdy tworzony jest proces domyślnie tworzony jest wątek główny, z którego ciała możliwe jest utworzenie innych wątków. Proces kończy swoje działanie, gdy działanie kończy ostatni z jego wątków Stany procesu: new, running, waiting, ready, terminate Wątki bywają niekiedy nazywane lekkimi procesami, ponieważ obciążają system w mniejszym stopniu niż procesy: utworzenie wątku zajmuje mniej czasu niż utworzenie procesu wątki są mniej pamięciożerne przełączanie kontekstu wątku zajmuje mniej czasu niż przełączanie procesora pomiędzy procesami (zapisy w PCB) 7

8 Przetwarzanie w środowiskach z pamięcią wspólną (3) Przełączanie kontekstu wymaga zapisu i odczytu danych z bloku kontrolnego procesu (Process Control Block PCB) PCB jest strukturą utrzymywaną w pamięci operacyjnej przez system operacyjny i stanowi reprezentację procesu PCB zawiera m. in. następujące informacje identyfikator procesu (Process ID PID) stan procesu licznik instrukcji konieczny do przywrócenia właściwego działania procesu po jego przerwaniu informacje przeznaczone dla schedulera: priorytet procesu, wykorzystany czas procesora, itd. Przełączanie kontekstu zachodzi wyłącznie w systemach z wywłaszczaniem (z podziałem czasu). 8

9 Przetwarzanie w środowiskach z pamięcią lokalną (1) Zgodnie z definicją systemy z pamięcią lokalną (systemy rozproszone) to systemy, w których wykonywane procesy posiadają własne, niezależne przestrzenie adresowe W takich przypadkach nie istnieje pojęcie pamięci współdzielonej. Tym samym nie ma możliwości synchronizacji procesów za pomocą mechanizmów takich jak semafory, monitory, zamki, których celem jest ochrona zasobu pamięci przed niepożądanymi interakcjami różnych procesów W systemach rozproszonych synchronizacja współpracujących lub konkurujących procesów jest realizowana przez mechanizm komunikatów. Komunikaty mogą zawierać informacje sterujące, ale również dane (np. parametry, dane wejściowe do przetwarzania) Programowanie dla systemów z pamięcią lokalną nazywane jest programowaniem rozproszonym Pojęcie programowania rozproszonego nie ogranicza się wyłącznie do systemów, w których przestrzenie adresowe poszczególnych procesorów są fizycznie separowane. Programowanie rozproszone odnosi się również do programowania układów scentralizowanych, w których procesy z pewnych powodów nie 9 wymieniają informacji za pomocą zmiennych współdzielonych

10 Przetwarzanie w środowiskach z pamięcią lokalną (2) Wymiana komunikatów jest wspierana przez systemy operacyjne (potoki, łącza nazwane/nienazwane, gniazdka, itd.) Ze względu na związki czasowe pomiędzy procesami wzajemnie się komunikującymi mechanizmy komunikacji można podzielić na synchroniczne wymiana informacji następuje w trakcie spotkania, tzn. proces wysyłający komunikat jest wstrzymywany tak długo, jak długo proces odbierający nie jest gotowy do odbioru komunikatu (i na odwrót) asynchroniczne spotkanie nie jest konieczne; wysłanie komunikatu może nastąpić w dowolnej chwili (gdy spełnione są pewne dodatkowe warunki, które nie obejmują jednak gotowości odbiorcy). Wykorzystywana jest w tym przypadku strona trzecia (pośrednicząca) w postaci np. bufora, kolejki buforującej blokujące wykonanie instrukcji następujące po instrukcji odbioru/wysłania danych jest możliwe dopiero po zakończeniu procesu odbioru/wysyłania nieblokujące przejście do kolejnej instrukcji następuje bez oczekiwania na zakończenie wysyłania/odbierania komunikatu 10

11 Przetwarzanie w środowiskach z pamięcią lokalną (3) W modelu rozproszonym w zależności od sposobu współpracy procesów komunikaty mogą być przekazywane na różne sposoby: komunikat przeznaczony dla konkretnego procesu komunikat przeznaczony dla pierwszego odbiorcy (wysyłający nie musi wiedzieć, który proces konkretnie odbierze komunikat) komunikat przeznaczony do wszystkich (broadcast) Komunikaty są wykorzystywane do bezpośredniego przekazywania danych pomiędzy procesami i/lub do jawnej synchronizacji. Synchronizacja może być realizowana np. w modelu z pojedynczym tokenem. W takim przypadku wykonanie pewnych operacji (sekcja krytyczna, bufor) jest możliwe przez ten proces, który jest aktualnie w posiadaniu tokenu 11

12 Synchronizacja i komunikacja pomiędzy procesami i wątkami Komunikacja przesyłanie komunikatów (tokenów?) pomiędzy współpracującymi/współzawodniczącymi wątkami lub procesami. Komunikacja synchroniczna i asynchroniczna. Synchronizacja zapewnienie pożądanych zależności czasowych wykonujących się procesów lub wątków. Synchronizacja = uporządkowanie w czasie Kiedy synchronizacja jest niezbędna? Gdy procesy współdzielą wspólne struktury danych (np. zmienne globalne) lub współzawodniczą w dostępnie do wspólnego zasobu/struktury. Dlaczego synchronizacja jest w takich przypadkach konieczna? Pewne procesy dostarczają dane dla innych procesów. Uwaga 1: Programowanie współbieżne obejmuje również zaprojektowanie i implementację komunikacji i/lub synchronizacji procesów lub wątków. Uwaga 2: W ogólności programista nie może zakładać określonej kolejności wykonania się procesów/wątków. Należy zakładać losowość. 12

13 Poprawność programów sekwencyjnych W przypadku programów sekwencyjnych definicja poprawności wymaga spełnienia dwóch warunków: warunku stopu oraz tego, że dla dowolnych poprawnych danych wejściowych program/algorytm po zatrzymaniu da poprawne wyniki Poprawność programów współbieżnych Bezpieczeństwo niedopuszczalność do sytuacji niepożądanej (wykluczenie stanu niepożądanego) Żywotność każdy proces w końcu wykona swoją pracę (w szczególności: otrzyma dostęp do współdzielonego zasobu) Przejawy braku żywotności Zakleszczenie (deadlock) globalny brak żywotności; dotyczy blokady całego systemu współbieżnego (zakleszczają się co najmniej dwa procesy/wątki). Jest łatwiejsze do wykrycia (ze względu na swój globalny charakter) Zagłodzenie (wykluczenie, lockout, starvation) lokalny brak żywotności. W jakich warunkach może dojść do zagłodzenia i jak eliminować takie warunki? W ogólności klasyczne testowanie programów nie daje dowodu na to, że dany program jest poprawny 13

14 Zakleszczenie 14

15 Zakleszczenie. Warunki konieczne (niewystarczające) Wzajemne wykluczanie Cykl w grafie oczekiwania na zasoby (np. P1 zajmuje Z1, P2 zajmuje Z2, P1 oczekuje na Z2, P2 oczekuje na Z1 generuje cykl w dwuwierzchołkowym grafie oczekiwania) Brak wywłaszczania zasób (pamięć) może być zwolniony przez wątek/proces dobrowolnie, ale nie może być odebrany przez mechanizm nadzorujący Przetrzymywanie zasobu i oczekiwanie na inny Różne strategie obsługi zakleszczeń Zapobieganie (doprowadzenie do sytuacji gdy spełnienie co najmniej jednego z powyższych warunków nie jest możliwe) Unikanie (niedopuszczanie do sytuacji zakleszczenia, aktywne badanie żądań dostępu do zasobów). Algorytm bankiera Wykrywanie i obsługa (usuwanie i przywracanie poprawnego stanu systemu, np. poprzez przerwanie działania wszystkich procesów lub wyznaczanie ofiary zakleszczenia i przerwanie wyłącznie jej procesu/wątku pozwala to funkcjonować wszystkim pozostałym. Identyfikacja cykli w grafach oczekiwania) Ignorowanie problemu 15

16 Zapobieganie zakleszczeniom Wzajemne wykluczanie rezygnacja z tego warunku w praktyce nie jest możliwa w systemach ze wspólną pamięcią (systemach scentralizowanych) Cykl w grafie oczekiwania na zasoby Brak wywłaszczania -wprowadzanie możliwości wywłaszczania, np. poprzez odbieranie udostępnionych zasobów procesowi, który żąda dostępu do zasobu zajętego przez inny proces. Rozwiązanie prowadzi jednak do niskiego wykorzystania zasobów i możliwości zagłodzenia procesów wykorzystujących dużą liczbę zasobów (małe prawdopodobieństwo skompletowania zestawu wymaganych zasobów). Biblioteki programistyczne udostępniają metody (np. trylock()), które gwarantują niedopuszczalność sytuacji zajęcia jednego zasobu i oczekiwania na inny. W takich przypadkach zasób jest zajmowany wyłącznie, gdy jest wolny Przetrzymywanie zasobu i oczekiwanie na inny -rezygnacja z przetrzymywania i oczekiwania na inny zasób może się sprowadzać do wymagania by proces otrzymywał komplet wymaganych zasobów (proces otrzymuje komplet zasobów lub żadnego). Prowadzi to do problemów jak w punkcie wyżej 16

17 Szeregowanie wątków lub procesów Procedury systemu operacyjnego (scheduler, dispatcher, planista) odpowiadają za szeregowanie wątków lub procesów do wykonania. Wybór dokonywany jest z puli wątków gotowych do wykonania (inne możliwe stany wątków: nowy, aktywny, gotowy do wykonania, czekający, zakończony) Procedury szeregujące mogą stosować różne strategie szeregowania i uwzględniać różne atrybuty wątków (priorytet, stan wątku, kolejność zgłaszania żądania dostępu do zasobu, szacowanego czasu do zakończenia wykonywania, etc.) Zadaniem schedulerajest zapewnienie optymalnego wykorzystania zasobów w systemach wielowątkowych (wieloprogramowych) Możliwe jest planowanie z wywłaszczaniem i bez wywłaszczania Planowanie bez wywłaszczania po przejściu wątku do stanu aktywnego planista pozostaje bezczynny aż do zakończenia fazy wykonywania wątku Planowanie wywłaszczaniem po przejściu wątku do stanu aktywnego wątkowi mogą być odebrane zasoby po zajściu odpowiedniego zdarzenia w systemie. Wówczas zasób oddawany jest innemu wątkowi z puli wątków gotowych do wykonania Strategie planowania: FCFS, SJF, priorytetowe, etc. 17

18 Klasyczne problemy współbieżności. Wzajemne wykluczanie (1) Stanowi abstrakcję problemu przydziału dostępu do zasobu współdzielonego (np. kanału komunikacyjnego). Problem pojawia się gdy liczba chętnych do skorzystania z zasobu przekracza liczbę obiektów, które z zasobu mogą korzystać Zasób współdzielony zasób, który może być w sposób wyłączny wykorzystywany przez wiele współzawodniczących procesów (w danej chwili z zasobu może korzystać jeden lub ograniczona liczba wątków/procesów) Sekcja krytyczna fragment kodu (fragment procesu), w którym następuje korzystanie z zasobu współdzielonego Problem: należy zapewnić, by w danej chwili z zasobu mógł korzystać tylko jeden proces (lub ograniczona od góry ich liczba), a pozostałe, które chcą uzyskać do niego dostęp będą czekać na jego zwolnienie. Jaka konstrukcja programistyczna zapewnia taki efekt? Problem oczekiwania aktywnego i pasywnego Założenie do rozwiązania problemu: czas wykonania sekcji krytycznej przez każdy z procesów jest skończony (tak krótki jak to możliwe). Co w przypadku gdyby założenie wyłączyć? Rozwiązanie: protokoły wstępne i końcowe 18

19 Klasyczne problemy współbieżności. Wzajemne wykluczanie (2) Wykorzystanie instrukcji specjalnych przed wejściem do sekcji krytycznej i po wyjściu z niej Przykład: while true begin end przetwarzanie lokalne protokół wstępny strefa krytyczna protokół końcowy Sekcja krytyczna jest otoczona specjalnymi blokami kodu Strefy lokalne mogą być wykonywane współbieżnie przez wiele różnych procesów Warunek bezpieczeństwa jest realizowany przez zagwarantowanie, że dwa procesy/wątki nigdy nie znajdą się jednocześnie w swoich sekcjach krytycznych Wzajemne wykluczanie jest wymagane zarówno w systemach scentralizowanych jak i rozproszonych. Realizuje się je różnymi metodami (np. muteksy- w systemach scentralizowanych, tokeny- w systemach rozproszonych) 19

20 Synchronizacja niskopoziomowa. Algorytm Dekkera (1) Algorytm Dekkera jest algorytmem synchronizacji dwóch procesów/wątków współbieżnych bez konieczności odwoływania się do gotowych narzędzi synchronizacyjnych Algorytm Dekkera sprowadza się do odpowiedniego zakodowania sekcji wejściowej i wyjściowej chroniących sekcję krytyczną Przy założeniu dwóch procesów wymaga 3 zmiennych współdzielonych - czyja_kolej = {1,2}. Zmienna pełni rolę arbitra rozstrzygającego, który proces może wejść do sekcji krytycznej. Ustawienie inicjalne wartości zmiennej łamie symetrię pomiędzy procesami/wątkami i określa kolejność w jakiej będą one wykonywane -dwuelementowa tablica flag k. Każdy z procesów ma dostęp do jednego pola tablicy. Pole jest ustawiane na true, gdy dany proces chce wejść do sekcji krytycznej. Inicjalnie flagi ustawione są na false Każdy z procesów posiada swój identyfikator (np. identyfikator liczbowy) 20

21 Synchronizacja niskopoziomowa. Algorytm Dekkera (2) protokół wejściowy. P jest identyfikatorem procesu; przyjmuje wartości 1 lub 2 protokół wyjściowy 21

22 Synchronizacja niskopoziomowa. Algorytm Dekkera (3) Podana wersja algorytmu jest poprawna dla dwóch procesów/wątków. Algorytm można uogólnić do Nprocesów/wątków i wówczas wymaga 2N-1zmiennych. Liczba procesów/wątków musi być znana z góry (niepraktyczne!) Poważnym problemem jest aktywne czekanie (busy waiting; proces oczekuje na udostępnienie zasobu wykonując pętlę sprawdzającą jego dostępność). Dlaczego aktywne czekanie jest problemem? Ponieważ proces oczekujący na wejście do swojej sekcji krytycznej jest wykonywany pożytkując czas procesora na wykonywanie pustych przebiegów pętli W ogólności mechanizm aktywnego czekania powinien być eliminowany z rozwiązań współbieżnych. Aktywne czekanie można zastąpić mechanizmem wstrzymywania wątków/procesów W przypadku, gdy tylko jeden proces chce korzystać z sekcji krytycznej uzyskuje dostęp bez ograniczeń Procesy korzystają z sekcji krytycznej naprzemiennie (wymuszone przez ustawianie zmiennej czyja_kolej). W przypadku, gdy jeden z procesów przerwie swoje działanie z błędem drugi z procesów jest blokowany 22

23 Algorytm Petersona. Podejście 1 Rozpatrzmy poniższy sposób synchronizacji za pomocą jednej zmiennej globalnej. Niech zmienna czyja_kolej jest inicjalnie ustawiona na wartość 1. Przykład: Pytanie: co dzieje się w sytuacji, gdy tylko jeden proces chcewchodzić do sekcji krytycznej? Można pokazać, że taki sposób rozwiązania posiada własność bezpieczeństwa, tzn. tylko jeden proces w danym momencie może przebywać w sekcji krytycznej Problem faworyzacji procesu na który wskazuje inicjalna wartość zmiennej czyja_kolej. Na czym polega faworyzowanie procesu? 23

24 Algorytm Petersona. Podejście 1 c.d. Algorytm nie spełnia warunku żywotności. Dany proces, teoretycznie, może dowolnie długo wykonywać swoją sekcję lokalną -w szczególności nieskończenie długo. W takim przypadku drugi z procesów nie wejdzie do sekcji krytycznej zostanie zagłodzony. Procesy są ściśle ze sobą powiązane: wykonują się w sekwencji 1,2,1,2,1,2, etc. Jako pierwszy wykona się zawsze wątek/proces wskazywany przez inicjalne ustawienie zmiennej czyja_kolej. Nie jest możliwe wykonanie procesów w sekwencji,1, 1,. lub, 2, 2, Powyższe jest problemem szczególnie w sytuacji, gdy czas wykonania sekcji lokalnych dwóch procesów znacznie się różni. W takiej sytuacji proces szybszy jest spowalniany przez proces wolniejszy (czeka na zakończenie jego pracy) Problem pojawia się w przypadku scenariusza, w którym tylko jeden z procesów chce uzyskiwać dostęp do sekcji krytycznej 24

25 Algorytm Petersona. Podejście 2 Rozpatrzmy próbę synchronizacji przy wykorzystaniu dwóch zmiennych logicznych (np. tablica o dwóch elementach), gdzie każdy z wątków/procesów ustawia odpowiednie pole tablicy na wartość truew przypadku, gdy jest w sekcji krytycznej. Inicjalnie obie zmienne (pola tablicy) są ustawione na false. W tym przypadku wątki/procesy nie są ze sobą ściśle powiązane, tzn. nie muszą się wykonywać w sekwencji -wątek który nie chce lub nie może wejść do sekcji nie blokuje drugiego z wątków Problem: występuje złamanie warunku bezpieczeństwa w danej chwili do sekcji krytycznej mogą wejść oba wątki 25

26 Algorytm Petersona. Podejście 2 c.d. Przykład przeplotu obu wątków prowadzący do naruszenia warunku bezpieczeństwa algorytmu: Wniosek: nie jest to poprawny algorytm synchronizacyjny nie spełnia warunku bezpieczeństwa 26

27 Algorytm Petersona. Podejście 3 W miejsce zmiennych logicznych reprezentujących fakt obecności (wejścia) wątku/procesu do sekcji wprowadźmy zmienne logiczne reprezentujące chęć wejścia wątku/procesu do sekcji krytycznej. Obie zmienne inicjalnie są ustawione na wartość false. Przykład: Wątek, który jako jedyny chce wykonywać sekcję krytyczną może tego dokonywać bez przeszkód (wątki nie są ze sobą powiązane) Algorytm daje program bezpieczny (spełniony jest warunek bezpieczeństwa) Algorytm narusza warunek żywotności prowadzi do zakleszczeń 27

28 Algorytm Petersona. Podejście 3 c.d. Przykład przeplotu prowadzącego do zakleszczenia W przypadku powyższego przeplotu nigdy nie zostanie zrealizowany warunek wyjścia z pętli aktywnego czekania procesów 1 i 2. Zakleszczenie Wniosek: nie jest to poprawny algorytm synchronizacyjny nie spełnia warunku żywotności 28

29 Algorytm Petersona. Ostateczna postać Algorytm Petersona Algorytm gwarantuje bezpieczeństwo i żywotność Algorytm posiada wszystkie wady algorytmu Dekkera: wymaga aktywnego czekania oraz chociaż można go uogólnić na dowolne Nwątków/procesów, to wymaga w takim przypadku 2N-1zmiennych, gdzie Nmusi być znane a priori 29

30 Algorytm Petersona. Ostateczna postać c.d. Przeanalizujmy przykład Wszystko jest OK. 30

Programowanie współbieżne i równoległe

Programowanie współbieżne i równoległe Programowanie współbieżne i równoległe dr inż. Marcin Wilczewski 2016/2017 1 Cel wykładu Przedstawienie zagadnień projektowania oraz programowania rozwiązań współbieżnych i równoległych Tematyka wykładu

Bardziej szczegółowo

Programowanie współbieżne i równoległe

Programowanie współbieżne i równoległe Programowanie współbieżne i równoległe dr inż. Marcin Wilczewski 2018/2019 1 Cel wykładu Przedstawienie zagadnień projektowania oraz programowania rozwiązań współbieżnych i równoległych Tematyka wykładu

Bardziej szczegółowo

4. Procesy pojęcia podstawowe

4. Procesy pojęcia podstawowe 4. Procesy pojęcia podstawowe 4.1 Czym jest proces? Proces jest czymś innym niż program. Program jest zapisem algorytmu wraz ze strukturami danych na których algorytm ten operuje. Algorytm zapisany bywa

Bardziej szczegółowo

4. Procesy pojęcia podstawowe

4. Procesy pojęcia podstawowe 4. Procesy pojęcia podstawowe 4.1 Czym jest proces? Proces jest czymś innym niż program. Program jest zapisem algorytmu wraz ze strukturami danych na których algorytm ten operuje. Algorytm zapisany bywa

Bardziej szczegółowo

Wprowadzenie do programowania współbieżnego

Wprowadzenie do programowania współbieżnego Wprowadzenie do programowania współbieżnego Marcin Engel Instytut Informatyki Uniwersytet Warszawski Zamiast wstępu... Zamiast wstępu... Możliwość wykonywania wielu akcji jednocześnie może ułatwić tworzenie

Bardziej szczegółowo

Programowanie współbieżne i równoległe

Programowanie współbieżne i równoległe Programowanie współbieżne i równoległe dr inż. Marcin Wilczewski 2015/2016 1 Cel wykładu Przedstawienie zagadnień projektowania oraz programowania rozwiązań współbieżnych i równoległych Tematyka wykładu

Bardziej szczegółowo

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

procesów Współbieżność i synchronizacja procesów Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak Plan wykładu Abstrakcja programowania współbieżnego Instrukcje atomowe i ich przeplot Istota synchronizacji Kryteria poprawności programów współbieżnych

Bardziej szczegółowo

Porządek dostępu do zasobu: procesory obszary pamięci cykle procesora pliki urządzenia we/wy

Porządek dostępu do zasobu: procesory obszary pamięci cykle procesora pliki urządzenia we/wy ZAKLESZCZENIA w SO brak środków zapobiegania zakleszczeniom Zamówienia na zasoby => przydział dowolnego egzemplarza danego typu Zasoby w systemie typy; identyczne egzemplarze procesory obszary pamięci

Bardziej szczegółowo

4. Procesy pojęcia podstawowe

4. Procesy pojęcia podstawowe 4. Procesy pojęcia podstawowe 4.1 Czym jest proces? Proces jest czymś innym niż program. Program jest zapisem algorytmu wraz ze strukturami danych na których algorytm ten operuje. Algorytm zapisany bywa

Bardziej szczegółowo

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

Przeplot. Synchronizacja procesów. Cel i metody synchronizacji procesów. Wątki współbieżne Synchronizacja procesów Przeplot Przeplot wątków współbieżnych Cel i metody synchronizacji procesów Problem sekcji krytycznej Semafory Blokady 3.1 3.3 Wątki współbieżne Cel i metody synchronizacji procesów

Bardziej szczegółowo

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

5. Model komunikujących się procesów, komunikaty Jędrzej Ułasiewicz str. 1 5. Model komunikujących się procesów, komunikaty Obecnie stosuje się następujące modele przetwarzania: Model procesów i komunikatów Model procesów komunikujących się poprzez pamięć

Bardziej szczegółowo

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

Programowanie współbieżne Wykład 2. Iwona Kochańska Programowanie współbieżne Wykład 2 Iwona Kochańska Miary skalowalności algorytmu równoległego Przyspieszenie Stały rozmiar danych N T(1) - czas obliczeń dla najlepszego algorytmu sekwencyjnego T(p) - czas

Bardziej szczegółowo

Systemy operacyjne III

Systemy operacyjne III Systemy operacyjne III WYKŁAD 3 Jan Kazimirski 1 Współbieżność 2 Współbieżność Wielozadaniowość - zarządzanie wieloma procesami w ramach jednego CPU Wieloprocesorowość - zarządzanie wieloma zadaniami w

Bardziej szczegółowo

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

Programowanie współbieżne Wykład 7. Iwona Kochaoska Programowanie współbieżne Wykład 7 Iwona Kochaoska Poprawnośd programów współbieżnych Właściwości związane z poprawnością programu współbieżnego: Właściwośd żywotności - program współbieżny jest żywotny,

Bardziej szczegółowo

Systemy operacyjne. wykład 11- Zakleszczenia. dr Marcin Ziółkowski. Instytut Matematyki i Informatyki Akademia im. Jana Długosza w Częstochowie

Systemy operacyjne. wykład 11- Zakleszczenia. dr Marcin Ziółkowski. Instytut Matematyki i Informatyki Akademia im. Jana Długosza w Częstochowie Systemy operacyjne wykład 11- Zakleszczenia dr Marcin Ziółkowski Instytut Matematyki i Informatyki Akademia im. Jana Długosza w Częstochowie 17grudnia2015r. POJĘCIE ZAKLESZCZENIA Zakleszczenie to zbiór

Bardziej szczegółowo

Synchronizacja procesów i wątków

Synchronizacja procesów i wątków SOE Systemy Operacyjne Wykład 12 Synchronizacja procesów i wątków dr inŝ. Andrzej Wielgus Instytut Mikroelektroniki i Optoelektroniki WEiTI PW Problem sekcji krytycznej Podstawowy problem synchronizacji

Bardziej szczegółowo

Modelowanie procesów współbieżnych

Modelowanie procesów współbieżnych 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.

Bardziej szczegółowo

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

Program jest więc strukturą statyczną zapisaną na jakimś nośniku. Natomiast proces jest wykonującym się programem. J. Ułasiewicz Programowanie aplikacji współbieżnych 1 1 Podstawowe definicje i pojęcia współbieżności 1.1 Motywacja Przewiduje się że w dalszej perspektywie głównym motorem wzrostu mocy przetwarzania komputerów

Bardziej szczegółowo

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

Przetwarzanie wielowątkowe przetwarzanie współbieżne. Krzysztof Banaś Obliczenia równoległe 1 Przetwarzanie wielowątkowe przetwarzanie współbieżne Krzysztof Banaś Obliczenia równoległe 1 Problemy współbieżności wyścig (race condition) synchronizacja realizowana sprzętowo (np. komputery macierzowe)

Bardziej szczegółowo

SYSTEMY OPERACYJNE WYKLAD 6 - procesy

SYSTEMY OPERACYJNE WYKLAD 6 - procesy Wrocław 2007 SYSTEMY OPERACYJNE WYKLAD 6 - procesy Paweł Skrobanek C-3, pok. 323 e-mail: pawel.skrobanek@pwr.wroc.pl www.equus.wroc.pl/studia.html 1 Zasoby: PROCES wykonujący się program ; instancja programu

Bardziej szczegółowo

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

Mechanizmy pracy równoległej. Jarosław Kuchta Mechanizmy pracy równoległej Jarosław Kuchta Zagadnienia Algorytmy wzajemnego wykluczania algorytm Dekkera Mechanizmy niskopoziomowe przerwania mechanizmy ochrony pamięci instrukcje specjalne Mechanizmy

Bardziej szczegółowo

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

Klasyczne problemy współbieżności. Problem producenta i konsumenta Problem czytelników i pisarzy Problem pięciu filozofów Klasyczne problemy współbieżności Problem producenta i konsumenta Problem czytelników i pisarzy Problem pięciu filozofów Wzajemne wykluczanie Zsynchronizować N procesów, z których każdy w nieskończonej

Bardziej szczegółowo

Zarządzanie procesami i wątkami

Zarządzanie procesami i wątkami SOE - Systemy Operacyjne Wykład 4 Zarządzanie procesami i wątkami dr inŝ. Andrzej Wielgus Instytut Mikroelektroniki i Optoelektroniki WEiTI PW Pojęcie procesu (1) Program zbiór instrukcji dla procesora

Bardziej szczegółowo

Procesy, wątki i zasoby

Procesy, wątki i zasoby Procesy, wątki i zasoby Koncepcja procesu i zasobu, Obsługa procesów i zasobów, Cykl zmian stanów procesu i kolejkowanie, Klasyfikacja zasobów, Wątki, Procesy i wątki we współczesnych systemach operacyjnych.

Bardziej szczegółowo

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

Programowanie równoległe i rozproszone. Monitory i zmienne warunku. Krzysztof Banaś Programowanie równoległe i rozproszone 1 Programowanie równoległe i rozproszone Monitory i zmienne warunku Krzysztof Banaś Programowanie równoległe i rozproszone 1 Problemy współbieżności Problem producentów i konsumentów: jedna grupa procesów

Bardziej szczegółowo

Programowanie współbieżne i rozproszone

Programowanie współbieżne i rozproszone Programowanie współbieżne i rozproszone WYKŁAD 1 dr inż. Literatura ogólna Ben-Ari, M.: Podstawy programowania współbieżnego i rozproszonego. Wydawnictwa Naukowo-Techniczne, Warszawa, 2009. Czech, Z.J:

Bardziej szczegółowo

Mogą pracować w środowisku: Scentralizowanym -mikrokontroler Rozproszonym sieć sterująca, systemy hierarchiczne. Komunikacja z syst.

Mogą pracować w środowisku: Scentralizowanym -mikrokontroler Rozproszonym sieć sterująca, systemy hierarchiczne. Komunikacja z syst. J. Ułasiewicz Programowanie aplikacji współbieżnych 1 1 Podstawowe definicje i pojęcia współbieżności Współczesne aplikacje sterowania i akwizycji danych są zbiorem komunikujących się wątków lub procesów

Bardziej szczegółowo

Współczesne aplikacje sterowania i akwizycji danych są zbiorem komunikujących się wątków lub procesów współbieżnych.

Współczesne aplikacje sterowania i akwizycji danych są zbiorem komunikujących się wątków lub procesów współbieżnych. J. Ułasiewicz Programowanie aplikacji współbieżnych 1 1 Podstawowe definicje i pojęcia współbieżności Współczesne aplikacje sterowania i akwizycji danych są zbiorem komunikujących się wątków lub procesów

Bardziej szczegółowo

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

1 Podstawowe definicje i pojęcia współbieżności J. Ułasiewicz Programowanie aplikacji współbieżnych 1 1 Podstawowe definicje i pojęcia współbieżności 1.1 Dlaczego zajmujemy się współbieżnością? W ciągu ostatnich 30 lat wzrost mocy przetwarzania osiągano

Bardziej szczegółowo

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

Tworzenie programów równoległych cd. Krzysztof Banaś Obliczenia równoległe 1 Tworzenie programów równoległych cd. Krzysztof Banaś Obliczenia równoległe 1 Metodologia programowania równoległego Przykłady podziałów zadania na podzadania: Podział ze względu na funkcje (functional

Bardziej szczegółowo

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

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 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 Wydział Matematyki i Informatyki Instytut Informatyki i

Bardziej szczegółowo

Współbieżność i równoległość w środowiskach obiektowych. Krzysztof Banaś Obliczenia równoległe 1

Współbieżność i równoległość w środowiskach obiektowych. Krzysztof Banaś Obliczenia równoległe 1 Współbieżność i równoległość w środowiskach obiektowych Krzysztof Banaś Obliczenia równoległe 1 Java Model współbieżności Javy opiera się na realizacji szeregu omawianych dotychczas elementów: zarządzanie

Bardziej szczegółowo

Stan globalny. Krzysztof Banaś Systemy rozproszone 1

Stan globalny. Krzysztof Banaś Systemy rozproszone 1 Stan globalny Krzysztof Banaś Systemy rozproszone 1 Stan globalny Z problemem globalnego czasu jest związany także problem globalnego stanu: interesuje nas stan systemu rozproszonego w konkretnej pojedynczej

Bardziej szczegółowo

Proces y i y w i ąt ą ki

Proces y i y w i ąt ą ki Procesy i wątki Proces Proces jest wykonywanym programem. Wykonanie procesu musi przebiegać w sposób sekwencyjny ( w dowolnej chwili na zamówienie naszego procesu może być wykonany co najwyżej jeden rozkaz

Bardziej szczegółowo

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

Procesy i wątki. Blok kontrolny procesu. Proces. Proces - elementy. Stan procesu Proces Procesy i wątki Proces jest wykonywanym programem. Wykonanie procesu musi przebiegać w sposób sekwencyjny ( w dowolnej chwili na zamówienie naszego procesu może być wykonany co najwyżej jeden rozkaz

Bardziej szczegółowo

Zaawansowane programowanie w C++ (PCP)

Zaawansowane programowanie w C++ (PCP) Wykład 10 - boost Thread. 8 czerwca 2007 Równoległość bardzo wolna reakcja człowieka wolne urządzenia wejścia - wyjścia (np. drukarki) bardzo szybkie procesory można przeprowadzać obliczenia podczas obsługi

Bardziej szczegółowo

Projektowanie oprogramowania systemów PROCESY I ZARZĄDZANIE PROCESAMI

Projektowanie oprogramowania systemów PROCESY I ZARZĄDZANIE PROCESAMI Projektowanie oprogramowania systemów PROCESY I ZARZĄDZANIE PROCESAMI plan Cechy, właściwości procesów Multitasking Scheduling Fork czym jest proces? Działającą instancją programu Program jest kolekcją

Bardziej szczegółowo

Zarządzanie procesorem

Zarządzanie procesorem Zarządzanie procesorem 1. Koncepcja procesu 2. Blok kontrolny procesu 3. Planowanie (szeregowanie) procesów! rodzaje planistów! kryteria planowania 4. Algorytmy planowania! FCFS! SJF! RR! planowanie priorytetowe!

Bardziej szczegółowo

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

Równoległość i współbieżność Równoległość i współbieżność Wykonanie sekwencyjne. Poszczególne akcje procesu są wykonywane jedna po drugiej. Dokładniej: kolejna akcja rozpoczyna się po całkowitym zakończeniu poprzedniej. Praca współbieżna

Bardziej szczegółowo

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

Równoległość i współbieżność Równoległość i współbieżność Wykonanie sekwencyjne. Poszczególne akcje procesu są wykonywane jedna po drugiej. Dokładniej: kolejna akcja rozpoczyna się po całkowitym zakończeniu poprzedniej. Praca współbieżna

Bardziej szczegółowo

1.1 Definicja procesu

1.1 Definicja procesu 1 Procesy pojęcia podstawowe 1 1.1 Definicja procesu Proces jest czymś innym niż program. Program jest zapisem algorytmu wraz ze strukturami danych na których algorytm ten operuje. Algorytm zapisany bywa

Bardziej szczegółowo

Systemy operacyjne III

Systemy operacyjne III Systemy operacyjne III WYKŁAD 2 Jan Kazimirski 1 Procesy w systemie operacyjnym 2 Proces Współczesne SO w większości są systemami wielozadaniowymi. W tym samym czasie SO obsługuje pewną liczbę zadań procesów

Bardziej szczegółowo

SYSTEMY OPERACYJNE WYKLAD 6 - wątki

SYSTEMY OPERACYJNE WYKLAD 6 - wątki Wrocław 2007 SYSTEMY OPERACYJNE WYKLAD 6 - wątki Paweł Skrobanek C-3, pok. 323 e-mail: pawel.skrobanek@pwr.wroc.pl www.equus.wroc.pl/studia.html 1 PLAN: 1. Wątki 2. Planowanie przydziału procesora (szeregowanie

Bardziej szczegółowo

Procesy, zasoby i wątki

Procesy, zasoby i wątki Procesy, zasoby i wątki Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak Plan wykładu Koncepcja procesu i zasobu Obsługa procesów i zasobów Cykl zmian stanów procesu i kolejkowanie Klasyfikacja zasobów

Bardziej szczegółowo

Procesy, zasoby i wątki

Procesy, zasoby i wątki Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak Plan wykładu Koncepcja procesu i zasobu Obsługa procesów i zasobów Cykl zmian stanów procesu i kolejkowanie Klasyfikacja zasobów Wątki Procesy i wątki

Bardziej szczegółowo

UNIKANIE IMPASÓW W SYSTEMACH PROCESÓW WSPÓŁBIEŻNYCH

UNIKANIE IMPASÓW W SYSTEMACH PROCESÓW WSPÓŁBIEŻNYCH UNIKANIE IMPASÓW W SYSTEMACH PROCESÓW WSPÓŁBIEŻNYCH Robert Wójcik Instytut Cybernetyki Technicznej Politechniki Wrocławskiej 1. Impasy w systemach procesów współbieżnych 2. Klasyczne algorytmy unikania

Bardziej szczegółowo

Działanie systemu operacyjnego

Działanie systemu operacyjnego Budowa systemu komputerowego Działanie systemu operacyjnego Jednostka centralna dysku Szyna systemowa (magistrala danych) drukarki pamięci operacyjnej I NIC sieci Pamięć operacyjna Przerwania Przerwania

Bardziej szczegółowo

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

Programowanie współbieŝne. Paweł Rogaliński Politechnika Wrocławska 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.

Bardziej szczegółowo

Od uczestników szkolenia wymagana jest umiejętność programowania w języku C oraz podstawowa znajomość obsługi systemu Linux.

Od uczestników szkolenia wymagana jest umiejętność programowania w języku C oraz podstawowa znajomość obsługi systemu Linux. Kod szkolenia: Tytuł szkolenia: PS/LINUX Programowanie systemowe w Linux Dni: 5 Opis: Adresaci szkolenia Szkolenie adresowane jest do programistów tworzących aplikacje w systemie Linux, którzy chcą poznać

Bardziej szczegółowo

Procesy, zasoby i wątki

Procesy, zasoby i wątki Dariusz Wawrzyniak Koncepcja procesu i zasobu Obsługa procesów i zasobów Cykl zmian stanów procesu i kolejkowanie Klasyfikacja zasobów Wątki Procesy i wątki we współczesnych systemach operacyjnych Plan

Bardziej szczegółowo

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

Programowanie równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz Programowanie równoległe i rozproszone Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz 23 października 2009 Spis treści Przedmowa...................................................

Bardziej szczegółowo

Stworzenie klasy nie jest równoznaczne z wykorzystaniem wielowątkowości. Uzyskuje się ją dopiero poprzez inicjalizację wątku.

Stworzenie klasy nie jest równoznaczne z wykorzystaniem wielowątkowości. Uzyskuje się ją dopiero poprzez inicjalizację wątku. Laboratorium 7 Wstęp Jednym z podstawowych własności Javy jest wielowątkowość. Wiąże się to z możliwością współbieżnego wykonywania różnych operacji w ramach pojedynczej wirtualnej maszyny Javy (JVM).

Bardziej szczegółowo

Wykład 6. Planowanie (szeregowanie) procesów (ang. process scheduling) Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB

Wykład 6. Planowanie (szeregowanie) procesów (ang. process scheduling) Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB Wykład 6 Planowanie (szeregowanie) procesów (ang. process scheduling) Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB Rodzaje planowania Planowanie długoterminowe. Decyzja o

Bardziej szczegółowo

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

Obliczenia równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz Obliczenia równoległe i rozproszone Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz 15 czerwca 2001 Spis treści Przedmowa............................................

Bardziej szczegółowo

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

Systemy Operacyjne. wykład 1. Adam Kolany. Październik, Instytut Techniczny Państwowa Wyższa Szkoła Zawodowa w Nowym Sączu Systemy Operacyjne wykład 1. Adam Kolany Instytut Techniczny Państwowa Wyższa Szkoła Zawodowa w Nowym Sączu dr.a.kolany@wp.pl Październik, 2007 Literatura DrAK (PWSZ) Systemy Operacyjne 11 Październik,

Bardziej szczegółowo

Programowanie komputerów

Programowanie komputerów Programowanie komputerów Wykład 7: Programowanie wielowątkowe w Javie dr inż. Walery Susłow Współbieżność Programy współbieżne (concurrent software) aplikacje potrafiące wykonywać kilka operacji w tym

Bardziej szczegółowo

Wstęp do programowania 2

Wstęp do programowania 2 Wstęp do programowania 2 wykład 10 Zadania Agata Półrola Wydział Matematyki UŁ 2005/2006 http://www.math.uni.lodz.pl/~polrola Współbieżność dotychczasowe programy wykonywały akcje sekwencyjnie Ada umożliwia

Bardziej szczegółowo

Wykład 3. Procesy i wątki. Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB

Wykład 3. Procesy i wątki. Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB Wykład 3 Procesy i wątki Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB Pojęcie procesu Program = plik wykonywalny na dysku Proces = uruchomiony i wykonywany program w pamięci

Bardziej szczegółowo

Bazy danych w sterowaniu

Bazy danych w sterowaniu Bazy danych w sterowaniu systemy transakcyjne sterowanie dostępem współbieżnym Stan spójny bazy danych zgodność z możliwym stanem reprezentowanego fragmentu świata rzeczywistego; spełnione są wszystkie

Bardziej szczegółowo

koniec punkt zatrzymania przepływów sterowania na diagramie czynności

koniec punkt zatrzymania przepływów sterowania na diagramie czynności Diagramy czynności opisują dynamikę systemu, graficzne przedstawienie uszeregowania działań obrazuje strumień wykonywanych czynności z ich pomocą modeluje się: - scenariusze przypadków użycia, - procesy

Bardziej szczegółowo

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

Tworzenie programów równoległych. Krzysztof Banaś Obliczenia równoległe 1 Tworzenie programów równoległych Krzysztof Banaś Obliczenia równoległe 1 Tworzenie programów równoległych W procesie tworzenia programów równoległych istnieją dwa kroki o zasadniczym znaczeniu: wykrycie

Bardziej szczegółowo

Języki i Techniki Programowania II. Wykład 7. Współbieżność 1

Języki i Techniki Programowania II. Wykład 7. Współbieżność 1 Języki i Techniki Programowania II Wykład 7 Współbieżność 1 Programy, Procesy, Wątki Program to zestaw instrukcji do wykonania, dane do przetworzenia, mechanizmy sterujące (stos) Proces w komputerze to

Bardziej szczegółowo

Podstawy Informatyki Systemy sterowane przepływem argumentów

Podstawy Informatyki Systemy sterowane przepływem argumentów Podstawy Informatyki alina.momot@polsl.pl http://zti.polsl.pl/amomot/pi Plan wykładu 1 Komputer i jego architektura Taksonomia Flynna 2 Komputer i jego architektura Taksonomia Flynna Komputer Komputer

Bardziej szczegółowo

Mariusz Rudnicki PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO CZ.1

Mariusz Rudnicki PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO CZ.1 Mariusz Rudnicki mariusz.rudnicki@eti.pg.gda.pl PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO CZ.1 Przedmiot PSCR Przedmiot PSCR Wykład do połowy semestru Laboratorium od połowy semestru Projekt Zaliczenie

Bardziej szczegółowo

Urządzenia wejścia-wyjścia

Urządzenia wejścia-wyjścia Urządzenia wejścia-wyjścia Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak Plan wykładu Klasyfikacja urządzeń wejścia-wyjścia Struktura mechanizmu wejścia-wyjścia (sprzętu i oprogramowania) Interakcja

Bardziej szczegółowo

Wątek - definicja. Wykorzystanie kilku rdzeni procesora jednocześnie Zrównoleglenie obliczeń Jednoczesna obsługa ekranu i procesu obliczeniowego

Wątek - definicja. Wykorzystanie kilku rdzeni procesora jednocześnie Zrównoleglenie obliczeń Jednoczesna obsługa ekranu i procesu obliczeniowego Wątki Wątek - definicja Ciąg instrukcji (podprogram) który może być wykonywane współbieżnie (równolegle) z innymi programami, Wątki działają w ramach tego samego procesu Współdzielą dane (mogą operować

Bardziej szczegółowo

Działanie systemu operacyjnego

Działanie systemu operacyjnego Działanie systemu operacyjnego Budowa systemu komputerowego Jednostka centralna Sterownik dysku Sterownik drukarki Sterownik sieci Szyna systemowa (magistrala danych) Sterownik pamięci operacyjnej Pamięć

Bardziej szczegółowo

SYSTEMY CZASU RZECZYWISTEGO - VxWorks

SYSTEMY CZASU RZECZYWISTEGO - VxWorks WZAJEMNE WYKLUCZANIE Wiele metod. Np. wyłączanie przerwań: funkcja() //... Int blokada = intlock(); // Obszar krytyczny, któremu nie możemy przerwać intunlock(blokada); wyłączanie wywłaszczania: funkcja()

Bardziej szczegółowo

Architektura komputerów

Architektura komputerów Architektura komputerów Tydzień 11 Wejście - wyjście Urządzenia zewnętrzne Wyjściowe monitor drukarka Wejściowe klawiatura, mysz dyski, skanery Komunikacyjne karta sieciowa, modem Urządzenie zewnętrzne

Bardziej szczegółowo

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

Semafory. // G - globalna dla wszystkich. // Wada - aktywne oczekiwanie Test_and_Set(Li); exit when Li = 0; end loop sekcja_krytyczna(i); G := 0; Semafory Rozwiązanie problemu wzajemnego wykluczania Bez dodatkowego wsparcia sprzętowego i programowego Zakładamy jedynie, że zapis do i odczyt z pamięci wspólnej są operacjami atomowymi (czyli istnieje

Bardziej szczegółowo

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

Programowanie współbieżne Wykład 5. Rafał Skinderowicz Programowanie współbieżne Wykład 5 Rafał Skinderowicz Monitory motywacje Mechanizmy synchronizacji takie jak blokady (zamki) semafory pozwalają efektywnie rozwiązywać dostępu do współdzielonych zasobów,

Bardziej szczegółowo

IPC: Kolejki komunikatów

IPC: Kolejki komunikatów IPC: Kolejki komunikatów Systemy Operacyjne 2 laboratorium Mateusz Hołenko 7 listopada 2011 Plan zajęć 1 Mechanizmy IPC kolejki komunikatów pamięć współdzielona semafory 2 Kolejki komunikatów kolejka komunikat

Bardziej szczegółowo

Detekcja zakleszczenia (1)

Detekcja zakleszczenia (1) Detekcja zakleszczenia (1) Wykład prowadzą: Jerzy Brzeziński Jacek Kobusiński Plan wykładu Procesy aktywne i pasywne Definicja zakleszczenia Problem detekcji wystąpienia zakleszczenia Detekcja zakleszczenia

Bardziej szczegółowo

Koordynacja procesów w środowisku rozproszonym

Koordynacja procesów w środowisku rozproszonym Systemy rozproszone Koordynacja procesów w środowisku rozproszonym System rozproszony jest zbiorem luźno powiązanych ze sobą komputerów połączonych siecią komunikacyjną (Silberschatz). Zasoby zdalne -

Bardziej szczegółowo

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

Projektowanie algorytmów równoległych. Zbigniew Koza Wrocław 2012 Projektowanie algorytmów równoległych Zbigniew Koza Wrocław 2012 Spis reści Zadniowo-kanałowy (task-channel) model algorytmów równoległych Projektowanie algorytmów równoległych metodą PACM Task-channel

Bardziej szczegółowo

projektowanie systemu

projektowanie systemu projektowanie systemu cel użytkownika: system operacyjny powinien być wygodny, łatwy w użyciu, prosty do nauczenia, niezawodny, bezpieczny i szybki cel producenta: system operacyjny powinien być łatwy

Bardziej szczegółowo

Programowanie współbieżne Wykład 10 Synchronizacja dostępu do współdzielonych zasobów. Iwona Kochańska

Programowanie współbieżne Wykład 10 Synchronizacja dostępu do współdzielonych zasobów. Iwona Kochańska Programowanie współbieżne Wykład 10 Synchronizacja dostępu do współdzielonych zasobów Iwona Kochańska Mechanizm synchronizacji wątków/procesów Wykorzystanie semaforów zapobiega niedozwolonemu wykonaniu

Bardziej szczegółowo

LEKCJA TEMAT: Zasada działania komputera.

LEKCJA TEMAT: Zasada działania komputera. LEKCJA TEMAT: Zasada działania komputera. 1. Ogólna budowa komputera Rys. Ogólna budowa komputera. 2. Komputer składa się z czterech głównych składników: procesor (jednostka centralna, CPU) steruje działaniem

Bardziej szczegółowo

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

Ingerencja w kod systemu operacyjnego (przerwania) Programowanie na niskim poziomie (instrukcje specjalne) Trudności implementacyjne (alg. Wady mechanizmów niskopoziomowych Ingerencja w kod systemu operacyjnego (przerwania) Programowanie na niskim poziomie (instrukcje specjalne) Trudności implementacyjne (alg. Dekkera zależny od liczby synchronizowanych

Bardziej szczegółowo

Wzajemne wykluczanie i zakleszczenie

Wzajemne wykluczanie i zakleszczenie Wzajemne wykluczanie i zakleszczenie Wzajemne wykluczanie Wzajemne wykluczenie zapewnia procesom ochronę przy dostępie do zasobów, daje im np. gwarancję, że jako jedyne będą mogły z nich korzystać Typy

Bardziej szczegółowo

Od uczestników szkolenia wymagana jest umiejętność programowania w języku C oraz podstawowa znajomość obsługi systemu Windows.

Od uczestników szkolenia wymagana jest umiejętność programowania w języku C oraz podstawowa znajomość obsługi systemu Windows. Kod szkolenia: Tytuł szkolenia: PS/WIN Programowanie systemowe w Windows Dni: 5 Opis: Adresaci szkolenia Szkolenie adresowane jest do programistów tworzących aplikacje w systemach z rodziny Microsoft Windows,

Bardziej szczegółowo

ξ II.UWr Wprowadzenie do STM

ξ II.UWr Wprowadzenie do STM ξ KS @.UWr Wprowadzenie do STM Marek Materzok ZOSA 2007 ξ KS @.UWr Wprowadzenie Były sobie komputery. Wykonywały programy instrukcja po instrukcji i wszyscy byli szczęśliwi... ξ KS @.UWr Wprowadzenie Były

Bardziej szczegółowo

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

Współbieżność i synchronizacja. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak Współbieżność i synchronizacja procesów Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak Celem wykładu jest przedstawienie zagadnień współbieżnego wykonywania wątków lub procesów, zwłaszcza w przypadku,

Bardziej szczegółowo

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

Tworzenie programów równoległych. Krzysztof Banaś Obliczenia równoległe 1 Tworzenie programów równoległych Krzysztof Banaś Obliczenia równoległe 1 Tworzenie programów równoległych W procesie tworzenia programów równoległych istnieją dwa kroki o zasadniczym znaczeniu: wykrycie

Bardziej szczegółowo

Adresowanie obiektów. Adresowanie bitów. Adresowanie bajtów i słów. Adresowanie bajtów i słów. Adresowanie timerów i liczników. Adresowanie timerów

Adresowanie obiektów. Adresowanie bitów. Adresowanie bajtów i słów. Adresowanie bajtów i słów. Adresowanie timerów i liczników. Adresowanie timerów Adresowanie obiektów Bit - stan pojedynczego sygnału - wejście lub wyjście dyskretne, bit pamięci Bajt - 8 bitów - wartość od -128 do +127 Słowo - 16 bitów - wartość od -32768 do 32767 -wejście lub wyjście

Bardziej szczegółowo

Programowanie wielowątkowe. Tomasz Borzyszkowski

Programowanie wielowątkowe. Tomasz Borzyszkowski Programowanie wielowątkowe Tomasz Borzyszkowski Wątki a procesy Jako jeden z niewielu języków programowania Java udostępnia użytkownikowi mechanizmy wspierające programowanie wielowątkowe. Program wielowątkowy

Bardziej szczegółowo

Wielowątkowość mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011

Wielowątkowość mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011 Wielowątkowość mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011 Uruchomienie programu powoduje stworzenie nowego procesu przez system operacyjny. Proces wykonywany program wraz

Bardziej szczegółowo

Uniwersytet w Białymstoku Wydział Ekonomiczno-Informatyczny w Wilnie SYLLABUS na rok akademicki 2010/2011 http://www.wilno.uwb.edu.

Uniwersytet w Białymstoku Wydział Ekonomiczno-Informatyczny w Wilnie SYLLABUS na rok akademicki 2010/2011 http://www.wilno.uwb.edu. SYLLABUS na rok akademicki 010/011 Tryb studiów Studia stacjonarne Kierunek studiów Informatyka Poziom studiów Pierwszego stopnia Rok studiów/ semestr 1(rok)/1(sem) Specjalność Bez specjalności Kod katedry/zakładu

Bardziej szczegółowo

Obliczenia równoległe i rozproszone w JAVIE. Michał Kozłowski 30 listopada 2003

Obliczenia równoległe i rozproszone w JAVIE. Michał Kozłowski 30 listopada 2003 Obliczenia równoległe i rozproszone w JAVIE Michał Kozłowski 30 listopada 2003 Wątki w JAVIE Reprezentacja wątków jako obiektów Uruchamianie i zatrzymywanie wątków Realizacja wątków Ograniczenia Mechanizmy

Bardziej szczegółowo

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

Stan procesu. gotowy - czeka na przydział procesora, zakończony - zakończył działanie. Procesy i wątki Proces Proces jest wykonywanym programem. Wykonanie procesu musi przebiegać w sposób sekwencyjny ( w dowolnej chwili na zamówienie naszego procesu może być wykonany co najwyżej jeden rozkaz

Bardziej szczegółowo

Współbieżność w środowisku Java

Współbieżność w środowisku Java Współbieżność w środowisku Java Wątki i ich synchronizacja Zagadnienia Tworzenie wątków Stany wątków i ich zmiana Demony Synchronizacja wątków wzajemne wykluczanie oczekiwanie na zmiennych warunkowych

Bardziej szczegółowo

dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1

dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1 dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1 Cel wykładu Definicja, miejsce, rola i zadania systemu operacyjnego Klasyfikacja systemów operacyjnych Zasada działanie systemu operacyjnego

Bardziej szczegółowo

Systemy Operacyjne - zarządzanie procesami

Systemy Operacyjne - zarządzanie procesami Katedra Informatyki, Politechnika Świętokrzyska w Kielcach Kielce, 26 października 2010 1 1 Proces sekwencyjny 2 Cykl życia procesu 3 Deskryptor procesu 4 współbieżne 2 3 1 Motywacja 2 Kolejki 3 Planiści

Bardziej szczegółowo

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

Zał nr 4 do ZW. Dla grupy kursów zaznaczyć kurs końcowy. Liczba punktów ECTS charakterze praktycznym (P) Zał nr 4 do ZW WYDZIAŁ PODSTAWOWYCH PROBLEMÓW TECHNIKI KARTA PRZEDMIOTU Nazwa w języku polskim : Architektura Komputerów i Systemy Operacyjne Nazwa w języku angielskim : Computer Architecture and Operating

Bardziej szczegółowo

Podstawy informatyki. Izabela Szczęch. Politechnika Poznańska

Podstawy informatyki. Izabela Szczęch. Politechnika Poznańska Podstawy informatyki Izabela Szczęch Politechnika Poznańska SYSTEMY OPERACYJNE 2 Plan wykładu Definicja, miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera Klasyfikacja systemów operacyjnych

Bardziej szczegółowo

Działanie systemu operacyjnego

Działanie systemu operacyjnego Budowa systemu komputerowego Działanie systemu operacyjnego Jednostka centralna dysku Szyna systemowa (magistrala danych) drukarki pamięci operacyjnej sieci Pamięć operacyjna Przerwania Przerwania Przerwanie

Bardziej szczegółowo

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

Proces z sekcją krytyczną. Synchronizacja procesów. Synchronizacja procesów, cd. Synchronizacja procesów, cd. Synchronizacja procesów, cd Synchronizacja procesów Proces producenta - zmodyfikowany (licznik) produkuj jednostka w nast_p while licznik =n do nic_nie_rob; bufor [we] := nast_p; we=we+1 mod n; licznik:=licznik+1; Zmodyfikowany proces

Bardziej szczegółowo

Przetwarzanie rozproszone

Przetwarzanie rozproszone Wykład prowadzą: Jerzy Brzeziński Jacek Kobusiński Plan wykładu Proces sekwencyjny Komunikaty, kanały komunikacyjne Stan kanału Operacje komunikacyjne Model formalny procesu sekwencyjnego Zdarzenia Warunek

Bardziej szczegółowo

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

Procesy i wątki. Krzysztof Banaś Obliczenia równoległe 1 Procesy i wątki Krzysztof Banaś Obliczenia równoległe 1 Procesy i wątki Proces: ciąg rozkazów (wątek główny) i ewentualnie inne wątki stos (wątku głównego) przestrzeń adresowa dodatkowe elementy tworzące

Bardziej szczegółowo

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

Procesy i wątki. Blok kontrolny procesu. Proces. Proces - elementy. Stan procesu. Blok kontrolny procesu Proces Procesy i wątki Proces jest wykonywanym programem. Wykonanie procesu musi przebiegać w sposób sekwencyjny ( w dowolnej chwili na zamówienie naszego procesu może być wykonany co najwyżej jeden rozkaz

Bardziej szczegółowo