Chciałbym wiedzieć, jakie mechanizmy planowania stosuje się w 15.04, dzielenie czasu lub w czasie rzeczywistym, jestem prawie pewien, że to FIFO, Round Robin, SJF?
PS: Nowość w systemie Linux
Harmonogram procesów
Program do planowania procesów obsługuje alokację zasobów procesora do wykonywania procesów i ma na celu maksymalizację całkowitego wykorzystania procesora przy jednoczesnej maksymalizacji wydajności interaktywnej.
Od czasu jądra 2.6.23 (tak jak w Hardy 8.04 LTS) Całkowicie uczciwy program planujący (CFS) oparty na „Rotating Staircase Deadline”. Przegląd z kernel.org :
CFS oznacza „Całkowicie uczciwy program planujący” i jest nowym harmonogramem procesów „stacjonarnych” wdrożonym przez Ingo Molnar i połączonym z Linuksem 2.6.23. Jest to zamiennik poprzedniego kodu interaktywnego SCHED_OTHER planisty waniliowego.
80% konstrukcji CFS można podsumować jednym zdaniem: CFS zasadniczo modeluje „idealny, precyzyjny wielozadaniowy procesor” na prawdziwym sprzęcie.
„Idealny procesor wielozadaniowy” to (nieistniejący :-)) procesor, który ma 100% mocy fizycznej i który może wykonywać każde zadanie z dokładnie równą prędkością, równolegle, każde z prędkością 1 / nr_ biegania. Na przykład: jeśli uruchomione są 2 zadania, każde z nich działa przy 50% mocy fizycznej - tzn. Faktycznie równolegle.
Na prawdziwym sprzęcie możemy uruchomić tylko jedno zadanie na raz, dlatego musimy wprowadzić koncepcję „wirtualnego środowiska wykonawczego”. Wirtualny środowisko uruchomieniowe zadania określa, kiedy jego następny przedział czasu rozpocznie wykonywanie na idealnym wielozadaniowym procesorze opisanym powyżej. W praktyce wirtualny środowisko wykonawcze zadania to jego rzeczywisty czas wykonywania znormalizowany do całkowitej liczby uruchomionych zadań.
Harmonogram we / wy
Planowanie wejścia / wyjścia jest metodą używaną przez system operacyjny do decydowania, w jakiej kolejności operacje we / wy bloku zostaną przesłane do woluminów pamięci.
Artykuł Phoronix na temat planowania : Linux 3.16: Terminowy harmonogram we / wy ogólnie prowadzi z dyskiem SSD.
Możesz zmienić harmonogram we / wy, dodając opcję „wind =” do „GRUB_CMDLINE_LINUX_DEFAULT =” w grub.
Prawdopodobnie łatwiej (przy założeniu sda i terminu) zrobić to w ten sposób:
Aby wyświetlić listę dostępnych harmonogramów:
cat /sys/block/sda/queue/scheduler
Aby zmienić harmonogram (można to zrobić w locie):
echo deadline > /sys/block/sda/queue/scheduler
Z jądra / git / torvalds / linux.git
Możesz sprawdzić, co jest używane (zakładając, że sda jest pierwotne):
cat /sys/block/sda/queue/scheduler