Electronique embarquée Le noyau temps réel µ C OS-II

Dimension: px
Commencer à balayer dès la page:

Download "Electronique embarquée Le noyau temps réel µ C OS-II"

Transcription

1 Electronique embarquée Le noyau temps réel µ C OS-II Richard Grisel Professeur des Universités Université de Rouen Conception des systèmes temps réel Le noyau temps réel µcos Les figures sont extraites de l ouvrage : MicrC/OS-II, «The real time kernel», Second Edition par Jean J. Labrosse CMP Books, ISBN

2 Introduction : Systèmes de faible complexité Foreground (ISR)/background Kernel Application : Boucle infini qui gère des modules Pas de déterminisme Quelques définitions Sections critiques de code A traiter de manière indivisible (continue, ne peut pas être interrompue et donc les interruptions ne sont pas autorisées généralement) Ressources Toute entité utilisée par une tâche I/O : imprimante, clavier, afficheur Mémoire : variables, structures, tableau Ressource partagée Peut être utilisée par plusieurs tâches, nécessite une exclusion mutuelle (MUTEX, accès exclusif tâche en cours) pour prévenir la corruption des données. Multi-tâches 2

3 Les tâches (Thread) Chaque tâche a une priorité, une pile et un jeu de registres du CPU Une tâche = Une boucle infinie dans un certain état Sommeil : en mémoire mais pas dans la gestion des tâches Prête : Peut s exécuter mais pas encore en priorité Exécution : Contrôle du CPU Attente d évènement : (Fin d I/O, attente ressource partagée, etc..) Interrompue par ISR : L ISR a pris le contrôle. Le multi-tâches 3

4 Tâches et fonctions de ucos Le changement de contexte («Context switch») Changement de tâche = sauvegarde du contexte de la tâche en cours et récupération du contexte de la tâche à exécuter Cela ajoute des charges (en temps) à l application Plus il y a de registres à sauvegarder, plus le temps de changement de contexte sera long 4

5 Le noyau («Kernel») Gestion des tâches et des communications inter-tâches Un noyau temps réel simplifie la conception Le service principal est le changement de contexte Le noyau prend sur le temps d exécution (2% à 5% pour les systèmes bien conçus) Nécessite espace ROM et RAM, les tâches de la RAM aussi (pile), ce qui «mange» beaucoup de RAM Attention au micro-contrôleur «single-chip» (peu de RAM) Permet les sémaphores, boites aux lettres, queues, gestion du temps L Ordonnanceur («Scheduler ou dispatcher») Détermine quelle tâche va s exécuter L exécution est généralement basée sur une priorité De manière générale la tâche de plus haute priorité va s exécuter Il existe des noyaux préemptifs et des noyaux non préemptifs Non Préemptif (ou collaboratif) (voir figure suivante) : les évènements asynchrones sont gérés par des ISR, la tâche de plus haute priorité prend le contrôle à la fin de l exécution de la tâche en cours Préemptif (majoritairement dont ucos) : Contrôle toujours donné à la tâche de plus haute priorité 5

6 Ordonnancement non préemptif Ordonnancement préemptif 6

7 Les fonctions réentrantes Peut être utilisée par une ou plusieurs tâches sans problème de perte (ou de corruption) de données Elles utilisent généralement des variables locales (Registres CPU ou dans la pile) ou protègent les données en cas de variables globales Exemple : Les paramètres de strcopy sont placées dans la pile de la tâche, donc des appels multiples ne parasiteront pas les pointeurs des autres tâches L exemple suivant montre une fonction non réentrante (Temp est un «integer» global et le noyau est préemptif avec interruptions autorisées) Tâche priorité basse Tâche priorité haute 7

8 Définitions (suite) L Ordonnancement «Round-Robin» Pour les tâches de même priorité un quantum (constante de temps prédéterminée) est alloué (temps partagé) Le noyau donne contrôle à la tâche suivante (même prio) si : La tâche courante n a pas besoin de son quantum La tâche courante s arrête avant la fin de son quantum Le quantum arrive à sa fin A vérifier pour ucos Priorités statiques Pas de changement pendant l exécution, chaque tâche a une priorité définit à la compilation (déterministe) Priorités dynamiques Possibilité de modification à l exécution, permet d éviter l inversion de priorité, disponible dans ucos L inversion de priorité 8

9 L héritage de priorité Affectation des priorités Ce n est pas une tâche triviale La technique RMS est classique et part d un certain nombre d hypothèses Toutes les tâches sont périodiques Pas de synchronisation entre les tâches (ressources, données) Le CPU exécute la tâche de plus forte priorité (Préemptif) L inégalité RMS 9

10 Exclusion mutuelle Communication facile = partage de ressources communes (données, variables, pointeurs,etc..) Nécessite que l accès soit exclusif Interdire les interruptions Faire des instructions «Test and set» Interdire l Ordonnancement (attention) Utiliser des sémaphores ucos fournit deux procédures pour la gestion «Test and Set» Algorithme «soft» si pas d implémentation «hardware» (par exemple famille 68000) 10

11 Interdire l Ordonnancement Cela revient à devenir non préemptif (dangereux), il vaut mieux utiliser des sémaphores. Les sémaphores (Edgser Dijkstra, milieu des années 60) Le sémaphore permet : Le contrôle d accès aux ressources partagées De signaler l apparition d un évènement, et De permettre à 2 tâches de synchroniser leurs activités Le sémaphore est une clé, si il est actuellement utilisé, la tâche requérante est suspendue jusqu à la relâche du sémaphore par la tâche qui l utilise. Il a deux types : Binaire (0 ou 1) Compteur (0 à max, max fonction du nombre de bits) Le noyau doit garder la trace des tâches attendant la libération du sémaphore. 11

12 Les sémaphores (suite) Trois opérations : INITIALIZE (ou CREATE), WAIT (ou PEND), SIGNAL (ou POST) La valeur initiale est donnée à l initialisation, la liste des tâches en attente est vide Une tâche veut le sémaphore (WAIT), si il est libre sa valeur passe à 0 et la tâche continue, sinon la tâche entre en liste d attente (avec gestion d un «timeout»). Une tâche libère le sémaphore par un SIGNAL, si il n y a pas de tâche en attente le sémaphore est simplement incrémenté, sinon le sémaphore garde sa valeur et : Tâche de plus forte priorité (ucos) Première tâche en attente (FIFO) Les sémaphores (suite) Demande du sémaphore Libération du sémaphore 12

13 Les sémaphores (Exemple de l imprimante) Les sémaphores (Encapsulation) 13

14 Les sémaphores (type compteur) Cas d un «pool» de buffer qui est limité à 10 Une tâche obtient un buffer du gestionnaire par BufReq(), et le libère par BufRel() Le gestionnaire satisfait aux 10 premières demandes, la prochaine tâche faisant la demande sera suspendue. Cette gestion est là aussi encapsulée dans le gestionnaire. Il ne faut pas forcément utilisé un sémaphore pour un accès à une variable partagée (une interdiction des interruptions peut suffire) 14

15 Le blocage («Deadlock» ) T1 a un accès exclusif à R1, et T2 à R2, si T1 a besoin de R2 et T2 de R1, aucune des tâches ne peut continuer. Le meilleur moyen d éviter le blocage : Acquérir toutes les ressources avant de démarrer Acquérir les ressources dans le même ordre et, Les libérer dans l ordre inverse La majorité des noyaux permettent de définir un «timeout» sur les sémaphores (évite aussi le blocage), il faut dans ce cas un code d erreur pour éviter à la tâche de croire qu elle a obtenu la ressource. Les sémaphores et la synchronisation Une tâche peut se synchroniser avec une ISR (ou une autre tâche) avec un sémaphore. C est dans ce cas un drapeau (et non une clé) qui signale un évènement. Il est initialisé à 0. Ce type de synchronisation s appelle rendezvous unilatéral. Par exemple, une tâche peut lancer une opération d I/O et attendre le sémaphore. Quand l opération d I/O est terminée, une ISR (ou une autre tâche) fait un signal sur le sémaphore (incrémentation), et la tâche peut reprendre. Si le noyau supporte les sémaphores compteur, il accumule les évènements non traités. Plus d une tâche peut être en attente d évènement, le noyau dans ce cas signale : À la tâche de plus haute priorité en attente A la première tâche en attente de l évènement 15

16 Sémaphore et synchronisation (rendez-vous bilatéral) Synchronisation de deux tâches (pas d ISR qui ne peut pas attendre un sémaphore) Les drapeaux d évènements Pour synchroniser une tâche avec des évènements multiples. Une tâche peut être synchronisée quand un des évènements est arrivé (fonction OU, synchronisation disjonctive) ou quand tous sont arrivés (fonction ET, synchronisation conjonctive). 16

17 Drapeaux d évènements (Implantation) Les évènements sont généralement groupés (1 bit par évènement, groupés par 8,16 ou 32). Les tâches ou les ISR peuvent positionner ou reseter un évènement. L évaluation de la tâche qui doit lancée est faite quand un nouvel ensemble d évènements arrive (opération SET). Les noyaux (ucos par ex.) fournissent les fonctions SET, CLEAR et WAIT pour les drapeaux d évènements. Communication inter-tâches Tâche ou ISR, peuvent avoir besoin de communiquer avec une autre tâche (par données globales ou messages). Données globales : nécessitent accès exclusif à la variable. Si une ISR est impliquée, il faut interdire les interruptions. Si deux tâches partagent des données, elles peuvent interdire puis autoriser les interruptions (accès exclusif) ou utiliser un sémaphore (voir précédemment). Une tâche peut uniquement communiquer des informations à une ISR via des variables globales, la tâche n est pas mise au courant du changement par l ISR sauf si l ISR signale à la tâche par un sémaphore ou que la tâche effectue une scrutation périodique de la variable. Pour corriger ce problème on utilise soit une boîte aux lettres de messages (mailbox) soit une queue de message. Boîte aux lettres : Typiquement une variable pointeur, une tâche ou une ISR peut déposer un message (le pointeur) dans la boîte aux lettres. L émetteur et le récepteur doivent s accorder sur ce que pointe le pointeur. Une liste d attente est associée à chaque boite aux lettres (une tâche qui attend un message alors que la boite est vide sera mise sur liste d attente, avec timeout). Le message déposé on y accède par priorité ou FIFO 17

18 Boite aux lettres Le noyau fournit les services suivants : Initialisation d contenu de la boite (avec ou sans message) Dépôt d un message (POST) Attente d un message (PEND) Réception d un message de la boite (ACCEPT) Une boite aux lettres peut simuler un sémaphore, un message présent indique que la ressource est libre, absent que la ressource est utilisée. Ticks d attente (Timeout) Queue de message Envoi d un ou plusieurs messages (tableau de boites aux lettres). En FIFO (mais ucos permet aussi en LIFO). Avec fonctionnement équivalent aux boites aux lettres. Initialisation POST PEND ACCEPT La tâche attendra indéfiniment 18

19 Les interruptions (Rappels) L interruption est l unité de base de communication entre le matériel et l OS C est un mécanisme matériel qui informe le CPU d un évènement asynchrone, pour traitement «immédiat» Pas besoin de «polling» Une routine utilisateur (ISR) peut être installée pour traiter l interruption Les interruptions (Rappels) 19

20 Les interruptions (Rappels) Le RTOS utilise une table d interruptions où chaque entrée correspond à un gestionnaire d interruptions différent. La majorité des CPU supportent les interruptions imbriquées Le RTOS désactive les interruptions avant une section de code critique et les réactive à la fin de la section. Si une IT survient pendant une désactivation, sa période d attente représente une spécification importante pour le RTOS (latence des interruptions) Les Interruptions Latence des interruptions Plus longtemps les interruptions sont interdites, plus forte est la latence des interruptions, la latence est donnée par l expression suivante : Temps maximum pendant d interdiction des interruptions + Temps nécessaire pour exécuter la première instruction de l ISR Réponse des interruptions Temps écoulé entre la réception de la demande d IT et le début de l ISR Pour un système classique, le temps de réponse est donné par : Latence d interruption + Temps de sauvegarde du contexte Pour un noyau non préemptif, il est donné par la même formule Pour un noyau préemptif, une fonction spéciale doit être appelée pour signifier qu une ISR démarre (trace des interruptions). Pour ucos cette fonction est OSIntEnter(), le temps de réponse est alors donné par : Temps de latence + Temps de sauvegarde du contexte + Temps d exécution de la fonction spéciale Il faut tenir compte du cas le + défavorable (si le temps de réponse est de 50 µs dans 99% des cas et 200 dans le pire, alors il faut prendre en compte 200). 20

21 Interruptions (temps de récupération) C est le temps nécessaire pour le processeur pour revenir au programme interrompu (ou à la tâche de plus haute priorité pour un noyau préemptif) Pour un système classique : Temps de restauration du contexte CPU + temps d exécution de l instruction de retour d interruption Pour un système non préemptif, c est la même chose Pour un système préemptif, une fonction est appelée à la fin de l interruption (OSIntExit() pour µcos) et elle permet de voir si une tâche de plus forte priorité est prête. Si c est le cas cette tâche est lancée, dans ce cas la tâche interrompue est relancée quand elle devient la tâche de plus forte priorité. Temps de détermination de la tâche prioritaire + Temps de restauration du contexte CPU de cette tâche + Temps d exécution de l instruction de retour d interruption Les interruptions (temps pour un système classique) 21

22 Les interruptions (temps pour un noyau non préemptif) Les interruptions (temps pour un noyau préemptif) A : Pas de tâche de priorité supérieure B : Tâche avec priorité + grande que celle interrompue 22

23 Les interruptions non masquables Rien ne limite a priori le temps de traitement d une interruption. Quelquefois une interruption doit être servie le plus vite possible, et ne peut pas attendre la latence imposée par le noyau. Il faut utiliser dans ce cas la NMI. Elle doit être réservée à des cas limites (par exemple sauvegarde en baisse de tension). Les temps de latence, de réponse et de restauration sont minimaux. Temps de latence d une NMI = Temps d exécution de la plus longue instruction + Temps de démarrage de la routine NMI Temps de réponse = Temps de latence + Temps de sauvegarde du contexte Temps de restauration = Temps de restauration du contexte CPU + Temps d exécution de l instruction de retour d interruption Généralement le contexte sauvegardé est minimal. Les services du noyau ne sont pas utilisables en NMI, pour passer des paramètres il faut utiliser des variables globales avec instruction unique de lecture ou d écriture. On peut aussi utiliser un circuit externe pour interdire les interruptions non masquables (port d I/O avec fonction logique «gatée» par la NMI). NMI, exemple de passage de message Supposons qu une NMI doit signaler à une tâche quand elle s est exécutée 40 fois. Pour une NMI toutes les 150 µs, cela fait un signal toutes les 6 ms. On ne peut pas utiliser le noyau mais on peut passer par le schéma ci-dessous. La NMI génère une interruption «hardware» ISR via un port de sortie NMI ayant la plus haute priorité (et pas de chaînage des IT en NMI), l ISR n est pas reconnue avant la fin de la NMI. A la fin de la NMI, l ISR va remettre à zéro l interruption «hardware» et poster un message dans un sémaphore. Tant que la tâche répond au sémaphore dans les 6 ms, l échéance est respectée. 23

24 Traitement des interruptions Une ISR débute par la sauvegarde des registres du CPU Ensuite l ISR définie par l utilisateur est exécutée. Après le retour de l ISR, les registres CPU sont restaurés Opérations typiques d une ISR : Lire et écrire la mémoire affectée aux registres I/O Communiquer des informations à une tâche Écriture en mémoire partagée Ecriture de messages (queue) Donner un sémaphore binaire La tâche de retour d ISR est la + prioritaire Traitement des interruptions (la pile) La majorité des architectures disposent d une pile spéciale dédiée aux interruptions La pile IT est assignée lors du démarrage du système La pile doit être dimensionnée pour le cas d imbrication le plus critique Les architectures x86, R6000, CPU-32, MC68060, MC68000 et MC68010 traitent les interruptions dans la pile des tâches La pile de chaque tâche doit avoir assez d espace supplémentaire pour traiter le cas d imbrication des interruptions le plus critique 24

25 Traitement des interruptions (Problèmes de conception) Généralement les interruptions sont écrites en assembleur : Elles peuvent faire des appels «C» Pour un système RT, le temps d attente d une IT doit être le plus court possible afin d assurer un temps de réponse du système minimal Une ISR ne peut pas : Se bloquer, être en attente d un sémaphore ou de recevoir des messages, dans une queue de messages Appeler des routines d allocation dynamique de la mémoire qui utilisent des sémaphores (malloc()) Appeler des routines I/O de système (par ex. printf sauf en debug) Traitement des interruptions (Restrictions des ISR) Une ISR doit être maintenue la plus courte possible : Les IT de niveau inférieur sont en attente Les tâches sont en attente Le déboguage est difficile Il faut éviter les opérations en virgule flottante dans les ISR Elles sont lentes (voire très lentes) et amènent un «stack» relativement lourd Il faut sauvegarder les regsitres liés au FPU 25

26 Interruptions dans µ COS Pseudo-code de l ISR MonISR : Sauvegarder si nécessaire les registres du CPU Appeler OSIntEnter() Exécuter le code de l ISR utilisateur Appeler OSIntExit() Restaurer dans l ordre les registres précédemment sauvegardés OSIntEnter() : Désactive les interruptions (accès exclusif à la variable globale OSIntNesting) Incrémente la variable globale OSIntNesting qui mémorise les imbrications Réactive les interruptions OSIntExit() : Décrémente la variable globale OSIntNesting Si OSIntNesting arrive à 0, détermine la tâche prête à partir qui va prendre le contrôle du CPU Les interruptions (le «Clock tick») C est une interruption périodique. C est le battement de cœur du système. Il est généralement compris entre 10 et 200 ms. Tous les noyaux permettent aux tâches d être retardées d un ou plusieurs «clock ticks». Les trois figures suivantes montrent une tâche qui demande un délai de 1 tick. Les rectangles noires indiquent le temps d exécution pour chaque opération exécutée. Le temps pour chacune des opérations est censée reflété un traitement typique (if/then/else/switch et?), le temps de l ISR (tick ISR, alloué à la gestion des ticks par le noyau) a été exagéré pour montrer qu il est lui aussi sujet aux variations de temps d exécution. Cas 1 : Toutes les tâches de priorité plus haute s exécutent ainsi que l ISR avant la tâche. On constate un flottement dans l exécution de la tâche. 26

27 Les interruptions (le «clock tick») Cas 2 où l ISR et les autres tâches durent un peu moins d un tick, cela fat que la tâche qui vient de se décaler d un tick s exécute immédiatement. Doit se gérer en mettant +1 au délai demandé sous réserve que les autres temps soient constants. Les interruptions (le «clock tick») Cas 3 : Les autres tâches et l ISR s étendent au-delà d un tick, dans ce cas la tâche s exécute un tick plus tard et manque son échéance. Cela peut être acceptable mais dans la majorité des cas cela ne l est pas. 27

28 Solutions aux problèmes de «ticks» Augmenter la vitesse d horloge du processeur Augmenter le temps entre chaque «tick» Modifier les priorités Ne pas utiliser la virgule flottante (virgule fixe pour les calculs) Prendre un compilateur avec optimisation Prendre un microprocesseur plus rapide dans la même famille. Spécifications mémoire Pour un système classique, les besoins en mémoire dépendent du code de l application. Pour un noyau multi-tâches c est un petit peu différent. Pour commencer un noyau nécessite de la ROM (extra code). Cette taille dépend de beaucoup de facteurs (entre 1 et 100 Koctets). Pour un noyau sur processeur 8-bits avec ordonnancement, changement de contexte, gestion des sémaphores, des délais, et des «timeouts», cela nécessite environ 1Ko à 3Ko de code. La totalité du code est donnée par la formule suivante : Code de l application + Code du noyau Chaque tâche étant indépendante, elle doit avoir sa propre zone de stockage (RAM). Cela doit être estimé le + précisément possible pour chaque tâche (pas forcément évident d ailleurs : variables, interruptions en chaîne, etc..). Une pile séparée peut éventuellement être utilisée pour gérer tous les codes d interruption ce qui allège l espace alloué à chaque tâche. Le noyau a besoin lui aussi de RAM (données, variables, structures, queues, etc..). La taille de la RAM est donnée (pour un noyau sans gestion séparée des interruptions) : Espace pour le code de l application + espace pour le noyau + SOMME (pile des tâches + MAX (interruptions en chaîne)) Si le noyau supporte une pile séparée pour les interruptions : Espace pour le code de l application + espace pour le noyau + SOMME (pile des tâches)+ MAX (interruptions en chaîne) 28

29 Avantages et inconvénients Un noya temps réel (RTS) permet une conception rapide et efficace et qui peut s étendre. Des fonctions peuvent être rajoutées sans changement majeur au logiciel. Par exemple, si l on ne rajoute que des fonctions de très faible priorité, cela aura peu d incidence sur la réponse du système aux tâches de priorité élevée. Le code est séparée en tâches et les ressources sont gérées de manière uniforme (sémaphores, queues, boites aux lettres, etc..). Il faut bien entendu supporter un coût lié (plus de ROM/RAM, coût du noyau, de 2 à 4% en plus sur la charge du CPU. Il y a à l heure actuelle plus de 150 fournisseurs de RTOS. Les coûts varient de 70 USD à plus de USD. Il y a aussi des politiques de «royalties» par système vendu (entre 5 et 500 USD). Il faut aussi prendre en compte le coût de maintenance, qui peut aller jusqu à 15% du coût de développement par an. Il existe aussi des RTOS gratuits (dont un RT-linux). Le tableau de la page suivante résume les différentes caractéristiques des systèmes temps-réel (classique, non préemptif, préemptif). 29

30 La structure du noyau µcos Accès aux sections critiques Qu est ce qu une tâche? Comment µcos gère-t-il les tâches? Comment les tâches sont elles ordonnancées? Comment µcos détermine-t-il le %CPU alloué à une application? Comment écrire les ISR? Comment µcos gère-t-il les ticks? Comment initialiser µcos et lancer le multi-tâches? Constantes de configuration dans le fichier OS_CFG.H Ce chapitre décrit aussi les services d applications suivants : On peut noter que OSSchedLock() et OSSchedUnlock() peuvent être inhibés en mettant à 0 le bit OS-SCHED_LOCK_EN du fichier OS_CFG.H. Tous les autres services sont partie intégrantes du système d exploitation. 30

31 Structure des fichiers de µcos Plus d une centaine de processeurs (du 8051 au 80x86 e passant par la famille ARM), 1 émulateur 80x86 sur PC. Les sections critiques, OS_ENTER_CRITICAL() et OS_EXIT_CRITICAL() Les processeurs disposent d instructions d interdiction des interruptions. Soit le compilateur C les inclut directement, ou au moyen d instructions en assembleur mélangées au code C, ou par des extensions de langage. Pour cacher la méthode d implantation, microcos définit deux macros, comme elles dépendent du processeur, elles sont dans la partie spécifique au processeur (fichier OS_CPU.H). Elles sont toujours utilisées ensemble, comme montré sur l exemple de code suivant :. OS_ENTER_CRITICAL(); /* section de code critique */; OS-EXIT_CRITICAL();. Vous pouvez aussi les utiliser pour écrire des portions de code critique (mais attention par exemple à OSTimeDly() qui bloquera le processeur si les interruptions sont inhibées quand on l appelle). Ce problème arrive quand on suspend la tâche jusqu à expiration du temps, mais comme les interruptions sont inhibées, on ne sert pas le tick, mais aussi tous les appels PEND sont sujets à ce problème. Il faut don éviter d appeler un service OS avec les interruptions inhibées. Il y a trois manières différentes d implémenter les sections critiques (définition par la constante OS_CRITIQUAL_METHOD du OS_CPU.H) 31

32 OS_CRITICAL_METHOD == 1 La manière la plus simple est d invoquer les instructions du processeur pour interdire et autoriser les interruptions. Cependant si on appelle une fonction microcos avec les interruptions interdites, au retour de la fonction microcos les interruptions seront autorisées. Ce qui n est pas forcément ce qui aurait été souhaité. OS_CRITICAL_METHOD == 2 La deuxième manière est de sauvegarder l état d interdiction des interruptions dans la pile puis d interdire les interruptions (OS_ENTER_CRITICAL()). OS_EXIT_CRITICAL() est dans ce cas implémenté en restaurant l état d interruption à partir de la pile. Dans ce cas l état est préservé même après l appel d une fonction (service) de microcos. Attention au fait que l on augmente la latence de l interruption. Le pseudo code est dans ce cas le suivant (assemblage «in-line» possible): #define OS_ENTER_CRITICAL()\ Asm(«PUSH PSW»)\ Asm («DI») #define OS_EXIT_CRITICAL()\ Asm(«POP PSW») Attention à la gestion des modifications du «stack pointer» par le compilateur. 32

33 OS_CRITICAL_METHOD == 3 Certains compilateurs permettent des extensions pour l obtention du registre d état du processeur (PSW) et donc de le sauvegarder dans une variable C locale. void Some_uCOS_Service(arguments) {OS_CPU_SR cpu_sr; cpu_sr=get_processor(psw); disable_interrupts(); /* Section critique*/ set_processor_psw(cpu_sr); OS_CPU_SR est un type de donnée déclaré dans OS_CPU.H, get_processor_psw() doit être fournie par le compilateur, ainsi que disable_interrupts() et set_processor_psw(). Comme on ne connaît pas les fonctions du compilateur, les macros encapsulent les fonctionnalités : #define OS_ENTER_CRITICAL()\ cpu_sr=get_processor_psw()\ Disable_interrupts(); #define OS_EXIT_CRITICAL() set_processor_psw(cpu_sr); Les tâches Une tâche est une boucle infinie ( on peut aussi utiliser un while(1). Un paramètre est passée la première fois qu une tâche s exécute. C est un pointeur sur un void, ce qui permet de passer à peu près n importe quoi (adresse de variable, structure, d une autre fonction;, etc..). Par exemple si l on a 4 ports série, on utilise la même tâche pour chacun d eux mais le pointeur d entrée définit la structure des paramètres du port série (vitesse,adresse I/O, vecteur d interruption, etc..). Une tâche peut se «détruire» (du point de vue de l OS, pas du code qui reste en mémoire) par OSTaskDel(). 33

34 Les tâches MicroCOS peut gérer jusqu à 64 tâches (2 tâches sont réservées au système). Chaque tâche doit se voir assigner une priorité unique. En fait on peut avoir 56 tâches effectivement si l on tient compte des restrictions liées à l OS, qui se réserve les 4 niveaux les plus bas et les 4 niveaux les plus hauts. Le niveau de priorité va de 0 à OS_LOWEST_PRIO-2 compris. Plus le nombre associé à la priorité est faible, plus la priorité est forte. MicroCOS exécute toujours la tâche de plus forte priorité prête. Le niveau de priorité sert aussi d identificateur de tâche (pour quelques services de l OS comme OSTaskChangePrio() et OSTaskDel()). Pour qu une tâche soit gérée par l OS, il faut la créer en passant des paramètres à une des deux fonctions OSTaskCreate() ou OSTaskCreateExt() qui est une version étendue de la première avec des fonctionnalités supplémentaires (voir dans la gestion des tâches). Il y a toujours une tâche présente, la tâche IDLE, si aucune tâche ne s exécute. Les états d une tâche 34

35 Les appels (tâche) OSStart() lance le démarrage du multi-tâches, il doit être appelé une seule fois au démarrage et démarrera la tâche de plus haute priorité créée à l initialisation. OSTimeDly() ou OSTimeDlyHMSM() retarde la tâche pendant un certain temps (elle devient WAITING jusqu à ce que ce temps expire). La tâche retardée est remise prête à l exécution par OSTimeTick() (Fonction interne qui n a pas à être appelée). OSFlagPend(), OSSemPend(), OSMutexPend(), OSMboxPend() ou OSQPend() mettent la tâche en attente d un évènement (WAITING), la tâche de plus haute priorité suivante passe en exécution. La tâche redevient READY quand l évènement (par une autre tâche ou une ISR) arrive ou qu un «timeout» survient. OS_TaskIdle() est la tâche exécutée par l OS quand toutes les autres tâches sont en attente (délai ou évènement). Le Bloc de contrôle de tâche (OS_TCB) Une tâche créée se voit affectée un bloc de contrôle. C est une structure de donnée qui maintient l état de la tâche en cas de préemption. Le TCB permet aussi de récupérer l état de la tâche quand elle redevient active. C est une zone en RAM dont la structure est donnée sur le transparent suivant. Le TCB contient : La priorité de la tâche Son état Un pointeur vers la pile D autres données concernant la tâche (voir ci-après) Le TCB occupe 45 octets pour une architecture 80x86 (large model) 35

36 Structure TCB Version 251 Quelques changements pour la version 252 Spécifications dans le TCB 36

37 Spécifications TCB (suite) Spécifications TCB (suite) 37

38 TCB (suite) Le nombre maximum de tâches est spécifié par OS_MAX_TASKS dans OS_CFG.H. Il détermine aussi le ombre de TCBs alloués pour l application. On peut réduire la RAM allouée aux TCB en fixant le nombre de tâches effectivement aux tâches de l application. L OS alloue un extra TCB pour la tâche IDLE et un autre pour la tâche statistique (si OS_TASK_STAT est à 1). A l initialisation tous les TCB sont liés selon une liste comme indiqué sur la figure ci-dessous. Quand une tâche est créée, l OS_TCB est prend la valeur de OSTCBFreeList qui pointe ensuite sur la liste suivante. Initialisation du TCB La fonction OS_TCB_Init() initialise le TCB quand une tâche est créée (par OSTaskCreate() ou OSTaskCreateExt()). Cette fonction reçoit 7 paramètres : T prio est la priorité de la tâche ptos est le pointeur sur le sommet de la pile (après construction de la pile par OSTaskStkInit() ), il est stocké dans le champ.ostcbstkptr pbos est le pointeur sur le bas de la pile (.OSTCBStkBottom) id est l identificateur de la tâche (.OSTCBId) stk_size est la taille totale de la pile (.OSTCBStkSize) pext est la valeur à mettre dans.ostcbextptr opt, options est stocké dans.ostcbopt 38

39 OSTCBInit() #if OS_CRITICAL_METHOD==3 OS_CPU_SR cpu_sr; #endif >0 >0 #if OS_EVENT_EN >0 ptcb -> OS_TCBEventPtr=(OS_EVENT *)0; #endif #if OS_VERSION >204 OSTCBInitHook(); #endif; OSTaskCreateHook(); 39

40 La liste «Ready» Chaque tâche a une priorité entre 0 et OS_LOWEST_PRIO. OS_LOWEST_PRIO est affecté à la tâche IDLE. OS_MAX_TASKS et OS_LOWETS_PRIO ne sont pas reliés, il peut y avoir seulement 10 tâches avec possibilités de 32 priorités (si OS_LOWEST_PRIO vaut 32). Chaque tâche prête à s exécuter est placé dans une liste constituée de 2 variables (OSRDyGrp et OSRdyTbl[]). Les priorités sont groupées par 8 dans OSRDyGrp, chaque bit dans un groupe indique si une des tâches du groupe est prête. Quand une tâche est prête elle positionne son bit associé dans la table OSRdyTbl[]. Pour une tâche de priorité prio,son groupe est identifié par un décalage de 3 bits de prio, son numéro dans le groupe par un masque des 3 bits de poids faible. Pour déterminer quelle tâche doit être exécutée, l Ordonnanceur détermine quel est le bit positionné dans la table OSRdyTbl[]. 40

41 Quelle tâche à exécuter? Tâche statistique de l OS La tâche OS_TaskStat() est créée si OS_TASK_STAT_EN est à 1. Elle s exécute toutes les seconde et calcule le % d usage du CPU. Cette valeur est placée dans OSCPUUsage (8 bits, résolution 1%). Pour l utiliser il faut appeler OSStatInit() à partir de de la première tâche créée à l initialisation. Il y a seulement 3 tâches au démarrage dans ce cas (TaskStart(), OS_TaskIdle() priorité la + faible et OS_TaskStat() priorité la + faible -1 par construction) 41

42 Initialisation de la tâche statistique Les interruptions Les ISR doivent être écrites en langage assembleur. Cependant si le compilateur C supporte l écriture «on-line» de l assembleur (directive asm par exemple) alors on peut écrire directement le code de l ISR dans un fichier source. Le pseudo-code d une ISR est donné cidessous : (Doit réinitialiser la cause) Le retour est plutôt généralement fait normalement plutôt que par le RTI (RTS, le C ne connaît pas le RTI), pour éviter les problèmes de pile (Cas des fonctions «naked» pour certains compilateurs). 42

43 Service des interruptions (2 cas) Pas de changement de priorité Signal vers une tâche Une tâche est devenue + prioritaire Interrupt Recovery Temps de réponse de la tâche de Haute Priorité Les interruptions On arrive là à la limite du logiciel et on devient très dépendant du matériel. C est un point à traiter avec particulièrement d attention quant à l exécution par l OS car le fonctionnement diffère d un processeur à l autre ( Pile différente pour les IT, chaînage possible ou pas, choix des vecteurs, etc ) 43

44 Les «Clock tick» microcos requiert une source périodique pour prendre en compte les délais et les «timeout» (entre 10 et 100 Hz). Soit on dédie un «timer» à cette opération, soit on utilise une interruption générée par une alimentation (50/60Hz). Les interruptions de «tick» doivent être autorisées après le démarrage du multi-tâches (i.e. après OSStart() et pas après OSInit()). Le service de tick est démarré par l appel de OSTimeTick à partir d une ISR (gérée comme une ISR normale). Le pseudo-code de l ISR de tick est donné ci-après (fournie avec le port si il existe). (Faire un raz de l IT si nécessaire) Gestion des tâches Une tâche doit avoir l une des deux structures suivantes : OS_PRIO_SELF est le niveau de priorité de la tâche elle-même (SELF) et donc son indicateur 44

45 Création de la tâche OSTaskCreate(void *task, void *pdata,os_stk *ptos, INT8U prio) task est le pointeur sur le code de la tâche (nom de la fonction) pdata est un pointeur sur un paramètre à passer à la tâche ptos est un pointeur sur le sommet de la pile allouée à la tâche (voir OS_STK) prio est la priorité donnée à la tâche OSTaskCreateExt(void *task, void *pdata,os_stk *ptos, INT8U prio, INT16U id, OS_STK *pbos, INT32U STK_SIZE, void *pext, INT16U opt) Idem que ci-dessus pour les 4 premiers paramètres + id est l identificateur de tâche (pas encore utilisé) pbos : pointeur vers la base de la pile affectée à la tâche STK_SIZE : taille de la pile à affecter (en octets) pext : pointeur vers la zone de mémoire contenant les extensions utilisateurs du TCB de la tâche opt : options de la tâche Pile de la tâche Chaque tâche doit avoir un espace réservé dans la mémoire. Cet espace doit être déclaré de type OS_STK (emplacements mémoire contigus). L allocation peut être statique (à la compilation) ou dynamique (à l exécution). Déclaration statique Static OS_STK MyTaskStack[stack_size], ou OS_STK MyTaskStack[stack_size] Déclaration dynamique R Peut utiliser la fonction C malloc(), mais attention à la fragmentation 45

46 Pile (fragmentation) L exemple ci-dessous montre un espace de 3Ko, si 3 tâches s alloue chacune 1Ko (A,B et C) et que l on libère ensuite A et C (free()) après destruction des tâches, on a bien 2Ko de libre mais pas contigus et donc une demande de création avec 2Ko n est pas possible. Pile (paramètre du pointeur sur les données) microcos supporte les processeurs avec pile fonctionnant du haut vers le bas (1) et du bas vers le haut (0) (OS_STK_GROWTH dans OS_CPU.H). Quand il vaut 0 il faut passer l adresse de l emplacement mémoire le plus bas. Quand il vaut 1 il faut passer l adresse de l emplacement mémoire le plus haut. Ceci affecte la portabilité, on peut éventuellement passer cela en macro #if sur OS_STK_GROWTH pour supporter les 2. OS_STK_GROWTH=0 OS_STK_GROWTH=1 (Intel) 46

47 Suspension d une tâche - OSTaskSuspend() Reprise d une tâche OSTaskResume() OSTaskSuspend() suspend la tâche effectivement (numéro donné en paramètre, OS_PRIO_SELF pour la tâche ellemême). Si la tâche suspendue attend aussi un délai, il faudra que la suspension soit enlevée et le délai expiré pour que la tâche reparte. OSTaskResume() fait redémarrer la tâche Suppression d une tâche La suppression d une tâche contient deux étapes : Effacer la tâche dans la queue des tâches et dans toutes les queues d attente (plus de lancement par l Ordonnanceur) Désaffectation du TCB et de la pile de la tâche (libération d espace mémoire) Supprimer une tâche signifie la rendre inactive («Dormant») Le code que la tâche a exécuté n est pas supprimé, l Ordonnanceur ne la planifie plus en exécution La routine µcos de suppression d une tâche de priorité prio est : OSTaskDel(INT8U prio) La routine µcos appelée par une tâche pour demander à une autre tâche de se supprimer elle-même est OSTaskDelReq(INT8U prio), elle rend la suppression plus sécuritaire Il y a des cas où la suppression d une tâche peut être catastrophique (certains OS fournissent des sécurités pour empêcher la destruction d une tâche quand elle est dans une zone critique, tasksafe() dans VxWOrks par ex.) 47

48 Suppression d une tâche Il est en général très difficile de savoir si une destruction de tâche est sécuritaire ou pas. Si on supprime une tâche qui a un accès exclusif à une ressource partagée, celle-ci ne sera jamais relâchée. Par conséquent une tâche ne doit pas effacer n imorte quelle autre tâche si ce n est ellemême. Les seules ressources automatiquement récupérées par le RTOS sont le TCB et la pile de la tâche. Les tâches sont responsables de leur propre nettoyage : Libérer la mémoire Libérer les ressources partagées Fermer les fichiers ouverts Retarder une tâche Un RTOS permet qu une tâche soit retardée d un nombre spécifique de «ticks» d horloge système C est une opération utile pour une fonction périodique ou pour la surveillance cyclique d une ressource matérielle. Suspension : OSTaskSuspend(INT8U prio) Reprise : OSTaskResume(INT8 prio) Retarder une tâche d un nombre de ticks : OSTimeDly(ticks) Retarder une tâche pour une durée de Heures: Minutes; Secondes: Millisecondes OSTimeDlyHMSM(H,M,S,M) 48

49 Le Port d émulation sur PC pour MicroCOS Ce port permet d émuler le fonctionnement du RTOS sur une fenêtre de commande windows. Port WIN32 (Linux - Win32) Threads windows (100 ticks/s) Timer multimédia du PC L environnement de travail (Visual C) Visual C donne l environnement de développement INCLUDE LIB VSINSTALLDIR PATH (donne les chemins d accès aux exécutables, notamment vsvars32.bat) L ensemble SDK adapté à l OS (XP, 2000, etc..) est nécessaire pour la gestion des fonctions Windows, ce qui permet la gestion des fonctions classiques (printf, etc.) 49

50 L environnement de travail (Utilisateur) Le répertoire utilisateur (généralement ucos_v252\software\ucos- II\Work\User) contient les fichiers includes.h (qui doit être indiqué dans le fichier à compiler) et oscfg.h de l environnement ucos ainsi qu un «makefile» permettant la liaison avec les différents répertoires de l environnement ucos. Exemple de makefile (fichier pdf) La commande nmake permet la compilation et la création de l exécutable. Le répertoire général de ucos (par exemple ucos_v252\software\ucos-ii\source) Le répertoire du port cible (par exemple ucos_v252\software\ucos-ii\ports\80x86\win32\vc\src) Environnement de travail (suite) Répertoire de travail Répertoire du port Répertoire des sources ucos-ii Includes.h OS_cfg.h Makefile Test.C Oscpu.h Os_cpu_c.c pc.c pc.h OS_CORE.C OS_FLAG.C OS_MBOX.C OS_MEM.C OS_MUTEX.C OS_Q.C OS_SEM.C OS_TASK.C OS_TIME.C ucos_ii.c ucos_ii.h 50

51 Un exemple avec la gestion de deux tâches But : Créer deux tâches concurrentes (Tache 1 et Tache 2) La pile associée à chaque tâche fera 1024 octets L organigramme général est le suivant (Fichier PDF) : Déclarations générales de l environnement (Include, variables, piles statiques, fonctions) Main() Initialisation OSInit() Création de la tâche initiale (1) OSTaskCreate() Démarrage du multi-tâches (OSStart() Tache 1() Message initial Lancement de la tâche statistique OSStatInit() Création de la tâche 2 Délai de remise en service OSDly() Tache 2() Message Délai de remise en service OSDly() Arret général (kbhit()) Fenêtre de visualisation de l exemple 51

52 Port WIN32 Gestion des interruptions Initialisation de l ISR : PC_IntVectSet(n_IT, Votre_ISR) n_it : numéro d interruption (0 à 7) Votre_ISR : Fonction d interruption Le répertoire utils (du port WIN32 80x86) contient un générateur d IRQ (irqgenerator.c et irqgenerator.exe) qui peut être utilisé en fonction ou en exécutable (sous réserve que ucos soit démarré). Dans ce cas la commande : Prompt_DOS:> irqgenerator 4 (génère une interruption de niveau 4 qui est émulée au niveau de ucos). ucos-ii Gestion des sémaphores OS_EVENT *Nom_semaphore; Nom_semaphore=OSSemCreate(N); (N=valeur initiale, 0 pour bloquage initial, 1 normal, N pour type compteur) OSSemAccept(Nom_semaphore); Obtention du sémaphore (IRQ avant POST) OSSemPost(Nom_semaphore); Libération du sémaphore OSSemPend(Nom_semaphore): Attente pour une tâche (sauf IRQ) du sémaphore 52

53 La gestion des «mailbox» La gestion initiale des queues (et des mailboxes) dans ucso-ii présentait un inconvénient quant au passage des valeurs (par pointeur plutôt que par valeur). Cet inconvénient a été corrigé (par J. Chevalier Ecole Polytechnique de Montréal) et nécessite quelques modifications de fichier (voir la note à ce sujet dans les TP). Procédures (modifiées par rapport ucos original) OSMboxCreate(void *start, INT32U dsize) Start = adresse pour le stockage du message (unique) OSMboxPost (OS_EVENT *pevent, void *start) pevent = pointeur sur la mbox créée, start=adresse de la donnée envoyée, la valeur de retour est un code d erreur INT8U OSMboxPend(OS_EVENT *pevent, void *start, INT16U timeout) pevent = pointeur sur la mbox créée, start=adresse de la donnée à recevoir, la valeur de retour est un code d erreur INT8U, timeout permet de sortir du pend selon un timeout (si 0 pas de timeout). 53

54 Mailbox (exemples) Déclaration OS_EVENT *Mbox; // Boite aux lettres (1 seule lettre) for Tasks #4 and #6 msg* Mbx; // msg est la structure à passer, type de base ou struct OSInit();.. Mbox = OSMboxCreate(&Mbx,sizeof(msg));. OSStart(); err=osmboxpend(mbox, &in, 0); // (msg in;) err=osmboxpost(mbox, &dat); // la déclaration de variable est (msg dat;) La gestion des queues (FIFO LIFO) La gestion initiale des queues (et des mailboxes) dans ucso-ii présentait un inconvénient quant au passage des valeurs (par pointeur plutôt que par valeur). Cet inconvénient a été corrigé (par J. Chevalier Ecole Polytechnique de Montréal) et nécessite quelques modifications de fichier (voir la note à ce sujet dans les TP). 54

55 Structure du bloc de contrôle OS_EVENT *MsgQueue; /* Bloc de conrole*/ void *MsgQueueTbl[256]; // Table de données MsgQueue = OSQCreate(&MsgQueueTbl[0], 256,sizeof(donnees)) typedef struct { unsigned short value; unsigned char device; }msg; Msg donnees; Char donnees; Le buffer tournant Messe=«Calcul d une valeur»; err=osqpost(msgqueue, (void *)&messe); //Dépose d une valeur In: type de valeur défini pour la FIFO; err = OSQPend(MsgQueue, (void *)&in, 0); // Récupération de la valeur pointée par (OSQOut)// 55

Exécutif temps réel Pierre-Yves Duval (cppm)

Exécutif temps réel Pierre-Yves Duval (cppm) Exécutif temps réel Pierre-Yves Duval (cppm) Ecole d informatique temps réel - La Londes les Maures 7-11 Octobre 2002 Plan Exécutif Tâches Evénements et synchronisation Partage de ressources Communications

Plus en détail

REALISATION d'un. ORDONNANCEUR à ECHEANCES

REALISATION d'un. ORDONNANCEUR à ECHEANCES REALISATION d'un ORDONNANCEUR à ECHEANCES I- PRÉSENTATION... 3 II. DESCRIPTION DU NOYAU ORIGINEL... 4 II.1- ARCHITECTURE... 4 II.2 - SERVICES... 4 III. IMPLÉMENTATION DE L'ORDONNANCEUR À ÉCHÉANCES... 6

Plus en détail

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

INTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores INTRODUCTION AUX SYSTEMES D EXPLOITATION TD2 Exclusion mutuelle / Sémaphores Exclusion mutuelle / Sémaphores - 0.1 - S O M M A I R E 1. GENERALITES SUR LES SEMAPHORES... 1 1.1. PRESENTATION... 1 1.2. UN

Plus en détail

Cours de Systèmes d Exploitation

Cours de Systèmes d Exploitation Licence d informatique Synchronisation et Communication inter-processus Hafid Bourzoufi Université de Valenciennes - ISTV Introduction Les processus concurrents s exécutant dans le système d exploitation

Plus en détail

Cours A7 : Temps Réel

Cours A7 : Temps Réel Cours A7 : Temps Réel Pierre.Paradinas / @ / cnam.fr Cnam/Cedric Systèmes Enfouis et Embarqués (SEE) Motivations Du jour : les mécanismes multitâches, la gestion des priorités, l ordonnancement, la gestion

Plus en détail

Temps Réel. Jérôme Pouiller <j.pouiller@sysmic.org> Septembre 2011

Temps Réel. Jérôme Pouiller <j.pouiller@sysmic.org> Septembre 2011 Temps Réel Jérôme Pouiller Septembre 2011 Sommaire Problèmatique Le monotâche Le multitâches L ordonnanement Le partage de ressources Problèmatiques des OS temps réels J. Pouiller

Plus en détail

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

1 Mesure de la performance d un système temps réel : la gigue TP TR ENSPS et MSTER 1 Travaux Pratiques Systèmes temps réel et embarqués ENSPS ISV et Master TP1 - Ordonnancement et communication inter-processus (IPC) Environnement de travail Un ordinateur dual-core

Plus en détail

DAns un système multi-utilisateurs à temps partagé, plusieurs processus

DAns un système multi-utilisateurs à temps partagé, plusieurs processus Chapitre 8 Ordonnancement des processus Dns un système multi-utilisateurs à temps partagé, plusieurs processus peuvent être présents en mémoire centrale en attente d exécution. Si plusieurs processus sont

Plus en détail

Ordinateurs, Structure et Applications

Ordinateurs, Structure et Applications Ordinateurs, Structure et Applications Cours 10, Les interruptions Etienne Tremblay Université Laval, Hiver 2012 Cours 10, p.1 Les interruptions du 8086 Une interruption interrompt l exécution séquentielle

Plus en détail

UE Programmation Impérative Licence 2ème Année 2014 2015

UE Programmation Impérative Licence 2ème Année 2014 2015 UE Programmation Impérative Licence 2 ème Année 2014 2015 Informations pratiques Équipe Pédagogique Florence Cloppet Neilze Dorta Nicolas Loménie prenom.nom@mi.parisdescartes.fr 2 Programmation Impérative

Plus en détail

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

Processus! programme. DIMA, Systèmes Centralisés (Ph. Mauran)  Processus = suite d'actions = suite d'états obtenus = trace Processus 1) Contexte 2) Modèles de Notion de Points de vue Modèle fourni par le SX Opérations sur les 3) Gestion des Représentation des Opérations 4) Ordonnancement des Niveaux d ordonnancement Ordonnancement

Plus en détail

Implémentation Matérielle des Services d un RTOS sur Circuit Reconfigurable

Implémentation Matérielle des Services d un RTOS sur Circuit Reconfigurable Implémentation Matérielle des Services d un RTOS sur Circuit Reconfigurable Pierre Olivier*, Jalil Boukhobza*, Jean-Philippe Babau +, Damien Picard +, Stéphane Rubini + *Lab-STICC, + LISyC, Université

Plus en détail

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance du C dans les laboratoires BELL par

Plus en détail

IFT2245 - Systèmes d exploitation - TP n 1-20%

IFT2245 - Systèmes d exploitation - TP n 1-20% IFT2245 - Systèmes d exploitation - TP n 1-20% DIRO - Université de Montréal Nicolas Rous et Dorian Gomez Disponible : 14/02/2013 - Remise : 28/03/2013 au début de la démo LISEZ TOUT LE DOCUMENT AVANT

Plus en détail

Windows Internet Name Service (WINS)

Windows Internet Name Service (WINS) Windows Internet Name Service (WINS) WINDOWS INTERNET NAME SERVICE (WINS)...2 1.) Introduction au Service de nom Internet Windows (WINS)...2 1.1) Les Noms NetBIOS...2 1.2) Le processus de résolution WINS...2

Plus en détail

IV- Comment fonctionne un ordinateur?

IV- Comment fonctionne un ordinateur? 1 IV- Comment fonctionne un ordinateur? L ordinateur est une alliance du hardware (le matériel) et du software (les logiciels). Jusqu à présent, nous avons surtout vu l aspect «matériel», avec les interactions

Plus en détail

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

03/04/2007. Tâche 1 Tâche 2 Tâche 3. Système Unix. Time sharing 3/4/27 Programmation Avancée Multimédia Multithreading Benoît Piranda Équipe SISAR Université de Marne La Vallée Besoin Programmes à traitements simultanés Réseau Réseau Afficher une animation en temps

Plus en détail

Introduction à la programmation concurrente

Introduction à la programmation concurrente Introduction à la programmation concurrente Moniteurs Yann Thoma Reconfigurable and Embedded Digital Systems Institute Haute Ecole d Ingénierie et de Gestion du Canton de Vaud This work is licensed under

Plus en détail

1 Architecture du cœur ARM Cortex M3. Le cœur ARM Cortex M3 sera présenté en classe à partir des éléments suivants :

1 Architecture du cœur ARM Cortex M3. Le cœur ARM Cortex M3 sera présenté en classe à partir des éléments suivants : GIF-3002 SMI et Architecture du microprocesseur Ce cours discute de l impact du design du microprocesseur sur le système entier. Il présente d abord l architecture du cœur ARM Cortex M3. Ensuite, le cours

Plus en détail

Introduction aux Systèmes et aux Réseaux

Introduction aux Systèmes et aux Réseaux Introduction aux Systèmes et aux Réseaux Cours 5 Processus D après un cours de Julien Forget (univ Lille1) Laure Gonnord http://laure.gonnord.org/pro/teaching/ Laure.Gonnord@univ-lyon1.fr Master CCI -

Plus en détail

La technologie Java Card TM

La technologie Java Card TM Présentation interne au CESTI La technologie Java Card TM sauveron@labri.u-bordeaux.fr http://dept-info.labri.u-bordeaux.fr/~sauveron 8 novembre 2002 Plan Qu est ce que Java Card? Historique Les avantages

Plus en détail

Ordonnancement temps réel

Ordonnancement temps réel Ordonnancement temps réel Laurent.Pautet@enst.fr Version 1.5 Problématique de l ordonnancement temps réel En fonctionnement normal, respecter les contraintes temporelles spécifiées par toutes les tâches

Plus en détail

_ PARAMETRE DU COMPTE _ ACCEUIL. 1 ere Etape «Créer un compte principal» Créer un compte secondaire. Ouvrir un compte principal

_ PARAMETRE DU COMPTE _ ACCEUIL. 1 ere Etape «Créer un compte principal» Créer un compte secondaire. Ouvrir un compte principal _ PARAMETRE DU COMPTE 1 ere Etape «Créer un compte principal» - Créer un compte principal (Uniquement Compte FTP). Créer un compte secondaire -Créer un compte secondaire (Uniquement Compte FTP). Ouvrir

Plus en détail

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE QCM Remarque : - A une question correspond au moins 1 réponse juste - Cocher la ou les bonnes réponses Barème : - Une bonne réponse = +1 - Pas de réponse = 0

Plus en détail

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

Informatique industrielle A7-19571 Systèmes temps-réel J.F.Peyre. Partie I : Introduction Informatique industrielle A7-19571 Systèmes temps-réel J.F.Peyre Partie I : Introduction Plan de la première partie Quelques définitions Caractéristiques communes des applications temps-réel Exemples d

Plus en détail

Partie 7 : Gestion de la mémoire

Partie 7 : Gestion de la mémoire INF3600+INF2610 Automne 2006 Partie 7 : Gestion de la mémoire Exercice 1 : Considérez un système disposant de 16 MO de mémoire physique réservée aux processus utilisateur. La mémoire est composée de cases

Plus en détail

Programmation C. Apprendre à développer des programmes simples dans le langage C

Programmation C. Apprendre à développer des programmes simples dans le langage C Programmation C Apprendre à développer des programmes simples dans le langage C Notes de cours sont disponibles sur http://astro.u-strasbg.fr/scyon/stusm (attention les majuscules sont importantes) Modalités

Plus en détail

Chapitre V : La gestion de la mémoire. Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping

Chapitre V : La gestion de la mémoire. Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping Chapitre V : La gestion de la mémoire Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping Introduction Plusieurs dizaines de processus doivent se partager

Plus en détail

Mesure de performances. [Architecture des ordinateurs, Hennessy & Patterson, 1996]

Mesure de performances. [Architecture des ordinateurs, Hennessy & Patterson, 1996] Mesure de performances [Architecture des ordinateurs, Hennessy & Patterson, 1996] Croissance des performances des microprocesseurs Avant le milieu des années 80, le gain dépendait de la technologie. Après,

Plus en détail

DU BINAIRE AU MICROPROCESSEUR - D ANGELIS CIRCUITS CONFIGURABLES NOTION DE PROGRAMMATION

DU BINAIRE AU MICROPROCESSEUR - D ANGELIS CIRCUITS CONFIGURABLES NOTION DE PROGRAMMATION 145 NOTION DE PROGRAMMATION 1/ Complétons notre microprocesseur Nous avons, dans les leçons précédentes décrit un microprocesseur théorique, cependant il s inspire du 6800, premier microprocesseur conçu

Plus en détail

Projet Robot Centaure

Projet Robot Centaure Projet Robot Centaure Année 2013-2014 IMA4 S8 Étudiants : Clément TACHÉ Liying WANG Enseignants : Robert Litwak Xiavier Redon Table des matières : Remerciements Introduction Présentation et état des lieux

Plus en détail

Introduction aux systèmes temps réel. Iulian Ober IRIT ober@iut-blagnac.fr

Introduction aux systèmes temps réel. Iulian Ober IRIT ober@iut-blagnac.fr Introduction aux systèmes temps réel Iulian Ober IRIT ober@iut-blagnac.fr Définition Systèmes dont la correction ne dépend pas seulement des valeurs des résultats produits mais également des délais dans

Plus en détail

Cours Programmation Système

Cours Programmation Système Cours Programmation Système Filière SMI Semestre S6 El Mostafa DAOUDI Département de Mathématiques et d Informatique, Faculté des Sciences Université Mohammed Premier Oujda m.daoudi@fso.ump.ma Février

Plus en détail

Architecture des ordinateurs

Architecture des ordinateurs Architecture des ordinateurs Cours 4 5 novembre 2012 Archi 1/22 Micro-architecture Archi 2/22 Intro Comment assembler les différents circuits vus dans les cours précédents pour fabriquer un processeur?

Plus en détail

Le langage C. Séance n 4

Le langage C. Séance n 4 Université Paris-Sud 11 Institut de Formation des Ingénieurs Remise à niveau INFORMATIQUE Année 2007-2008 Travaux pratiques d informatique Le langage C Séance n 4 But : Vous devez maîtriser à la fin de

Plus en détail

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr Mars 2002 Pour Irène et Marie Legal Notice Copyright c 2002 Patrick Cégielski Université

Plus en détail

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

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3. 1. Structure d un programme C Un programme est un ensemble de fonctions. La fonction "main" constitue le point d entrée pour l exécution. Un exemple simple : #include int main() { printf ( this

Plus en détail

Conventions d écriture et outils de mise au point

Conventions d écriture et outils de mise au point Logiciel de base Première année par alternance Responsable : Christophe Rippert Christophe.Rippert@Grenoble-INP.fr Introduction Conventions d écriture et outils de mise au point On va utiliser dans cette

Plus en détail

Structure fonctionnelle d un SGBD

Structure fonctionnelle d un SGBD Fichiers et Disques Structure fonctionnelle d un SGBD Requetes Optimiseur de requetes Operateurs relationnels Methodes d acces Gestion de tampon Gestion de disque BD 1 Fichiers et Disques Lecture : Transfert

Plus en détail

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

École Polytechnique de Montréal. Département de Génie Informatique et Génie Logiciel. Cours INF2610. Contrôle périodique. École Polytechnique de Montréal Département de Génie Informatique et Génie Logiciel Cours INF2610 Contrôle périodique Automne 2013 Date : 11 octobre 2013 de 18h à 20h Professeur : Boucheneb Hanifa Documentation

Plus en détail

Problèmes liés à la concurrence

Problèmes liés à la concurrence ENS Cachan Problématique Difficile de gérer la concurrence : Pas toujours facile d avoir des fonctions réentrantes. Risque de race condition : ex : x :=x+1 x :=x+1 On voudrait des blocs d instructions

Plus en détail

CH.3 SYSTÈMES D'EXPLOITATION

CH.3 SYSTÈMES D'EXPLOITATION CH.3 SYSTÈMES D'EXPLOITATION 3.1 Un historique 3.2 Une vue générale 3.3 Les principaux aspects Info S4 ch3 1 3.1 Un historique Quatre générations. Préhistoire 1944 1950 ENIAC (1944) militaire : 20000 tubes,

Plus en détail

Un ordonnanceur stupide

Un ordonnanceur stupide Un ordonnanceur simple Université Paris Sud L objet des exercices qui suivent est de créer un ordonanceur implantant l algorithme du tourniquet ( round-robin scheduler ). La technique utilisée pour élire

Plus en détail

Bases de programmation. Cours 5. Structurer les données

Bases de programmation. Cours 5. Structurer les données Bases de programmation. Cours 5. Structurer les données Pierre Boudes 1 er décembre 2014 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. Types char et

Plus en détail

Introduction à la Programmation Parallèle: MPI

Introduction à la Programmation Parallèle: MPI Introduction à la Programmation Parallèle: MPI Frédéric Gava et Gaétan Hains L.A.C.L Laboratoire d Algorithmique, Complexité et Logique Cours du M2 SSI option PSSR Plan 1 Modèle de programmation 2 3 4

Plus en détail

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

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java Info0101 Intro. à l'algorithmique et à la programmation Cours 3 Le langage Java Pierre Delisle, Cyril Rabat et Christophe Jaillet Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique

Plus en détail

Temps Réel. Jérôme Pouiller <j.pouiller@sysmic.org> Septembre 2011

Temps Réel. Jérôme Pouiller <j.pouiller@sysmic.org> Septembre 2011 Temps Réel Jérôme Pouiller Septembre 2011 Ordonnancement avec contraintes de précédance Problèmatique des accès concurents Problème liés aux partage de ressources Solutions utres

Plus en détail

Network musical jammin

Network musical jammin Network musical jammin Projet PC2R - 2015 Pour ce projet, nous allons réaliser une application permettant d effectuer des jams sessions en temps-réel entre des musiciens répartis à travers le monde. Le

Plus en détail

MODULE I1. Plan. Introduction. Introduction. Historique. Historique avant 1969. R&T 1ère année. Sylvain MERCHEZ

MODULE I1. Plan. Introduction. Introduction. Historique. Historique avant 1969. R&T 1ère année. Sylvain MERCHEZ MODULE I1 Plan Chapitre 1 Qu'est ce qu'un S.E? Introduction Historique Présentation d'un S.E Les principaux S.E R&T 1ère année Votre environnement Sylvain MERCHEZ Introduction Introduction Rôles et fonctions

Plus en détail

VMware ESX/ESXi. 1. Les composants d ESX. VMware ESX4 est le cœur de l infrastructure vsphere 4.

VMware ESX/ESXi. 1. Les composants d ESX. VMware ESX4 est le cœur de l infrastructure vsphere 4. VMware ESX/ESXi 1. Les composants d ESX VMware ESX4 est le cœur de l infrastructure vsphere 4. C est un hyperviseur, c est à dire une couche de virtualisation qui permet de faire tourner plusieurs systèmes

Plus en détail

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

GPA770 Microélectronique appliquée Exercices série A GPA770 Microélectronique appliquée Exercices série A 1. Effectuez les calculs suivants sur des nombres binaires en complément à avec une représentation de 8 bits. Est-ce qu il y a débordement en complément

Plus en détail

Argument-fetching dataflow machine de G.R. Gao et J.B. Dennis (McGill, 1988) = machine dataflow sans flux de données

Argument-fetching dataflow machine de G.R. Gao et J.B. Dennis (McGill, 1988) = machine dataflow sans flux de données EARTH et Threaded-C: Éléments clés du manuel de références de Threaded-C Bref historique de EARTH et Threaded-C Ancêtres de l architecture EARTH: Slide 1 Machine à flux de données statique de J.B. Dennis

Plus en détail

Linux embarqué: une alternative à Windows CE?

Linux embarqué: une alternative à Windows CE? embarqué: une alternative à Windows CE? : une alternative à Windows CE Présentation Mangrove Systems Distribution embarqué Perspective WinCe / Questions Mangrove systems Créé en 2001 Soutien Soutien Ministère

Plus en détail

Guide de l administrateur CorpoBack

Guide de l administrateur CorpoBack Table des matières Introduction...4 Infrastructure...4 Systèmes d exploitation... 4 Serveur de données SQL... 4 Infrastructure Microsoft Sync... 4 Infrastructure.NET... 5 Espace d entreposage des données

Plus en détail

TAI049 Utiliser la virtualisation en assistance et en dépannage informatique TABLE DES MATIERES

TAI049 Utiliser la virtualisation en assistance et en dépannage informatique TABLE DES MATIERES TAI049 Utiliser la virtualisation en assistance et en dépannage informatique TABLE DES MATIERES 1 DECOUVERTE DE LA VIRTUALISATION... 2 1.1 1.2 CONCEPTS, PRINCIPES...2 UTILISATION...2 1.2.1 Formation...2

Plus en détail

Projet Active Object

Projet Active Object Projet Active Object TAO Livrable de conception et validation Romain GAIDIER Enseignant : M. Noël PLOUZEAU, ISTIC / IRISA Pierre-François LEFRANC Master 2 Informatique parcours MIAGE Méthodes Informatiques

Plus en détail

TP 2 Réseaux. Adresses IP, routage et sous-réseaux

TP 2 Réseaux. Adresses IP, routage et sous-réseaux TP 2 Réseaux Adresses IP, routage et sous-réseaux C. Pain-Barre INFO - IUT Aix-en-Provence version du 24/2/2 Adressage IP. Limites du nombre d adresses IP.. Adresses de réseaux valides Les adresses IP

Plus en détail

ASR1 TD7 : Un microprocesseur RISC 16 bits

ASR1 TD7 : Un microprocesseur RISC 16 bits {Â Ö Ñ º ØÖ Ý,È ØÖ ºÄÓ Ù,Æ ÓÐ ºÎ ÝÖ Ø¹ ÖÚ ÐÐÓÒ} Ò ¹ÐÝÓÒº Ö ØØÔ»»Ô Ö Óº Ò ¹ÐÝÓÒº Ö» Ö Ñ º ØÖ Ý»¼ Ö½» ASR1 TD7 : Un microprocesseur RISC 16 bits 13, 20 et 27 novembre 2006 Présentation générale On choisit

Plus en détail

Compilation (INF 564)

Compilation (INF 564) Présentation du cours Le processeur MIPS Programmation du MIPS 1 Compilation (INF 564) Introduction & architecture MIPS François Pottier 10 décembre 2014 Présentation du cours Le processeur MIPS Programmation

Plus en détail

Tutorial Terminal Server sous

Tutorial Terminal Server sous Tutorial Terminal Server sous réalisé par Olivier BOHER Adresse @mail : xenon33@free.fr Site Internet : http://xenon33.free.fr/ Tutorial version 1a Page 1 sur 1 Index 1. Installation des services Terminal

Plus en détail

Tests de performance du matériel

Tests de performance du matériel 3 Tests de performance du matériel Après toute la théorie du dernier chapitre, vous vous demandez certainement quelles sont les performances réelles de votre propre système. En fait, il y a plusieurs raisons

Plus en détail

Cours d Algorithmique et de Langage C 2005 - v 3.0

Cours d Algorithmique et de Langage C 2005 - v 3.0 Cours d Algorithmique et de Langage C 2005 - v 3.0 Bob CORDEAU cordeau@onera.fr Mesures Physiques IUT d Orsay 15 mai 2006 Avant-propos Avant-propos Ce cours en libre accès repose sur trois partis pris

Plus en détail

Initiation au HPC - Généralités

Initiation au HPC - Généralités Initiation au HPC - Généralités Éric Ramat et Julien Dehos Université du Littoral Côte d Opale M2 Informatique 2 septembre 2015 Éric Ramat et Julien Dehos Initiation au HPC - Généralités 1/49 Plan du cours

Plus en détail

Introduction à l informatique temps réel Pierre-Yves Duval (cppm)

Introduction à l informatique temps réel Pierre-Yves Duval (cppm) Introduction à l informatique temps réel Pierre-Yves Duval (cppm) Ecole d informatique temps réel - La Londes les Maures 7-11 Octobre 2002 -Définition et problématique - Illustration par des exemples -Automatisme:

Plus en détail

SYSTÈME DE GESTION DE FICHIERS

SYSTÈME DE GESTION DE FICHIERS SYSTÈME DE GESTION DE FICHIERS - DISQUE 1 Les couches logiciels réponse requête Requêtes E/S Système E/S Pilote E/S Interruptions utilisateur traitement S.E. commandes S.E. S.E. matériel Contrôleur E/S

Plus en détail

Atelier C TIA Portal CTIA06 : programmation des automates S7-300 Blocs d organisation

Atelier C TIA Portal CTIA06 : programmation des automates S7-300 Blocs d organisation Atelier C TIA Portal CTIA06 : programmation des automates S7-300 Blocs d organisation CTIA06 Page 1 1. Types de blocs de programme L automate met à disposition différents types de blocs qui contiennent

Plus en détail

Programmation en langage C d un µcontrôleur PIC à l aide du compilateur C-CCS Sommaire

Programmation en langage C d un µcontrôleur PIC à l aide du compilateur C-CCS Sommaire Programmation en langage C d un µcontrôleur PIC à l aide du compilateur C-CCS CCS Sommaire Généralités sur le langage. 2 Structure d un programme en C.. 3 Les constantes et équivalences.. 4 Les variables...

Plus en détail

Introduction au langage C

Introduction au langage C Introduction au langage C Cours 1: Opérations de base et premier programme Alexis Lechervy Alexis Lechervy (UNICAEN) Introduction au langage C 1 / 23 Les premiers pas Sommaire 1 Les premiers pas 2 Les

Plus en détail

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux. UEO11 COURS/TD 1 Contenu du semestre Cours et TDs sont intégrés L objectif de ce cours équivalent a 6h de cours, 10h de TD et 8h de TP est le suivant : - initiation à l algorithmique - notions de bases

Plus en détail

<Insert Picture Here> Solaris pour la base de donnés Oracle

<Insert Picture Here> Solaris pour la base de donnés Oracle Solaris pour la base de donnés Oracle Alain Chéreau Oracle Solution Center Agenda Compilateurs Mémoire pour la SGA Parallélisme RAC Flash Cache Compilateurs

Plus en détail

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

Initiation. àl algorithmique et à la programmation. en C Initiation àl algorithmique et à la programmation en C Initiation àl algorithmique et à la programmation en C Cours avec 129 exercices corrigés Illustration de couverture : alwyncooper - istock.com Dunod,

Plus en détail

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation :

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation : Algorithmique et programmation : STRUCTURES DE DONNÉES A. Structure et enregistrement 1) Définition et rôle des structures de données en programmation 1.1) Définition : En informatique, une structure de

Plus en détail

Systèmes d Exploitation - ENSIN6U3. Aix-Marseille Université

Systèmes d Exploitation - ENSIN6U3. Aix-Marseille Université Systèmes d Exploitation - ENSIN6U3 Gestion de la mémoire Leonardo Brenner 1 Jean-Luc Massat 2 1 Leonardo.Brenner@univ-amu.fr 2 Jean-Luc.Massat@univ-amu.fr Aix-Marseille Université Faculté des Sciences

Plus en détail

SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE

SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE C.Crochepeyre MPS_SGF 2000-20001 Diapason 1 Les couches logiciels réponse SGF requête matériel matériel Requêtes E/S Système E/S Pilote E/S Interruptions Contrôleur

Plus en détail

Les systèmes embarqués Introduction. Richard Grisel Professeur des Universités Université de Rouen Nacer Abouchi Professeur ESCPE Lyon

Les systèmes embarqués Introduction. Richard Grisel Professeur des Universités Université de Rouen Nacer Abouchi Professeur ESCPE Lyon Les systèmes embarqués Introduction Richard Grisel Professeur des Universités Université de Rouen Nacer Abouchi Professeur ESCPE Lyon Introduction aux systèmes embarqués Définition. Caractéristiques d

Plus en détail

Gestion de mémoire secondaire F. Boyer, Laboratoire Sardes Fabienne.Boyer@imag.fr

Gestion de mémoire secondaire F. Boyer, Laboratoire Sardes Fabienne.Boyer@imag.fr Gestion de mémoire secondaire F. Boyer, Laboratoire Sardes Fabienne.Boyer@imag.fr 1- Structure d un disque 2- Ordonnancement des requêtes 3- Gestion du disque - formatage - bloc d amorçage - récupération

Plus en détail

Guide de l utilisateur Mikogo Version Windows

Guide de l utilisateur Mikogo Version Windows Guide de l utilisateur Mikogo Version Windows Table des matières Création d un compte utilisateur 3 Téléchargement et installation 4 Démarrer une session 4 Joindre une session 5 Fonctionnalités 6 Liste

Plus en détail

On appelle variable condition une var qui peut être testée et

On appelle variable condition une var qui peut être testée et Un concept plus général: g Variables condition On appelle variable condition une var qui peut être testée et endort le thread qui la teste si la condition est fausse le réveille quand la condition devient

Plus en détail

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr 6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr Interface d un SGF Implémentation d un SGF Gestion de la correspondance entre la structure logique et la structure

Plus en détail

Métriques de performance pour les algorithmes et programmes parallèles

Métriques de performance pour les algorithmes et programmes parallèles Métriques de performance pour les algorithmes et programmes parallèles 11 18 nov. 2002 Cette section est basée tout d abord sur la référence suivante (manuel suggéré mais non obligatoire) : R. Miller and

Plus en détail

Seance 2: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu.

Seance 2: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu. Seance 2: Complétion du code de jeu. (durée max: 2h) Mot clé const et pointeurs: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu. Implémentez jeu_recupere_piece

Plus en détail

Tropimed Guide d'installation

Tropimed Guide d'installation Tropimed Guide d'installation 1. A propos de ce guide... 2 2. Configurations matérielles et logicielles requises... 2 2.1 Configuration Windows... 2 2.2 Configuration MacOs... 2 2.3 Configuration requise

Plus en détail

Algorithme. Table des matières

Algorithme. Table des matières 1 Algorithme Table des matières 1 Codage 2 1.1 Système binaire.............................. 2 1.2 La numérotation de position en base décimale............ 2 1.3 La numérotation de position en base binaire..............

Plus en détail

SCL LOGICIEL DE CONTROL

SCL LOGICIEL DE CONTROL SCL LOGICIEL DE CONTROL Version 1.3 MRC AUDIO LD- 500 www.mrcaudio.com 1 Contenu 1 - Bienvenu a MRC AUDIO SCL v1.3 2 - Installation du logiciel 3 - Configuration du programme SCL 4 - Contrôle des installations

Plus en détail

Bravo! Vous venez d acquérir un routeur large bande à 4 ports Conceptronic C100BRS4H.

Bravo! Vous venez d acquérir un routeur large bande à 4 ports Conceptronic C100BRS4H. Conceptronic C100BRS4H Guide d installation rapide Bravo! Vous venez d acquérir un routeur large bande à 4 ports Conceptronic C100BRS4H. Ce guide d installation vous permettra d installer pas à pas votre

Plus en détail

Cahier des charges. driver WIFI pour chipset Ralink RT2571W. sur hardware ARM7

Cahier des charges. driver WIFI pour chipset Ralink RT2571W. sur hardware ARM7 Cahier des charges driver WIFI pour chipset Ralink RT2571W sur hardware ARM7 RevA 13/03/2006 Création du document Sylvain Huet RevB 16/03/2006 Fusion des fonctions ARP et IP. SH Modification des milestones

Plus en détail

PROGRAMMATION EVENEMENTIELLE sur EXCEL

PROGRAMMATION EVENEMENTIELLE sur EXCEL MASTERs SMaRT & GSI PROGRAMMATION EVENEMENTIELLE sur EXCEL Pierre BONNET Programmation évènementielle La programmation évènementielle permet un appel de procédure depuis l'interface HMI d'excel (ou d'un

Plus en détail

MICROINFORMATIQUE NOTE D APPLICATION 1 (REV. 2011) ARITHMETIQUE EN ASSEMBLEUR ET EN C

MICROINFORMATIQUE NOTE D APPLICATION 1 (REV. 2011) ARITHMETIQUE EN ASSEMBLEUR ET EN C Haute Ecole d Ingénierie et de Gestion Du Canton du Vaud MICROINFORMATIQUE NOTE D APPLICATION 1 (REV. 2011) ARITHMETIQUE EN ASSEMBLEUR ET EN C Programmation en mode simulation 1. DOCUMENTS DE RÉFÉRENCE...

Plus en détail

Solution A La Gestion Des Objets Java Pour Des Systèmes Embarqués

Solution A La Gestion Des Objets Java Pour Des Systèmes Embarqués International Journal of Engineering Research and Development e-issn: 2278-067X, p-issn: 2278-800X, www.ijerd.com Volume 7, Issue 5 (June 2013), PP.99-103 Solution A La Gestion Des Objets Java Pour Des

Plus en détail

Chapitre 4 : Exclusion mutuelle

Chapitre 4 : Exclusion mutuelle Chapitre 4 : Exclusion mutuelle Pierre Gançarski Juillet 2004 Ce support de cours comporte un certain nombre d erreurs : je décline toute responsabilité quant à leurs conséquences sur le déroulement des

Plus en détail

Génie Logiciel avec Ada. 4 février 2013

Génie Logiciel avec Ada. 4 février 2013 Génie Logiciel 4 février 2013 Plan I. Généralités II. Structures linéaires III. Exceptions IV. Structures arborescentes V. Dictionnaires I. Principes II. Notions propres à la POO I. Principes Chapitre

Plus en détail

THEME 1 : L ORDINATEUR ET SON ENVIRONNEMENT. Objectifs

THEME 1 : L ORDINATEUR ET SON ENVIRONNEMENT. Objectifs Architecture Matérielle des Systèmes Informatiques. S1 BTS Informatique de Gestion 1 ère année THEME 1 : L ORDINATEUR ET SON ENVIRONNEMENT Dossier 1 L environnement informatique. Objectifs Enumérer et

Plus en détail

Introduction aux SGBDR

Introduction aux SGBDR 1 Introduction aux SGBDR Pour optimiser une base Oracle, il est important d avoir une idée de la manière dont elle fonctionne. La connaissance des éléments sous-jacents à son fonctionnement permet de mieux

Plus en détail

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique Institut Supérieure Aux Etudes Technologiques De Nabeul Département Informatique Support de Programmation Java Préparé par Mlle Imene Sghaier 2006-2007 Chapitre 1 Introduction au langage de programmation

Plus en détail

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation impérative et structures de données simples Introduction au langage C Sandrine Blazy - 1ère année 24 octobre 2007 Cours d Algorithmique-Programmation

Plus en détail

Système de Gestion de Fichiers

Système de Gestion de Fichiers Chapitre 2 Système de Gestion de Fichiers Le système de gestion de fichiers est un outil de manipulation des fichiers et de la structure d arborescence des fichiers sur disque et a aussi le rôle sous UNIX

Plus en détail

Modules d automatismes simples

Modules d automatismes simples Modules d automatismes simples Solutions pour automatiser Modules d'automatismes Enfin, vraiment simple! Un concentré de solution Pour vos petites applications d'automatismes millenium gère : Temporisations

Plus en détail

Créer et partager des fichiers

Créer et partager des fichiers Créer et partager des fichiers Le rôle Services de fichiers... 246 Les autorisations de fichiers NTFS... 255 Recherche de comptes d utilisateurs et d ordinateurs dans Active Directory... 262 Délégation

Plus en détail

PARAGON - Sauvegarde système

PARAGON - Sauvegarde système PARAGON - Sauvegarde système 1 Télécharger Paragon Backup & Recovery 2013 Free Disponible maintenant gratuitement et en français, Paragon Backup & Recovery 2013 Free est un logiciel-utilitaire permettant

Plus en détail