Archive 07/10/2020.

3.3.2 Ordonnancement et threads

PhilippeLN

Bonjour
Pour la phrase " le thread non bloqué ou non terminé et de plus haute priorité est actif," j’aurais plutôt écrit " le thread non bloqué et non terminé et de plus haute priorité est actif"
Cordialement
Philippe

aabadie2

Bonjour,

Merci pour votre remarque qui fait sens. La phrase a été modifiée pour la rendre plus claire.

sdelaun

Bonjour et merci pour ce MOOC qui occupe de plus en plus intéressante mon temps de confinement!
J’ai une remarque/question sur la fin de votre explication sur la priorité du thread créé dans l’exemple.
Vous écrivez:
kernel_pid_t pid;
pid = thread_create(stack, /* stack array pointer /
sizeof(stack), /
stack size /
THREAD_PRIORITY_MAIN - 1, /
thread priority*/
flag, /* thread configuration flag, usually*/
thread_handler, /* thread handler function /
NULL, /
argument of thread_handler function*/
“thread name”);
Dans l’exemple, ci-dessus, le thread est initialisé avec l’espace mémoire disponible dans le tableau stack, avec une priorité de 6

Mais je ne vois pas où ni comment est paramétrée cette priorité de 6, ne serait-ce pas une priorité de valeur 1 dans l’exemple présenté? A corriger par:
THREAD_PRIORITY_MAIN - 6, /* thread priority*/

Cordialement,

Sébastien

sdelaun

Je crois que je viens de comprendre:
c’est déclaré en valeur relative à celle du main, ici un point de moins que le niveau de priorité du Main (étant de 7), c-à-d 7-1 = 6?
Si on souhaite rendre notre thread prioritaire sur tous les autres, il faudrait déclarer:
THREAD_PRIORITY_MAIN - 7, pour le placer en priorité = 0

Merci de me confirmer.

aabadie2

C’est exactement ça, vous avez compris !

sdelaun

:grinning: merci!