Modele programowania równoległego. Pamięć współdzielona Rafał Walkowiak dla III roku Informatyki PP
|
|
- Krystyna Rutkowska
- 7 lat temu
- Przeglądów:
Transkrypt
1 Modele programowania równoległego Pamięć współdzielona Rafał Walkowiak dla III roku Informatyki PP
2 Procesy a wątki [1] Model 1: oparty o procesy - Jednostka tworzona przez system operacyjny realizująca program posiadająca powiązany z nią zbiór zasobów: struktury danych z informacjami o procesie, wirtualna przestrzeń adresowa zawierająca program i dane oraz wątek przetwarzania. Tworzenie i przełączanie procesów realizowane przez jądro systemu operacyjnego. Tworzenie kopii danych procesu. Przestrzenie adresowe procesów niezaleŝne, ne, pamięć współdzielona definiowana oddzielnie dostępna za pomocą dedykowanych funkcji. Silne zabezpieczenie praw dostępu do danych, narzuty czasowe związane z zabezpieczeniami praw (typowe dla aplikacji róŝnych uŝytkowników niepotrzebne dla przetwarzania równoległego i współpracy). Model fork/exec tworzenie i łączenie ścieŝek przetwarzania. Wywołania shmget/mmap do współdzielenia pamięci. Standardowe funkcje dla większości UNIXów. 12/4/2011 Pamięć współdzielona 2
3 Procesy a wątki [2] Model 2 - oparty o wątki: Wątek przetwarzania to niezaleŝna ścieŝka realizacji programu powiązana ze stanem rejestrów procesora. Wątki programu współdzielą pamięć, pliki i inne atrybuty procesu - dane i kod nie są powielone. KaŜdy wątek ma własny stos i zmienne lokalne na stosie. NiŜszy poziom zabezpieczeń dostępu do zasobów. Model efektywny ze względu na niŝsze narzuty czasowe obsługi. Wątki mogą być zawieszone zrzekają się procesora lub aktywnie sprawdzać stan zmiennej określającej ich stan oczekiwania. Efekt -brak moŝliwości wykorzystania procesora przez inne wątki, lecz mniejsze koszty wznowienia przetwarzania niŝ dla wątku zawieszonego. Efektywny jest powrót wątku na ten sam procesor ze względu na dane w pamięci podręcznej juŝ pobrane wcześniej (niektóre systemy zapewniają). 12/4/2011 Pamięć współdzielona 3
4 Cechy modelu pamięci współdzielonej z wątkami przetwarzania Przenośność oprogramowania maszyny szeregowe i równoległe. Ukrywanie opóźnień dostępu do pamięci, I/O, komunikacja dzięki wielu wątkom na jednym procesorze jeden czeka drugi jest przetwarzany. Zapewnia wspomaganie programisty na poziomie szeregowania i równowaŝenia obciąŝeń. Łatwiejsze programowanie niŝ przez przekazywanie komunikatów, lecz dopiero dodatkowy wysiłek optymalizacyjny pozwala osiągnąć analogiczną efektywność. Standard API z wątkami to POSIX API Pthreads. 12/4/2011 Pamięć współdzielona 4
5 Podstawy pracy z wątkami Tworzenie i kończenie wątku pthread_create parametry: identyfikator watku uchwyt, kod funkcji, argumenty funkcji pthread_exit zakończenie funkcji kodu wątku pthread_ join parametr: identyfikator wątku - wstrzymanie przetwarzania do momentu zakończenia wskazywanego wątku. Wzajemne wykluczenie (sekcja krytyczna kodu) zamek pthread_mutex_lock, pthread_mutex_unlock, pthread_mutex_trylock (wersja nieblokująca, jest szybsza, wątek moŝe realizować własne prace) WaŜne jest zapewnienie w programie: moŝliwe krótkich sekcji krytycznych, moŝliwie rzadki dostęp do zmiennych współdzielonych (zapis do zmiennych lokalnych i uaktualnienie zbiorcze rzadsze: synchronizacja i konieczność uaktualniania pamięci podręcznej po zapisie). 5
6 Synchronizacja ze zmienną warunkową pthread_cond_wait zamek warunkowy, parametry: zmienna warunkowa i zamek; Wątek zakłada standardowy zamek, a następnie jest zawieszany w oczekiwaniu na sygnalizację dla zmiennej warunkowej przez inny wątek, zamek jest zdejmowany przy zawieszeniu wątku, sygnalizacja zmiennej warunkowej powoduje wznowienie zablokowanego wątku, który oczekuje na pozyskanie zamka przed wyjściem z funkcji. Taki mechanizm umoŝliwia zrealizowanie w sposób wykluczający pracy po sygnalizacji dla zmiennej warunkowej związanej z tym zamkiem. Wznowienie zawieszonego wątku (wątków) w wyniku sygnalizacji pthread_cond_signal (lub pthread_cond_broadcast). Wykorzystanie przerwania, a nie cyklicznego sprawdzania wyŝsza efektywność rozwiązania niŝ sam zamek - oddawanie procesora przez wątek. Dostępna równieŝ wersja z określonym czasem oczekiwania na sygnalizację zmiennej warunkowej. Dostępne równieŝ wersje zamków: wielokrotnego i pojedynczego z testowaniem poprawności (błąd wielokrotnego zamykania). 12/4/2011 Pamięć współdzielona 6
7 Przykładowe złoŝone mechanizmy synchronizacyjne Bariera słuŝy do wstrzymywania przetwarzania wcześniejszych wątków do momentu osiągnięcia przez wszystkie wątki z załoŝonego zbioru określonego miejsca w kodzie. licznik i zamek - nieefektywna ze względu na cykliczne sprawdzanie stanu licznika, licznik i warunkowy zamek prosty rozwiązanie efektywne, porównaj slide 10. Zamek odczytu i zapisu zamek złoŝony zbudowany w oparciu o warunkowy zamek prosty. UmoŜliwia obsługę wielu czytelników i pisarzy zapewniając spójną zawartość modyfikowanej informacji. Odczyt bez potrzeby zapewnienia spójności, zapis wymaga zapewnienia spójności. 12/4/2011 Pamięć współdzielona 7
8 Zamek odczytu i zapisu- przykład problem wielu pisarzy i czytelników Zamek odczytu i zapisu bazuje na strukturze zawierającej informacje: licznik czytających czytelników, znacznik pisarz pisze, zmienna warunkowa zezwolenia na pisanie, zmienna warunkowa zezwolenia na odczyt, licznik oczekujących pisarzy i zamek ochrony dostępu do zmiennych. Funkcja zezwolenia na odczyt po pozyskaniu zamka czeka na sygnalizację w przypadku gdy pisarz pisze lub są pisarze oczekujący(priorytet!). Po sygnalizacji zwiększa licznik czytelników i zwalnia zamek. 12/4/2011 Pamięć współdzielona 8
9 Zamek odczytu i zapisu- przykład Funkcja zezwolenia na pisanie po pozyskaniu zamka w przypadku gdy pisarz pisze lub gdy są czytelnicy zwiększa licznik oczekujących pisarzy i czeka na sygnalizację przy zmiennej zezwalającej na pisanie. Po sygnalizacji zmniejsza liczbę czekających pisarzy, modyfikuje pisarz pisze i zwalnia zamek. Funkcja rezygnacji z dostępu (wspólna dla pisarzy i czytelników) po pozyskaniu zamka: jeŝeli pisarz pisał usuwa znacznik pisarz pisze a w przeciwnym razie koniec czytania zmniejsza licznik czytelników, jeŝeli nie ma czytających i są oczekujący pisarze to sygnalizuje czekającemu na pisanie a w przeciwnym razie realizowane jest rozgłaszanie dla wszystkich oczekujących na czytanie, zwalnia zamek. 12/4/2011 Pamięć współdzielona 9
10 1 typedef struct { 2 int readers; //liczba czytających 3 int writer; //piszący 0/1 4 pthread_cond_t readers_proceed; 5 pthread_cond_t writer_proceed; 6 int pending_writers; // czekajacy 7 pthread_mutex_t read_write_lock; 8 } rwlock_t; 9 void rwlock_init (rwlock_t *l) { 10 l -> readers = l -> writer = l -> pending_writers = 0; 11 pthread_mutex_init(&(l -> read_write_lock), NULL); 12 pthread_cond_init(&(l -> readers_proceed), NULL); 13 pthread_cond_init(&(l -> writer_proceed), NULL); 14 } 15 void rwlock_rlock(rwlock_t *l) { 16 pthread_mutex_lock(&(l -> read_write_lock)); 17 while ((l -> pending_writers > 0) (l -> writer > 0)) 18 pthread_cond_wait(&(l -> readers_proceed), 19 &(l -> read_write_lock)); 20 l -> readers ++; 21 pthread_mutex_unlock(&(l -> read_write_lock)); 22 } 23 void rwlock_wlock(rwlock_t *l) { 24 pthread_mutex_lock(&(l -> read_write_lock)); 25 while ((l -> writer > 0) (l -> readers > 0)) { 26 l -> pending_writers ++; 27 pthread_cond_wait(&(l -> writer_proceed), 28 &(l -> read_write_lock)); 29 l -> pending_writers --; 30 } 31 l -> writer pthread_mutex_unlock(&(l -> read_write_lock)); 33 } 34 void rwlock_unlock(rwlock_t *l) { 35 pthread_mutex_lock(&(l -> read_write_lock)); 36 if (l -> writer > 0) 37 l -> writer = 0; 38 else if (l -> readers > 0) 39 l -> readers --; 40 if ((l -> readers == 0) && (l -> pending_writers > 0)) 41 pthread_cond_signal(&(l -> writer_proceed)); 42 else 43 if (l -> pending_writers == 0) thread_cond_broadcast(&(l -> readers_proceed)); 44 pthread_mutex_unlock(&(l -> read_write_lock)); 45 } 12/4/2011 Pamięć współdzielona 10
11 void rwlock_rlock(rwlock_t *l) { pthread_mutex_lock(&(l -> read_write_lock)); while ((l -> pending_writers > 0) (l -> writer > 0)) pthread_cond_wait(&(l -> readers_proceed), &(l -> read_write_lock)); l -> readers ++; pthread_mutex_unlock(&(l -> read_write_lock)); } 12/4/2011 Pamięć współdzielona 11
12 void rwlock_wlock(rwlock_t *l) { pthread_mutex_lock(&(l -> read_write_lock)); while ((l -> writer > 0) (l -> readers > 0)) { l -> pending_writers ++; pthread_cond_wait(&(l -> writer_proceed), &(l -> read_write_lock)); l -> pending_writers --; } l -> writer ++ pthread_mutex_unlock(&(l -> read_write_lock)); } 12/4/2011 Pamięć współdzielona 12
13 void rwlock_unlock(rwlock_t *l) { pthread_mutex_lock(&(l -> read_write_lock)); if (l -> writer > 0) l -> writer = 0; else if (l -> readers > 0) l -> readers --; if ((l -> readers == 0) && (l -> pending_writers > 0)) pthread_cond_signal(&(l -> writer_proceed)); else if (l -> pending_writers == 0) thread_cond_broadcast(&(l -> readers_proceed)); pthread_mutex_unlock(&(l -> read_write_lock)); } 12/4/2011 Pamięć współdzielona 13
14 Typedef struct{ pthread_mutex_t zamek; pthread_cond_t zgoda; int licznik; }bariera_t; void init_bariera(bariera_t *b){ } b->licznik=0; Bariera synchronizacyjna pthread_mutex_init(&b->zamek),null); pthread_cond_init(&b->zgoda),null); void bariera (bariera_t *b, int num_threads){ } pthread_mutex_lock(&b->zamek); b->licznik++; if (b->licznik == num_threads){ } else b->licznik =0; pthread_cond_broadcast(&(b->zgoda)); while( pthread_cond_wait(&(b->zgoda), &(b->zamek))!=0); pthread_mutex_unlock(&(b->zamek)); Wątki po wejściu w barierę zostają zawieszone do momentu, gdy pthread_cond_broadcast pozwoli na wznowienie ich przetwarzania. Wznowienie przetwarzania jest realizowane szeregowo ze względu na konieczność pozyskiwania zamka przy wychodzeniu z funkcji warunkowego oczekiwania (moŝna zastosować zamek wielopoziomowy hierarchiczny dla przyspieszenia wznawiania pracy). Warunkowe oczekiwanie realizowane jest w pętli z warunkiem testującym czy przyczyną obudzenia wątku jest sygnalizacja od systemu operacyjnego, czy teŝ (oczekiwana) sygnalizacja związana ze określoną zmienną warunkową. 14
15 Zasady projektowania programów asynchronicznych (komunikacja przez pamięć współdzieloną) OstrzeŜenia: Nie zakładać z góry określonej kolejności odwołań do zmiennych. Np. proces korzystający z danych powinien być utworzony po ich zainicjowaniu. Zmienne przekazywane przez stos lub globalne mogą zostać nadpisane ze względu na usunięcie procesu, w którym były zadeklarowane. Nie wnioskować z zasad szeregowania procesów w celu przewidywania kolejności przetwarzania (wnioskowanie wraŝliwe na zmianę algorytmu szeregowania lub liczby i typów procesorów np. zmiana systemu obliczeniowego). Reguły: Wszystkie parametry wątku zainicjować przed utworzeniem wątku (później moŝe to nie być moŝliwe). Przygotować dane (producent) przed momentem ich wykorzystywania (konsument), zapewnić odpowiednią wielkość buforów (komunikacja asynchroniczna). Udostępnić dane wszystkim potencjalnym konsumentom. Stosować synchronizację grupową i powielenie danych dla wzrostu efektywności przetwarzania. Minimalizować narzuty czasowe synchronizacji i unikać programowania w sposób prowadzący do wyścigu (race condition) 12/4/2011 Pamięć współdzielona 15
16 OpenMP Przenośny standard programowania równoległego oparty o dyrektywy kompilatora. Dyrektywy automatycznie tłumaczone na wywołania API Pthreads. Forma dyrektyw: #pragma omp dyrektywa [lista klauzul] Przykłady dyrektyw: #pragma omp parallel num_threads(8) #pragma omp segments #pragma omp master #pragma omp single #pragma omp for schedule (e.g. static, dynamic, guided, runtime); reduction(operator: zmienna podlegająca scaleniu); private(lista zmiennych); shared(lista zmiennych); #pragma omp critical [(nazwa)] #pragama omp atomic Funkcje zamków. Zmienne środowiskowe (liczba wątków, szeregowanie itp.) 12/4/2011 Pamięć współdzielona 16
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ół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ół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ół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ół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ółowoWielowątkowy serwer TCP
Wielowątkowy serwer TCP Wątek współbieżne działanie współdzielenie danych wykonywanie tego samego programu tańsze tworzenie w porównaniu do fork() join(), a detach() pthread - interesujące fragmenty pthread_create(),
Bardziej szczegółowoProblemy współbieżności
Problemy współbieżności wyścig (race condition) synchronizacja realizowana sprzętowo (np. komputery macierzowe) realizowana programowo (bariera, sekcja krytyczna, operacje atomowe) wzajemne wykluczanie
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ół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ół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ół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ół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ółowoProgramowanie systemów z pamięcią wspólną specyfikacja OpenMP. Krzysztof Banaś Obliczenia równoległe 1
Programowanie systemów z pamięcią wspólną specyfikacja OpenMP Krzysztof Banaś Obliczenia równoległe 1 OpenMP Przenośność oprogramowania Model SPMD Szczegółowe wersje (bindings) dla różnych języków programowania
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ół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ół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ółowoOpen MP wer Rafał Walkowiak Instytut Informatyki Politechniki Poznańskiej Wiosna
Open MP wer. 2.5 Rafał Walkowiak Instytut Informatyki Politechniki Poznańskiej Wiosna 2019.0 OpenMP standard specyfikacji przetwarzania współbieżnego uniwersalny i przenośny model równoległości (typu rozgałęzienie
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ół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ół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ółowoZaawansowane 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ół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ół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ół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 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ół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ółowo2009-03-21. Paweł Skrobanek. C-3, pok. 321 e-mail: pawel.skrobanek@pwr.wroc.pl http://pawel.skrobanek.staff.iiar.pwr.wroc.pl
Wrocław 2007-09 SYSTEMY OPERACYJNE WYKLAD 2 Paweł Skrobanek C-3, pok. 321 e-mail: pawel.skrobanek@pwr.wroc.pl http://pawel.skrobanek.staff.iiar.pwr.wroc.pl 1 PLAN: 2. Usługi 3. Funkcje systemowe 4. Programy
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ół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ółowoDział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ółowoSYSTEMY 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ół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ółowoDział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ółowoMETODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02
METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE Wykład 02 NAJPROSTSZY PROGRAM /* (Prawie) najprostszy przykład programu w C */ /*==================*/ /* Między tymi znaczkami można pisać, co się
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ół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ół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ółowoPodstawy programowania komputerów
Podstawy programowania komputerów Wykład 14: Programowanie współbieżne w C Definicja programowania współbieżnego Programowanie współbieżne jest tworzeniem programów, których wykonanie powoduje uruchomienie
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ół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ół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ółowoDział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ółowoLiteratura. 3/26/2018 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ółowoSYSTEMY 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ół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ół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ółowoInterpreter - EasyCompile
Akademia Podlaska w Siedlcach Siedlce, dn. 20.V.2006r. Wydział Nauk Ścisłych Instytut Informatyki Interpreter - EasyCompile Projekt z SISW Wykonali: Paweł Sawczuk Edwin Tomczuk Krzysztof Pietraszek I Inf.
Bardziej szczegółowo1. Uruchom poniższy program tworzący pojedynczy wątek:
9 Wątki 1. Uruchom poniższy program tworzący pojedynczy wątek: #include #include #include void* worker(void* info) int i; for(i=0; i
Bardziej szczegółowoSYSTEMY OPERACYJNE WYKLAD 4 - zarządzanie pamięcią
Wrocław 2007 SYSTEMY OPERACYJNE WYKLAD 4 - zarządzanie pamięcią Paweł Skrobanek C-3, pok. 323 e-mail: pawel.skrobanek@pwr.wroc.pl www.equus.wroc.pl/studia.html 1 PLAN: 2. Pamięć rzeczywista 3. Pamięć wirtualna
Bardziej szczegółowoDodatek B. Zasady komunikacji z otoczeniem w typowych systemach komputerowych
Dodatek B. Zasady komunikacji z otoczeniem w typowych systemach komputerowych B.1. Dostęp do urządzeń komunikacyjnych Sterowniki urządzeń zewnętrznych widziane są przez procesor jako zestawy rejestró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ółowoOgraniczenia efektywności systemu pamięci
Ograniczenia efektywności systemu pamięci Parametry pamięci : opóźnienie (ang. latency) - czas odpowiedzi pamięci na żądanie danych przez procesor przepustowość systemu pamięci (ang. bandwidth) - ilość
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ółowo1.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ół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ół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ółowoSystem obliczeniowy laboratorium oraz. mnożenia macierzy
System obliczeniowy laboratorium.7. oraz przykładowe wyniki efektywności mnożenia macierzy opracował: Rafał Walkowiak Materiały dla studentów informatyki studia niestacjonarne październik 1 SYSTEMY DLA
Bardziej szczegółowoPrzykładem jest komputer z procesorem 4 rdzeniowym dostępny w laboratorium W skład projektu wchodzi:
Przetwarzanie równoległe PROJEKT OMP Temat projektu dotyczy analizy efektywności przetwarzania równoległego realizowanego w komputerze równoległym z procesorem wielordzeniowym z pamięcią współdzieloną.
Bardziej szczegółowoRó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ółowoRó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ół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ół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ółowoWyklad 11 Języki programowania równoległego
Wyklad 11 Języki programowania równoległego Części wykładu: 1. Środowisko programu równoległego - procesy i wątki 2. Podstawowe problemy języków programowania równoległego 3. Języki programowania w środowisku
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ółowoProcesy, 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ółowoProcesy, 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ółowoProcesy, 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ółowoElementy składowe: Przenośność oprogramowania Model SPMD Szczegółowe wersje (bindings) dla różnych języków programowania
OpenMP Elementy składowe: o o o dyrektywy dla kompilatorów funkcje biblioteczne zmienne środowiskowe Przenośność oprogramowania Model SPMD Szczegółowe wersje (bindings) dla różnych języków programowania
Bardziej szczegółowoSystem plików. Warstwowy model systemu plików
System plików System plików struktura danych organizująca i porządkująca zasoby pamięci masowych w SO. Struktura ta ma charakter hierarchiczny: urządzenia fizyczne strefy (partycje) woluminy (w UNIXie:
Bardziej szczegółowoGlobalne / Lokalne. Wykład 15. Podstawy programowania (język C) Zmienne globalne / lokalne (1) Zmienne globalne / lokalne (2)
Podstawy programowania (język C) Globalne / Lokalne Wykład 15. Tomasz Marks - Wydział MiNI PW -1- Tomasz Marks - Wydział MiNI PW -2- Zmienne globalne / lokalne (1) int A, *Q; // definicja zmiennych globalnych
Bardziej szczegółowo10/14/2013 Przetwarzanie równoległe - wstęp 1. Zakres przedmiotu
Literatura 1. Introduction to Parallel Computing; Grama, Gupta, Karypis, Kumar; Addison Wesley 2003 2. Wprowadzenie do obliczeń równoległych, Zbigniew Czech, Wydawnictwo Naukowe PWN, 2010. 3. Designing
Bardziej szczegółowoKompilator języka C na procesor 8051 RC51 implementacja
Kompilator języka C na procesor 8051 RC51 implementacja Implementowane typy danych bit 1 bit char lub char signed 8 bitów char unsigned 8 bitów int lub signed int 16 bitów unsigned int 16 bitów long lub
Bardziej szczegółowoDziałanie systemu operacyjnego
Działanie systemu operacyjnego Budowa systemu komputerowego I NIC Jednostka centralna Sterownik dysku Sterownik drukarki Sterownik sieci Szyna systemowa (magistrala danych) Sterownik pamięci operacyjnej
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ół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ół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ółowoPoniższe funkcje opisane są w 2 i 3 części pomocy systemowej.
Procesy Proces (zwany też zadaniem) jest jednostką aktywną, kontrolowaną przez system operacyjny i związaną z wykonywanym programem. Proces ma przydzielone zasoby typu pamięć (segment kodu, segment danych,
Bardziej szczegółowoSYSTEMY OPERACYJNE: STRUKTURY I FUNKCJE (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX)
(opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX) W informatyce występują ściśle obok siebie dwa pojęcia: sprzęt (ang. hardware) i oprogramowanie
Bardziej szczegółowoKomputerowe Obliczenia Równoległe: Wstęp do OpenMP i MPI
Komputerowe Obliczenia Równoległe: Wstęp do OpenMP i MPI Patryk Mach Uniwersytet Jagielloński, Instytut Fizyki im. Mariana Smoluchowskiego OpenMP (Open Multi Processing) zbiór dyrektyw kompilatora, funkcji
Bardziej szczegółowoJĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 6
JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM Wykład 6 1 SPECYFIKATOR static Specyfikator static: Specyfikator ten powoduje, że zmienna lokalna definiowana w obrębie danej funkcji nie jest niszczona
Bardziej szczegółowoProgramowanie 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ółowoAdresowanie 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ół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ółowoAlgorytmy dla maszyny PRAM
Instytut Informatyki 21 listopada 2015 PRAM Podstawowym modelem służącym do badań algorytmów równoległych jest maszyna typu PRAM. Jej głównymi składnikami są globalna pamięć oraz zbiór procesorów. Do rozważań
Bardziej szczegółowoprocesó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ół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ół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ół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ółowoJędrzej Ułasiewicz Programownie aplikacji współbieżnych str. 1. Wątki
Jędrzej Ułasiewicz Programownie aplikacji współbieżnych str. 1 1 Informacje wstępne...2 2 Rodzaje wątków...7 poziomu jądra...7 poziomu użytkownika...8 Rozwiązania mieszane...8 3 Biblioteka pthreads...12
Bardziej szczegółowoMonitory. Jarosław Kuchta
Monitory Jarosław Kuchta Co to jest monitor Monitor to zebrane w jednej konstrukcji programowej zmienne i operacje na tych zmiennych. Część tych operacji jest udostępnianych na zewnątrz monitora. Tylko
Bardziej szczegółowoCo to jest sterta? Sterta (ang. heap) to obszar pamięci udostępniany przez system operacyjny wszystkim działającym programom (procesom).
Zarządzanie pamięcią Pamięć: stos i sterta Statyczny i dynamiczny przydział pamięci Funkcje ANSI C do zarządzania pamięcią Przykłady: Dynamiczna tablica jednowymiarowa Dynamiczna tablica dwuwymiarowa 154
Bardziej szczegółowoDefinicja systemu operacyjnego (1) Definicja systemu operacyjnego (2) Miejsce systemu operacyjnego w architekturze systemu komputerowego
Systemy operacyjne wprowadzenie 1 Definicja systemu operacyjnego (1) Definicja systemu operacyjnego (2) System operacyjny jest zbiorem ręcznych i automatycznych procedur, które pozwalają grupie osób na
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ółowoOgraniczenia efektywności systemu pamięci
Ograniczenia efektywności systemu pamięci Parametry pamięci : opóźnienie (ang. latency) - czas odpowiedzi pamięci na żądanie danych przez procesor przepustowość systemu pamięci (ang. bandwidth) - ilość
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 maszyn z pamięcią wspólną w standardzie OpenMP.
Programowanie maszyn z pamięcią wspólną w standardzie OpenMP. 1 OpenMP Standard rozwinięty i zdefiniowany w latach 90 przez grupę specjalistów z przemysłu. Strona www: www.openmp.org Składa się ze zbioru
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ółowoPMiK Programowanie Mikrokontrolera 8051
PMiK Programowanie Mikrokontrolera 8051 Wykład 3 Mikrokontroler 8051 PMiK Programowanie mikrokontrolera 8051 - wykład S. Szostak (2006) Zmienna typu bit #define YES 1 // definicja stałych #define NO 0
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ółowoArchitektury systemów równoległych
Architektury systemów równoległych 1 Architektury systemów z pamięcią wspólną Architektury procesorów Procesory wielordzeniowe Procesory graficzne Akceleratory Procesory hybrydowe Architektury systemów
Bardziej szczegółowo