0% ont trouvé ce document utile (0 vote)
81 vues11 pages

ZZZZ

Transféré par

IRBAZ SUP
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
81 vues11 pages

ZZZZ

Transféré par

IRBAZ SUP
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Compte Rendu TP2

- Tâches concurrentes & Création de plusieurs instances


de tâche cas du NTR dur Mtr86-68K du EID210

Réalisé par :
MUSTAPHA EL YAACOUBI

1
I. Introduction :

1-1 Objectifs de TP :
Ce TP a pour but, à travers 2 programmes, d’initier à la programmation et la
gestion des tâches et des priorités, dans le cas du NTR dur Mtr86-68K du
système embarqué EID210.

1-2 Présentation du système expérimental

Carte EID210

1-3 câblage du système :

Alimentation Carte EID210 (NTR) PC Moniteur

2
II. Paramétrage du logiciel dédié temps réel et
rédaction du programme de l'activité 1 : "§ 4-1

2-1 les 2 tâches à rajouter pour compléter le programme « TP2_1.c »:

III. Essai d'exécution du programme de l'activité 1 :


Effets de la concurrence ou non des tâches et des
contraintes de temps :"§ 4.2.b"

- Explication du fonctionnement du programme :

La tache main lance la tache init, cette dernier active et crée trois taches T1, T2,
T3. La tache T1 s’exécute en premier temps (Priorité 1), il occupe le processeur
pendant (j=499999) pour un travail inutile simplement pour imposer une
contrainte de temps, puis passe à l’exécution de la 2éme boucle for (j<50) qui
se bloque pour 10quantum après l’exécution complet de la 3ème boucle for
(i<200) , et durant ce blocage le processeur est alloué à T2 et T3 ces deux
dernier tache s’exécute en concurrence (basculement entre état exéc physique
et état exéc virtuel).

3
- Effet des priorités et celui due aux contraintes temporelles imposés aux tâches
"T1", "T2" et "T3" :

b)
1-

Pour dort(1) le message « T1 : Fin  Accélération de T2 et T3 » s’affiche vite


environ après (j=8) par rapport à dort(10) car le temps de blocage de T1 est
réduite, alors la tache T1 reprend son exécution très vite, donc le processeur
est alloué chaque fois au T2 et T3 pendant 1 quantum seulement.

2-

4
Pour dort(50) le message « T1 : Fin  Accélération de T2 et T3 » ne s’affiche
pas car le temps de blocage de T1 est important, donc le processeur est alloué
à T2 et T3 durant la durée de blocage sans interruption de T1, la Tache T2
termine son exécution, et la tache T3 aussi mais après l’exécution de la 2ème
boucle for (i<1000) et ensuite arrête le processeur (mtr86exit(0)). Sachant que
T3 est toujours à l’état bloqué.

3-

T1 en premier ensuite T2 est à la fin T3, le processeur est alloué à T2 et T3


durant la durée du blocage de T1 selon leurs ordres de priorité, après le
blocage de T1, T2 s’exécute et termine son exécution, puis T3 mais sera
interrompu à environ (j=54) par T1 (réveillée), donc le message « T1 : Fin 
Accélération de T2 et T3 » s’affiche et T1 termine son exécution, T3 continu est
arrête le noyau.

5
4-

T1 s’exécute en premier est se bloque, à ce moment T3 s’exécute car elle a la


priorité 2 donc T3 termine son exécution ensuite elle arrête le noyau, alors T2
ne s’exécute pas.

C-
Le changement à apporter sur le programme pour que la tâche "T2" s’exécute :
c’est de mettre l’instruction mtr86exit(0) à la fin de T2 au lieu de T3.

6
d-
Tache d’initialisation : TACHE init

cree & active cree & active

cree & active

Tache T1 Tache T2 Tache T3

δτ

IV. Essai d'exécution du programme de l'activité 1 :


"SUITE du § 4.2.c"
- Modification apportée afin la tâche "T2" puisse s’exécuter :

7
V. Description et rédaction des tâches, puis essais
d'exécution du programme de l'activité 2 : "§
5.2.a-b" :
a)

- dsp_stk() : sert à visualise les consumations en fin de programme.
- cvrtic() : Permet la conversion (cvrtic (10) = 1 quantum).
- gotoxy(u,v) : Aller à colonne u et v (pour affichage)
- tache_c() : Permet la lecture de la tache courante en cours
d’exécution.
- MONITOR : Accès exclusif à la ressource écran,
- ... ENDM : Fin d’accès et c’est facultatif.

 La version initial du programme permet d’afficher le n° « j »,


à la colonne n° : ((reste de la division de la tache courante-2
sur 10) +1) *7

 Affichage après utilisation de l'instruction dsp_stk() :

8
L’instruction dsp_stk() permet d’afficher les informations suivant : n° de la
tâche, le statut ou l’état de la tâche, temps d’occupation par la tache dans le
processeur, adresse de pile, taille de pile alloué, taille de pile libre.

b)
1-

On à dort(cvrtic(5000)) pour la tâche "init " et dort(10) pour la tâche "T " :
dort(cvrtic(5000))=dort(500)
Donc 500/10 =50 incrémentations puis le noyau il s’arrête.

2-

9
On à dort(cvrtic(10000)) pour la tâche "init " et dort(10) pour la tâche "T " :
dort(cvrtic(10000))=dort(1000)
Donc 1000/10 =100 incrémentations puis le noyau il s’arrête.

3-

On à dort(cvrtic(10000)) pour la tâche "init " et dort(20) pour la tâche "T " :
Dort(Cvrtic(10000))=dort(1000)
Donc 1000/20 =50 incrémentations puis le noyau il s’arrête.

 Le rapport qui existe entre les deux taches :


Nbr d’incrémentation max = dort () de la tache init/dort () de la tache T.

VI. Essais d'exécution du programme de l'activité 2 :


"§ 5-2.c"
1-
Pour crée et lancer 4 instances de tache il faut changer la valeur max de « j »
de 8 à 4.

10
2-
Modification au niveau du programme pour que l’affichage
de la tache T se fasse sur des lignes différentes :

11

Vous aimerez peut-être aussi