Systemy operacyjne Wykład nr 5: Wątki Piotr Bilski.

Slides:



Advertisements
Podobne prezentacje
Tryby adresowania Prawie każda operacja wykonywana przez mikroprocesor wykonywana jest na pewnych argumentach (lub argumencie). Sposoby wskazywania argumentów.
Advertisements

Wirtualizacja zasobów w systemach operacyjnych
Związki w UML.
Podstawowe pojęcia programowania współbieżnego
Mechanizmy pracy równoległej
Sieci VLAN.
ROZDZIAŁ 12: Systemy wejścia-wyjścia
SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE
CORBA Łukasz Wnęk.
1 Linux jako system wielozadaniowy i wielodostępny.
Politechnika Gdańska WYDZIAŁ ELEKTRONIKI TELEKOMUNIKACJI I INFORMATYKI
Sygnały Cz. 3 EAIiE Katedra Automatyki Kraków,
Sygnały Proponowane rozwiązanie EAIiE Katedra Automatyki Kraków,
Internet Communication Engine
Wykład nr 1: Wprowadzenie. Pojęcia podstawowe
Wykład nr 3: Struktura systemu operacyjnego
Systemy operacyjne Wykład nr 4: Procesy Piotr Bilski.
Wykład nr 2: Struktura systemu komputerowego a system operacyjny
Wykład nr 6: Planowanie przydziału procesora
Biblioteki i przestrzenie nazw
Systemy operacyjne.
Pakiety i ATD 1 Definicja. Pakietem albo jednostką programową nazywamy grupę logicznie powiązanych elementów, które mogą być typami, podtypami, obiektami.
Temat nr 10: System przerwań
Wzorce projektowe w J2EE
ZARZĄDZANIE PROCESAMI
Język Java Wielowątkowość.
15. MECHANIZMY SYNCHRONIZACJI WĄTKÓW Większość koncepcji stworzonych na potrzeby synchronizacji procesów ciężkich została zastosowana też do synchronizacji.
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.
Systemów Operacyjnych
Wieloprocesowy system operacyjny dla komputerów ATARI XL/XE
Wątki.
Zastosowanie technologii CUDA w sztucznej inteligencji
Sygnały Przegląd istniejących rozwiązań EAIiE Katedra Automatyki Kraków,
PROGRAMOWANIE SYSTEMOWE [2/3]
Rozwój aplikacji przy wykorzystaniu ASP.NET
Wielozadaniowowść systemu operacyjnego Linux
Systemy operacyjne.
Zasada działania komputera
Budowa systemu komputerowego
System operacyjny i jego usługi
SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE
Automatyka i Robotyka Systemy czasu rzeczywistego Wykład 4.
JAVA.
Problem sekcji krytycznej
Przerwanie ang. interrupt.
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.
Spis treści Architektura systemu windows Pamięć wirtualna Plik wymiany
W ą t e k (lekki proces) thread.
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.
System plików.
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.
Piotr Czapiewski Wydział Informatyki ZUT. Web Services Description Language.
Platforma .Net.
Rodzaje systemów operacyjnych
Struktura systemu operacyjnego
Temat 1 Pojęcie systemu operacyjnego Opracował: mgr Marek Kwiatkowski.
Hooks w systemie Windows Autorzy: Paweł Kwiecień, Wojciech Kruczkowski Temat: Modelowanie użytkowników Zadaniem jest stworzenie (lub modyfikacja) systemu,
Architektura Rafał Hryniów. Architektura Wizja projektu systemu, którą dzielą twórcy Struktura komponentów systemu, ich powiązań oraz zasad i reguł określających.
Systemy operacyjne i sieci komputerowe DZIAŁ : Systemy operacyjne i sieci komputerowe Informatyka Zakres rozszerzony Zebrał i opracował : Maciej Belcarz.
POLITECHNIKA POZNAŃSKA
Wątki, programowanie współbieżne
Windows Workflow Foundation
Aplikacje i usługi internetowe
JavaBeans by Paweł Wąsala
Zastosowanie tzw reaktywności w aplikacjach.
Zapis prezentacji:

Systemy operacyjne Wykład nr 5: Wątki Piotr Bilski

Pojęcie wątku (procesu lekkiego) Jest to fragment procesu wykonywany w jego przestrzeni adresowej Może istnieć wiele wątków wykonywanych równolegle w ramach jednego procesu Wątki muszą być związane z niezależnymi fragmentami kodu Wieloprocesory i procesory wielordzeniowe zwiększają wydajność procesów wielowątkowych Udostępniane są przez biblioteki wątków (Pthreads, Wind32)

Jedno- i wielowątkowość Kod Dane Pliki Rejestry Stos wątek Kod Dane Pliki Rejestry Stos wątek Proces jednowątkowy Proces wielowątkowy

Zalety wątków Utrudnione blokowanie procesu Łatwe dzielenie zasobów Tworzenie i likwidacja wątków jest tania Wsparcie ze strony architektur wieloprocesorowych

Wątki użytkownika i jądra Biblioteka wątków wątek jądro poziom użytkownika poziom jądra Wątki użytkownika jądro wątek aplikacja poziom użytkownika poziom jądra Wątki jądra

Modele wielowątkowości Model „wiele na jeden” (green threads – Solaris 2) Model „jeden na jeden” (Windows NT, Windows 2000, OS/2) Model „wiele na wiele” (Solaris 2, HP-UX)

Model „wiele na jeden” wątek użytkownika Wątek jądra jądro poziom użytkownika poziom jądra

Model „jeden na jeden” wątek użytkownika wątek użytkownika poziom użytkownika Wątek jądra Wątek jądra Wątek jądra jądro poziom jądra

Model „wiele na jeden” wątek użytkownika wątek użytkownika poziom użytkownika Wątek jądra Wątek jądra Wątek jądra jądro poziom jądra

Wątki a wywołania systemowe Tworzenie wątku – fork i exec Kasowanie wątku Obsługa sygnałów Pule wątków Dane charakterystyczne wątku

Kasowanie wątku Operacja likwidacji wątku przed czasem Likwidowany wątek to „wątek docelowy” (target thread) Dwa rodzaje likwidacji wątku: asynchroniczna (wątek docelowy likwidowany natychmiast) odroczona (opóźniona, uporządkowana likwidacja) – tylko w punktach anulowania Problem zwalniania zasobów przez likwidowane wątki

Obsługa sygnałów i APC Sygnał (UNIX) lub APC (Windows) służy do poinformowaniu o wystąpieniu zdarzenia (np. dzielenie przez zero) Po wygenerowaniu dostarczany jest do procesu Musi być obsłużony! Istnieją domyślne procedury obsługi sygnałów oraz procedury użytkownika

Sygnały synchroniczne i asynchroniczne proces proces1 proces2 działanie sygnał sygnał działanie jądro jądro Sygnał synchroniczny Sygnał asynchroniczny

Procedury obsługi sygnałów Procedura domyślna – wykonywana, gdy nic innego nie zostało zdefiniowane Procedura użytkownika – zdefiniowana, gdy proces ma wykonać niestandardową operację w odpowiedzi na sygnał Który wątek procesu ma odebrać sygnał: Wątek powodujący wygenerowanie sygnału Wszystkie wątki Wybrane wątki Wątek dedykowany do tego celu

Szczegóły obsługi sygnałów Sygnał synchroniczny musi być dostarczony do wątku, który go spowodował Pewne sygnały asynchroniczne muszą być odebrane przez wszystkie wątki (np. zakończenie procesu) Możliwe jest blokowanie odebrania sygnału przez wątek Sygnał jest obsługiwany tylko raz - na ogół przez pierwszy wątek

Pule wątków Z góry określona grupa wątków możliwych do wykorzystania przez system Wątki te są tworzone przy starcie systemu i mogą być wielokrotnie użyte przez różne procesy Problem ustalenia potrzebnej liczby wątków (kryteria – liczba procesorów, dostępna pamięć, spodziewana liczba wątków klienckich) Rozwiązanie: dynamiczne pule wątków

P-wątki Jest to standard POSIX definiujący API do tworzenia i obsługi wątków Sposób implementacji wątków nie jest narzucony Plik nagłówkowy – pthread.h Standard umożliwia tworzenie, usuwanie oraz operacje na atrybutach wątków

Wątki w systemie Solaris Udostępniane na poziomie jądra i użytkownika Implementują standard P-wątków Istnieją wątki (LWP) na poziomie pośrednim pomiędzy wątkami użytkownika i jądra. Każdy LWP ma wątek jądra

Realizacja wątków w systemie Solaris wątek związany zadanie1 zadanie2 zadanie3 W1 W2 W3 W1 W1 W2 W3 W1 W1 W1 W1 W1 W1 jądro CPU CPU CPU CPU CPU

Szczegóły implementacji wątków w systemie Solaris Wątki jądra są planowane przez planistę Blokada wątku jądra umożliwia procesorowi przejście do innego wątku Biblioteka wątków utrzymuje procesy lekkie dynamicznie Gdy LWP są bezczynne przez określony czas, usuwa się je

Informacje o wątkach w systemie Solaris Wątek użytkownika: ID, rejestry ( w tym PC, SP), priorytet Proces lekki: zbiór rejestrów, pamięć, statystyki – działa w przestrzeni jądra! Watek jądra: rejestry, wskaźnik do procesu lekkiego, priorytet, stos

Struktura procesu w systemie Solaris wskaźnik Stan procesu Numer procesu Mapa pamięci Priorytet Wykaz otwartych plików LWP1 LWP2

Wątki w systemie Windows Udostępniane przez interfejs Win32 API Implementacja odwzorowania „jeden-na-jeden” oraz „wiele na wiele” przy pomocy biblioteki włókien Składowe wątku: ID, zbiór rejestrów, stos użytkownika, stos jądrowy, obszar pamięci prywatnej (kontekst wątku)

Wątki w systemie Windows (c.d.) Struktury danych: ETHREAD – blok wykonawczy wątku (wskaźnik do procesu macierzystego, adres procedury, którą wątek rozpoczyna działanie) KTHREAD – blok jądrowy wątku (stos jądra i wskaźnik do bloku środowiska wątku) TEB – blok środowiska wątku (stos trybu użytkownika, lokalna pamięć wątku) – dostępny w trybie użytkownika ETHREAD i KTHREAD – jądro, TEB – przestrzeń użytkownika

Wątki Javy Ze względu na obecność JVM, wątki mają postać hybrydową Wspierane przez klasę Thread Dwie podstawowe metody: start oraz run Brak informacji o odwzorowaniu wątków Javy na wątki systemu operacyjnego (zależne od systemu)