W ą t e k (lekki proces) thread.

Slides:



Advertisements
Podobne prezentacje
Zerowanie mikroprocesorów Cel: wprowadzenie mikroprocesora w określony stan początkowy Zwykle realizowany poprzez: inicjalizację licznika rozkazów (PC)
Advertisements

Wprowadzenie do informatyki Wykład 6
Podstawowe pojęcia programowania współbieżnego
Mechanizmy pracy równoległej
Wykonał : Marcin Sparniuk
Semafory Autorzy : Michał Winciorek Łukasz Jackowicz.
Sieci komputerowe.
20/09/ Języki programowania 1 Piotr Górczyński Debugowanie kodu.
Systemy operacyjne Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie do informatyki.
Systemy operacyjne Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie do informatyki.
Tablice.
Wykład nr 7: Synchronizacja procesów
Systemy operacyjne Wykład nr 5: Wątki Piotr Bilski.
Wykład nr 1: Wprowadzenie. Pojęcia podstawowe
Systemy operacyjne Wykład nr 4: Procesy Piotr Bilski.
Wykład nr 2: Struktura systemu komputerowego a system operacyjny
Sztuczna Inteligencja Reprezentacja wiedzy II Systemy produkcyjne Włodzisław Duch Katedra Informatyki Stosowanej UMK Google: W. Duch.
Systemy operacyjne.
Systemy operacyjne Bibliografia:
Komputer, procesor, rozkaz.
Temat nr 10: System przerwań
Autorzy: Łukasz Sztandarski Bartłomiej Granat
ZARZĄDZANIE PROCESAMI
Język Java Wielowątkowość.
Semafory według normy POSIX
14. WĄTKI Procesy w tradycyjnym sensie (tworzone przez wykonanie funkcji fork) mają przydzielaną oddzielną przestrzeń adresową. W przestrzeni tej jest.
9. KOORDYNACJA PROCESÓW WSPÓŁBIEŻNYCH PRZY UŻYCIU INTERPRETATORA
Wieloprocesowy system operacyjny dla komputerów ATARI XL/XE
Wątki.
Pamięć wspólna Opis własnego rozwiązania Marcin Kamiński, Michał Kotra Wydział EAIiE Katedra Automatyki Kraków, 2008.
SIEĆ P2P 1. Definicja sieci równouprawnionej. To taka sieć, która składa się z komputerów o takim samym priorytecie ważności, a każdy z nich może pełnić.
Podstawy programowania II
Opracowanie: Maria W ą sik. Pierwsze komputery budowano w celu rozwi ą zywania konkretnych problemów. Gdy pojawiało si ę nowe zadanie, nale ż ało przebudowa.
Wielozadaniowowść systemu operacyjnego Linux
Systemy operacyjne.
Budowa systemu komputerowego
SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE
Automatyka i Robotyka Systemy czasu rzeczywistego Wykład 4.
Aplikacje systemu windows XP
Systemy plików FAT, FAT32, NTFS
Problem sekcji krytycznej
Przerwanie ang. interrupt.
Buforowanie D e f i n i c j a.
Koncepcja procesu Zadanie i proces. Definicja procesu Process – to program w trakcie wykonywania; wykonanie procesu musi przebiegać w sposób sekwencyjny.
M i k r o j ą d r o D e f i n i c j a. M i k r o j ą d r o to rodzaj jądra systemu operacyjnego, które zawiera tylko najbardziej niezbędne elementy, takie.
POŚREDNIK Jak reprezentowana jest informacja w komputerze? liczby – komputer został wymyślony jako zaawansowane urządzenie służące do wykonywania.
Elżbieta Fiedziukiewicz
Spis treści Architektura systemu windows Pamięć wirtualna Plik wymiany
Wykład 7 Synchronizacja procesów i wątków
SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE
Bariery synchronizacyjne Bariery są obiektami synchronizacyjnymi pakietu pthread służącymi do wyrównywania czasów pracy wątków wykonujących wspólne zadanie.
Aplikacje internetowe Projektowanie formularzy Część 2.
Systemy rozproszone  Rozdzielenie obliczeń między wiele fizycznych procesorów.  Systemy luźno powiązane – każdy procesor ma lokalną pamięć; procesory.
System plików.
Procesor, pamięć, przerwania, WE/WY, …
Algorytmy- Wprowadzenie do programowania
System operacyjny Windows
Architektury procesorów rdzeniowych mikrokontrolerów.
Procesy, wątki Program a proces Proces: Przestrzeń adresowa, kod, dane, stos (część pamięci do przechowania zmiennych lokalnych i niektórych adresów) Otwarte.
Projektowanie obiektowe. Przykład: Punktem wyjścia w obiektowym tworzeniu systemu informacyjnego jest zawsze pewien model biznesowy. Przykład: Diagram.
Rodzaje systemów operacyjnych
Struktura systemu operacyjnego
Instrukcje warunkowe w php. Pętla FOR Czasem zachodzi potrzeba wykonania jakiejś czynności określoną ilość razy. Z pomocą przychodzi jedna z najczęściej.
Tryby adresowania i formaty rozkazów mikroprocesora
Wstęp do programowania Wykład 7
T ESTY JEDNOSTKOWE W C# Alicja Majka, A GENDA Wprowadzenie do środowiska Czym są testy jednostkowe i po co je stosować? XUnit, NUnit Pokrycie.
Liczby 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, …(i tak dalej) nazywamy liczbami naturalnymi. Tak jak z liter tworzy się słowa, tak z cyfr tworzymy liczby. Dowolną.
Optymalizacja programów Open-Source
Wątki, programowanie współbieżne
Windows Workflow Foundation
Zapis prezentacji:

W ą t e k (lekki proces) thread

Co to jest wątek? To wydzielony fragment wykonywanego programu 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 adresowej).

W ą t k i Wątki tego samego procesu korzystają ze wspólnego kodu i danych, mają jednak oddzielne stosy. W systemach wieloprocesorowych, a także w systemach z wywłaszczaniem, wątki mogą być wykonywane równocześnie (współbieżnie). Równoczesny dostęp do wspólnych danych grozi jednak utratą spójności danych i w konsekwencji błędem działania programu.

W ą t e k Stan wątku jest zdefiniowany małą ilością odrębnych danych. Grupa równoprawnych wątków dzieli kod, przestrzeń adresową i zasoby systemu operacyjnego. Środowisko w którym działa wątek nazywa się zadaniem lub procesem.

Tradycyjny proces Tradycyjny (ciężki) proces jest równoważny zadaniu z tylko jednym wątkiem. Zadanie nic nie robi, jeśli nie ma w nim ani jednego wątku, z kolei wątek może przebiegać w dokładnie jednym zadaniu.

Pojedynczy wątek Pojedynczy wątek ma przynajmniej własny stan rejestrów i na ogół własny stos. Daleko posunięty podział powoduje, że przełączanie procesora między równoprawnymi wątkami, jak również tworzenie wątków jest tanie w porównaniu z przełączaniem kontekstu między tradycyjnymi procesami.

W ą t k i Wstrzymanie jednego wątku i włączenie innego wątku jest względnie dobrym rozwiązaniem zagadnienia – w jaki sposób jeden system obsługi może efektywnie wykonać wiele zamówień. Wiele wątków sterowania jest powiązanych z kilkoma zasobami dzielonymi.

Sposoby traktowania wątków Wątki mogą być obsługiwane przez jądro. (Jest tak w przypadku systemów operacyjnych Mach i OS/2). W tym przypadku systemy zawierają zbiór funkcji podobnych do tych, które obsługują procesy.

Sposoby traktowania wątków Inne podejście polega na tworzeniu wątków powyżej jądra systemu za pomocą zbioru funkcji bibliotecznych wykonywanych na poziomie użytkownika (takie rozwiązanie przyjęto w systemie Andrew).

Systemy wielowątkowe Przykładem takiego systemu jest system Mach. Jego jadro może obsługiwać wiele zamówień naraz. W tym przypadku wątki synchronizują się same – nowy wątek z tej samej grupy zadziała dopiero wtedy, gdy bieżący wątek odda sterowanie.

Systemy wielowątkowe Wielowątkowość to cecha systemu operacyjnego, dzięki której w ramach jednego procesu może wykonywać kilka wątków lub jednostek wykonawczych. Nowe wątki to kolejne ciągi instrukcji wykonywane oddzielnie. Wszystkie wątki tego samego procesu współdzielą kod programu i dane. W systemach nie obsługujących wielowątkowości pojęcia procesu i wątku utożsamiają się. Systemy wielowątkowe to m.in. BeOS, Microsoft Windows 95, Windows NT, Unix.

Systemy wielowątkowe Wątek bieżący powinien oddawać sterowanie tylko w takiej chwili, w której nie zmienia on wspólnych danych. W systemach z asynchronicznymi wątkami musi istnieć jawny mechanizm zajmowania danych, taki jak w systemach, w których wiele procesów dzieli wspólne dane.

Systemy wielowątkowe Jeśli zadanie składa się z wielu wątków, to w czasie gdy jeden z wątków jest zablokowany, może wykonywać się inny wątek tego samego zadania. Współpraca wielu wątków w jednym zadaniu pozwala zwiększać przepustowość poprawić wydajność.

Podręcznikowy przykład: ciąg instrukcji odczyt-zmiana-zapis. Załóżmy że program ma dane do przetwarzania, umieszczone w N pierwszych komórkach tablicy X. Liczba N zapisana jest w odpowiedniej zmiennej. Algorytm przetwarzania mógłby wyglądać następująco: 1. odczytaj zmienną N i sprawdź, czy jest równa 0 2. jeśli tak (nie ma danych w X), przejdź do kroku 7. 3. (tu wchodzimy, gdy N równe 1 lub więcej) odczytaj wartość X[N] 4. zmniejsz wartość N o 1 (zaznacz, że N-ta dana została już zabrana) 5. zrób coś z tą odczytaną daną (tu następuje właściwe przetwarzanie) 6. (dana obsłużona - zajmij się następną) przejdź do kroku 1. 7. (koniec pracy)

Podręcznikowy przykład: ciąg instrukcji odczyt-zmiana-zapis. Jest to najprostsza pętla opróżniająca stos X. W środowisku jednowątkowym działa zgodnie z oczekiwaniami, przetwarzając kolejno dane X[N], X[N-1], itd. aż do X[1], po czym zatrzymuje się z zerową wartością zmiennej N.

W środowisku wielowątkowym Jednak w środowisku wielowątkowym dwa równoczesne wątki mogą wykonać się w taki sposób (załóżmy N=2): Jak widać, oba wątki pobrały do przetwarzania tę samą daną X[2]. Jeśli nasz program jest systemem księgowym, a w X[2] było zapisane "dokonaj przelewu kwoty xxxx z rachunku nnnn na rachunek mmmm", to przelew zostanie zaksięgowany dwukrotnie

W środowisku wielowątkowym W dalszym ciągu wykonania tego samego programu możliwy jest również inny przypadek. Przypuśćmy, że wątek nr 1 wolniej przetwarzał X[2] i teraz wątek nr 2 zaczyna kolejny cykl: Pomimo posłużenia się licznikiem N, wątek nr 1 usiłuje pobrać nieistniejący element danych spod nielegalnego indeksu - X[0]. W zależności od różnych czynników spowoduje to albo natychmiastowe awaryjne przerwanie działania programu, albo dowolne, nieprzewidywalne zaburzenia (błędy) w dalszym jego działaniu.

Mechanizmy synchronizacji wątków Do zapobiegania takim sytuacjom wykorzystuje się mechanizmy synchronizacji wątków: semafory, (jeden ze sposobów komunikacji międzyprocesowej ) muteksy, (wzajemne wykluczanie) sekcje krytyczne (fragment kodu programu, który w danej chwili powinien być wykonywany przez nie więcej niż jeden proces).