Cours A7 : Temps Réel



Documents pareils
Cours A7 : Temps Réel

Cours de Systèmes d Exploitation

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

Cours A7 : Temps Réel

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

Problèmes liés à la concurrence

Chapitre 4 : Exclusion mutuelle

4. Outils pour la synchronisation F. Boyer, Laboratoire Lig

Introduction aux Systèmes et aux Réseaux

Les processus légers : threads. Système L3, /31

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

Introduction à la programmation concurrente

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

Cours Programmation Système

Cours 2: Exclusion Mutuelle entre processus (lourds, ou légers -- threads)

J2SE Threads, 1ère partie Principe Cycle de vie Création Synchronisation

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

REALISATION d'un. ORDONNANCEUR à ECHEANCES

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

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

Cours 1 : Qu est-ce que la programmation?

GUIDE PRATIQUE déplacements professionnels temporaires en France et à l étranger

Gestion des processus

4. Outils pour la synchronisation F. Boyer, Laboratoire Sardes

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

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

gestion des processus La gestion des processus

Licence Sciences et Technologies Examen janvier 2010

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

Synchro et Threads Java TM

INTRODUCTION À LA PROGRAMMATION CONCURRENTE

Réplication des données

Ordonnancement temps réel

Initiation au HPC - Généralités

Architecture des ordinateurs

L exclusion mutuelle distribuée

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

Sécurité et sûreté des systèmes embarqués et mobiles

Les transactions 1/46. I même en cas de panne logicielle ou matérielle. I Concept de transaction. I Gestion de la concurrence : les solutions

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

Support de cours système d exploitation

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Info0604 Programmation multi-threadée. Cours 5. Programmation multi-threadée en Java

Algorithmique et Programmation, IMA

IV- Comment fonctionne un ordinateur?

N Les procédures stimulus *# de l ancien système VoIP demeurent disponibles.

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

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

Les systèmes de gestion de version

Chapitre 2. Les processus. 2.1 Introduction. 2.2 les différents états d un processus

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Programmation d Applications Concurrentes et Distribuées (INF431)

SYSTÈME DE GESTION DE FICHIERS

Algorithmique et systèmes répartis

Un ordonnanceur stupide

Avira Version 2012 (Windows)

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

1 Introduction C+ + Algorithm e. languag. Algorigramm. machine binaire. 1-1 Chaîne de développement. Séance n 4

ISO/CEI NORME INTERNATIONALE

SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE

Le langage C. Séance n 4

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

3-4 Etape 4 : Se connecter au SIV ou au SIT grâce au certificat numérique 3-5 Etape 5 : Changer de certificat quand l ancien arrive à expiration

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

ASSURER UN SUIVI COMMERCIAL

Cours de Programmation Impérative: Zones de mémoires et pointeurs

Threads. Threads. USTL routier 1

Assembleur i8086. Philippe Preux IUT Informatique du Littoral. Année universitaire 95 96

Programmation sous QT

Protocole d accès général

Assembleur. Faculté I&C, André Maurer, Claude Petitpierre

Circuit comportant plusieurs boucles

Feuille TD n 1 Exercices d algorithmique éléments de correction

Ensimag 1ère année Algorithmique 1 Examen 2ième session 24 juin Algorithmique 1

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Mécanismes pour la migration de processus

CCI Génie Logiciel UFR - IMA. Objectifs du cours d'aujourd'hui. Génie Logiciel Validation par le test. Qu est-ce que tester un programme?

Q&A 1. Qu est ce que AdKash? 2. Pourquoi AdKash est innovative par rapport aux autres systèmes de publicité Mobile?

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview.

Licence Bio Informatique Année Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

Cours de Base de Données Cours n.12

Modélisation de la Reconfiguration Dynamique appliquée à un décodeur LDPC Non Binaire

Services OSI. if G.Beuchot. Services Application Services Présentation - Session Services Transport - Réseaux - Liaison de Données - Physique

Modélisation des interfaces matériel/logiciel

SD1+ SD1+ SD1+ ENT ESC

Conception de circuits numériques et architecture des ordinateurs

Systèmes et exécutifs temps-réel

3, rue de la Louvière RAMBOUILLET Tél. : Fax : S.A.V

GUIDE D'UTILISATION DU LOGICIEL DU TRIDENT GRAPHIQUE : TRG_REPORT

Université du Québec à Chicoutimi. Département d informatique et de mathématique. Plan de cours. Titre : Élément de programmation.

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)

Structure d un programme

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

La technologie Java Card TM

Chapitre 4 : Outils de communication centralisés entre processus

Contrôle d accès UTIL TP N 1 découverte

Carte de référence rapide

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

Algorithmique et structures de données I

Transcription:

Cours A7 : Temps Réel Pierre.Paradinas / @ / cnam.fr Cnam/Cedric Systèmes Enfouis et Embarqués (SEE)

Motivations Du jour : Partage des ressources, L exclusion mutuelle, Synchronisation. Comprendre les mécanismes systèmes mis en oeuvre dans un système temps réel

Gestion de plusieurs tâches. Pour chaque tâche : Notre système Contexte: son nom, les registres d états, etc. CO (compteur ordinal) et une zone mémoire de programme. PP (pointeur de pile) et données temporaires.

Conflit d accès Tâche 1 Lire A A= 1 Ecrire A Tâche 2 Lire A A=0 Ecrire A Tâche 3 Lire A A=0 Ecrire A Que se passe-t-il pour A? Le résultat est-il? 0 1 0 1 0 0 0 0 1

Définitions Section critique : on appelle section critique une séquence d opérations qui doivent être exécutées sans être interrompues. On parlera d actions atomiques. On dira que des tâches sont en exclusion mutuelle quand se partageant une ressource une seule tâche à la fois y accéder.

Basées sur le matériel Basées sur le logiciel Les solutions

Masquage matériel Par matériel les sections critiques sont protégées Les interruptions sont interdites. La préemption de code ou l interruption de tâche en cours d exécution sont interdits. Les sections critiques de code doivent être courte, c est aussi le seul moyen de protéger une ressource et/ou un traitement utilisé par une interruption.

Masquage par verrou Si deux tâches veulent utiliser une même ressource elle peuvent convenir d utiliser une variable (var_acces) pour signaler que la ressource est occupée.

Masquage par verrou (l algorithme) Si (var_acces =0) alors fsi var_acces = 1; acceder_ressource; var_acces = 0; Si interruption pendant cette séquence : que peut il se passer?

Masquage par verrou (l algorithme) interdire_interruption; Si (var_acces =0) alors var_acces = 1; autoriser_interruption acceder_ressource; interdire_interruption; var_acces = 0; autoriser_interruption; fsi autoriser_interruption;

Masquage logiciel Les SEs disposent de fonctions : Début_Section : suspend toute préemption de tâche Fin_Section : réautorise la préemption Néanmoins les interruptions continuent à être gérées normalement Attention au code contenu dans la section... exemple

Masquage logiciel Début_Section Print ( Hello world ); Attendre (clavier); Print ( clavier ); Fin_Section Quand finit cette interruption? Pas code bloquant dans une SC.

Masquage matériel/logiciel La gestion de sections critiques Par matériel : tâches et interruptions sont traitées atomiquement Par logiciel uniquement les tâches sont atomiquement.

Les sémaphores Introduit en 1960 par Edgser Dijkstra. Protocole très utilisé dans les SEs multitâches. contrôler l accès à une ressource partagée. exclusion mutuelle (mutex). signaler des événements. synchroniser des tâches.

Sémaphore binaire (idée) Idée : Le sémaphore est la clé pour accéder à la ressource, Si je veux accéder à la ressource je demande la clé, J accède à la ressource, je rends la clé. Si la clé est prise, j attends la ressource pour y accéder.

Sémaphore binaire (schéma) Ressource T1 T2

Sémaphore binaire (définition) Géré par le SE cpt T1... Tn Fonction P et V de gestion du sémaphore P est activé à l entrée de la SC V est activé à la sortie de la SC

Sémaphore binaire (algorithme) P V cpt = cpt -1 si cpt < 0 alors interrompre tâche; file <- ; sinon donner acces; cpt++; si cpt >= 0 alors sortir_tache_file; Initialiser cpt = 1;

Exemple Toutes les tâches ont P en entrée et V en sortie et partage un sémaphore S pour la ressource I. Tâche 1...;P(S); I = 10; v(s);... Tâche 2...;P(S); I = 20; v(s);... Donner le comportement du sémaphore S et de la file F

Exemple (suite) Tâche 1...;P(S); I = 10; v(s);... Tâche 2...;P(S); I = 20; v(s);... Init S = 1 F = T1 (P) 0 T2 (P) -1 T2 T1 (V) 0 T2 (V) 1

Exemple (suite) Tâche 1...;P(S); I = 10; v(s);... Tâche 2...;P(S); I = 20; v(s);... Tâche 3...;P(S); I = 20; v(s);... Init S = 1 F = T1 (P) 0 T2 (P) -1 T2 T3 (P) -2 T2, T3 T1 (V) -1 T3 T2 (V) 0 T3 (V) 1

Etreinte fatale Tâche 1...;P(S); attendre (E) ; v(s);... Tâche 2...;P(S); signaler (E) ; v(s);... Que se passe -t-il dans ce cas?

Etreinte fatale (suite) Tâche 1...;P(S); attendre (E) ; v(s);... Tâche 2...;P(S); signaler (E) ; v(s);... T2 est mise en attente T1 est en attente de T2 Solution : délai d attente

Sémaphore à n positions On utilise un sémaphore à n positions (ou compteur) quand plusieurs tâches peuvent utiliser une même ressource exemple : tampon d impression Initialisation de S à la valeur n (nombre de positions)

Sémaphore à n positions (algorithme) P cpt = cpt -1 si cpt < 0 alors interrompre tâche; file <- tache sinon donner acces V cpt++; si cpt >= 0 alors sortir_tache_file; Initialiser cpt = n