• Nie Znaleziono Wyników

SYSTEMY OPERACYJNE

N/A
N/A
Protected

Academic year: 2021

Share "SYSTEMY OPERACYJNE"

Copied!
52
0
0

Pełen tekst

(1)

SYSTEMY OPERACYJNE

dr. hab. Vitaliy Yakovyna

yakovyna@matman.uwm.edu.pl http://wmii.uwm.edu.pl/~yakovyna/

UNIWERSYTET WARMIŃSKO-MAZURSKI W OLSZTYNIE

Wydział Matematyki i Informatyki

(2)

Planowanie Przydziału

Procesora

(3)

Podstawowe Koncepcje

(4)

Fazy Procesora i We/Wy

• Proces ograniczony przez I/O ma zazwyczaj dużo krótkich faz CPU

• Proces ograniczony przez CPU może mieć mało, lecz bardzo długich faz CPU

(5)

Planista Procesora

• Szeregowanie procesów jest podstawą

multiprogramowych systemów operacyjnych

• Celem multiprogramowania jest ciągłe

uruchamianie procesów, aby zmaksymalizować wykorzystanie procesora

• Planista procesora wybiera proces z procesów w pamięci, które są gotowe do wykonania i przydziela procesor do tego procesu

(6)

1 2

3

4

Szeregowanie Wywłaszczeniowe i Niewywłaszczeniowe

• Tylko (1) i (4) – planowanie niewywłaszczeniowe

• Inaczej – planowanie wywłaszczeniowe

• Planowanie wywłaszczeniowe może spowodować warunki wyścigu, gdy dane są współużytkowane przez kilka procesów

(7)

Dyspozytor (Dispatcher)

• Dyspozytor to moduł, który daje kontrolę nad rdzeniem procesora procesowi wybranemu przez

planistę CPU:

• Przełączanie kontekstu z jednego procesu na inny

• Przełączanie do trybu użytkownika

• Wykonanie skoku do odpowiedniego adresu w programie w celu

wznowienia działania programu

• Dyspozytor powinien być jak najszybszym

(8)

Kryteria Szeregowania

• Zużycie procesora

• Wydajność (liczba procesów zakończonych na jednostkę czasu)

• Czas realizacji (oczekiwanie w kolejce gotowości + wykonanie na CPU + wykonanie I/O)

• Czas oczekiwania (suma okresów czekania w kolejce gotowości)

• Czas odpowiedzi (czas od żądania do pierwszej odpowiedzi)

(9)

Algorytmy Szeregowania

(10)

Szeregowanie Metodą FCFS („Kto Pierwszy Ten Lepszy”)

• Średni czas oczekiwania to (0 + 24 + 27)/3 = 17 ms

• Średni czas oczekiwania to (6 + 0 + 3)/3 = 3 ms

Proces Czasy Faz CPU

P1 24

P2 3

P3 3

(11)

Szeregowanie Metodą FCFS

• Najprostszy algorytm planowania CPU

• Średni czas oczekiwania na ogół nie jest minimalny i może się znacznie różnić, jeśli czasy procesora w procesach znacznie się różnią

• Efekt konwoju – wszystkie inne procesy czekają, aż jeden duży proces zwolni procesor

• Niewywłaszczeniowy – szczególnie kłopotliwe dla systemów interaktywnych

(12)

Szeregowanie Metodą SJF

(„Najpierw Najkrótsze zadanie”)

• Procesor jest przydzielony procesu, który ma najmniejszy następny czas fazy procesora

• Średni czas oczekiwania to (3 + 16 + 9 + 0)/4 = 7 ms

• Algorytm szeregowania SJF jest udowodniono optymalny – daje minimalny średni czas

oczekiwania na dany zestaw procesów

Proces Czasy Faz CPU

P1 6

P2 8

P3 7

P4 3

(13)

Szeregowanie Metodą SJF

• SJF nie może zostać zaimplementowany – nie ma

możliwości poznania długości następnego czasu fazy CPU

• Następny czas fazy CPU można przewidzieć 𝜏𝑛+1 = 𝛼𝑡𝑛 + 1 − 𝛼 𝜏𝑛

(14)

Szeregowanie Metodą SJF

• Algorytm SJF może być również wywłaszczeniowy, jako i niewywłaszczeniowy

Proces Czas przybycia Czas Fazy CPU

P1 0 8

P2 1 4

P3 2 9

P4 3 5

(15)

Szeregowanie Rotacyjne (Round- Robin - RR)

• Zaprojektowane specjalnie do systemów z podziałem czasu

• Kolejka gotowości jest traktowana jako kolista kolejka

• Szeregowanie rotacyjne jest wywłaszczeniowe

• Wydajność algorytmu RR zależy w dużym stopniu od wielkości kwantu czasu

• Kwant czasu to na ogół od 10 do 100 milisekund

• Czas przełączenia kontekstu jest zazwyczaj krótszy niż 10 mikrosekund

(16)

Szeregowanie Rotacyjne

• Średni czas oczekiwania to (6 + 4 + 7) / 3 = 5,66 ms

Proces Czas Fazy CPU

P1 24

P2 3

P3 3

(17)

Szeregowanie Priorytetowe

• Algorytm SJF jest szczególnym przypadkiem algorytmu szeregowania priorytetowego

• Procesy równego priorytetu są planowane w kolejności FCFS

• Może być wywłaszczeniowe, albo niewywłaszczeniowe

Proces Czas Fazy CPU Priorytet

P1 10 3

P2 1 1

P3 2 4

P4 1 5

P5 5 2

(18)

Szeregowanie Priorytetowe

• Główny problem – nieskończone blokowanie (głodzenie): procesy o niskim priorytecie mogą nigdy nie dostać procesora

• Rozwiązaniem problemu jest „postarzanie” czyli podnoszenie priorytetu procesów oczekujących zbyt długo

• Inną opcją jest połączenie

rotacyjnego i priorytetowego szeregowania

Proces Czas Fazy CPU Priorytet

P1 4 3

P2 5 2

P3 8 2

P4 7 1

P5 3 3

(19)

Kolejki Wielopoziomowe

• Priorytetowe i rotacyjne planowanie, pojedyncza kolejka – O(n) wyszukiwanie, aby znaleźć proces o najwyższym priorytecie

• Każda kolejka może mieć

własny algorytm planowania

• Planowanie wśród kolejek:

• planowanie wywłaszczeniowe o ustalonym priorytecie

• przedział czasu między kolejkami

(20)

Kolejki Wielopoziomowe Ze Sprzężeniem Zwrotnym

• Kolejki wielopoziomowe ze sprzężeniem zwrotnym umożliwiają procesowi przechodzenie między

kolejkami

(21)

Szeregowanie Wątków

• W większości nowoczesnych SO wątki na poziomie jądra są planowane przez system operacyjny

• Wątki na poziomie użytkownika są zarządzane

przez bibliotekę wątków, a jądro nie jest ich świadome

• Aby uruchomić na CPU, wątki na poziomie użytkownika muszą być odwzorowane na powiązany

wątek na poziomie jądra

(22)

Szeregowanie Wątków

• Modele wiele-do-jednego i wiele-do-wielu → biblioteka wątków planuje wątki na poziomie

użytkownika aby uruchomić na dostępnym LWP – zakres rywalizacji procesowej

• Dalsze system operacyjny planuje wątek jądra LWP na fizycznym rdzeniu procesora

• Aby zdecydować, który wątek jądra zaplanować na CPU, jądro używa zakresu rywalizacji systemowej

• Model jeden-do-jednego (Windows, Linux) → wątki są planowane używając tylko zakresu rywalizacji

systemowej

(23)

Szeregowanie

Wieloprocesorowe

(24)

Podejścia Do Szeregowania Wieloprocesorowego: ASMP

• Asymetryczne przetwarzanie wieloprocesorowe – wszystkie decyzje dotyczące szeregowania i inne działania systemowe są obsługiwane przez jeden procesor (serwer główny)

• Pozostałe procesory wykonują tylko kod użytkownika

• Proste

• Serwer główny staje się potencjalnym wąskim gardłem

(25)

Podejścia do Szeregowania Wieloprocesorowego: SMP

• Symetryczne przetwarzanie wieloprocesorowe – każdy procesor sam się szereguje

a) Wszystkie wątki mogą znajdować się we wspólnej kolejce gotowości

b) Każdy procesor może mieć własną prywatną kolejkę wątków

(26)

Procesory Wielordzeniowe

• Każdy rdzeń wydaje się systemowi operacyjnemu jako oddzielny procesor logiczny

• Systemy SMP używające procesorów wielordzeniowych są szybsze i zużywają mniej energii niż systemy, w

których każdy procesor ma własny układ fizyczny

• Utknięcie pamięci – nowoczesne procesory działają z dużo większą prędkością niż pamięć

(27)

Procesory Wielordzeniowe: Wątki Sprzętowe

• Dwa lub więcej wątków sprzętowych są przypisane do każdego rdzenia

• Każdy wątek sprzętowy pojawia się jako procesor logiczny – wielowątkowość chipowa (CMT)

• Procesory Intel używają terminu hyper-threading

(28)

Wątki Sprzętowe

(29)

Poziomy Szeregowania

• Wielowątkowość gruboziarnista – wątek jest

wykonywany na rdzeniu do momentu wystąpienia zdarzenia o długim czasie oczekiwania

• Wielowątkowość drobnoziarnista przełącza się

między wątkami zwykle na granicy cyklu instrukcji → koszt przełączania jest mały

• Rdzeń procesora może

jednocześnie wykonywać tylko jeden wątek sprzętowy → dwa różne poziomy szeregowania

(30)

Równoważenie Obciążenia

• Równoważenie obciążenia (load balancing) próbuje równomiernie rozłożyć obciążenie na wszystkie procesory w systemie SMP

• Migracja wypychana (push) – wątki są przenoszone (wypychane) z przeciążonych procesorów do

bezczynnych lub mniej zajętych

• Migracja wyciągana (pull) – bezczynny procesor ciągnie oczekujące zadanie z zajętego procesora

• Migracje typu push i pull są często realizowane

równolegle w systemach równoważenia obciążenia

(31)

Koligacja Procesorów (Processor Affinity)

• Wątek działa na określonym procesorze → “ciepłą pamięć podręczna”

• Wątek migruje do innego procesora → pamięć podręczna musi zostać ponownie wypełniona

• Większość SO próbuje uniknąć migracji wątku z

jednego procesora do drugiego – koligacja procesorów

• Kolejki gotowości dla każdego procesora – koligacja procesorów za darmo

• Równoważenie obciążenia często przeciwdziała korzyściom wynikającym z koligacji procesorów

(32)

Koligacja Procesorów: NUMA

(33)

Heterogeniczne Przetwarzanie Wieloprocesorowe

• Systemy mobilne – rdzenie różnią się pod względem szybkości zegara i zarządzania energią: heterogeniczne przetwarzanie wieloprocesorowe (HMP)

• Celem HMP jest lepsze zarządzanie zużyciem energii

• Procesory ARM – architektura big.LITTLE

• Windows 10 obsługuje szeregowanie HMP – lepsze zarządzanie energią

(34)

Planowanie w Czasie

Rzeczywistym

(35)

Systemy Czasu Rzeczywistego

• System operacyjny czasu rzeczywistego – real-time operating system (RTOS)

• Łagodne systemy czasu rzeczywistego – nie ma gwarancji, kiedy zostanie zaplanowany krytyczny proces czasu rzeczywistego. One gwarantują tylko, że proces będzie miał pierwszeństwo przed

procesami niekrytycznymi.

• Rygorystyczne systemy czasu rzeczywistego – wymagania surowsze. Zadanie musi zostać

obsłużone przed upływem terminu.

(36)

Minimalizowanie Opóźnień

• Rozważmy system czasu rzeczywistego sterowanego zdarzeniami

• Opóźnienie zdarzenia:

(37)

Minimalizowanie Opóźnień

• Różne zdarzenia mają różne wymagania dotyczące opóźnień

• Dwa rodzaje opóźnień wpływają na wydajność systemów czasu rzeczywistego :

1. Opóźnienie przerwania – okres od przybycia przerwania do CPU do rozpoczęcia procedury obsługi przerwań

2. Opóźnienie szeregowania – czas potrzebny

dyspozytorowi na zatrzymanie jednego procesu i rozpoczęcie drugiego

(38)

Szeregowanie Oparte na Priorytetach

• Planista RTOS musi wspierać wywłaszczeniowy algorytm oparty na priorytetach

• Wywłaszczeniowe szeregowanie oparte na priorytetach gwarantuje jedynie łagodną funkcjonalność w czasie rzeczywistym

• Rygorystyczne systemy czasu rzeczywistego muszą ponadto gwarantować, że zadania w czasie

rzeczywistym będą obsługiwane zgodnie z ich

terminami – więc wymagają dodatkowych funkcji szeregowania

(39)

Zadania Okresowe

• t – czas przetwarzania; d – termin; p – okres 0 ≤ t ≤ d ≤ p

• Częstość zadania okresowego – 1/p

• Przypisujemy priorytety zgodnie z wymaganiami terminu lub częstości procesu

(40)

Algorytm Kontroli Dopuszczenia

• Admission-control algorithm

• Proces może być zobowiązany do ogłoszenia

planiście swoich wymagań dotyczących terminu

• Algorytm kontroli dopuszczenia:

1) Planista dopuszcza proces, gwarantując, że proces zakończy się na czas

2) Planista odrzuca żądanie jako niemożliwe, jeśli nie może zagwarantować, że zadanie zostanie obsłużone w terminie

(41)

Szeregowanie z Monotoniczną Częstością

• Rate-Monotonic Scheduling

• Szereguje okresowe zadania z użyciem statycznych priorytetów z wywłaszczeniem

• Każde zadanie okresowe ma przypisany priorytet na podstawie jego odwrotnego okresu

• Optymalny: jeśli zestaw procesów nie może zostać zaplanowany przez ten algorytm, nie może on być zaplanowany przez żaden inny algorytm, który

używa priorytetów statycznych

• Najgorsze wykorzystanie procesora dla N procesów:

𝑁 21/𝑁 − 1

(42)

Szeregowanie z Monotoniczną Częstością

• p1 = 50, p2 = 100; t1 = 20, t2 = 35. Termin: zakończyć fazę CPU przed rozpoczęciem następnego okresu.

• Szeregowanie zadań gdy P2 ma wyższy priorytet:

• Szeregowanie z monotoniczną częstością:

(43)

Szeregowanie od

Najwcześniejszego Terminu

• Earliest-Deadline-First Scheduling

• Przypisuje priorytety dynamicznie

• Im wcześniej termin, tym wyższy priorytet

• Priorytety mogą być skorygowane w celu

uwzględnienia terminu nowo uruchomionego procesu

• Teoretycznie optymalne szeregowanie – potrafi uszeregować procesy tak, aby każdy proces mógł dotrzymać terminu, a wykorzystanie procesora wyniesie 100%

(44)

Szeregowanie od

Najwcześniejszego Terminu

• p1 = 50, t1 = 25; p2 = 80, t2 = 35; wykorzystanie procesora wynosi (25/50) + (35/80) = 0.94

• Przegapienie terminów przy użyciu szeregowania z monotoniczną częstością:

• Szeregowanie od najwcześniejszego terminu:

(45)

Planowanie Przydziału

Procesora. Streszczenie

(46)

Streszczenie (1)

• Planowanie przydziału procesora to zadanie

polegające na wybraniu procesu oczekującego w kolejce gotowości i przydzieleniu do niego

procesora. Procesor jest przydzielany do wybranego procesu przez dyspozytora.

• Algorytmy planowania mogą być wywłaszczeniowe (w przypadku, gdy procesor może zostać procesowi odebrany), albo niewywłaszczeniowe (gdy proces musi dobrowolnie zrzec się kontroli nad

procesorem). Prawie wszystkie współczesne systemy operacyjne są wywłaszczeniowe.

(47)

Streszczenie (2)

• Algorytmy szeregowania można oceniać według następujących pięciu kryteriów: (1) zużycie

procesora, (2) wydajność, (3) czas realizacji, (4) czas oczekiwania i (5) czas odpowiedzi.

• Szeregowanie według kolejności zgłoszeń (FCFS) jest najprostszym algorytmem, ale może

powodować, że krótkie procesy będą czekać na zakończenie bardzo długich procesów.

(48)

Streszczenie (3)

• Szeregowanie najpierw najkrótszych zadań (SJF) jest udowodniono optymalnym, zapewniając

najkrótszy średni czas oczekiwania. Implementacja planowania SJF jest jednak trudna, ponieważ

trudno jest przewidzieć długość następnej fazy CPU.

• Szeregowanie rotacyjne (RR) przydziela procesor do każdego procesu na pewny kwant czasu. Jeśli proces nie zrezygnuje z procesora przed upływem kwantu czasu, proces jest wstrzymywany a kolejny proces jest uruchamiany na odpowiedny kwant czasu.

(49)

Streszczenie (4)

• Szeregowanie priorytetowe przypisuje każdemu

procesowi priorytet, a procesor jest przydzielany do procesu o najwyższym priorytecie. Procesy o tym samym priorytecie można planować w kolejności FCFS lub przy użyciu szeregowania RR.

• Szeregowanie z użyciem kolejek

wielopoziomowych dzieli procesy na kilka

oddzielnych kolejek uporządkowanych według

priorytetów, a planista wykonuje procesy w kolejce o najwyższym priorytecie. W każdej kolejce można stosować różne algorytmy planowania.

(50)

Streszczenie (5)

• Kolejki wielopoziomowe ze sprzężeniem zwrotnym są podobne do kolejek wielopoziomowych, z

wyjątkiem, że proces może migrować między różnymi kolejkami.

• Procesory wielordzeniowe mieszczą jeden lub więcej procesorów na tym samym układzie

fizycznym, a każdy procesor może mieć więcej niż jeden wątek sprzętowy. Z punktu widzenia systemu operacyjnego każdy wątek sprzętowy wydaje się

procesorem logicznym.

(51)

Streszczenie (6)

• Równoważenie obciążenia w systemach

wielordzeniowych wyrównuje obciążenia między rdzeniami procesora, chociaż migracja wątków między rdzeniami może unieważnić zawartość pamięci podręcznej, a więc może wydłużyć czas dostępu do pamięci.

• Łagodne planowanie w czasie rzeczywistym daje pierwszeństwo zadaniom wykonywanym w czasie rzeczywistym. Rygorystyczne planowanie w czasie rzeczywistym zapewnia gwarancje czasu dla zadań wykonywanych w czasie rzeczywistym.

(52)

Streszczenie (7)

• Szeregowanie z monotoniczną częstością w czasie rzeczywistym planuje okresowe zadania z

wykorzystaniem statycznych priorytetów z wywłaszczeniem.

• Szeregowanie od najwcześniejszego terminu przypisuje priorytety zgodnie z terminem. Im wcześniej termin, tym wyższy priorytet; im późniejszy termin, tym niższy priorytet.

Cytaty

Powiązane dokumenty

Zasady, według których ustalane są wyniki wyborów (system większościowy, proporcjonalny, mieszany) oraz przykłady państw, w których według tych reguł odbywają

W państwie demokratycznym mówi się czasem o wyborach pięcioprzymiotnikowych, gdyż są one powszechne, równe, bezpośrednie i proporcjonalne oraz odbywają się w głosowaniu

Podstawowym celem tej publikacji jest opisanie oraz odniesienie się do uwarunkowań systemu edukacji uczniów niepełnosprawnych intelektualnie (umiarkowanie, znacznie i głęboko)

gramatyce) – I wtedy postarasz się powtórzyć te historię na głos, a następnie opowiesz ją komuś po. angielsku (komuś serdecznemu) – to wtedy Twoja realna umiejętność

Profesor Krzysztof Simon, kierownik Kliniki Chorób Zakaźnych i Hepatologii Uniwersytetu Medycznego we Wrocławiu, przyznaje, że młodzi ludzie w stolicy województwa

Czynników, które wpływają na to, że sprzętu jest za mało, czy jest on niedostatecznej jakości jest wiele.. Podstawowym jest wciąż

• MPI-540-PV: raport z badań instalacji fotowoltaicznych po przeniesieniu danych do programu Sonel Pomiary Elektryczne.. • Trójfazowy rejestrator parametrów

Przenoszenie zakażenia COVID-19 z matki na dziecko rzadkie Wieczna zmarzlina może zacząć uwalniać cieplarniane gazy Ćwiczenia fizyczne pomocne w leczeniu efektów długiego