Szeregowanie procesów w Linuksie - trendy rozwojowe

Podobne dokumenty
Planista całkowicie sprawiedliwy. Algorytm, śledzenie działania i strojenie

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

Linux Scheduler Szeregowanie procesów w systemie Linux. Andrzej Ambroziewicz Piotr Marat Mieszko Michalski

Jadro Linux 2.6. a zadania czasu rzeczywistego. Artur Lewandowski. Jądro Linux 2.6 p.1/14

J. Ułasiewicz Programowanie aplikacji współbieżnych 1

Zarządzanie procesorem

Przykłady implementacji planowania przydziału procesora

przydziału procesora Przykłady implementacji planowania przydziału procesora Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

Programowanie współbieżne Wykład 2. Iwona Kochańska

WYKŁAD 3 Jądro systemu i procesy. Marcin Tomana Wyższa Szkoła Informatyki i Zarządzania

Informatyka, systemy, sieci komputerowe

Szeregowanie procesów w Linuksie - trendy rozwojowe

BSD - alternatywa dla Linuksa

Prezentacja systemu RTLinux

SYSTEMY OPERACYJNE WYKLAD 6 - wątki

projektowanie systemu

Procesy, wątki i zasoby

Systemy operacyjne III

Projektowanie algorytmów równoległych. Zbigniew Koza Wrocław 2012

Szeregowanie zadań we współczesnych systemach operacyjnych. Szeregowanie zadań w Linux Kernel 2.6

Wykład 6. Planowanie (szeregowanie) procesów (ang. process scheduling) Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB

Procesy, zasoby i wątki

Procesy, zasoby i wątki

Procesy, zasoby i wątki

Planowanie przydziału procesora

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

4. Procesy pojęcia podstawowe

Planowanie przydziału procesora

Linux Adam Bułak Ha Nhat Viet Damian Klata

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

Ogólna koncepcja planowania. Planowanie przydziału procesora. Komponenty jądra w planowaniu. Tryb decyzji. Podejmowanie decyzji o wywłaszczeniu

Zarządzanie procesami i wątkami

Planowanie przydziału procesora

4. Procesy pojęcia podstawowe

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

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

Zarządzanie w systemach i sieciach komputerowych. Dr inż. Robert Wójcik. Wykład 3. Zarządzanie przydziałami procesora w systemach komputerowych

Planowanie przydziału procesora CPU scheduling. Koncepcja szeregowania. Planista przydziału procesora (planista krótkoterminowy) CPU Scheduler

Proces y i y w i ąt ą ki

Przykłady implementacji planowania przydziału procesora. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

Systemy operacyjne. Paweł Pełczyński

Drzewa rozpinajace, zbiory rozłaczne, czas zamortyzowany

Planowanie przydziału procesora

Projektowanie oprogramowania systemów PROCESY I ZARZĄDZANIE PROCESAMI

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

4. Procesy pojęcia podstawowe

Nowoczesny dział IT w chmurze

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

Struktura systemu operacyjnego. Opracował: mgr Marek Kwiatkowski

1.1 Definicja procesu

Struktury Danych i Złożoność Obliczeniowa

Wątki jądra. Maciej Szwaja

Algorytmy i Struktury Danych

Podstawowe zagadnienia

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

Metody uporządkowania

Linux: Procesy. Systemy Operacyjne. Mateusz Hołenko. 26 marca 2013

Mechanizm szeregowania zadań w jądrach z serii 2.6 systemu GNU/Linux

Ogólne zasady projektowania algorytmów i programowania

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

Uniwersytet Mikołaja Kopernika w Toruniu. Profilowanie ruchu sieciowego w systemie GNU/Linux

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

Systemy Operacyjne - zarządzanie procesami

Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie.

1 Zapoznanie się ze środowiskiem Xenomai.

Planowanie przydziału procesora

Wstęp do Informatyki zadania ze złożoności obliczeniowej z rozwiązaniami

Wykład 2 Proces, stany procesu i przejścia pomiędzy nimi. Wojciech Kwedlo, Systemy Operacyjne II -1- Wydział Informatyki PB

Tajemnice skutecznego wyszukiwania na przykładzie

1. Liczby i w zapisie zmiennoprzecinkowym przedstawia się następująco

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

OSTASZEWSKI Paweł (55566) PAWLICKI Piotr (55567) Algorytmy i Struktury Danych PIŁA

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Szeregowanie zadań. Wykład nr 2. dr Hanna Furmańczyk. 12 października 2014

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

Mariusz Rudnicki PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO CZ.1

Wydajny Linux. Jakub Woźniak KN Sieci Komputerowych i Systemów Rozproszonych Tenesys

Analiza efektywności przetwarzania współbieżnego

Gra Labirynt Zajęcia 5

Mariusz Rudnicki PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO CZ.3

Definicja systemu operacyjnego (1) Definicja systemu operacyjnego (2) Miejsce systemu operacyjnego w architekturze systemu komputerowego

Automatyczne testowanie jądra Linuksa

1 Wskaźniki i zmienne dynamiczne, instrukcja przed zajęciami

UNIX: architektura i implementacja mechanizmów bezpieczeństwa. Wojciech A. Koszek dunstan@freebsd.czest.pl Krajowy Fundusz na Rzecz Dzieci

Dzięki ćwiczeniom z panią Suzuki w szkole Hagukumi oraz z moją mamą nauczyłem się komunikować za pomocą pisma. Teraz umiem nawet pisać na komputerze.

SYSTEMY OPERACYJNE WYKLAD 6 - procesy

System komputerowy. System komputerowy

Luty 2001 Algorytmy (4) 2000/2001

1. Szeregowanie w systemach czasu rzeczywistego

Wdrożenie i2m w BTS Opis wdrożenia oprogramowania i2m w firmie BTS Sp. z o.o.

Szukanie rozwiązań funkcji uwikłanych (równań nieliniowych)

Analiza efektywności przetwarzania współbieżnego. Wykład: Przetwarzanie Równoległe Politechnika Poznańska Rafał Walkowiak Grudzień 2015

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

Informacje o wybranych funkcjach systemu klasy ERP Zarządzanie produkcją

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

PRZETWARZANIE RÓWNOLEGŁE I ROZPROSZONE. Mnożenie macierzy kwadratowych metodą klasyczną oraz blokową z wykorzystaniem OpenMP.

Instrukcja koordynator

Rootkity - zagrożenie czy plotki? Mateusz Sell, Dariusz Świderski MKS Sp. z o.o.

Procesy pojęcia podstawowe. 1.1 Jak kod źródłowy przekształca się w proces

Testowanie I. Celem zajęć jest zapoznanie studentów z podstawami testowania ze szczególnym uwzględnieniem testowania jednostkowego.

Transkrypt:

Szeregowanie procesów w Linuksie - trendy rozwojowe 14 grudnia 2007

Co to jest scheduler? Elementarne zasady działania Do czego dążymy? Wieloprocesowość Co to jest i po co to jest? Wieloprocesowość = wiele procesów może działać równocześnie i niezależnie od siebie. Z punktu widzenia procesu 1 Proces = działający program + jego kontekst. 2 Każdy proces myśli, że ma cały komputer dla siebie. Z punktu widzenia systemu 1 Powód: Lepsze wykorzystanie dostępnych zasobów. 2 Scheduler (planista) - przydziela procesom procesor(y).

Co to jest scheduler? Elementarne zasady działania Do czego dążymy? Wieloprocesowość Co to jest i po co to jest? Wieloprocesowość = wiele procesów może działać równocześnie i niezależnie od siebie. Z punktu widzenia procesu 1 Proces = działający program + jego kontekst. 2 Każdy proces myśli, że ma cały komputer dla siebie. Z punktu widzenia systemu 1 Powód: Lepsze wykorzystanie dostępnych zasobów. 2 Scheduler (planista) - przydziela procesom procesor(y).

Co to jest scheduler? Elementarne zasady działania Do czego dążymy? Wieloprocesowość Co to jest i po co to jest? Wieloprocesowość = wiele procesów może działać równocześnie i niezależnie od siebie. Z punktu widzenia procesu 1 Proces = działający program + jego kontekst. 2 Każdy proces myśli, że ma cały komputer dla siebie. Z punktu widzenia systemu 1 Powód: Lepsze wykorzystanie dostępnych zasobów. 2 Scheduler (planista) - przydziela procesom procesor(y).

Co to jest scheduler? Elementarne zasady działania Do czego dążymy? Co robi scheduler? 1 Zarządza wszystkimi procesami w systemie - trzyma je w strukturach. 2 Określa, kiedy kto dostaje procesor - strategia przydzielania czasu CPU procesom. 3 Przełącza kontekst - pracochłonna operacja. Stara się wykonywać ją jak najrzadziej. 4 Pozwala na określanie priorytetów.

Co to jest scheduler? Elementarne zasady działania Do czego dążymy? Życie procesu Rodzaje procesów Nowy - świeżo stworzony. Gotowy - czekający tylko na CPU. Wykonywany - aktualnie działający na którymś procesorze. Oczekujący - czekający na jakieś zdarzenie (najczęściej na zakończenie operacji I/O). Zakończony - zakończył wykonanie. Rola schedulera Przede wszystkim zajmujemy się przejściami między stanami Gotowy i Wykonywany, bo to tutaj trzeba przydzielać procesor.

Co to jest scheduler? Elementarne zasady działania Do czego dążymy? Życie procesu Rodzaje procesów Nowy - świeżo stworzony. Gotowy - czekający tylko na CPU. Wykonywany - aktualnie działający na którymś procesorze. Oczekujący - czekający na jakieś zdarzenie (najczęściej na zakończenie operacji I/O). Zakończony - zakończył wykonanie. Rola schedulera Przede wszystkim zajmujemy się przejściami między stanami Gotowy i Wykonywany, bo to tutaj trzeba przydzielać procesor.

Co to jest scheduler? Elementarne zasady działania Do czego dążymy? Cechy idealnego schedulera Co chcemy otrzymać z punktu widzenia użytkownika: 1 Wydajność. 2 Interaktywność. 3 Sprawiedliwość i brak zagłodzenia. 4 Dobre wykorzystanie sprzętu. Uwaga: Trzeba pamiętać, że wszystko zależy od potrzeb konkretnego użytkownika!

Co to jest scheduler? Elementarne zasady działania Do czego dążymy? Cechy idealnego schedulera Co chcemy otrzymać z punktu widzenia użytkownika: 1 Wydajność. 2 Interaktywność. 3 Sprawiedliwość i brak zagłodzenia. 4 Dobre wykorzystanie sprzętu. Uwaga: Trzeba pamiętać, że wszystko zależy od potrzeb konkretnego użytkownika!

Co to jest scheduler? Elementarne zasady działania Do czego dążymy? Wydajność 1 Kod schedulera działa szybko - szybkie struktury danych i algorytmy. 2 Jak najmniej przełączeń kontekstu. Interaktywność 1 Szybki czas reakcji procesów. 2 Podział na te procesy, które muszą szybko reagować i te, które nie muszą. (ang. interactive task lub I/O bound task oraz CPU hog ) 3 Sprzeczne z wydajnością.

Co to jest scheduler? Elementarne zasady działania Do czego dążymy? Wydajność 1 Kod schedulera działa szybko - szybkie struktury danych i algorytmy. 2 Jak najmniej przełączeń kontekstu. Interaktywność 1 Szybki czas reakcji procesów. 2 Podział na te procesy, które muszą szybko reagować i te, które nie muszą. (ang. interactive task lub I/O bound task oraz CPU hog ) 3 Sprzeczne z wydajnością.

Co to jest scheduler? Elementarne zasady działania Do czego dążymy? Sprawiedliwość 1 Brak zagłodzenia - kluczowe. 2 Ogólnie pojęte równe traktowanie procesów (z dokładnością do priorytetów). Wykorzystanie sprzętu 1 Zrównoleglenie użytkowania zasobów. 2 Dobre wykorzystanie wielu procesorów.

Co to jest scheduler? Elementarne zasady działania Do czego dążymy? Sprawiedliwość 1 Brak zagłodzenia - kluczowe. 2 Ogólnie pojęte równe traktowanie procesów (z dokładnością do priorytetów). Wykorzystanie sprzętu 1 Zrównoleglenie użytkowania zasobów. 2 Dobre wykorzystanie wielu procesorów.

Priorytety Co to jest scheduler? Elementarne zasady działania Do czego dążymy? Dla nas: 1 Interaktywność 2 Sprawiedliwość 3 Wykorzystanie sprzętu 4 Wydajność Ale np. na serwerach interaktywność jest zwykle mało istotna, a przy obliczeniach numerycznych najważniejsza jest wydajność i wykorzystanie sprzętu.

Priorytety Co to jest scheduler? Elementarne zasady działania Do czego dążymy? Dla nas: 1 Interaktywność 2 Sprawiedliwość 3 Wykorzystanie sprzętu 4 Wydajność Ale np. na serwerach interaktywność jest zwykle mało istotna, a przy obliczeniach numerycznych najważniejsza jest wydajność i wykorzystanie sprzętu.

Jądro 2.4.x Jądro 2.6.x Przejście do CFS - jądro 2.6.23 Cechy schedulera z jądra 2.4.x Epoki 1 Czas dzielony na epoki. 2 Scheduler iteruje po wszystkich procesach i znajduje ten z najwyższym priorytetem czas O(n). 3 W czasie epoki każdy proces może zużyć swój timeslice. 4 Timeslice liczony na początku epoki czas O(n). 5 (Kwant czasu - jeden tick schedulera.) Wsparcie interaktywności Przy wyliczaniu nowego timeslice a scheduler dodaje połowę czasu niewykorzystanego w poprzedniej epoce. Jeśli proces nagle zacznie potrzebować dużo CPU, to zużyje ten zapas w ciągu jednej epoki.

Jądro 2.4.x Jądro 2.6.x Przejście do CFS - jądro 2.6.23 Cechy schedulera z jądra 2.4.x Epoki 1 Czas dzielony na epoki. 2 Scheduler iteruje po wszystkich procesach i znajduje ten z najwyższym priorytetem czas O(n). 3 W czasie epoki każdy proces może zużyć swój timeslice. 4 Timeslice liczony na początku epoki czas O(n). 5 (Kwant czasu - jeden tick schedulera.) Wsparcie interaktywności Przy wyliczaniu nowego timeslice a scheduler dodaje połowę czasu niewykorzystanego w poprzedniej epoce. Jeśli proces nagle zacznie potrzebować dużo CPU, to zużyje ten zapas w ciągu jednej epoki.

Ocena Jądro 2.4.x Jądro 2.6.x Przejście do CFS - jądro 2.6.23 Plusy 1 Działa (nawet w porównaniu wypada ponoć dość dobrze). 2 Jest prosty (około 1/3 kodu następnego schedulera). Minusy 1 Kiepska skalowalność - to oczywiście wina czasów O(n). 2 Duże timeslices - procesy o niskim priorytecie mają problem. 3 Mało skuteczne wsparcie interaktywności.

Ocena Jądro 2.4.x Jądro 2.6.x Przejście do CFS - jądro 2.6.23 Plusy 1 Działa (nawet w porównaniu wypada ponoć dość dobrze). 2 Jest prosty (około 1/3 kodu następnego schedulera). Minusy 1 Kiepska skalowalność - to oczywiście wina czasów O(n). 2 Duże timeslices - procesy o niskim priorytecie mają problem. 3 Mało skuteczne wsparcie interaktywności.

Jądro 2.4.x Jądro 2.6.x Przejście do CFS - jądro 2.6.23 Zupełnie nowy scheduler 1 Napisany od nowa przez Ingo Molnara (stwierdził, że poprzedniego nie da się sensownie zmodyfikować). 2 Zastąpienie wszystkich algorytmów O(n) przez O(1) - stąd wzięła się nazwa. 3 Poprawione wsparcie dla interaktywności.

Zmiany Jądro 2.4.x Jądro 2.6.x Przejście do CFS - jądro 2.6.23 1 Runqueues - kolejki procesów gotowych, jedna dla każdego procesora. 2 Priority arrays - pod dwie dla każdej runqueue (active i expired). Wybieranie procesu o najwyższym priorytecie w czasie O(1). 3 Nowa epoka w czasie O(1) - wysarczy zamienić tablice active i expired. 4 Dynamiczne priorytety - heurystyka wykrywania procesów interaktywnych na podstawie średniego czasu snu. 5 Interaktywne procesy nie wstawiane do expired (z dokładneością do ochrony przed zagłodzeniem). 6 (Kwant czasu - jiffie.)

Ocena Jądro 2.4.x Jądro 2.6.x Przejście do CFS - jądro 2.6.23 Plusy 1 Poprawiona wydajność i koniec problemów ze skalowalnością. 2 Poprawiona interaktywność - lepsza heurystyka. 3 Całość działa bardzo bardzo dobrze! Minusy 1 Problem z dużymi timeslices tak naprawdę nie został rozwiązany, tylko zmniejszony dwukrotnie. 2 Interaktywność wciąż nie zawsze idealna.

Ocena Jądro 2.4.x Jądro 2.6.x Przejście do CFS - jądro 2.6.23 Plusy 1 Poprawiona wydajność i koniec problemów ze skalowalnością. 2 Poprawiona interaktywność - lepsza heurystyka. 3 Całość działa bardzo bardzo dobrze! Minusy 1 Problem z dużymi timeslices tak naprawdę nie został rozwiązany, tylko zmniejszony dwukrotnie. 2 Interaktywność wciąż nie zawsze idealna.

Jądro 2.4.x Jądro 2.6.x Przejście do CFS - jądro 2.6.23 Zamieszanie 1 Miał być dalej O(1), choć znaleziono sporo corner cases. 2 Con Kolivas próbuje dostroić O(1) i mu się to udaje. Odkrywa jednak, że cały fragment tego schedulera odpowiadający za określanie interaktwności często bardziej przeszkadza, niż pomaga. 3 Napisał więc RSDL (Rotating Staircase Deadline Scheduler), który całkowicie olewa próbę przewidywania interaktywności i skupia się na sprawiedliwości (fairness). 4 Okazuje się, że działa bardzo dobrze! Ma zostać w jądrze 2.6.23 5 Ale Ingo Molnar tworzy Completely Fair Scheduler (w 62 godziny!) bazując na pomyśle Cona Kolivasa i to CFS trafia do nowego jądra.

Idee stojące za CFS Wprowadzenie idei w życie Istotne zmiany Sprawiedliwość - fairness Pomysł W teorii - całkowita. W praktyce - złoty środek między sprawiedliwością a interaktywnością. Chcemy zbliżyć się jak najbardziej do idealnego wieloprocesowego CPU. Każdy z n procesów dostaje 1/n czasu procesora. W praktyce oczywiście niemożliwe, bo przełączanie kontekstu trwa sporo czasu. Zatem uruchamiamy zawsze proces, który jest najbardziej do tyłu względem czasu, jaki mu się by należał. (Różnica - w RDSL wliczamy czas snu, w CFS nie wliczamy.)

Idee stojące za CFS Wprowadzenie idei w życie Istotne zmiany Sprawiedliwość - fairness Pomysł W teorii - całkowita. W praktyce - złoty środek między sprawiedliwością a interaktywnością. Chcemy zbliżyć się jak najbardziej do idealnego wieloprocesowego CPU. Każdy z n procesów dostaje 1/n czasu procesora. W praktyce oczywiście niemożliwe, bo przełączanie kontekstu trwa sporo czasu. Zatem uruchamiamy zawsze proces, który jest najbardziej do tyłu względem czasu, jaki mu się by należał. (Różnica - w RDSL wliczamy czas snu, w CFS nie wliczamy.)

Cechy CFSa Idee stojące za CFS Wprowadzenie idei w życie Istotne zmiany wait runtime Zawiera informację, ile czasu pownien teraz działać proces, żeby odzyskać naturalną równowagę. Szukanie następnego procesu Używane jest do tego drzewo czerwono-czarne porządkujące procesy według wait runtime. Gdy aktualny proces przestanie mieć największą potrzebę czasu, to spada w drzewie i odbiera mu się procesor (z dokładnością do pewnej granularności). Granularność Czas mierzony naturalnie - w nanosekundach. Można ustalać granularność, aby zmienić działanie z desktopowego na serwerowe.

Cechy CFSa Idee stojące za CFS Wprowadzenie idei w życie Istotne zmiany wait runtime Zawiera informację, ile czasu pownien teraz działać proces, żeby odzyskać naturalną równowagę. Szukanie następnego procesu Używane jest do tego drzewo czerwono-czarne porządkujące procesy według wait runtime. Gdy aktualny proces przestanie mieć największą potrzebę czasu, to spada w drzewie i odbiera mu się procesor (z dokładnością do pewnej granularności). Granularność Czas mierzony naturalnie - w nanosekundach. Można ustalać granularność, aby zmienić działanie z desktopowego na serwerowe.

Cechy CFSa Idee stojące za CFS Wprowadzenie idei w życie Istotne zmiany wait runtime Zawiera informację, ile czasu pownien teraz działać proces, żeby odzyskać naturalną równowagę. Szukanie następnego procesu Używane jest do tego drzewo czerwono-czarne porządkujące procesy według wait runtime. Gdy aktualny proces przestanie mieć największą potrzebę czasu, to spada w drzewie i odbiera mu się procesor (z dokładnością do pewnej granularności). Granularność Czas mierzony naturalnie - w nanosekundach. Można ustalać granularność, aby zmienić działanie z desktopowego na serwerowe.

Cechy CFSa Idee stojące za CFS Wprowadzenie idei w życie Istotne zmiany wait runtime Zawiera informację, ile czasu pownien teraz działać proces, żeby odzyskać naturalną równowagę. Szukanie następnego procesu Używane jest do tego drzewo czerwono-czarne porządkujące procesy według wait runtime. Gdy aktualny proces przestanie mieć największą potrzebę czasu, to spada w drzewie i odbiera mu się procesor (z dokładnością do pewnej granularności). Granularność Czas mierzony naturalnie - w nanosekundach. Można ustalać granularność, aby zmienić działanie z desktopowego na serwerowe.

Pliki Idee stojące za CFS Wprowadzenie idei w życie Istotne zmiany Dawniej include/linux/sched.h kernel/sched.c Teraz include/linux/sched.h kernel/sched.c kernel/sched debug.c kernel/sched fair.c kernel/sched idletask.c kernel/rt.c kernel/sched stats.c

Pliki Idee stojące za CFS Wprowadzenie idei w życie Istotne zmiany Dawniej include/linux/sched.h kernel/sched.c Teraz include/linux/sched.h kernel/sched.c kernel/sched debug.c kernel/sched fair.c kernel/sched idletask.c kernel/rt.c kernel/sched stats.c

Idee stojące za CFS Wprowadzenie idei w życie Istotne zmiany Struktury procesów struct task struct {... struct sched entity se;... }; struct sched entity {... long wait runtime; struct rb node run node; struct cfs rq *cfs rq; struct cfs rq *my q;... };

Idee stojące za CFS Wprowadzenie idei w życie Istotne zmiany Struktury procesów struct task struct {... struct sched entity se;... }; struct sched entity {... long wait runtime; struct rb node run node; struct cfs rq *cfs rq; struct cfs rq *my q;... };

Idee stojące za CFS Wprowadzenie idei w życie Istotne zmiany Struktury kolejek struct rq {... struct cfs rq cfs; struct rt rq rt;... }; struct cfs rq {... struct rb root tasks timeline; struct rb node *rb leftmost; struct rb node *rb load balance curr;... };

Idee stojące za CFS Wprowadzenie idei w życie Istotne zmiany Struktury kolejek struct rq {... struct cfs rq cfs; struct rt rq rt;... }; struct cfs rq {... struct rb root tasks timeline; struct rb node *rb leftmost; struct rb node *rb load balance curr;... };

Wnioski Idee stojące za CFS Wprowadzenie idei w życie Istotne zmiany Wybieralność schedulerów Pliki z różnie działającymi schedulerami. struct sched class W rzeczywistości, dla zwykłego użytkownika, tylko pozorna wybieralność schedulera. Złożoność Drzewo czerwono-czarne do przechowywania działających procesów. Algorytmy O(log n). Grupy procesów Część operacji działa na sched entity zamiast na task struct. Pole my q w sched entity.

Wnioski Idee stojące za CFS Wprowadzenie idei w życie Istotne zmiany Wybieralność schedulerów Pliki z różnie działającymi schedulerami. struct sched class W rzeczywistości, dla zwykłego użytkownika, tylko pozorna wybieralność schedulera. Złożoność Drzewo czerwono-czarne do przechowywania działających procesów. Algorytmy O(log n). Grupy procesów Część operacji działa na sched entity zamiast na task struct. Pole my q w sched entity.

Wnioski Idee stojące za CFS Wprowadzenie idei w życie Istotne zmiany Wybieralność schedulerów Pliki z różnie działającymi schedulerami. struct sched class W rzeczywistości, dla zwykłego użytkownika, tylko pozorna wybieralność schedulera. Złożoność Drzewo czerwono-czarne do przechowywania działających procesów. Algorytmy O(log n). Grupy procesów Część operacji działa na sched entity zamiast na task struct. Pole my q w sched entity.

Część praktyczna Testowanie Ogólnie Co testujemy? Jak testować wydajność? Hackbench Co to jest hackbench? Omówienie działania hackbench.c. Zarządzanie procesami ps nice renice

Część praktyczna Testowanie Ogólnie Co testujemy? Jak testować wydajność? Hackbench Co to jest hackbench? Omówienie działania hackbench.c. Zarządzanie procesami ps nice renice

Część praktyczna Testowanie Ogólnie Co testujemy? Jak testować wydajność? Hackbench Co to jest hackbench? Omówienie działania hackbench.c. Zarządzanie procesami ps nice renice

Część praktyczna Testy Wyniki Omówienie wykresu zachowania hackbench.c dla trzech schedulerów: 1 2.4 2 O(1) 3 CFS WYNIKI.ods Dlaczego scheduler 2.4 faworyzuje hackbench uruchomiony z nice -n 19?

Część praktyczna Pojedynek O(1) a CFS Kompilowanie jądra linuxa i jednoczesne oglądanie filmu w serwisie Youtube.com. Przyjaźniejsze dla użytkownika działanie schedulera CFS. Sposoby radzenia sobie ze schedulerem O(1).

Część praktyczna Zaawansowane narzędzie PS-DOOM PS-DOOM, czyli narzędzie do zarządzania procesami w systemie linux. Szczególnie dla rozrywkowych administratorów...