PROFDINFO.COM

Votre enseignant d'informatique en ligne

 

hourglass« Ô temps, suspends ton vol ! Et vous, heures propices,
Suspendez votre cours !
Laissez-nous savourer les rapides délices
Des plus beaux de nos jours ! »

 

- Alphonse de Lamartine

 

Les objets du temps

Objectifs

Directives

Première partie – Le chronomètre

Description

La classe CChrono nous permettra de mesurer aisément le temps d’exécution d’une portion du programme.  Pour réaliser ce chronomètre, il faut utiliser l’horloge temps réel. Une simple soustraction et le tour est joué!  Attention aux unités de temps!

Représentation UML de la classe CChrono

CChrono

- m_TempsAZero : timespec

+ CChrono () 
+ ~CChrono () 
+ RemiseAZero() : void
+ Lire() : float

La méthode Lire() doit retourner le temps écoulé en millisecondes (ms). Petit rappel: 1 s = 1,000 ms = 1,000,000 us = 1,000,000,000 ns

Module de test

Vous devez écrire un module de test qui vous permettra de vérifier le bon fonctionnement de la classe CChrono ainsi que l’affichage de messages d’erreur (assert) lorsqu’elle n’est pas utilisée correctement.

Primitives du S.E.T.R. à utiliser

À remettre

Une version imprimée des fichiers chrono.h, chrono.cc et testchrono.cc et la réponse à la question suivante : « Quelle est l’influence de la granularité du temps (ClockPeriod) sur les temps observés? »

Deuxième partie – L’alarme

Description

La classe CAlarme encapsulera, de façon plus esthétique, les « timers » du S.E.T.R.  Lorsqu’un « timer » est créé puis armé, il émettra un  avertissement à intervalles réguliers.  Le « timer » peut réveiller un processus en utilisant un « pulse ». 

Représentation UML de la classe CAlarme

CAlarme

- m_timerID : timer_t

+ CAlarme () 
+ ~CAlarme ()
+ Armer(Demarrage : long, Periode : long) : void
+ Desarmer() : void
+ AttendreAlarme() : void

Les temps de démarrage et de période sont exprimés en microsecondes (µs).

Module de test

Vous devez écrire un module qui vous permettra de vérifier le bon fonctionnement de la classe CAlarme ainsi que l’affichage de messages d’erreur (assert) lorsqu’elle n’est pas utilisée correctement.

Primitives du S.E.T.R. à utiliser

À remettre

Une version imprimée des fichiers alarme.h, alarme.cc et testalarme.cc et la réponse à la question suivante : « Quelle est l’influence de la granularité du temps (ClockPeriod) sur les temps observés? »