Upload
hoangtram
View
225
Download
0
Embed Size (px)
Citation preview
1
1
Politechnika Wrocławska
SYSTEMY OPERACYJNESYSTEMY OPERACYJNEWYKLAD 6WYKLAD 6
-- wątkiwątki
Paweł Skrobanek
Politechnika Wrocławska Wrocław 2007
C-3, pok. 323e-mail: [email protected]/studia.html
2
Politechnika Wrocławska
1. Wątki
2. Planowanie przydziału procesora(szeregowanie zadań)
3. Rozwiązania wspomagane hardware’owo
4. Podsumowanie
Politechnika Wrocławska
PLAN: PLAN:
3
Politechnika WrocławskaPolitechnika Wrocławska
WĄTKI WĄTKI
2
4
Politechnika WrocławskaPolitechnika Wrocławska
WĄTEKWĄTEK – „ang. thread”, podstawowa jednostka
Wątek 3:� rejestry procesora,� stos.
Wątek 2:� rejestry procesora,� stos.
Wątek 1:� rejestry procesora,� stos.
Wspólne: KOD i DANE (PAMI ĘĆ), PLIKI
Przykład (UNIX):
fork – tworzy nowy proces (z kopią struktur danych),
clone – tworzy proces wskazujący na struktury procesu macierzystego (Uwaga: co ma być współdzielone określają parametry, teoretycznie – moŜe działać jak fork)
5
Politechnika WrocławskaPolitechnika Wrocławska
Zalety:
• moŜliwość sterowania wykonywanie zadania (tzw. wątek sterujący), np. w trakcie rysowania grafiki moŜliwość wstrzymywania, modyfikacji parametrów, wznawiania,
• mniejsze koszty (np. czas, zasoby) tworzenia wątków niŜ procesów (teoretycznie - moŜliwa realizacja zadania przez wiele procesów, zamiast wątków – tak było dawniej),
• moŜliwość realizacji zadań równocześnie (jeśli niezaleŜne) i/lub na wielu procesorach
6
Politechnika WrocławskaPolitechnika Wrocławska
Zalety:
• brak konieczności „powielania” kodu i danych dla kolejnych wątków (domyślne dzielenie zasobów procesu),
3
7
Politechnika WrocławskaPolitechnika Wrocławska
Wady:
• znajomość zasad zarządzanie wątkami - odpowiednia architektura oprogramowania oraz umiejętności architekta i programisty,
• wsparcie ze strony systemów operacyjnych,
• problemy związane z usuwaniem, prawami, dostępem do danych itp.
Politechnika WrocławskaPolitechnika Wrocławska
WĄTKIWĄTKI
UśYTKOWNIKA(ang. user threads)
JĄDRA(ang. kernel threads)
• tworzone i zarządzane w przestrzeni uŜytkownika,
• działają w przestrzeni jądra,
• tworzone i zarządzane poprze jądro (np. moŜliwość wykorzystania wielu procesorów, likwidacja blokad)
Politechnika WrocławskaPolitechnika Wrocławska
Odwzorowanie wątków uŜytkownika w wątki jądra:
• wiele do 1 – jeden wątek jądra obsługuje wiele wątków uŜytkownika (w danej chwili tylko jeden komunikuje się z jądrem); problem w przypadku blokady obsługiwanego wątku, moŜliwość wykonania wielu wątków dla jądra nie obsługującego wielowątkowości,
4
Politechnika WrocławskaPolitechnika Wrocławska
Odwzorowanie wątków uŜytkownika w wątki jądra cd.:
• 1 do 1 – kaŜdemu wątkowi uŜytkownika odpowiada wątek jądra, np. Windows 2000, problem – duŜa liczba wątków jądra, stąd np. ograniczenia na liczbę wątków jądra,
• wiele do wielu – zastosowanie mechanizmu „multipleksowania”, wielu wątkom uŜytkownika odpowiada taka sama lub mniejsza liczba wątków jądra.
11
Politechnika WrocławskaPolitechnika Wrocławska
PLANOWANIE PRZYDZIAŁU PLANOWANIE PRZYDZIAŁU PROCESORA PROCESORA
12
Politechnika WrocławskaPolitechnika Wrocławska
Podstawowe pojęcia:
• schedulerscheduler (planista) – odpowiada za przydział czasu procesora (oraz zasobów),PROBLEM: taki przydział procesora i innych zasobów, Ŝeby zakończyć wszystkie zadania w jak najkrótszym czasie,
• dispatcherdispatcher (dyspozytor) – komponent SO odpowiedzialny za przydział (przekazanie) procesora do dyspozycji procesora (główne zadanie: przełączanie kontekstu procesora);tzw. planista krótkoterminowyPROZBLEM: minimalizacja czasu (np. przemianowanie rejestrów, zamiast przeładowania)
5
13
Politechnika WrocławskaPolitechnika Wrocławska
PLANISTA
KRÓTKOTERMINOWY DŁUGOTERMINOWY
• odpowiada za wykonywanie procesów gotowych,
• musi być bardzo szybki (wpływ na opóźnienie w wykonywania kaŜdego przydziału procesora)
• odpowiada za ładowanie procesów z pamięci masowej do operacyjnej,
• nie musi być bardzo szybki
14
Politechnika WrocławskaPolitechnika Wrocławska
Podstawowe pojęcia:
• głodzenie procesugłodzenie procesu – sytuacja, gdy proces nie moŜe uzyskać dostępu do zasobu i zakończyć działania (np. na skutek niskiego priorytetu – rozwiązanie, podnoszenie priorytetu starzejących się procesów)
15
Politechnika WrocławskaPolitechnika Wrocławska
Typowe algorytmy szeregowania:
• FIFOFIFO (first in, first out) – „pierwszy przyszedł, pierwszy wyszedł”, wątki/procesy wykonują się tak długo, aŜ zostaną wywłaszczone przez zadanie o wyŜszym priorytecie lub przez siebie,
• Round Robin (RB) – tzw. planowanie rotacyjne, kaŜdy proces/wątek otrzymuje kwant czasu, po wykorzystaniu którego jest ustawiany na końcu kolejki,
• shortet job first (SJF) – najpierw ten, komu zostało najmniej czasu do zakończenia (problem: jeśli pojawiają się nowe procesy z krótkim czasem wykonania, to długi moŜe zostać zagłodzony)
6
16
Politechnika WrocławskaPolitechnika Wrocławska
Typowe algorytmy szeregowania:
• inne algorytmy: - pod red. Silberschatz „Podstawy systemów operacyjnych”, str.186 – 203;- http://pl.wikipedia.org/wiki/Algorytm_szeregowania;- http://josh.trancesoftware.com/linux/linux_cpu_scheduler.pdf- http://en.wikipedia.org/wiki/Scheduling_%28computing%29
17
Politechnika WrocławskaPolitechnika Wrocławska
Priorytety w systemie Windows XP ☺
18
Politechnika WrocławskaPolitechnika Wrocławska
ROZWIĄZANIA WSPOMAGANE ROZWIĄZANIA WSPOMAGANE SPRZĘTOWO SPRZĘTOWO
7
19
Politechnika WrocławskaPolitechnika Wrocławska
Przetwarzanie w procesorach:
• sekwencyjne,
• potokowe,
• superskalarne (wielopotokowe),
• wielowątkowe (HT –hyper threading) – praktycznie zysk wydajności do 20 - 25%,
• wielozadaniowość – „wieloprocesorowość”.
20
Politechnika WrocławskaPolitechnika Wrocławska
Źródło: serwis www.amd.com
Jaki typ przetwarzania moŜliwy jest w poniŜszym procesorze ?
21
Politechnika WrocławskaPolitechnika Wrocławska
Źródło: PC World Komputer (numer podam później)
Czym to się róŜni (a moŜe nie) od superskalarności?