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
3.3.2 Ordonnancement et threads


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

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

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.

C’est exactement ça, vous avez compris !

merci!