Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage GEF 243B Programmation informatique appliquée Considération de temps.

Slides:



Advertisements
Présentations similaires
Module Systèmes d’exploitation
Advertisements

Module Systèmes d’exploitation
Module Systèmes d’exploitation
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage GEF 243B Programmation informatique appliquée Architecture du logiciel I.
GEF 243B Programmation informatique appliquée Listes chaînées I – Tableaux de structures §15.1 – 15.2.
GEF 435 Principes des systèmes d’exploitation
GEF 243B Programmation informatique appliquée
GEF 435 Principes des systèmes dexploitation Structure du logiciel dE/S Partie II (Tanenbaum & 5.3.4)
GEF 435 Principes des systèmes dexploitation Les systèmes dexploitation en général (Tanenbaum 1.1 et 1.3)
Hiver 2010JGA Beaulieu GEF 243B Programmation informatique appliquée Structure de base des programmes en C.
GEF 243B Programmation informatique appliquée
Formation universitaire à .NET: Introduction à C#
Module Systèmes dexploitation Chapitre 6 Communication Interprocessus Partie III École Normale Supérieure Tétouan Département Informatique
Types des systèmes d’exploitation
Critère d’ordonnancement en temps réel Partie II
Critère d’ordonnancement en temps réel Partie III
GEF 435 Principes des systèmes d’exploitation
GEF 435 Principes des systèmes dexploitation Ordonnancement partie I (Tanenbaum 2.5)
GEF 435 Principes des systèmes d’exploitation
GEF 435 Principes des systèmes d’exploitations
Systèmes en temps réel Services de Communication.
GEF 243B Programmation informatique appliquée Boucles §
GEF 435 Principes des systèmes dexploitation Communication Interprocessus (CIP) II (Tanenbaum 2.3)
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage GEF 243B Programmation informatique appliquée Tests.
GEF 435 Principes des systèmes d’exploitation
GEF 243B Programmation informatique appliquée
GEF 435 Principes des systèmes dexploitation Communication Interprocessus (CIP) III (Tanenbaum 2.3)
GEF 435 Principes des systèmes d’exploitation
GEF 435 Principes des systèmes dexploitation Structure des systèmes dexploitation (Tanenbaum 1.7)
GEF 243B Programmation informatique appliquée Expressions et opérateurs §
GEF 243B Programmation informatique appliquée
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage GEF 243B Programmation informatique appliquée Architecture du logiciel II.
GEF 243B Programmation informatique appliquée
GEF 435 Principes des systèmes d’exploitation
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage GEF 243B Programmation informatique appliquée Modélisation II.
GEF 435 Principes des systèmes dexploitation Concepts des Systèmes dexploitation (Tanenbaum 1.5)
GEF 243B Programmation informatique appliquée Tableaux et pointeurs §10.1.
GEF 243B Programmation informatique appliquée Pointeurs et adresses §9.1.
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage GEF 243B Programmation informatique appliquée Génie logiciel et Vérification et validation.
GEF 435 Principes des systèmes d’exploitation
GEF 435 Principes des systèmes dexploitation Appels de système (Tanenbaum 1.6)
GEF 243B Programmation informatique appliquée Décisions de design avec structures de données §15.1 – 15.2.
GEF 243B Programmation informatique appliquée Flot de contrôle et énoncés de sélection §
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage GEF 243B Programmation informatique appliquée Types, variables et constantes.
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage GEF 243B Programmation informatique appliquée Génie logiciel avec composantes.
GEF 243B Programmation informatique appliquée Types dérivés, structures et tableaux §
GEF 435 Principes des systèmes d’exploitation
GEF 435 Principes des systèmes d’exploitation
GEF 243B Programmation informatique appliquée Expressions de type mixte et blocs §
GEF 243B Programmation informatique appliquée
GEF 243B Programmation informatique appliquée
Hiver 2010JGA Beaulieu GEF 243B Programmation informatique appliquée Fonctions.
Hiver 2010JGA Beaulieu GEF 243B Programmation informatique appliquée Modules et masquage dinformation.
Hiver 2010JGA Beaulieu GEF 243B Programmation informatique appliquée Tableaux et pointeurs §10.1.
Performances 1 Évolution : Performance. Performances 2 Évolution : Mémoire.
Introduction aux systèmes temps réel Ce cours sadresse aux informaticiens novices en matière de temps réel.
Mémoire & Processus Cours SE - SRC
Parcours de formation SIN-7
1 Threads et Lightweight Processes Chapitre 5 En français on utilise parfois flots ou fils pour threads. Votre manuel préfère le mot anglais thread : terminologie.
Programmation concurrente
Synchronisation Classique
Mécanismes d'exécution et de communication
Vérification dans le cycle de vie GEF492A 2014 Référence: [HvV §14.2, 14.9] Capt Vincent Roberge Collège Militaire Royal du Canada Génie électrique et.
Le contenu est basé aux transparents du 7 ème édition de «Software Engineering» de Ian Sommerville«Software Engineering» de Ian Sommerville B.Shishedjiev.
La programmation système
Génie Logiciel 59 Nous testons les logiciels pour vous !
Qu’est ce que le management?
Systèmes d’exploitation Processus conclusion Modèle conceptuel de processus Pour masquer les effets des interruptions, les SE fournissent un modèle conceptuel.
PRÉSENTATION AGL LES TESTS LOGICIELS LES TEST LOGICIELS 1 Mickael BETTINELLI Brandon OZIOL Gaétan PHILIPPE Simon LUAIRE.
Chapitre 12 Surveillance des ressources et des performances Module S41.
Transcription de la présentation:

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?