3. Systèmes Temps Réel. Moniteur Temps Réel MTR86W32. 3. SYSTEMES TEMPS REEL - Moniteur Temps Réel MTR86W32



Documents pareils
REALISATION d'un. ORDONNANCEUR à ECHEANCES

FICHE PEDAGOGIQUE. Questions à poser. - Avant de démarrer l ordinateur,

Cours Programmation Système

Chapitre 4. Gestion de l environnement. Pré-requis. énoncé

Processus! programme. DIMA, Systèmes Centralisés (Ph. Mauran) " Processus = suite d'actions = suite d'états obtenus = trace

Temps Réel. Jérôme Pouiller Septembre 2011

INTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores

03/04/2007. Tâche 1 Tâche 2 Tâche 3. Système Unix. Time sharing

Programmation système I Les entrées/sorties

Initiation. àl algorithmique et à la programmation. en C

Informatique industrielle A Systèmes temps-réel J.F.Peyre. Partie I : Introduction

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

1 Mesure de la performance d un système temps réel : la gigue

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1

CH.3 SYSTÈMES D'EXPLOITATION

Ordinateurs, Structure et Applications

Introduction aux Systèmes et aux Réseaux

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski

GPA770 Microélectronique appliquée Exercices série A

Introduction au langage C

Ordinateurs, Structure et Applications

Open Office - Présentation

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Gestion d un VIDÉOPROJECTEUR. ou d un ÉCRAN SECONDAIRE

Le langage C. Séance n 4

Securexam Consignes pour l EFU Les 2, 3 et 4 juin 2015

Problèmes liés à la concurrence

STS SE. FreeRTOS. Programmation réseau WIFI. Programmation réseau. Socket Tcp. FlyPort smart Wi-Fi module

École Polytechnique de Montréal. Département de Génie Informatique et Génie Logiciel. Cours INF2610. Contrôle périodique.

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Programme Compte bancaire (code)

Introduction à ISIS. Manuel d utilisation Logiciel v. 2.1x M Lighting Technologies

Procédure d'installation du serveur Apache HTTPD pour Windows

USTL - Licence ST-A 1ère année Codage de l information TP 1 :

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

Utilisation d une tablette numérique 01 Initiation à l utilisation de l ipad

ACTIVITÉ DE PROGRAMMATION

ORDONNANCEMENT CONJOINT DE TÂCHES ET DE MESSAGES DANS LES RÉSEAUX TEMPS RÉELS 4. QUELQUES EXEMPLES DU DYNAMISME ACTUEL DU TEMPS RÉEL

Exercices INF5171 : série #3 (Automne 2012)

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Cours A7 : Temps Réel

PIC EVAL Dev Board PIC18F97J60

Initiation à la programmation en Python

MISE A NIVEAU INFORMATIQUE LANGAGE C - EXEMPLES DE PROGRAMMES. Université Paris Dauphine IUP Génie Mathématique et Informatique 2 ème année

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre Enrica.Duchi@liafa.jussieu.fr

TP : Gestion d une image au format PGM

Simulation d un système de paiement par carte bancaire

Cours d Algorithmique et de Langage C v 3.0

Guide d utilisation de Dell Display Manager

SYNCHRONISER SA MESSAGERIE OUTLOOK AVEC UN IPHONE

Cours de Systèmes d Exploitation

L Expertise numérique avec la tablette

INTRODUCTION À LA PROGRAMMATION CONCURRENTE

Données Réparties. Thibault BERNARD.

FONCTION COMPTAGE BINAIRE ET DIVISION DE FRÉQUENCE

Cours 14 Les fichiers

À propos de votre liseuse... 5

Cours de Génie Logiciel


Leçon 1 : Les principaux composants d un ordinateur

INITIATION A L INFORMATIQUE. MODULE : Initiation à l'environnement Windows XP. Table des matières :

Jay-Tech. Tablette PC 799

JUNGHANS DIE DEUTSCHE UHR

Virtualisation logicielle De la machine réelle à la machine virtuelle abstraite

Introduction à l informatique en BCPST

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

Manuel de l'utilisateur

Projet Robot Centaure

TRAVAILLER SUR LES ORDINATEURS DU LYCEE

Corrigé des exercices sur les références

Animation Shop PREAMBULE... 2 CONTRAINTE... 2 CREER UNE ANIMATION... 2 AJOUTER DES IMAGES... 3 ENREGISTRER UNE ANIMATION... 3

Comme chaque ligne de cache a 1024 bits. Le nombre de lignes de cache contenu dans chaque ensemble est:

Introduction à la programmation concurrente

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

Programmation système en C/C++

I. Introduction aux fonctions : les fonctions standards

JVC CAM Control. Mode d'emploi. for Android. Français LYT A 0812YMHYH-OT

12 Configuration de l appareil

La mémoire. Un ordinateur. L'octet. Le bit

hager Logiciel PC pour configurateur Radio Tebis TX 100 Manuel d utilisation 6T7266

CLAIRE, UN OUTIL DE SIMULATION ET DE TEST DE LOGICIELS CRITIQUES. Jean GASSINO, Jean-Yves HENRY. Rapport IPSN/Département d'évaluation de sûreté N 280

Documentation. Présentation (simplifiée) de. Monitor PRO

La gestion des boîtes aux lettres partagées

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Totem Digital LED 50 pouces touten-un

IV- Comment fonctionne un ordinateur?

JAVA 8. JAVA 8 - Les fondamentaux du langage. Les fondamentaux du langage Java. Avec exercices pratiques et corrigés JAVA 8 29,90.

Cours 6 : Tubes anonymes et nommés

Structure d un programme

Prise en main du logiciel Smart BOARD

Service Informatique et Télématique (SITEL), Emile-Argand 11, 2009 Neuchâtel, Tél ,

Auditcon 2 SERIES MODÈLES 252 ET 552 MODE D EMPLOI

TBI-DIRECT. Bridgit. Pour le partage de votre bureau. Écrit par : TBI Direct.

Plan du cours. Historique du langage Nouveautés de Java 7

2 Grad Info Soir Langage C++ Juin Projet BANQUE

TD Objets distribués n 3 : Windows XP et Visual Studio.NET. Introduction à.net Remoting

Transcription:

3. SYSTEMES TEMPS REEL - Moniteur Temps Réel MTR86W32 Introduction au Moniteur Temps Réel multitâche MTR86W32 MTR86W32 : librairie de fonctions. création, activation, suppression de processus,. gestion des interblocages, gestion des sémaphores. synchronisation de processus,. gestion des priorités entre processus. ordonnancement des processus INTERPRETEUR DE COMMANDES ET INTERFACE UTILISATEUR GESTIONNAIRE D'E/S ET DE MEMOIRE NOYAU (Primitives de gestion des tâches) Figure 1 TR 3. 1

Squelette de programme C utilisant la librairie MTR86W32 #include "mtr86w32.h" /* Déclaration des variables globales */ /* Déclaration des prototypes des tâches */ /* Tâche d'initialisation */ TACHE init( void ) /* créer les tâches */ /* créer les sémaphores, ressources, tubes...s'il y a lieu */ /* lancer les tâches*/ /* Autres tâches */ main() int code; _init_video(); /* Si utilisation sous VC++ de la librairie conio */ code = start(init, 4096); /* lancement de l'application avec 4Ko octets de pile pour init() */ exit(code); /* retour au système */ TR 3. 2

Exemple 1 de programme C utilisant la librairie MTR86W32 Création, activation de 3 tâches séquentielles A, B, C /* La tache A affiche une chaine de caracteres, caractere par caractere */ /* La tache B affiche une chaine de caracteres */ /* La tache C affiche une chaine et attend la frappe d'une touche au clavier*/ /* La tache A est la plus prioritaire, suivie de la tache B puis C */ #include "mtr86w32.h" /* Prototypage des taches */ TACHE init(void); TACHE tachea (void); TACHE tacheb (void); TACHE tachec (void); /* Prototypage des fonctions */ void printcarparcar(char *); /* Fonction d'affichage d'une chaine de caracteres, caractere par caractere */ void printcarparcar(char *s) while (*s!= '\0' ) putch(*s++); TR 3. 3

TACHE init(void) /* Tache initiale */ active(cree(tachea, PRIORITE_NORMALE, 512)); active(cree(tacheb, PRIORITE_NORMALE-1, 512)); active(cree(tachec, PRIORITE_NORMALE-2, 512)); TACHE tachea(void) printcarparcar("---execa\r\n"); TACHE tacheb(void) cputs("...execb\r\n"); TACHE tachec(void) printf("===execc\r\n"); while (!kbhit()); mtr86exit(0); /* Fin du multitache :*/ int main() int retour; start( init, 10000); /* Debut du multitache */ exit(retour); TR 3. 4

Exemple 2 de programme C utilisant la librairie MTR86W32 Création, activation de 3 tâches A, B, C concurrentes /* Taches A, B et C identiques à ce qui précède */ /* Prototypage des taches */ TACHE init(void); TACHE tachea (void); TACHE tacheb (void); TACHE tachec (void); /* Prototypage des fonctions */ void printcarparcar(char *); int premfois; /* Affichage caractere par caractere */ void printcarparcar(char *s) while (*s!= '\0' ) putch(*s++); dort(cvrtic(100)); /* Suspension de la Tache appelante (A) de 100 ms*/ premfois = 1; TACHE init(void) /* Tache initiale */ active(cree(tachea, PRIORITE_NORMALE, 512)); active(cree(tacheb, PRIORITE_NORMALE-1, 512)); active(cree(tachec, PRIORITE_NORMALE-2, 512)); TR 3. 5

TACHE tachea(void) printcarparcar("---execa\r\n"); TACHE tacheb(void) cputs("...execb\r\n"); TACHE tachec(void) premfois = 1; while (!kbhit()) if (premfois == 1) premfois = 0; printf("===execc\r\n"); mtr86exit(0); /* Fin du multitache */ int main() int retour; start( init, 10000); /* Debut du multitache */ exit(retour); TR 3. 6

TP 3. SYSTEMES TEMPS REEL - Moniteur Temps Réel MTR86W32 1. Documentation de MTR86W32 mtr86w32.pdf 2. Exemples de programmes multitâches MTR86W32. Création, activation de 3 tâches séquentielles.. Création, activation de 3 tâches concurrentes. 3. Programme MTR86W32 : Horloge - chronomètre Enoncé du problème. horloge : h autorise le réglage de l horloge.. chronomètre : c déclenche le chronomètre (démarrage) s provoque l arrêt du chronomètre. i affiche un temps intermédiaire (3 s) r remise à zéro (reset) du chronomètre. programme : f provoque la sortie du programme. TR 3. 7

Analyse des états et transitions du système horloge : chronomètre : - tourne ( en fonctionnement) - tourne - arrêté. i c i Chronomètre s arrêté tourne c r s r Horloge tourne h Transitions (arcs) d'états (cercles) de l'horloge et du chronomètre TR 3. 8

Analyse du flot des données clavier lecture du clavier commande pour l'horloge validation des comandes ou caractères tapés au clavier commandes pour le chronomètre horloge ordre d'écriture écriture à l'écran ordre d'écriture chronomètre écran Flot des données (arcs) - transformateurs de données (bulles) TR 3. 9

Décomposition en processus Transformateur de données processus : 6 critères - dépendance d entrée-sortie - fonction critique en temps - fonction intensive en calcul - cohésion fonctionnelle des transformateurs de données avec interactions fortes doivent être groupés en un seul processus pour éviter le coût de communication entre processus - cohésion temporelle des transformateurs de données qui doivent effectuer leur fonction à des moments identiques doivent être groupés pour constituer un seul processus. - exécution périodique TR 3. 10

Ici : Dépendance d entrée-sortie :. lecture clavier. écriture à l écran (éventuellement) Critère de l exécution périodique. horloge. chronomètre. clavier lecture commande pour l'horloge caractères tapés au clavier validation des comandes commandes ou pour le chronomètre horloge ordre d'écriture ordre d'écriture chronomètre écriture écran TR 3. 11

Priorités entre les processus L ordre de priorité respecte la rapidité des processus. Ainsi, on a, par ordre de priorité décroissante : - processus chronomètre : processus le plus rapide - processus horloge - processus écriture - processus lecture : processus le moins rapide. TR 3. 12