Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage GEF 243B Programmation informatique appliquée Considération de temps
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage Revue Quels sont les bénéfices de la réutilisation? Quelle est la définition dune composante?
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage Synopsis Flot normal Tâches périodiques Exécutifs cycliques Tâches apériodiques Ordonnancement
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage Flot normal Jusquà date nous avons vue des programmes qui sont contrôlés avec les structures de langage Nos programmes suivent une structure qui est spécifié par les énoncés if-else, while, do-while, switch,… Mais est-ce que cest la seule façon de contrôler le comportement des programmes?
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage Flot normal Chaque instruction ou ensemble dinstruction prend un certain temps à exécuter; même si ce sont des microsecondes Il y a des programmes pour lesquels nous voulons contrôler le temps qui sécoule entre les instructions (fonctions ou tâches) Ce contrôle du temps est commun entre les programmes appliqués (robotique, contrôle de processus, échantillonnage,…)
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage Flot normal La première fois que nous avons pris le rôle de dieu avec nos robots (et oui pour eux, nous sommes des dieux) est quand nous avons retardés leurs activités Nous avons utilisé les fonctions sleep() et msleep() pour obtenir la coopération du système dexploitation brickOS pour imposer un timeout à nos programmes
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage Flot normal Donc si nous nimposons pas une forme de contrôle de temps, nos programmes vont exécuter en suivant le flot logique que nous avons spécifié; Dans ce cas, la seule limitation en temps est le temps dexécution des instructions La majorité des applications que nous utilisons chaque jour suivent ce genre de cédule statique où il ny a pas de comportement temporel spécifié
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage Tâches périodiques Un concept qui est relié de près aux exécutions de tâches statiques, est le concept de tâche périodique Certains systèmes ont besoin dexécuter des tâches ou des fonctions à certains intervalles pour assurer que le système se comporte dune certaine façon La majorité des systèmes de contrôle inclus des tâches périodiques Ces tâches périodiques sont des événements dentretien ordonnancés
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage Tâches périodiques La période dune tâche est dictée par les requis de contrôle et les besoins de stabilité du système Les systèmes avec des tâches périodiques peuvent être implémentés de différentes façons Certains systèmes dexploitation permettent aux programmeurs de spécifier la périodicité des tâches. Ces spécifications peuvent être: La période actuelle de la tâche (exécute chaque 10 msecs) La priorité dune tâche qui détermine sa fréquence. Une tâche qui a besoin dexécuter souvent va avoir une haute priorité pour exécuter souvent Temps de relâche, temps dexécution et échéancier
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage Exécutifs cycliques La méthode la plus évidente dimplémenter des tâches périodiques est lexécutif cyclique Dans limplémentation dun exécutif cyclique, le programmeur spécifie directement le comportement temporel de chaque tâche à la main À la base de lexécutif cyclique, il y a un compteur de boucle, (ou un ensemble de boucles) qui exécute des tâches à des fréquences données Les exécutifs cycliques nont pas besoin de beaucoup de support du système dexploitation; la cédule entière est comprise ou encodée dans le programme
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage Exécutifs cycliques Les exécutifs cycliques veulent dire que le programmeur doit connaître parfaitement le matériel Le programmeur doit savoir combien de temps chaque instruction prend pour exécuter, pour être capable de régler les cycles qui contiennent chaque tâche La plus part du temps, les programmeurs vont mesurer le temps dexécution avec des tests empiriques Les délais sont utilisés pour régler les fréquences des boucles
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage A Exécutifs cycliques ABBCBBCAA Period de A Period de B Period de C Délais – temps morts temps 0
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage Exécutifs cycliques … while (1) { //Tâches à haute fréquence chaque itération de la boucle if (!(compte%2)) { //Tâches à demi fréquence de la boucle, chaque 2 itérations //délais possible ici (sleep) } if (!(compte%4)) { //tâche à quart de fréquence} compte++; sleep(x); //temps mort pour régler la fréquence principale }
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage Tâches apériodiques Peu de systèmes opèrent avec un ensemble pure de tâches périodiques Pour être réactifs, la plus part des systèmes appliqués permettent aux tâches de se produire à des temps inconnus; donc les tâches sont apériodiques Les tâches apériodiques se produisent de façon spontanée en passant par les facilités dinterruptions du système Le système dexploitation doit avoir des mécanismes pour traiter les interruptions
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage Tâches apériodiques Le comportement temporel des tâches apériodiques est, en général, imprédictible, parce que nous ne pouvons pas savoir quand un événement va se produire: Quand est-ce quune température va être atteinte Des données arrivent à un port Robot frappe un obstacle…
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage Tâches apériodiques Les tâches apériodiques peuvent cependant, être modélisées comme des tâches pseudo périodiques Dans beaucoup de systèmes, il est possible destimer la fréquence des événements apériodiques Quand on modélise les tâches apériodiques, notre but est de voir si nous avons assez de place dans notre cédule pour que le système puisse répondre à un nombre maximum dévénements
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage Ordonnancement Lordonnancement est une discipline du génie logiciel qui se penche sur certains problèmes : Efficacité: maximise lutilisation des ressources dun système. Débit: exécute le plus de tâches possible dans un temps donné Équité: assure que les usagers ait un montant de temps équitable dans un système multi usagers Sécurité physique: assure que toutes les tâches dans un système en temps réel rencontre leurs échéanciers Temps de réponse: assure que le système est capable de servir les utilisateurs dans un temps raisonnable
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage Ordonnancement Tous les programmes que vous avez écris jusquà maintenant ont étés des tâches simples avec un seul fil dexécution Dans certains systèmes, il est possible pour un programme davoir plusieurs tâches qui exécutent en parallèle Ces tâches peuvent être des processus entiers ou des threads; où le processeur est partager dune certaine façon (round-robin, à priorité, …)
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage Quiz Time Comment implémentez vous un exécutif cyclique?