Quels types d'algorithmes de planification sont utilisés dans 15.04? Est-il possible de le changer?


12

Aimeriez-vous savoir quels mécanismes de planification sont utilisés dans 15.04, en temps partagé ou en temps réel, je suis à peu près sûr de son FIFO, Round Robin, SJF?

PS: nouveau sous Linux

Réponses:


14

Planificateur de processus

Un planificateur de processus gère l'allocation des ressources CPU pour l'exécution des processus et vise à maximiser l'utilisation globale du CPU tout en maximisant les performances interactives.

Depuis le noyau 2.6.23 (ce serait à partir de Hardy 8.04 LTS) Scheduler complètement équitable (CFS) basé sur "Rotating Staircase Deadline". Aperçu de kernel.org :

CFS signifie "Completely Fair Scheduler" et est le nouveau planificateur de processus "de bureau" implémenté par Ingo Molnar et fusionné dans Linux 2.6.23. Il remplace le code d'interactivité SCHED_OTHER du programmateur vanilla précédent.

80% de la conception de CFS peut être résumée en une seule phrase: CFS modélise fondamentalement un "processeur multitâche idéal et précis" sur du matériel réel.

Le "CPU multitâche idéal" est un CPU (inexistant :-)) qui a une puissance physique de 100% et qui peut exécuter chaque tâche à une vitesse égale précise, en parallèle, chacune à une vitesse de 1 / nr_running. Par exemple: s'il y a 2 tâches en cours d'exécution, alors elles s'exécutent chacune à 50% de la puissance physique, c'est-à-dire en fait en parallèle.

Sur du matériel réel, nous ne pouvons exécuter qu'une seule tâche à la fois, nous devons donc introduire le concept de «runtime virtuel». Le runtime virtuel d'une tâche spécifie quand sa prochaine tranche de temps commencera à s'exécuter sur le CPU multitâche idéal décrit ci-dessus. Dans la pratique, le temps d'exécution virtuel d'une tâche est son temps réel d'exécution normalisé au nombre total de tâches en cours d'exécution.


  • Kernel 2.4: planificateur O (n) ; il n'y a pas de version Ubuntu avec ce noyau.
  • Kernel 2.6.0 à 2.6.22: planificateur O (1) . Warty 4.10 (1ère version) utilisait 2.6.8. Gutsy 7.10 était le dernier à utiliser 2.6.22 ou moins.

Planificateur d'E / S

La planification des entrées / sorties est la méthode utilisée par le système d'exploitation pour décider dans quel ordre les opérations d'E / S de bloc seront soumises aux volumes de stockage.

Article de Phoronix sur la planification : Linux 3.16: le planificateur d' E / S à échéance mène généralement avec un SSD.


Vous pouvez modifier le planificateur d'E / S en ajoutant l'option "ascenseur =" à "GRUB_CMDLINE_LINUX_DEFAULT =" dans grub.

Il est probablement plus facile (en supposant sda et délai) de le faire comme ceci:

  • Pour afficher la liste des planificateurs disponibles:

    cat /sys/block/sda/queue/scheduler
    
  • Et pour modifier un planificateur (peut être fait à la volée):

    echo deadline > /sys/block/sda/queue/scheduler
    

Depuis kernel / git / torvalds / linux.git


Vous pouvez vérifier ce qui est utilisé avec (en supposant que sda ​​est primairy):

cat /sys/block/sda/queue/scheduler

Cela signifie-t-il que le mécanisme de planification utilisé dans Ubuntu 15.04 par défaut est l'algorithme de partage de temps, CFS? Ou vient-il avec OTHER, RR et FIFO? J'ai obtenu mes informations ici: manpages.ubuntu.com/manpages/hardy/man2/…
leslie_lyj

Vous consultez les pages de manuel de Hardy. C'est un peu vieux;) 'cfq' est la valeur par défaut. Voir le lien ajouté à kernel / git / torvalds / linux.git.
Rinzwind

1
... n'est-ce pas déroutant entre disque et ordonnanceur cpu ? Ce sont des bêtes très différentes. Le planificateur de CPU décide quel processus est exécuté ensuite, et le planificateur de disque décide comment les blocs de données sur les disques sont accessibles. Voir par exemple wiki.archlinux.org/index.php/Maximizing_performance
Rmano

Eh bien, pas vraiment, le point principal de cette question était de clarifier le mécanisme de planification des processus sur lequel Ubuntu 15.04 fonctionne. (Désolé si je n'ai pas été clair)
leslie_lyj

2
@Rmano J'ai supposé que c'était pour des informations pas spécifiquement pour l'utiliser réellement. Mais le névrosé en moi a tout fait>: - D Quiconque veut jouer avec cela devrait être un expert: X
Rinzwind
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.