Wątki jądra. Maciej Szwaja

Podobne dokumenty
SYSTEMY OPERACYJNE: STRUKTURY I FUNKCJE (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX)

projektowanie systemu

Systemy operacyjne II

Systemy operacyjne III



System operacyjny MACH

Projektowanie oprogramowania systemów PROCESY I ZARZĄDZANIE PROCESAMI

Programowanie usług działających w tle

Szeregowanie zadań w Linux Kernel 2.6. Daniel Górski Przemysław Jakubowski

Procesy, wątki i zasoby

Prezentacja systemu RTLinux

Laboratorium 6: Tasklety i kolejki prac (jedne zajęcia) dr inż. Arkadiusz Chrobot

Technologia informacyjna. Urządzenia techniki komputerowej

Budowa Mikrokomputera

SYSTEMY OPERACYJNE WYKLAD 6 - wątki

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

Proces y i y w i ąt ą ki

Zarządzanie procesami i wątkami

Warstwy systemu Windows 2000

Działanie systemu operacyjnego

Przełączanie kontekstu. Planista średnioterminowy. Diagram kolejek. Kolejki planowania procesów. Planiści

Struktura i funkcjonowanie komputera pamięć komputerowa, hierarchia pamięci pamięć podręczna. System operacyjny. Zarządzanie procesami

System komputerowy. System komputerowy

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

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

Działanie systemu operacyjnego

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

Fazy procesora i wejścia-wyjścia. Planowanie przydziału procesora. Czasy faz procesora. Planowanie przydziału procesora

Architektura systemu komputerowego. Działanie systemu komputerowego. Przerwania. Obsługa przerwań (Interrupt Handling)

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

Podstawy informatyki. System operacyjny. dr inż. Adam Klimowicz

Systemy operacyjne i sieci komputerowe Szymon Wilk System operacyjny 1

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

IdyllaOS. Prosty, alternatywny system operacyjny. Autor: Grzegorz Gliński. Kontakt:

Procesy, zasoby i wątki

Sieciowe Systemy Operacyjne

Procesy, zasoby i wątki

Procesy, zasoby i wątki

Kernel Kompilacja jądra

Architektura i administracja systemów operacyjnych

1. Etapy rozwoju systemów komputerowych

Budowa systemów komputerowych

Podstawowe zagadnienia

Struktura systemów komputerowych

Komputery przemysłowe i systemy wbudowane

Programowanie Niskopoziomowe

Działanie systemu operacyjnego

Systemy operacyjne. Paweł Pełczyński

Technika mikroprocesorowa. Systemy operacyjne czasu rzeczywistego

Planowanie przydziału procesora

Systemy wejścia-wyjścia. wyjścia

Opis efektów kształcenia dla modułu zajęć

Zaawansowane programowanie w C++ (PCP)

PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO

Technika Mikroprocesorowa Laboratorium 5 Obsługa klawiatury

Urządzenia wejścia-wyjścia

Systemy operacyjne. Król Tomasz

SOE Systemy Operacyjne Wykład 8 Pamięć wirtualna dr inż. Andrzej Wielgus

Wstęp do programowania 2

Działanie systemu operacyjnego

4. Procesy pojęcia podstawowe

Pracownia Technik Obliczeniowych

Podstawy Informatyki Układ przerwań

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

USB DVB-T STICK. Instrucja obsługi. Watch & record Digital TV programs on Your PC! MT4152

4. Procesy pojęcia podstawowe

IPC: Kolejki komunikatów

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

Wprowadzenie do systemów operacyjnych

Systemy operacyjne. Wprowadzenie. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

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

Projekt i implementacja systemu obsługi kart chipowych

ad a) Konfiguracja licznika T1 Niech nasz program składa się z dwóch fragmentów kodu: inicjacja licznika T1 pętla główna

1.1 Wprowadzenie Organizacja operacji we/wy System wejścia/wyjścia... 6

Jądro systemu operacyjnego

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

Księgarnia PWN: Włodzimierz Stanisławski, Damian Raczyński - Programowanie systemowe mikroprocesorów rodziny x86

Wielozadaniowość w systemie Microsoft Windows

profili Twój aktualny profil i kliknij na przycisk Kopiuj, po czym wpisz nazwę dla nowego profilu (będzie ona widoczna przy uruchamianiu systemu).

Wprowadzenie do systemu Minix

3 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.06 Rok akad. 2011/ / 22

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

Systemy Operacyjne sprzęt

Bezpieczeństwo systemów komputerowych. Java i JavaScript. Java i JavaScript. Java - historia

Systemy operacyjne. Zajęcia 11. Monitory

Terminarz rozgrywek Ekstraklasy w sezonie 2016/2017

1. Tworzenie nowego projektu.


U M L. System operacyjny Linux zagnieżdżony w zewnętrznym systemie operacyjnym (Linux)

Pośredniczy we współpracy pomiędzy procesorem a urządzeniem we/wy. W szczególności do jego zadań należy:

Budowa i zasada działania komputera. dr Artur Bartoszewski

Struktury systemów operacyjnych

Systemy macierzowe. www. qsantechnology. com

Przerwania, polling, timery - wykład 9

dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1

Planowanie przydziału procesora

Wykład 6 Planista procesora funkcja schedule. Wojciech Kwedlo, Systemy Operacyjne II -1- Wydział Informatyki PB

Planowanie przydziału procesora

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

Transkrypt:

Wątki jądra Maciej Szwaja

Czym są wątki jądra? Lekkie procesy, działające asynchronicznie w przestrzeni jądra (podobnie jak zwykłe wątki w przestrzeni użytkownika), niezwiązane z żadnym procesem użytkownika Ich nazwy przedstawione są na liście procesów w nawiasach kwadratowych Rodzicem wszystkich wątków jądra jest kthreadd - PID = 2

Jak stworzyć wątek jądra? Musimy napisać funkcję, którą wątek jądra będzie wykonywał. Funkcja ma sygnaturę: i n t t h r e a d _ f u n c t i o n (v o i d *d a t a ); Ponieważ funkcja jest wywoływana w kontekście procesu, wolno jej spać, a także wywoływać funkcje, które potencjalnie mogą blokować.

Jak stworzyć wątek jądra? Inicjujemy wątek za pomocą: s t r u c t t a s k _ s t r u c t *k t h r e a d _ c r e a t e (i n t (*t h r e a d f n )(v o i d *d a t a ), v o i d *d a t a, c o n s t c h a r n a me f mt [ ],... ); Podajemy zdeklarowaną wcześniej funkcję wątku, wskaźnik do danych, jakie chcemy jej przekazać, oraz nazwę nowo tworzonego wątku Otrzymujemy uchwyt typu struct task_struct

Jak stworzyć wątek jądra? Utworzony wątek należy następnie uruchomić za pomocą wake_up_process() Tworzenie i uruchomienie wątku w jednym kroku: #d e f i n e k t h r e a d _ r u n (t h r e a d f n, d a t a, n a me f mt,... )

Jak zatrzymać wątek jądra? Jeśli chcemy zatrzymać wątek wołamy: i n t k t h r e a d _ s t o p (s t r u c t t a s k _ s t r u c t *k ); Wątek powinien co jakiś czas sprawdzać, czy nie zażądano od niego zaprzestania pracy. Robi to wywołując: i n t k t h r e a d _ s h o u l d _ s t o p (v o i d ); W przypadku zwrócenia prawdy, wątek powinien zakończyć swoje działanie

Zastosowanie kthreadd wątek-matka, jego zadaniem jest tworzenie nowych wątków jądra Wiele sterowników tworzy wątki na swoje potrzeby Wątki jądra służą do implementacji mechanizmu kolejkowania pracy (workqueues)

Zastosowanie - przykłady ksoftirqd demon szeregujący i uruchamiający dolne połówki (bottom-halves) przerwań programowych (software interrupts) migration wątek odpowiedzialny za przenoszenie procesów między procesorami pdflush odpowiada za zrzucanie zabrudzonych stron pamięci na dysk kacpid - wątek obsługujący zdarzenia związane z zarządzaniem poborem mocy

Zastosowanie - przykłady scsi_eh_? - wątek obsługi błędów urządzeń SCSI kjournald wątek obsługujący dziennik systemów plików np ext3 kswapd demon odzyskujący pamięć kondemand wątek regulujący częstotliwość taktowania procesora (p-state)

Zastosowanie - przykłady kmpathd wątek obsługujący wielościeżkowość (multipathing) komunikacji między procesorem, a urządzeniami zewnętrznymi ksmd wątek odpowiadający za działanie dzielonej pamięci jądra (Kernel Shared Memory) wykorzystywanej przez maszyny wirtualne krfcommd wątek obsługujący komunikację radiową (Radio Frequency Communication) urządzeń Bluetooth

Zastosowanie - przykłady khubd wątek obsługujący zdarzenia na koncentratorze USB khelper wątek pomagający w wywoływaniu funkcji z przestrzeni użytkownika z poziomu jądra kpsmoused wątek obsługujący zdarzenia przychodzące z myszki kblockd wątek nadzorujący pracę urządzeń blokowych

Workqueues W wielu przypadkach (np. przy obsłudze przerwań) nasz kod powinien oddać procesor jak najszybciej. Głównym zadaniem wtedy jest przygotowanie jednostki pracy (work item), która de facto obsługuje przerwanie. Jednostkę pracy wstawia się do kolejki (workqueue), a w odpowiednim, późniejszym czasie jądro wykorzysta któryś z wątkówrobotników (kworker) do jej wykonania

Workqueues Można użyć domyślnych kolejek, tworzonych przez jądro dla każdego CPU, ale można też stworzyć swoje własne do dyspozycji jest wiele flag, za pomocą których można sterować ich zachowaniem (Documentation/workqueue.txt)

Rodzaje kolejek Ograniczone (bound) wątki jądra starają się szeregować pracę, jednocześnie maksymalizując zrównoleglenie, dana kolejka przypisana jest do procesora Nieograniczone (unbound) jednostki pracy wybierane są do wykonania równocześnie, kolejka nie jest przypisana do procesora użytkownik dba o rozsądne gospodarowanie zasobami

Przykład Mamy trzy jednostki pracy w0, w1 i w2 w0 używa procesora przez 5 ms, następnie zasypia na 10 ms, później działa jeszcze przez 5 ms, po czym kończy działanie w1 i w2 korzystają z procesora przez 5 ms, następnie zasypiają na 10 ms, a następnie kończą działanie Jednostki pracy są szeregowane w ograniczonej kolejce, o parametrze max_active >= 3

Przykład Przebieg zdarzeń: C z a s Z d a rz e n ie 0 m s w 0 z a c z y n a p ra c ę 5 m s w 0 z a s y p ia 5 m s w 1 z a c z y n a p ra c ę 1 0 m s w 1 z a s y p ia 1 0 m s w 2 z a c z y n a p ra c ę 1 5 m s w 2 z a s y p ia 1 5 m s w 0 b u d z i s ię 2 0 m s w 0 k o ńc z y d z ia ła n ie 2 0 m s w 1 b u d z i s i ę i k o ńc z y d z ia ła n ie 2 5 m s w 2 b u d z i s i ę i k o ńc z y d z ia ła n ie

Wątki jądra Dziękuję za uwagę