7
1 1 Politechnika Wroclawska SYSTEMY OPERACYJNE SYSTEMY OPERACYJNE WYKLAD 6 WYKLAD 6 - wątki wątki Pawel Skrobanek Politechnika Wroclawska Wroclaw 2007 C-3, pok. 323 e-mail: [email protected] www.equus.wroc.pl/studia.html 2 Politechnika Wroclawska 1. Wątki 2. Planowanie przydzialu procesora (szeregowanie zadań) 3. Rozwiązania wspomagane hardware’owo 4. Podsumowanie Politechnika Wroclawska PLAN: PLAN: 3 Politechnika Wroclawska Politechnika Wroclawska WĄTKI WĄTKI

SYSTEMY OPERACYJNE WYKLAD 6 -wątkistaff.iiar.pwr.wroc.pl/pawel.skrobanek/studia/SO/w7.pdf · • wsparcie ze strony systemów operacyjnych, • problemy zwi ązane z usuwaniem, prawami,

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?