Tu as deux modes de gestions multi tâches.
Le mode Temps Réél, et le mode temps partagé. Par défaut, on lance les processus en mode temps partagé. Je vais expliquer à la pelleteuse (très grosse louche) le principe de fonctionnement et comment nice modifie ça.
Quand on lance un programme en temps partagé, le noyau lui alloue un quota de temps. Partons du postulat que le quota par défaut est 100ms. Deux programmes « Ready » vont donc partagé le processeur chacun ayant 100ms de quota à tour de rôle. nice va modifier se quota : nice -m 20 va donner un quota de 120ms pour le programme correspondant. Mais n’empêchera pas l’autre programme d’utiliser son quota qui est toujours de 100ms. Néanmoins, sans nice chacun va s’exécuter pendant 5s. Si on a un quota 120/100, on va avoir un résultat de 4,xs contre 5,y (1-0,x == 0,y).
Les processus en mode TR (temps réel) ne rendent jamais la main ! (enfin, sauf s’ils se mettent en attente avec select par exemple). En fonction des priorités, ça peut rendre un ordinateur de bureau inutilisable (interface graphique bloquée...)
L’ordonnanceur choisi la tâche TR ayant la priorité la plus élevée, et l’exécute. Quand elle a fini, ou qu’elle se met en attente d’un événement extérieur, l’ordonnanceur donne la main à la nouvelle tâche prête ayant la priorité TR la plus élevée. S’il n’y a plus de tâche TR, les tâches en mode partagée sont exécutées.
La concurrence entre les tâches TR, s’effectue suivant deux modes. FIFO ou RR. Prenons deux tâches TR de même priorité :
en mode FIFO, la première qui a la main, s’exécutera jusqu’à ce qu’elle est terminée, puis l’autre tâche sera exécuté. Si la première redevient prête, elle attendra que la seconde est finie.
en mode RR, les deux tâches vont travailler en temps partagé, mais seulement entre elles, puisque les autres tâches sont moins prioritaires.
[^] # Re: oups
Posté par Anthony Jaguenaud . En réponse au message commande nice. Évalué à 8.
Tu as deux modes de gestions multi tâches.
Le mode Temps Réél, et le mode temps partagé. Par défaut, on lance les processus en mode temps partagé. Je vais expliquer à la pelleteuse (très grosse louche) le principe de fonctionnement et comment nice modifie ça.
Quand on lance un programme en temps partagé, le noyau lui alloue un quota de temps. Partons du postulat que le quota par défaut est 100ms. Deux programmes « Ready » vont donc partagé le processeur chacun ayant 100ms de quota à tour de rôle.
niceva modifier se quota : nice -m 20 va donner un quota de 120ms pour le programme correspondant. Mais n’empêchera pas l’autre programme d’utiliser son quota qui est toujours de 100ms. Néanmoins, sans nice chacun va s’exécuter pendant 5s. Si on a un quota 120/100, on va avoir un résultat de 4,xs contre 5,y (1-0,x == 0,y).Les processus en mode TR (temps réel) ne rendent jamais la main ! (enfin, sauf s’ils se mettent en attente avec
selectpar exemple). En fonction des priorités, ça peut rendre un ordinateur de bureau inutilisable (interface graphique bloquée...)L’ordonnanceur choisi la tâche TR ayant la priorité la plus élevée, et l’exécute. Quand elle a fini, ou qu’elle se met en attente d’un événement extérieur, l’ordonnanceur donne la main à la nouvelle tâche prête ayant la priorité TR la plus élevée. S’il n’y a plus de tâche TR, les tâches en mode partagée sont exécutées.
La concurrence entre les tâches TR, s’effectue suivant deux modes. FIFO ou RR. Prenons deux tâches TR de même priorité :
J’espère avoir été clair.