Wątek (lub zadanie) utraci dynamiczny priorytet przez użycie dużej liczby procesora i priorytetu przy użyciu mniejszej mocy procesora. Jak dokładnie obliczane są te priorytety dla n wątków (przy użyciu zwykłej strategii planowania SCHED_OTHER)?W jaki sposób dynamiczne priorytety wątków są obliczane w systemie Linux 2.6.x?
Odpowiedz
Cytując this
Linux 2.6.8.1 scheduler nagrody I/O-związane zadań i karze zadań procesora związany przez dodanie lub odjęcie od statycznego priorytetu zadania należy. Dostosowany priorytet nazywa się dynamicznym priorytetem zadania, i jest dostępny przez zmienną prio zadania (np. P-> prio, gdzie p jest zadaniem). Jeśli zadanie jest interaktywne (termin terminarza dla wejścia I/O ), jego priorytet jest zwiększany. Jeśli jest to procesor wieprzowy, otrzyma karę . W harmonogramie linuksowym 2.6.8.1, maksymalna premia za pierwszeństwo to 5, a maksymalna kara za pierwszeństwo to 5. Ponieważ program planujący korzysta z premii i kar , poprawki do statycznego priorytetu zadania są szacowane na . Łagodny świnia CPU z ładną wartością -2 może mieć dynamiczny priorytet równy 0, taki sam jak zadanie, które nie jest ani procesem, ani głowicą I/O .
Uważam, że jest to uczciwe wyjaśnienie. Priorytet jest obliczany na podstawie tego, czy jest to wątek związany z CPU, czy powiązany z I/O. A jeśli chodzi o to, o czym wspomniałeś w pytaniu, to raczej jest priorytetem, ponieważ jest interaktywny (związany z wejściem I/O). Mam nadzieję, że ten fragment odpowiedzi na twoje zapytanie ...
- 1. W jaki sposób rejestry fs/gs są używane w systemie Linux AMD64?
- 2. Statystyki procesora dla wątków w systemie Linux
- 3. W jaki sposób areTF-IDF obliczane przez scikit-learn TfidfVectorizer
- 4. Jaki jest najdokładniejszy sposób przetestowania kodu sieciowego w systemie Linux?
- 5. Gromadzenie informacji na temat planowania wątków w systemie Linux
- 6. W jaki sposób pthread jest implementowany w jądrze Linux 3.2?
- 7. W jaki sposób ustawić Pythona 2.6 jako domyślnego w Mac OS X Lion?
- 8. W jaki sposób Linux wykonuje plik?
- 9. W jaki sposób przepełnienie bufora gniazda Linux?
- 10. jakie są wbudowane polecenia powłoki w systemie Linux?
- 11. Planowanie wątków w systemie UNIX
- 12. W jaki sposób określa się ścieżki zależności bibliotek współdzielonych w systemie Linux?
- 13. W systemie Mac OS X 10.8.x w jaki sposób aplikacja AppStore może zainstalować rozszerzenie jądra?
- 14. Słabe aliasy symboli w systemie OS X są podobne do aliasów w systemie Linux lub najbliższy odpowiednik?
- 15. W jaki sposób linux synchronizuje zliczanie prewencyjne
- 16. Interlocked odpowiednik w systemie Linux
- 17. W jaki sposób ustalane są ratio_manualności w RandomForestClassifier?
- 18. W jaki sposób wybierane są rozmiary buforów?
- 19. Najlepszy sposób na uzyskanie identyfikatora komputera w systemie Linux?
- 20. W jaki sposób są realizowane malloc i free?
- 21. W systemie Linux, jakie pliki są mapowane w pamięci?
- 22. W jaki sposób są rozwiązywane symbole zewnętrzne?
- 23. W jaki sposób są zapisywane wiadomości logcat
- 24. Wątki/Porównanie procesów w systemie Linux/Windows
- 25. W systemie Linux, w jaki sposób znaleźć katalog zawierający najwięcej podkatalogów lub plików?
- 26. Fragmenty dynamiczne w systemie Android
- 27. Aktualizacje aplikacji w systemie Mac OS X
- 28. W jaki sposób kopiowanie na kolekcjach zapisu zapewnia bezpieczeństwo wątków?
- 29. W jaki sposób utworzyć urządzenie wirtualne io w systemie Linux, które przesyła dane do rzeczywistego urządzenia?
- 30. W jaki sposób dynamicznie alokować pamięć w systemie Mac OS X?
Całkowicie uczciwy harmonogram (CFS), znany również jako SCHED_NORMAL lub SCHED_OTHER, jest udokumentowany [tutaj] (https://github.com/torvalds/linux/blob/master/Documentation/ scheduler/sched-design-CFS.txt) i zaimplementowane [tutaj] (https://github.com/torvalds/linux/blob/master/kernel/sched/fair.c). – indiv