Systeme temps réel
2011
Kévin Berger
Adrien Gandrillon
TP2 Temps Réel
2011
Kévin Berger
Adrien Gandrillon
Question 1 : (voir fichier tp1.c)
Pour chaque itération (en milliseconde), il faut réaliser plus de 370 000 fois (372 000 fois exactement) la fonction. Les temps sont espacés de 0.998 à 1.005s.
Question 2 : (voir fichier tp2.c)
Question 3 : (voir fichier tp3.c)
On remarque que le signal n'est reçu que 2 fois:
-------------------------------------------------
Pause
------------------------------------------------- pause -------------------------------------------------
Interruption recue
-------------------------------------------------
Interruption recue
-------------------------------------------------
pause
-------------------------------------------------
pause
La fonction dowork() se déroule dans le handler, donc durant toute la durée de travail de ce dernier, il ne peut pas recevoir d'autres interruptions. Afin de pouvoir gérer un maximum d’interruptions de manière simultanée, il faut effectuer un minimum de traitements dans le handler.
Question 4 : (voir fichier tp4.c)
On se rend compte qu’avec le code fourni par le tp4.c, beaucoup plus d’interruptions sont captées (plus de 90%) alors que pour l’ancien on n’avait que 2 interruptions. Il y a donc toujours 10% d’interruptions qui ne sont pas traitées, le problème n’est donc pas complètement résolu.
Question 5 : (voir fichier tp5.c)
Question 6 : (voir fichier tp6.c)
Il y a un décalage dans le temps dû au sleep. On peut également noter que lorsque l’on lance l’alarm par un thread, celui-ci va remettre à 0 le précédent. L’alarm peut donc comme on vient de le voir poser un problème lorsqu’on fait du multi threading.
Question 7 : (voir fichier tp7.c)
Question 8 : (voir fichier tp8.c)
0 | | | 1 | | | 2 | | | 3 | | | 4 | | | 5 | | | 6 | | | | | | | | | | | | | | | | | | | | | | | | | | |