Rtos Questions
Rtos Questions
Rtos Questions
Par exemple:
les caractéristiques les plus courantes d'un système temps réel multitâche :
• plusieurs tâches doivent être exécutées périodiquement à intervalles
différents.
• une tâche doit communiquer de l'information à une autre tâche.
• une tâche, ici l'impression, doit s'exécuter avec une faible priorité de
façon à garantir les contraintes de temps des autres tâches.
Ordonnanceur dans la vie courant : est l'art de planifier vos activités afin
que vous puissiez atteindre vos objectifs et vos priorités dans le temps qui
vous reste. Lorsqu'il est fait efficacement, il s'assure que vous disposez de
suffisamment de temps pour les tâches essentielles.
La réponse est en divisant le temps CPU entre toutes les tâches que nous devons
exécuter avec un taux très élevé, cela nous donne aux humains l'illusion que tout
s'exécute en même temps. Maintenant, nous savons ce qu'est le multitâche, mais
comment pouvons-nous réellement le faire dans le code ? la réponse à cela est
d'utiliser ce qu'on appelle un planificateur.
algorithmes d'ordonnancement
Les algorithmes d'ordonnancement les plus connus utilisés dans les systèmes
embarqués sont.
Algorithme Round-Robin
Les tâches sont des parties de code (fonctions) qui n'acceptent pas de
paramètre et qui ne retournent aucune valeur. Une tâche doit comporter une
boucle infinie lorsqu'elle n'est jamais sensée se terminer ou se détruire lorsqu'elle
est terminée.
Types de noyeaux str :
Les noyaux temps réel se divisent en deux catégories appelées noyaux sans
réquisition du processeur (no preemptive scheduling) et noyaux avec réquisition
du processeur (preemptive scheduling).
● Changement de priorité
● Interruptions
● Sdsd
●
● QUESTION 15
● • sc_tcreate créer une tâche
● • sc_tdelete supprimer une tâche
● • sc_tsuspend suspendre une tâche
● • sc_tresume faire reprendre (suspended → ready) une tâche suspendue
par un sc_tsuspend
● • sc_delay suspendre une tâche pendant une durée déterminée
● • sc_tpriority changer la priorité d'une tâche
● • sc_tinquiry se renseigner sur une tâche (état, identificateur, priorité,
● • sc_lock invalider la “ rescheduling procedure ”
● • sc_unlock valider la “ rescheduling procedure ”
C'est exactement ce qu'une personne fait dans la vie courante quand elle
répartit ses activités prévisionnelles dans un agenda.
NUMRIQUE : les séquences de tâches sont rangées dans des tables et
appliquées systématiquement par un ordonnancement cyclique.
courant.
Les algorithmes classiques de décision en ligne sont :
HPF (Highest Priority First) priorité la plus élevée d'abord
EDF (Earliest Deadline First) échéance la plus proche d'abord
LLF (Least Laxity First ou Least Slack Time) marge la plus courte d'abord.
● HPF : est l'un des plus connus : la décision consiste à sélectionner la tâche
prête qui a la priorité la plus forte.
● Dans EDF : il faut sélectionner la tâche prête qui a l'échéance la plus
proche. EDF prend en compte l'urgence d'un travail à accomplir.
● LLF prend également en compte l'urgence du travail à accomplir mais lui
rajoute la notion de durée du travail (temps de travail restant - temps
restant avant échéance).
79
Les risques :
Le problème de communication par zone commune de données est surtout
lié à la synchronisation entre les tâches qui communiquent. En effet les méthodes
d'écriture et de lecture de données sont assez évidentes lorsqu'on travaille avec
des pointeurs.
Les remèdes :
Il suffit de lire une donnée seulement après que celle-ci ait été écrite et de
ne pas écrire une nouvelle donnée avant que l'ancienne n'ait été lue. Comme
précédemment,
ces problèmes ont été facilement résolus en utilisant une boîte aux lettres.
Code réentrant : est un code qui peut être accessible par plusieurs taches
simultanément, ce code est pas besoin d’avoir des mécanismes particulier pour les
gestion des conflits . (Vu comme ressource non partagé).
. Portabilité
Il s'agit du mécanisme le plus simple qui peut être utilisé sur tous les
STR TD 1
ports FreeRTOS.
tâche Idle est la tâche la plus basse priorité de l'application. Lorsque aucune
tâche ne tourne (tâches bloquées), c'est en fait la tâche Idle qui est en cours
d'exécution.
● la priorité de la tâche