Projektowanie oprogramowania systemów WĄTKI I SYNCHRONIZACJA
|
|
- Agnieszka Szydłowska
- 8 lat temu
- Przeglądów:
Transkrypt
1 Projektowanie oprogramowania systemów WĄTKI I SYNCHRONIZACJA
2 plan Wątki Właściwości Tworzenie i łączenie Wzorce zastosowań biblioteka OpenMP Synchronizacja Obiekty synchronizacji Wzorzec Monitor
3 Właściwości wątków wątek wykonania działająca ścieżka instrukcji kodu (najmniejsza sekwencja instrukcji, która może być niezależnie zarządzana przez scheduler) Każdy proces posiada przynajmniej 1 wątek (wątek główny, główna pętla programu) Dodatkowe wątki mogą być tworzone na żądanie aby wykonywać specyficzne zadania (wątki robocze worker threads) Biblioteki i system mogą tworzyć dodatkowe wątki, działające niezależnie od kodu użytkownika, które czynią aplikację wielowątkową
4 Wątki vs procesy Procesy są niezależne, wątki istnieją wewnątrz procesów Procesy mają większą konfigurację stanu niż wątki, które współdzielą stan procesu, jego pamięć i zasoby Procesu mają osobną przestrzeń adresową, wątki współdzielą przestrzeń adresową Procesy wchodzą w interakcje między sobą poprzez mechanizmy IPC systemu Przełączenie kontekstu pomiędzy wątkami tego samego procesu jest szybsze niż pomiędzy procesami
5 Wielowątkowość po co? Responsywność przeprowadzaj długie, blokujące operacje w wątkach roboczych, aby aplikacja pozostała responsywna dla użytkownika i nie wyglądała na zawieszoną Podobny efekt można uzyskać za pomocą nieblokującego wejścia/wyjścia, bez wielowątkowości, ale jest to bardziej podatne na błędy programistyczne, trudniejsze i mniej naturalne Wydajność na systemach wielordzeniowych wątki pozwalają uzyskać wynik szybciej poprzez podział pracy na części wykonywane na osobnych rdzeniach Przepływność/utylizacja aplikacje wielowątkowe umożliwiają lepsze wykorzystanie systemu poprzez wykonywanie pracy w wątkach podczas gdy inne są zablokowane oczekując na I/O
6 Wielowątkowość - niebezpieczeństwa Synchronizacja wiele wątków może równocześnie modyfikować te same dane, prowadząc do niespodziewanych efektów Wyścigi (race condition) działanie programu zależy od określonej w czasie kolejności działania wątków. Bez odpowiedniej synchronizacji wątków, ich zależności czasowe mogą być niedeterministyczne (zwłaszcza w systemach wieloprocesorowych) Zakleszczenie (deadlock) niewłaściwe użycie obiektów synchronizacji może prowadzić do sytuacji, kiedy wątek A uzyskał zasób a i czeka aż wątek B zwolni zasób b, podczas gdy wątek B uzyskał zasób b i czeka aż wątek A zwolni zasób a Stabilność wadliwy wątek prowadzi do wywalenia się całego procesu
7 Wyścigi Efekt oczekiwany Efekt możliwy Te sytuacje prowadzą do bardzo trudnych do zdiagnozowania bugów (Heisenbugs) Rozwiązaniem jest użycie obiektów wzajemnej wyłączności (mutual exclusion mutex) lub innych obiektów synchronizacji (np. monitor) lub operacji atomowych
8 Deadlock Niezbędne jest zachowywanie tej samej sekwencji akwizycji zasobów w obu wątkach lub zastosowanie bezpiecznych wzorców np. monitor
9 Cykl życia wątku Poza wątkiem głównym, dodatkowe wątki są powoływane do życia jawnie, poprzez wywołanie systemowe (funkcję systemu operacyjnego) Wątek może być stworzony w stanie wstrzymanym lub działającym, niektóre systemy umożliwiają również wstrzymanie działającego wątku (czego należy unikać bo prowadzi do deadlock-a) Aby utworzyć wątek potrzebujemy funkcji wątku, która będzie stanowić jego ścieżkę wykonania kodu Kiedy funkcja wątku kończy się, wątek staje się joinable (złączalny??) Wątek może zostać złączony (joined) w dowolnym momencie, ale złączenie (join) będzie wstrzymany aż wątek stanie się joinable Złączenie (join) wątku kończy jego istnienie i zwalnia zasoby
10 Na Windows użyj API _beginthread()/_beginthreadex() aby stworzyć wątek (lub funkcję CreateThread()); WaitForSingleObject() lub inne funkcje oczekiwania aby złączyć (join) go Na POSIX-ach użyj API phtread_create() & pthread_join() (patrz man 3 pthread_create) Najlepiej: używaj standardu C++11 i klasy std::thread z nagłówka <thread>
11 Pula wątków Ogólny wzorzec użytkowy, w którym tworzymy wiele wątków, a zadania do wykonania kolejkujemy Wątki robocze pobierają zadania z kolejki, przetwarzają je i zachowują wynik Po zakończeniu zadania wątek powraca do puli i oczekuje na kolejne zadanie (lub natychmiast dostaje zadanie, jeśli już jest w kolejce) Zadania (i ich czas wykonania) mogą być identyczne lub różne możliwe optymalizacje Przepływność systemu się zwiększa (całkowity czas wykonania wszystkich zadań się zmniejsza) Liczba wątków może odpowiadać liczbie rdzeni procesora (dlaczego?)
12 Bezpieczeństwo ze względu na wątki (thread safety) Fragment kodu jest thread-safe jeżeli manipuluje współdzielonymi strukturami danych w sposób, który gwarantuje bezpieczne wykonanie przez wiele wątków na raz (gwarancja braku wyścigów) Rozwiązania Unikaj współdzielonych danych Re-entrancy pisz kod w taki sposób, żeby nie wiązało się to z przechowywaniem stanu w zmiennych globalnych/dzielonych. Dostęp do nie-lokalnego stanu odbywa się za pomocą operacji atomowych Thread-local storage każdy wątek ma własną kopię danych Synchronizuj dostęp do współdzielonych danych Mutual exclusion (wzajemna wyłączność) dostęp do danych jest szeregowany za pomocą obiektów synchronizacji zapewniających że tylko jeden wątek czyta/zapisuje dane na raz Operacje atomowe użycie specjalnych instrukcji, które nie mogą być przerwane przez inne wątki Stan niezmienny po utworzeniu, stan obiektu nie może się zmienić
13 Thread local storage Niektóre systemy lub języki programowania pozwalają tworzyć zmienne, których wartość może być różna w każdym wątku każdy wątek otrzymuje inną kopię tej samej zmiennej Najbardziej popularnym przykładem jest zmienna errno (kod ostatniego błędu) ze standardowej biblioteki języka C gdyby istniała tylko 1 zmienna errno dla wszystkich wątków mielibyśmy łatwo do czynienia z wyścigami (operacje z różnych wątków nadpisują swoje kody błędu) Jak używać? C++11 słowo kluczowe thread_local używane z globalnymi/statycznymi zmiennymi MSVC deklarator _declspec(thread) dla zmiennych GNU C deklarator thread POSIX pthread_key_create()/pthread_setspecific()/pthread_key_delete() Windows TlsAlloc()/TlsSetValue()/TlsGetValue()/TlsFree()
14 Operacje atomowe Procesory posiadają instrukcje, które są nieprzerywalne, tzn. ich wykonanie chwilowo wstrzymuje przerwania sprzętowe (które są używane do przełączania wątków) gwarancja, że instrukcja zakończy się deterministycznym wynikiem na systemach jednoprocesorowych Niektóre procesory posiadają również instrukcje, które uniemożliwiają innym procesorom równoczesną modyfikację tych samych komórek pamięci kosztem spadku wydajności wynikającego z wyczyszczenia cache procesora Każda operacja może być zmieniona w atomową poprzez zamknięcie w sekcji krytycznej dodanie obiektów synchronizacji wzajemnego wykluczenia (mutex) uniemożliwiających innym wątkom równoczesne wykonanie W C++11 używaj szablonu klasy std::atomic<> aby tworzyć atomowe typy podstawowe
15 Kod bezpieczny ze względu na wątki Atomowość poprzez synchronizację (mutual exclusion) Bezpieczny ale nie reentrant globalne zmienne chronione przez mutex Atomowa zmienna globalna
16 Wzorzec singleton i problem równoczesnej inicjalizacji Singleton jest wzorcem projektowym, który ogranicza klasę do stworzenia pojedynczej instancji obiektu (AKA There can be only one) co jest często pożądane Wprowadza to do programu stan globalny Zmienna globalna + wielowątkowość = problemy Co stanie się kiedy kod inicjujący instancę singletona jest wykonany równocześnie przez wiele wątków? (AKA concurrent initialization problem odnosi się to do wszystkich zmiennych globalnych)
17 Problem równoczesnej inicjalizacji Naiwny singleton Działający singleton
18 Biblioteka OpenMP Open Multi-Processing wieloplatformowe, ustandaryzowane API do tworzenia aplikacji wielowątkowych Zwłaszcza do tworzenia wysokowydajnych programów do mielenia numerków Zalety Wady Przenośność (Portability) nie trzeba znać API wątków specyficznego dla danej platformy (jak pthreads albo Windows threads) Proste API w porównaniu do natywnych Ten sam kod może działać jako szeregowy lub równoległy w zależności od konfiguracji środowiska OpenMP, nie trzeba zmieniać projektu aplikacji Proste nie tak wyrafinowane API jak natywne Brak możliwości obsługi błędów OpenMP program się po prostu wywala Brak jawnego użycia obiektów synchronizacji trudne do wykrycia bugi
19 OpenMP keidy używać? Gdy dekomponujemy problem polegający na wykonaniu tego samego zadania na różnych partycjach danych (data parallelism) Przykład: przeprowadź filtrację wielu kanałów danych dźwiękowych równocześnie użycie #pragma omp parallel for
20 Konstrukcje OpenMP Podział/zrównoleglenie pracy tworzenie równoległych pętli i dystrybucja sekcji szeregowego kodu do wątków Podział/zdrównoleglenie danych oznaczenie zmiennych jako współdzielonych albo prywatnych dla wątków Map/reduce określenie zmiennych odbierających wynik redukcji danych z wątków i operacji redukcji Synchronizacja tworzenie sekcji krytycznych, operacje atomowe & bariery wątków Szeregowanie określenie modelu szeregowania dla równoległych pętli Zrównoleglenie warunkowe Detekcja liczby procesorów, funkcje do mierzenia czasu
21 Więcej o OpenMP Rozszerzenia OpenMP stanowią w zasadzie osobny język programowania, który nie jest trywialny W OpenMP nie ma niczego, czego by się nie dało zrobić za pomocą natywnych API, ale czasem OpenMP sprawia, że jest to: Łatwiejsze i szybsze w implementacji Mniej czytelne i trudniejsze do zrozumienia OpenMP pozwala uruchamiać ten sam kod na procesorach CPU i platformach GPGPU domowy superkomputer (patrz również OpenCL ) OpenMP najlepiej sprawdza się przy problemach zawstydzająco równoległych (embarrassingly parallel), bardziej złożone zadania lepiej zostawić dla specjalnie zaprojektowanych modeli używających przenośnych narzędzi wątków jak nagłówek <thread> z C++11 lub biblioteka boost.threads
22 Obiekty synchroniozacji Mutex Semaphore Condition variable Monitor (właściwie nie pojedynczy obiekt) Barrier Read/Write Lock Event (Windows)
23 Mutex MUTual EXclusion object Podstawowe narzędzie tworzenia sekcji krytycznych Tylko jeden wątek może przejąć własność mutexa Inne wątki usiłujące przejąć własność mutexa będą oczekiwać aż pierwszy wątek odda własność Operacje: acquire (lock) release (unlock) try acquire (try lock) zwraca wartość logiczną, czy własność została przekazana
24 Mutex
25 Rodzaje Mutexów W odniesieniu do granic procesów Inter-process używany do IPC, umożliwia blokowanie wątków należących do różnych procesów (POSIX: pthread_mutex_create(); Windows: CreateMutex()) Intra-process tani mutex do używania wewnątrz jednego procesu (Windows: InitializeCriticalSection()) W odniesieniu do rekurencji zwykły zgłosi błąd kiedy ten sam wątek będzie chciał wejść w mutex ponownie rekursywny pozwoli na wejście kilka razy (i będzie wymagał tyle samo odblokowań) tylko takie są dostępne natywnie na Windows
26 wzorzec Scoped lock (C++) Użycie funkcji lock()/unlock() mutexu jest zwykle niebezpieczne (lub niewygodne) w przypadku kodu z wyjątkami W takiej sytuacji sprawdzi się dodatkowa klasa pomocnicza scoped lock, która zablokuje mutex w konstruktorze i odblokuje w destruktorze, więc nawet w przypadku wystąpienia wyjątku, mutex zostanie odblokowany zapobiegając deadlockowi
27 Semaphore Obiekt synchronizacji, który przechowuje licznik zablokowań (i opcjonalnie posiada ograniczenie na maksymalną liczbę zablokowań) Licznik zablokowań zwiększa się za pomocą operacji signal (podniesienie semafora) Licznik zmniejsza się operacją wait; oczekiwanie na semaforze z zerowym licznikiem będzie blokować tak długo, aż semafor zostanie podniesiony Semafor nie ma pojęcia właściciela każdy wątek może czekać lub podnosić semafor Mutex jest specjalnym przypadkiem semafora z maksymalną liczbą zablokowań 1 i ograniczeniem, że tylko wątek który zajął semafor (operacja wait zakończyła się sukcesem) może go zwolnić (podnieść, zasygnalizować) Semafory są trudniejsze do zrozumienia i poprawnego używania niż mutexy, więc raczej należy ich unikać, chyba że się wie co się robi ;)
28 Condition variable Podstawowy składnik monitor-a Wątki będą czekać na obiekcie CV dopóki jeden z nich nie zostanie wypuszczony za pomocą operacji signal (lub wszystkie za pomocą broadcast) CV musi być użyty razem z mutexem wątek, którego oczekiwanie zakończy się sukcesem, automatycznie uzyskuje własność mutexa (atomowo)
29 Condition variable
30 wzorzec użycia Condition variable
31 wzorzec Monitor Sposób użycia CV razem z mutexem z poprzedniego przykładu to wzorzec Monitor Jest to podstawowy schemat postępowania w przypadku gdy wątek oczekuje na jakieś zdarzenie wewnątrz sekcji krytycznej, zaś zdarzenie będzie sygnalizowane z innego wątka Jest to jedyny dostępny konstrukt synchronizacji/oczekiwania w Javie Jest to bezpieczny i sprawdzony sposób na uniknięcie wyścigów podczas oczekiwania na zdarzenie, ponieważ operacja oczekiwania i zwalniania mutexu oraz budzenia i blokowania mutexu odbywają się atomowo
32 Barrier Barrier (lub rendezvous point) jest to miejsce w kodzie, gdzie grupa wątków jest blokowana i nie może kontynuować dopóki wszystkie wątki w grupie nie osiągną bariery Bariera wymusza synchronizację wątków jest to użyteczne w wysokowydajnych obliczeniach i mieleniu numerków
33 Read/Write lock Obiekt nazywany również shared mutex Specjalny rodzaj mutexa, który pozwala wielu wątkom równocześnie wykonać operację read ale tylko jeden wątek może mieć dostęp write Możliwy wzrost wydajności w przypadku, kiedy operacja write zdarza się rzadko, a operacje read często Natywne wsparcie w POSIXach, na Windows brak Jak działa? Zablokowanie dla zapisu zablokuje wszystkie inne wątki, zarówno czytające, jak i piszące Wątki zapisujące będą czekać aż wszystkie wątki piszące i czytające opuszczą RWLock Operacje specjalne: upgrade rwlock z trybu czytania do trybu zapisu Dużo wątków czytających może zagłodzić wątki piszące nigdy nie umożliwając im wejść w rwlock
34 Events (zdarzenia) Windows Specjalny przypadek binarnego semafora (licznik 0/1), który w przeciwieństwie do mutexa nie uznaje własności 2 rodzaje: Manual reset kiedy wątek zakończy sukcesem oczekiwanie na zdarzeniu, musi zostać ręcznie zresetowany do stanu niesygnalizowanego (pozostaje podniesiony dopóki nie zostanie jawnie opuszczony) Automatic reset kiedy wątek zakończy sukcesem oczekiwanie na zdarzeniu, obiekt jest automatycznie, atomowo resetowany do stanu nie-sygnalizowanego (semafor opuszczony) Specyficzne i trudne w poprawnym użyciu lepiej stosować standardowe obiekty (monitor)
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ółowoProgramowanie współbieżne Wykład 9 Synchronizacja dostępu do współdzielonych zasobów. Iwona Kochańska
Programowanie współbieżne Wykład 9 Synchronizacja dostępu do współdzielonych zasobów Iwona Kochańska Sekcja krytyczna Instrukcje wykonywane na zmiennych współdzielonych tworzą sekcję krytyczną. Instrukcje
Bardziej szczegółowoProgramowanie 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ółowoProjektowanie 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ółowoProgramowanie 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ółowoPrzetwarzanie 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ółowoProgramowanie 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ółowoStworzenie 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ółowoProgramowanie 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ółowoWielową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ółowoTworzenie 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ółowoWspół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ółowoJava. Wykład. Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ
Procesy i wątki Proces posiada samodzielne środowisko wykonawcze. Proces posiada własny zestaw podstawowych zasobów w czasie wykonywania; W szczególności, każdy proces ma własną przestrzeń pamięci. W uproszczeniu
Bardziej szczegółowo4. 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ółowoProgramowanie 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ółowoProcesy 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ółowoWielozadaniowość w systemie Microsoft Windows
Wielozadaniowość w systemie Microsoft Windows mgr inż. Tomasz Jaworski tjaworski@kis.p.lodz.pl http://tjaworski.kis.p.lodz.pl/ Idea wielozadaniowości Proces główny Wątki Algorytm szeregowania ustala kolejność
Bardziej szczegółowoProgramowanie 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ółowoProgramowanie równoległe i rozproszone. W1. Wielowątkowość. Krzysztof Banaś Programowanie równoległe i rozproszone 1
Programowanie równoległe i rozproszone W1. Wielowątkowość Krzysztof Banaś Programowanie równoległe i rozproszone 1 Problemy współbieżności wyścig (race condition) synchronizacja realizowana sprzętowo (np.
Bardziej szczegółowoSynchronizacja 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ółowoProgramowanie Rozproszone i Równoległe
Programowanie Rozproszone i Równoległe OpenMP (www.openmp.org) API do pisania wielowątkowych aplikacji Zestaw dyrektyw kompilatora oraz procedur bibliotecznych dla programistów Ułatwia pisanie programów
Bardziej szczegółowoObliczenia 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ółowoPrzeplot. 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ółowoProgramowanie 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ółowo5. 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ółowoProgram współbieżny jest zbiorem sekwencyjnych PROGRAMOWANIE C++
PROGRAMOWANIE C++ Współdzielenie obiektów w aplikacjach współbieżnych Używanie tych samych obiektów przez różne wątki może prowadzić do niezdefiniowanego zachowania się aplikacji. Obiekty synchronizacyjne
Bardziej szczegółowoMariusz Rudnicki PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO CZ.4
Mariusz Rudnicki mariusz.rudnicki@eti.pg.gda.pl PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO CZ.4 Synchronizacja wątków Omawiane zagadnienia Czym jest synchronizacja wątków? W jakim celu stosuje się mechanizmy
Bardziej szczegółowoAutor: dr inż. Zofia Kruczkiewicz, Programowanie aplikacji internetowych 1
Wątki 1. Wątki - wprowadzenie Wątkiem nazywamy sekwencyjny przepływ sterowania w procesie, który wykonuje dany program np. odczytywanie i zapisywanie plików Program Javy jest wykonywany w obrębie jednego
Bardziej szczegółowoJęzyk Java wątki (streszczenie)
Programowanie współbieżna Język Java wątki (streszczenie) Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski @ pwr.wroc.pl Języka Java wątki Autor:
Bardziej szczegółowo4. 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ółowoWykł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ółowoProgramowanie procesorów graficznych GPGPU
Programowanie procesorów graficznych GPGPU 1 GPGPU Historia: lata 80 te popularyzacja systemów i programów z graficznym interfejsem specjalistyczne układy do przetwarzania grafiki 2D lata 90 te standaryzacja
Bardziej szczegółowoWstę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ółowoSystemy operacyjne. Zajęcia 11. Monitory
Systemy operacyjne. Zajęcia 11. Monitory 1. Monitor to mechanizm zamykający całą pamięć wspólną i synchronizację w pojedynczym module. 2. Monitor posiada całą pamięć wspólną jako część 'prywatną': dostępu
Bardziej szczegółowoPrezentacja systemu RTLinux
Prezentacja systemu RTLinux Podstawowe założenia RTLinux jest system o twardych ograniczeniach czasowych (hard real-time). Inspiracją dla twórców RTLinux a była architektura systemu MERT. W zamierzeniach
Bardziej szczegółowoSYSTEMY OPERACYJNE PROCESORÓW SYGNAŁOWYCH
Zastosowania procesorów sygnałowych SYSTEMY OPERACYJNE PROCESORÓW SYGNAŁOWYCH Opracowanie: Grzegorz Szwoch Politechnika Gdańska, Katedra Systemów Multimedialnych Programowanie bez OS Proste programy na
Bardziej szczegółowoProgramowanie współbieżne Zadanie 5 - Podstawowe problemy programowania współbieżnego
150875 Grzegorz Graczyk numer indeksu imię i nazwisko 151021 Paweł Tarasiuk numer indeksu imię i nazwisko Data 2011-11-07 Kierunek Informatyka Specjalizacja Inżynieria Oprgoramowania i Analiza Danych Rok
Bardziej szczegółowoPrzetwarzanie Równoległe i Rozproszone
POLITECHNIKA KRAKOWSKA - WIEiK KATEDRA AUTOMATYKI I TECHNOLOGII INFORMACYJNYCH Przetwarzanie Równoległe i Rozproszone www.pk.edu.pl/~zk/prir_hp.html Wykładowca: dr inż. Zbigniew Kokosiński zk@pk.edu.pl
Bardziej szczegółowoSemafor nie jest mechanizmem strukturalnym. Aplikacje pisane z użyciem semaforów są podatne na błędy. Np. brak operacji sem_post blokuje aplikację.
J. Ułasiewicz Programowanie aplikacji współbieżnych 1 11 Semafor nie jest mechanizmem strukturalnym. Aplikacje pisane z użyciem semaforów są podatne na błędy. Np. brak operacji sem_post blokuje aplikację.
Bardziej szczegółowoProcesory wielordzeniowe (multiprocessor on a chip) Krzysztof Banaś, Obliczenia wysokiej wydajności.
Procesory wielordzeniowe (multiprocessor on a chip) 1 Procesory wielordzeniowe 2 Procesory wielordzeniowe 3 Konsekwencje prawa Moore'a 4 Procesory wielordzeniowe 5 Intel Nehalem 6 Architektura Intel Nehalem
Bardziej szczegółowoZaawansowany kurs języka Python
Wykład 6. 6 listopada 2015 Plan wykładu Callable objects 1 Callable objects 2 3 Plan wykładu Callable objects 1 Callable objects 2 3 Callable objects Wszystko jest obiektem. Callable objects Wszystko jest
Bardziej szczegółowoJądro systemu operacyjnego
Jądro systemu operacyjnego Jądro (ang. kernel) jest to podstawowa część systemu operacyjnego, która jest odpowiedzialna za wszystkie jego zadania. Zapewnia ono usługi systemowe takie jak: komunikacja między
Bardziej szczegółowoZaawansowane programowanie w języku C++
Kod szkolenia: Tytuł szkolenia: C/ADV Zaawansowane programowanie w języku C++ Dni: 3 Opis: Uczestnicy szkolenia zapoznają się z metodami wytwarzania oprogramowania z użyciem zaawansowanych mechanizmów
Bardziej szczegółowoWykład 5. Synchronizacja (część II) Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB
Wykład 5 Synchronizacja (część II) Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB Wady semaforów Jeden z pierwszych mechanizmów synchronizacji Generalnie jest to mechanizm bardzo
Bardziej szczegółowoSystemy Operacyjne 2: Wątki pthreads. dr inż. Arkadiusz Chrobot
Systemy Operacyjne 2: Wątki pthreads dr inż. Arkadiusz Chrobot 18 kwietnia 2013 1. Wprowadzenie Wątki podobnie jak procesy umożliwiają współbieżną realizację czynności w wykonywanym programie. Domyślnie
Bardziej szczegółowoTemat zajęć: Tworzenie i obsługa wątków.
Temat zajęć: Tworzenie i obsługa wątków. Czas realizacji zajęć: 180 min. Zakres materiału, jaki zostanie zrealizowany podczas zajęć: Tworzenie wątków, przekazywanie parametrów do funkcji wątków i pobieranie
Bardziej szczegółowoModele programowania równoległego. Pamięć współdzielona Rafał Walkowiak dla III roku Informatyki PP
Modele programowania równoległego Pamięć współdzielona Rafał Walkowiak dla III roku Informatyki PP Procesy a wątki [1] Model 1: oparty o procesy - Jednostka tworzona przez system operacyjny realizująca
Bardziej szczegółowoProcesy, 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ółowo1 Wątki 1. 2 Tworzenie wątków 1. 3 Synchronizacja 3. 4 Dodatki 3. 5 Algorytmy sortowania 4
Spis treści 1 Wątki 1 2 Tworzenie wątków 1 3 Synchronizacja 3 4 Dodatki 3 5 Algorytmy sortowania 4 6 Klasa Runnable 4 Temat: Wątki Czym są wątki. Grafika. Proste animacje. Małe podsumowanie materiału.
Bardziej szczegółowoNazwa 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ółowoJę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ółowoSystemy 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ółowoProces 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ółowoSemafor nie jest mechanizmem strukturalnym. Aplikacje pisane z użyciem semaforów są podatne na błędy. Np. brak operacji sem_post blokuje aplikację.
J. Ułasiewicz Programowanie aplikacji współbieżnych 1 11 11.1 abstrakcyjne Semafor nie jest mechanizmem strukturalnym. Aplikacje pisane z użyciem semaforów są podatne na błędy. Np. brak operacji sem_post
Bardziej szczegółowoOd 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ółowoKomunikacja za pomocą potoków. Tomasz Borzyszkowski
Komunikacja za pomocą potoków Tomasz Borzyszkowski Wstęp Sygnały, omówione wcześniej, są użyteczne w sytuacjach błędnych lub innych wyjątkowych stanach programu, jednak nie nadają się do przekazywania
Bardziej szczegółowoSzkoła programisty PLC : sterowniki przemysłowe / Gilewski Tomasz. Gliwice, cop Spis treści
Szkoła programisty PLC : sterowniki przemysłowe / Gilewski Tomasz. Gliwice, cop. 2017 Spis treści O autorze 9 Wprowadzenie 11 Rozdział 1. Sterownik przemysłowy 15 Sterownik S7-1200 15 Budowa zewnętrzna
Bardziej szczegółowoPrzygotowanie kilku wersji kodu zgodnie z wymogami wersji zadania,
Przetwarzanie równoległe PROJEKT OMP i CUDA Temat projektu dotyczy analizy efektywności przetwarzania równoległego realizowanego przy użyciu komputera równoległego z procesorem wielordzeniowym z pamięcią
Bardziej szczegółowoWykład 4. Synchronizacja procesów (i wątków) cześć I. Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB
Wykład 4 Synchronizacja procesów (i wątków) cześć I Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB Potrzeba synchronizacji Procesy wykonują się współbieżnie. Jeżeli w 100% są
Bardziej szczegółowoProgramowanie równoległe i asynchroniczne w C# 5.0 / Mateusz Warczak [et al.]. Gliwice, cop Spis treści
Programowanie równoległe i asynchroniczne w C# 5.0 / Mateusz Warczak [et al.]. Gliwice, cop. 2014 Spis treści Wstęp 9 Przedmowa 11 Rozdział 1. Dla niecierpliwych: asynchroniczność i pętla równoległa 13
Bardziej szczegółowoProces 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ółowoObiekt klasy jest definiowany poprzez jej składniki. Składnikami są różne zmienne oraz funkcje. Składniki opisują rzeczywisty stan obiektu.
Zrozumienie funkcji danych statycznych jest podstawą programowania obiektowego. W niniejszym artykule opiszę zasadę tworzenia klas statycznych w C#. Oprócz tego dowiesz się czym są statyczne pola i metody
Bardziej szczegółowoWsparcie dla OpenMP w kompilatorze GNU GCC Krzysztof Lamorski Katedra Informatyki, PWSZ Chełm
Wsparcie dla OpenMP w kompilatorze GNU GCC Krzysztof Lamorski Katedra Informatyki, PWSZ Chełm Streszczenie Tematem pracy jest standard OpenMP pozwalający na programowanie współbieŝne w systemach komputerowych
Bardziej szczegółowoWprowadzenie 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ółowoWą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ółowoMechanizmy 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ółowoObliczenia 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ółowoProgramowanie współbieżne i równoległe. dr inż. Marcin Wilczewski 2013
Programowanie współbieżne i równoległe dr inż. Marcin Wilczewski 2013 1 Tematyka wykładu Wprowadzenie. Podstawowe pojęcia Wątki i procesy. Metody i modele synchronizacji Klasyczne problemy współbieżne
Bardziej szczegółowoProcesory wielordzeniowe (multiprocessor on a chip) Krzysztof Banaś, Obliczenia wysokiej wydajności.
Procesory wielordzeniowe (multiprocessor on a chip) 1 Procesory wielordzeniowe 2 Procesory wielordzeniowe 3 Intel Nehalem 4 5 NVIDIA Tesla 6 ATI FireStream 7 NVIDIA Fermi 8 Sprzętowa wielowątkowość 9 Architektury
Bardziej szczegółowoModel pamięci. Rafał Skinderowicz
Model pamięci Rafał Skinderowicz Czym jest model pamięci Model pamięci dotyczy programów współbieżnych W programie współbieżnym może się zdarzyć, że dany wątek nie będzie widział od razu wartości zmiennej
Bardziej szczegółowoImplementacje zgodne z tym standardem są nazywane wątkami POSIX lub Pthreads.
pthreads (POSIX) implementacji równoległości poprzez wątki w architekturach wieloprocesorowych z pamięcią współdzieloną przenośność problem programistyczny, gdy dostawcy sprzętu wdrażali własne wersje
Bardziej szczegółowoIngerencja 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ółowoLock Manager Deadlock Źródła Jak starczy czasu. Dreadlocks. Konrad Błachnio MIMUW 19 maja 2010
Konrad Błachnio K.Blachnio@students.mimuw.edu.pl MIMUW 19 maja 2010 1 Co to jest? API Implementacja 2 ILockManagerWithDetecting s - straszny zamek 3 4 Obecna implementacja Lock vs. Synchronized Hashtable
Bardziej szczegółowoWspół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ółowodr 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ółowoSystemy 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ółowow odróżnieniu od procesów współdzielą przestrzeń adresową mogą komunikować się za pomocą zmiennych globalnych
mechanizmy posix Wątki w odróżnieniu od procesów współdzielą przestrzeń adresową należą do tego samego użytkownika są tańsze od procesów: wystarczy pamiętać tylko wartości rejestrów, nie trzeba czyścić
Bardziej szczegółowoTask Parallel Library
Task Parallel Library Daan Leijen, Wolfram Schulte, and Sebastian Burckhardt prezentacja Michał Albrycht Agenda O potrzebie zrównoleglania Przykłady użycia TPL Tasks and Replicable Tasks Rozdzielanie zadań
Bardziej szczegółowoPOSIX ang. Portable Operating System Interface for Unix
POSIX ang. Portable Operating System Interface for Unix POSIX: próba standaryzacji różnych dystrybucji systemu operacyjnego UNIX, Początek prac 1985 r. pod auspicjami IEEE. POSIX IEEE 1003, Obecnie rozwojem
Bardziej szczegółowoKurs języka Python. Wątki
Kurs języka Python Wątki Wątek Wątek (ang. thread) to jednostka wykonawcza w obrębie jednego procesu, będąca kolejnym ciągiem instrukcji wykonywanym w obrębie tych samych danych (w tej samej przestrzeni
Bardziej szczegółowoJęzyk Java wątki (streszczenie)
Programowanie współbieŝna Język Java wątki (streszczenie) Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski @ pwr.wroc.pl Podstawowe pojęcia: procesy
Bardziej szczegółowoTworzenie 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ółowoNowoczesne technologie przetwarzania informacji
Projekt Nowe metody nauczania w matematyce Nr POKL.09.04.00-14-133/11 Nowoczesne technologie przetwarzania informacji Mgr Maciej Cytowski (ICM UW) Lekcja 2: Podstawowe mechanizmy programowania równoległego
Bardziej szczegółowosynchronizacji procesów
Dariusz Wawrzyniak Definicja semafora Klasyfikacja semaforów Implementacja semaforów Zamki Zmienne warunkowe Klasyczne problemy synchronizacji Plan wykładu (2) Semafory Rodzaje semaforów (1) Semafor jest
Bardziej szczegółowoWątki w Javie. Piotr Tokarski
Wątki w Javie Piotr Tokarski Wprowadzenie Co to są wątki? Co to są wątki? Każdy program ma przynajmniej jeden wątek Co to są wątki? Każdy program ma przynajmniej jeden wątek Wątki są po to, by symulować
Bardziej szczegółowoLiteratura. 11/16/2016 Przetwarzanie równoległe - wstęp 1
Literatura 1. Wprowadzenie do obliczeń równoległych, Zbigniew Czech, Wydawnictwo Naukowe PWN, 2010, 2013 2. Introduction to Parallel Computing; Grama, Gupta, Karypis, Kumar; Addison Wesley 2003 3. Designing
Bardziej szczegółowoOd 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ółowoTechnologie obiektowe
WYKŁAD dr inż. Paweł Jarosz Instytut Informatyki Politechnika Krakowska mail: pjarosz@pk.edu.pl LABORATORIUM dr inż. Paweł Jarosz (3 grupy) mgr inż. Piotr Szuster (3 grupy) warunki zaliczenia Obecność
Bardziej szczegółowoProgramowanie wielowątkowe. Jarosław Kuchta
Programowanie wielowątkowe Jarosław Kuchta Procesy i wątki w systemie Windows Windows jest systemem wielowątkowym. Każdy proces ma przynajmniej jeden wątek, chociaż może mieć wiele wątków. Start programu,
Bardziej szczegółowoWykład 8: klasy cz. 4
Programowanie obiektowe Wykład 8: klasy cz. 4 Dynamiczne tworzenie obiektów klas Składniki statyczne klas Konstruktor i destruktory c.d. 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD
Bardziej szczegółowoSYSTEMY OPERACYJNE I SIECI KOMPUTEROWE
SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE WINDOWS 1 SO i SK/WIN 007 Tryb rzeczywisty i chroniony procesora 2 SO i SK/WIN Wszystkie 32-bitowe procesory (386 i nowsze) mogą pracować w kilku trybach. Tryby pracy
Bardziej szczegółowoTworzenie 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ółowoBudowa komputera. Magistrala. Procesor Pamięć Układy I/O
Budowa komputera Magistrala Procesor Pamięć Układy I/O 1 Procesor to CPU (Central Processing Unit) centralny układ elektroniczny realizujący przetwarzanie informacji Zmiana stanu tranzystorów wewnątrz
Bardziej szczegółowosynchronizacji procesów
Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak Plan wykładu Definicja semafora Klasyfikacja semaforów Implementacja semaforów Zamki Zmienne warunkowe Klasyczne problemy synchronizacji (2) Semafory
Bardziej szczegółowoξ 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ółowoWIELOWĄTKOWOŚĆ. Waldemar Korłub. Platformy Technologiczne KASK ETI Politechnika Gdańska
WIELOWĄTKOWOŚĆ Waldemar Korłub Platformy Technologiczne KASK ETI Politechnika Gdańska Wydajność 2 Do 2005 roku wydajność komputerów poprawiano zwiększając częstotliwość taktowania procesora 1995: Pentium
Bardziej szczegółowoMariusz Rudnicki PROGRAMOWANIE WSPÓŁBIEŻNE I SYSTEMY CZASU RZECZYWISTEGO CZ.4
Mariusz Rudnicki mariusz.rudnicki@eti.pg.gda.pl PROGRAMOWANIE WSPÓŁBIEŻNE I SYSTEMY CZASU RZECZYWISTEGO CZ.4 Synchronizacja wątków Omawiane zagadnienia Czym jest synchronizacja wątków? W jakim celu stosuje
Bardziej szczegółowoSingleton. Cel: Przykład: Zastosowanie: Zapewnienie, że klasa ma tylko jedną instancję i dostarczenie globalnego dostępu do niej.
1/8 Singleton Cel: Zapewnienie, że klasa ma tylko jedną instancję i dostarczenie globalnego dostępu do niej. Przykład: Niekiedy ważne jest, aby tworzyć tylko jedną instancję jakiejś klasy. Globalne zmienne
Bardziej szczegółowoMariusz 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