Un thread (o un'attività) perderà priorità dinamica utilizzando un sacco di CPU e otterrà priorità utilizzando meno CPU. Come vengono calcolate esattamente queste priorità per n thread (usando la normale politica di schedulazione SCHED_OTHER)?Come vengono calcolate le priorità dinamiche dei thread in Linux 2.6.x?
risposta
Citando this
Le Linux 2.6.8.1 scheduler ricompense I COMPITI/O-bound e punisce attività della CPU-bound aggiungendo o sottraendo da statico la priorità di un compito. La priorità regolata è denominata priorità dinamica dell'attività, ed è accessibile tramite la variabile prio dell'attività (ad es. P-> prio, dove p è un'attività). Se un'attività è interattiva (il termine dello scheduler per I/O associato), la sua priorità viene aumentata. Se è un maiale della CPU, riceverà una penalità . Nello scheduler Linux 2.6.8.1, il bonus di priorità massima è 5 e la penalità con priorità massima è 5. Poiché lo schedulatore utilizza i bonus e le penalità , le rettifiche alla priorità statica di un'attività sono rispettate. Un moderato hog della CPU con un buon valore di -2 potrebbe avere una priorità dinamica pari a pari a 0, lo stesso di un'attività che non è né una CPU né un I/O hog.
Ritengo che questa sia una spiegazione equa. La priorità viene calcolata in base al fatto che si tratti di un thread associato alla CPU o di uno limitato all'I/O. E riguardo a ciò che hai menzionato nella domanda, che lo gain priority by using less of CPU
è piuttosto prioritario perché è interattivo (legato I/O). Spero che questo estratto risponda alla tua domanda ...
- 1. modifica priorità thread e scheduler in linux
- 2. Impostazione priorità del thread in Linux con Boost
- 3. Il kernel Linux non risponde quando più thread ad alta priorità vengono eseguiti su più core
- 4. Come vengono memorizzate e calcolate le cronologie dei controlli delle versioni?
- 5. Cronometraggio nel kernel Linux 2.6
- 6. come utilizzare CryptoAPI nel kernel Linux 2.6
- 7. Come vengono calcolate le altezze di riga in una Tablix SSRS?
- 8. Come vengono evitate le corse IRQ condivise in Linux
- 9. le variabili dinamiche in perl
- 10. Come vengono implementati sbrk/brk in Linux?
- 11. Come ottenere le metriche di utilizzo della CPU dei thread in Redhat Linux
- 12. Emulazione dei binari di Linux in Mac OS X
- 13. Proprietà calcolate in Backbone
- 14. Android: priorità dei valori
- 15. Come vengono calcolate le ore di istanza della frontend sul motore dell'app?
- 16. Come costruire 32bit python 2.6 su 64 bit Linux?
- 17. Come implementare le proprietà dinamiche in Dart?
- 18. Priorità dei limiti di autolimitazione
- 19. Come denominare un thread in Linux?
- 20. Come vengono assegnati i thread IIS7?
- 21. Python definire le funzioni dinamiche
- 22. Coda priorità thread-safe per Delphi?
- 23. calcolate nuove coordinate da vecchi e coordinate x ed y
- 24. "Proprietà calcolate" in AngularJS
- 25. Come installo pip per Python 2.6 su OS X?
- 26. Le code dei messaggi sono obsolete in linux?
- 27. Le div nidificate avvolgono in priorità indesiderata
- 28. Come leggere le proprietà dinamiche dal database
- 29. I pacchetti Must R scaricano le librerie dinamiche quando vengono scaricate?
- 30. Implementazione thread GNU/Linux
The Completely Fair Scheduler (CFS), alias SCHED_NORMAL o SCHED_OTHER, è documentato [qui] (https://github.com/torvalds/linux/blob/master/Documentation/ scheduler/sched-design-CFS.txt) e implementato [qui] (https://github.com/torvalds/linux/blob/master/kernel/sched/fair.c). – indiv