Académique Documents
Professionnel Documents
Culture Documents
Eric TERNISIEN
IUT de Saint Dié des Vosges 1/152
Département Génie Electrique et informatique Industrielle
Plan
I - Introduction
1 - Historique
2 - Système embarqué et automate différent ?
Eric TERNISIEN
IUT de Saint Dié des Vosges 2/152
Département Génie Electrique et informatique Industrielle
Plan
I - Introduction
1 - Historique
2 - Système embarqué et automate différent ?
II - Systèmes multitâches
1 - Concepts
2 - Architectures des systèmes multitâches
3 - Les tâches
4 - Le noyau
Eric TERNISIEN
IUT de Saint Dié des Vosges 2/152
Département Génie Electrique et informatique Industrielle
Plan
I - Introduction
1 - Historique
2 - Système embarqué et automate différent ?
II - Systèmes multitâches
1 - Concepts
2 - Architectures des systèmes multitâches
3 - Les tâches
4 - Le noyau
III - Systèmes temps réel
1 - Concepts
2 - Composition d’un système temps réel
3 - Types de systèmes temps réel
Eric TERNISIEN
IUT de Saint Dié des Vosges 2/152
Département Génie Electrique et informatique Industrielle
Plan
Eric TERNISIEN
IUT de Saint Dié des Vosges 3/152
Département Génie Electrique et informatique Industrielle
Plan
Eric TERNISIEN
IUT de Saint Dié des Vosges 3/152
Département Génie Electrique et informatique Industrielle
Plan
VI - Automate et multitâche
1 - Rappels
2 - Questions
3 - Ordonnancement des tâches
Eric TERNISIEN
IUT de Saint Dié des Vosges 4/152
Département Génie Electrique et informatique Industrielle
Plan
VI - Automate et multitâche
1 - Rappels
2 - Questions
3 - Ordonnancement des tâches
Eric TERNISIEN
IUT de Saint Dié des Vosges 4/152
Département Génie Electrique et informatique Industrielle
Introduction Historique
Plan
I - Introduction
1 - Historique
2 - Système embarqué et automate différent ?
Eric TERNISIEN
IUT de Saint Dié des Vosges 5/152
Département Génie Electrique et informatique Industrielle
Introduction Historique
Avant 1960
Avant 1945 :
I on exécute des jobs de manière séquentielle.
I un seul programme est présent en mémoire.
I programmation en binaire et sans S.E. (ordinateur
avec carte perforées).
Eric TERNISIEN
IUT de Saint Dié des Vosges 6/152
Département Génie Electrique et informatique Industrielle
Introduction Historique
Avant 1960
Avant 1945 :
I on exécute des jobs de manière séquentielle.
I un seul programme est présent en mémoire.
I programmation en binaire et sans S.E. (ordinateur
avec carte perforées).
1955 :
Des programmeurs du General Motors Research Center
écrivent le premier système d’exploitation : ”a monitor pro-
gram for the IBM 701”.
Eric TERNISIEN
IUT de Saint Dié des Vosges 6/152
Département Génie Electrique et informatique Industrielle
Introduction Historique
Avant 1960
Avant 1945 :
I on exécute des jobs de manière séquentielle.
I un seul programme est présent en mémoire.
I programmation en binaire et sans S.E. (ordinateur
avec carte perforées).
1955 :
Des programmeurs du General Motors Research Center
écrivent le premier système d’exploitation : ”a monitor pro-
gram for the IBM 701”.
1958 :
Bull sort le Gamma 60, le premier ordinateur multitâche.
Cette machine trop en avance sur son temps sera fabriquée
à 12 exemplaires.
Eric TERNISIEN
IUT de Saint Dié des Vosges 6/152
Département Génie Electrique et informatique Industrielle
Introduction Historique
1960-1980
1969 :
Ken Thompson de l’AT&T (American Telephone and Telegraph Company)
donne naissance à UNIX premier système multitâche et multi-utilisateur.
Des chercheurs de l’Université de Berkeley apportèrent de nombreuses
améliorations qui conduisirent à la création des versions BSD de Unix (Berke-
ley Software Distribution) qui engendrera NetBSD et FreeBSD, des versions
OpenSource.
Eric TERNISIEN
IUT de Saint Dié des Vosges 7/152
Département Génie Electrique et informatique Industrielle
Introduction Historique
1960-1980
1969 :
Ken Thompson de l’AT&T (American Telephone and Telegraph Company)
donne naissance à UNIX premier système multitâche et multi-utilisateur.
Des chercheurs de l’Université de Berkeley apportèrent de nombreuses
améliorations qui conduisirent à la création des versions BSD de Unix (Berke-
ley Software Distribution) qui engendrera NetBSD et FreeBSD, des versions
OpenSource.
1974 :
Motorola sort son processeur 6800 et Intel le 8080. Ces
derniers vont être à l’origine de l’essor de l’informatique
embarquée et par conséquent de l’informatique temps réel.
Eric TERNISIEN
IUT de Saint Dié des Vosges 7/152
Département Génie Electrique et informatique Industrielle
Introduction Historique
1990-2000
1987 :
Apparition de OS/2 premier environnement multitâches
développé conjointement par IBM et Microsoft. A better win-
dows than windows.
Eric TERNISIEN
IUT de Saint Dié des Vosges 8/152
Département Génie Electrique et informatique Industrielle
Introduction Historique
1990-2000
1987 :
Apparition de OS/2 premier environnement multitâches
développé conjointement par IBM et Microsoft. A better win-
dows than windows.
1994 :
Première version de Linux (1.0) commencée en 1991 et
développé par Linus Torvalds étudiant finlandais de 21 ans en
licence d’info.
Eric TERNISIEN
IUT de Saint Dié des Vosges 8/152
Département Génie Electrique et informatique Industrielle
Introduction Historique
Et les automates ?
Avant 1970 :
Les automatismes existent sous forme de logique câblée :
I séquenceur pneumatique
I armoire à relais
Eric TERNISIEN
IUT de Saint Dié des Vosges 9/152
Département Génie Electrique et informatique Industrielle
Introduction Historique
Et les automates ?
Avant 1970 :
Les automatismes existent sous forme de logique câblée :
I séquenceur pneumatique
I armoire à relais
1968 :
Pour répondre à un appel d’offre de General Motors,
Bedford Associates invente le premier automate program-
mable. L’entreprise Modicon se créée pour développer la
fabrication
Eric TERNISIEN
IUT de Saint Dié des Vosges 9/152
Département Génie Electrique et informatique Industrielle
Introduction Historique
Et les automates ?
1970 :
Premier automate Allen Bradley.
Eric TERNISIEN
IUT de Saint Dié des Vosges 10/152
Département Génie Electrique et informatique Industrielle
Introduction Historique
Et les automates ?
1970 :
Premier automate Allen Bradley.
1973 :
Premier automate Siemens. Naissance de la gamme Simatic.
Eric TERNISIEN
IUT de Saint Dié des Vosges 10/152
Département Génie Electrique et informatique Industrielle
Introduction Historique
Et les automates ?
1970 :
Premier automate Allen Bradley.
1973 :
Premier automate Siemens. Naissance de la gamme Simatic.
1975 :
Premier automate Télémécanique, le TSP 100.
Eric TERNISIEN
IUT de Saint Dié des Vosges 10/152
Département Génie Electrique et informatique Industrielle
Introduction Système embarqué et automate différent ?
Plan
I - Introduction
1 - Historique
2 - Système embarqué et automate différent ?
Eric TERNISIEN
IUT de Saint Dié des Vosges 11/152
Département Génie Electrique et informatique Industrielle
Introduction Système embarqué et automate différent ?
Eric TERNISIEN
IUT de Saint Dié des Vosges 12/152
Département Génie Electrique et informatique Industrielle
Introduction Système embarqué et automate différent ?
Structure externe
Carte embarquée Automate
Eric TERNISIEN
IUT de Saint Dié des Vosges 13/152
Département Génie Electrique et informatique Industrielle
Introduction Système embarqué et automate différent ?
Structure interne
Carte embarquée Automate
Eric TERNISIEN
IUT de Saint Dié des Vosges 14/152
Département Génie Electrique et informatique Industrielle
Introduction Système embarqué et automate différent ?
Pour ou contre ?
I Système embarqué :
X Peu coûteux (PC indus. < 1500e)
X Poids, encombrement et consommation réduits
X Système fragile
X Nécessite des connaissances en programmation
I API :
X Système robuste
X Système facilement maintenable (changement de modules)
X Ajout simple de modules (commande d’axe, module de communication, ...)
X Plus gourmand en énergie et plus volumineux
X Prix plus élevé
Eric TERNISIEN
IUT de Saint Dié des Vosges 15/152
Département Génie Electrique et informatique Industrielle
Systèmes multitâches Concepts
Plan
II - Systèmes multitâches
1 - Concepts
2 - Architectures des systèmes multitâches
3 - Les tâches
4 - Le noyau
Eric TERNISIEN
IUT de Saint Dié des Vosges 16/152
Département Génie Electrique et informatique Industrielle
Systèmes multitâches Concepts
Eric TERNISIEN
IUT de Saint Dié des Vosges 17/152
Département Génie Electrique et informatique Industrielle
Systèmes multitâches Concepts
Eric TERNISIEN
IUT de Saint Dié des Vosges 17/152
Département Génie Electrique et informatique Industrielle
Systèmes multitâches Concepts
Eric TERNISIEN
IUT de Saint Dié des Vosges 17/152
Département Génie Electrique et informatique Industrielle
Systèmes multitâches Concepts
idée reçue n◦ 1
Cette fonction est indépendante du nombre de processeurs présents physi-
quement dans l’ordinateur. En effet un système multiprocesseur n’est pas
nécessaire pour exécuter un système d’exploitation multitâche.
Eric TERNISIEN
IUT de Saint Dié des Vosges 19/152
Département Génie Electrique et informatique Industrielle
Systèmes multitâches Concepts
Eric TERNISIEN
IUT de Saint Dié des Vosges 19/152
Département Génie Electrique et informatique Industrielle
Systèmes multitâches Concepts
Eric TERNISIEN
IUT de Saint Dié des Vosges 19/152
Département Génie Electrique et informatique Industrielle
Systèmes multitâches Architectures des systèmes multitâches
Plan
II - Systèmes multitâches
1 - Concepts
2 - Architectures des systèmes multitâches
3 - Les tâches
4 - Le noyau
Eric TERNISIEN
IUT de Saint Dié des Vosges 20/152
Département Génie Electrique et informatique Industrielle
Systèmes multitâches Architectures des systèmes multitâches
Architecture monoprocesseur
ALU
Elle assure les opérations basiques de calcul arithmétique et de logique.
mémoire cache L1
Directement intégrée dans le processeur.
mémoire cache L2
Située au niveau du boı̂tier (chipset), entre le
cache L1 et la mémoire vive, elle est plus rapide
d’accès que cette dernière mais moins rapide
que le cache L1.
Architecture multiprocesseur
idée reçue n◦ 2
Un système multiprocesseur apporte une puissance de calcul accrue. Par
contre, il n’est pas vrai que si l’on utilise N processeurs, on augmente par
N la puissance de calcul.
En effet, des échanges doivent se faire entre les différentes tâches et si les bus
de données prévus à cet effet ne suffisent plus aux cadences de transferts, on
arrive vite à des situations conflictuelles.
La répartition des tâches dans les processeurs, simple à résoudre dans le cas
d’un système monoprocesseur, devient beaucoup plus compliquée avec une
machine multiprocesseur.
Deux grandes familles de systèmes multiprocesseur
I les systèmes à architecture répartie
I les systèmes à architecture distribuée (mémoire partagée)
Eric TERNISIEN
IUT de Saint Dié des Vosges 22/152
Département Génie Electrique et informatique Industrielle
Systèmes multitâches Architectures des systèmes multitâches
Architecture multiprocesseur
Système multiprocesseur à mémoire partagée (SMP)
Eric TERNISIEN
IUT de Saint Dié des Vosges 23/152
Département Génie Electrique et informatique Industrielle
Systèmes multitâches Architectures des systèmes multitâches
Architecture multiprocesseur
Système multiprocesseur à mémoire répartie
Eric TERNISIEN
IUT de Saint Dié des Vosges 24/152
Département Génie Electrique et informatique Industrielle
Systèmes multitâches Architectures des systèmes multitâches
Architecture multiprocesseur
Plan
II - Systèmes multitâches
1 - Concepts
2 - Architectures des systèmes multitâches
3 - Les tâches
4 - Le noyau
Eric TERNISIEN
IUT de Saint Dié des Vosges 26/152
Département Génie Electrique et informatique Industrielle
Systèmes multitâches Les tâches
Notion de tâche
Définition
Une tâche n’est pas un programme mais une partie d’un programme :
I Un programme est une entité statique regroupant à un endroit de la
mémoire un ensemble de données (code du programme, ressources, va-
riables, ...).
I Une tâche est une entité dynamique lancée par un programme. Son but
est de réaliser une action bien précise pour le programme.
Eric TERNISIEN
IUT de Saint Dié des Vosges 27/152
Département Génie Electrique et informatique Industrielle
Systèmes multitâches Les tâches
Descripteur de tâche
Pour qu’une tâche s’exécute, il faut lui allouer une zone mémoire composée
de :
Zone programme (code)
Stockage de la séquence d’instructions à réaliser et
des constantes.
Pile (stack)
Utilisée pour la manipulation des variables tempo-
raires (variables ou adresses définies dans la tâche).
Eric TERNISIEN
IUT de Saint Dié des Vosges 28/152
Département Génie Electrique et informatique Industrielle
Systèmes multitâches Les tâches
Descripteur de tâche
L’affectation d’un TIB à une tâche est réalisée par le système lors de
la création de la tâche.
Eric TERNISIEN
IUT de Saint Dié des Vosges 29/152
Département Génie Electrique et informatique Industrielle
Systèmes multitâches Les tâches
Descripteur de tâche
Exemple de TIB sur la carte BECK 51
#define TASK_STACKSIZE 1024 /* Taille de la pile */
/* Déclaration de la pile */
unsigned int tache1_stack[TASK_STACKSIZE];
int tache1ID; /* Identifiant de la t^
ache */
TaskDefBlock f1defblock =
{
tache1, /* Code de la t^ache */
{’T’,’A’,’S’,’1’},
&tache1_stack[TASK_STACKSIZE], /* Pointeur de pile */
TASK_STACKSIZE*sizeof(int),
0,
26, /* Priorité de la t^
ache */
10, /* Quantum de temps */
0,0,0,0
};
Eric TERNISIEN
IUT de Saint Dié des Vosges 30/152
Département Génie Electrique et informatique Industrielle
Systèmes multitâches Les tâches
Eric TERNISIEN
IUT de Saint Dié des Vosges 31/152
Département Génie Electrique et informatique Industrielle
Systèmes multitâches Les tâches
Eric TERNISIEN
IUT de Saint Dié des Vosges 32/152
Département Génie Electrique et informatique Industrielle
Systèmes multitâches Les tâches
I Tâches apériodiques :
X non critiques ;
X temps de réponse moyen espéré.
I Tâches sporadiques :
X critiques avec échéances rigides ;
X durée minimale entre les activations.
Eric TERNISIEN
IUT de Saint Dié des Vosges 33/152
Département Génie Electrique et informatique Industrielle
Systèmes multitâches Le noyau
Plan
II - Systèmes multitâches
1 - Concepts
2 - Architectures des systèmes multitâches
3 - Les tâches
4 - Le noyau
Eric TERNISIEN
IUT de Saint Dié des Vosges 34/152
Département Génie Electrique et informatique Industrielle
Systèmes multitâches Le noyau
Tous les systèmes d’exploitation possèdent un noyau qui sert d’interface entre
le matériel et les programmes.
Eric TERNISIEN
IUT de Saint Dié des Vosges 35/152
Département Génie Electrique et informatique Industrielle
Systèmes multitâches Le noyau
Architectures de noyau
Eric TERNISIEN
IUT de Saint Dié des Vosges 36/152
Département Génie Electrique et informatique Industrielle
Systèmes multitâches Le noyau
Fonctionnement
1 Les tâches sont en compétition pour l’obtention du processeur.
2 L’une d’entre elles est choisie par l’ordonnanceur.
3 Elle occupe le processeur pendant un certain temps.
4 Elle perd l’accès au processeur et retourne dans une file d’attente
Les processus bloqués sont répertoriés par le système dans des files d’attente.
Généralement une file d’attente particulière correspond à un type de blocage
(attente de ressource, attente d’événement, attente de fin de timer, etc...).
Eric TERNISIEN
IUT de Saint Dié des Vosges 37/152
Département Génie Electrique et informatique Industrielle
Systèmes multitâches Le noyau
Eric TERNISIEN
IUT de Saint Dié des Vosges 38/152
Département Génie Electrique et informatique Industrielle
Systèmes multitâches Le noyau
Ordonnanceur
L’ordonnanceur est un programme qui choisit les tâches à exécuter en fonction
d’un contexte établi par l’état des files, des ressources et des événements
extérieurs.
I Il intervient chaque fois qu’une tâche change d’état.
I Il assure la gestion des commutations des tâches de l’état bloquée à l’état
éligible.
I Il choisi une tâche dans l’ensemble des tâches éligibles.
I Il communique son TIB au répartiteur.
Répartiteur
Eric TERNISIEN
IUT de Saint Dié des Vosges 40/152
Département Génie Electrique et informatique Industrielle
Systèmes multitâches Le noyau
Toutes les opérations réalisées sur une tâche sont effectuées au niveau de son
descripteur. Dans la pratique, de nombreux systèmes utilisent une technique
de chaı̂nage de tâches en fonction de leur état et de certains facteurs d’ordre.
A chaque fois que le noyau récupère la main, il actualise tous ses pointeurs
système en fonction de l’évolution du système de tâches. Ces pointeurs lui
permettront de gérer le contenu des descripteurs et ainsi indirectement l’état
des tâches.
Eric TERNISIEN
IUT de Saint Dié des Vosges 42/152
Département Génie Electrique et informatique Industrielle
Systèmes multitâches Le noyau
A chaque fois que le noyau récupère la main, il actualise tous ses pointeurs
système en fonction de l’évolution du système de tâches. Ces pointeurs lui
permettront de gérer le contenu des descripteurs et ainsi indirectement l’état
des tâches.
Eric TERNISIEN
IUT de Saint Dié des Vosges 42/152
Département Génie Electrique et informatique Industrielle
Systèmes multitâches Le noyau
A chaque fois que le noyau récupère la main, il actualise tous ses pointeurs
système en fonction de l’évolution du système de tâches. Ces pointeurs lui
permettront de gérer le contenu des descripteurs et ainsi indirectement l’état
des tâches.
Eric TERNISIEN
IUT de Saint Dié des Vosges 42/152
Département Génie Electrique et informatique Industrielle
Systèmes multitâches Le noyau
A chaque fois que le noyau récupère la main, il actualise tous ses pointeurs
système en fonction de l’évolution du système de tâches. Ces pointeurs lui
permettront de gérer le contenu des descripteurs et ainsi indirectement l’état
des tâches.
Eric TERNISIEN
IUT de Saint Dié des Vosges 42/152
Département Génie Electrique et informatique Industrielle
Systèmes multitâches Le noyau
A chaque fois que le noyau récupère la main, il actualise tous ses pointeurs
système en fonction de l’évolution du système de tâches. Ces pointeurs lui
permettront de gérer le contenu des descripteurs et ainsi indirectement l’état
des tâches.
Eric TERNISIEN
IUT de Saint Dié des Vosges 42/152
Département Génie Electrique et informatique Industrielle
Systèmes multitâches Le noyau
A chaque fois que le noyau récupère la main, il actualise tous ses pointeurs
système en fonction de l’évolution du système de tâches. Ces pointeurs lui
permettront de gérer le contenu des descripteurs et ainsi indirectement l’état
des tâches.
Eric TERNISIEN
IUT de Saint Dié des Vosges 42/152
Département Génie Electrique et informatique Industrielle
Systèmes multitâches Le noyau
A chaque fois que le noyau récupère la main, il actualise tous ses pointeurs
système en fonction de l’évolution du système de tâches. Ces pointeurs lui
permettront de gérer le contenu des descripteurs et ainsi indirectement l’état
des tâches.
Eric TERNISIEN
IUT de Saint Dié des Vosges 42/152
Département Génie Electrique et informatique Industrielle
Systèmes multitâches Le noyau
Comme nous l’avons vu, c’est le noyau qui gère l’avancement des tâches et
fait évoluer le système d’exploitation.
Noyau préemptif
Exécution alternée des tâches. Les
tâches sont en concurrence pour
accéder au(x) processeur(s).
Eric TERNISIEN
IUT de Saint Di´ 43/152
epartement Génie Electrique et informatique Industrielle
Systèmes multitâches Le noyau
Problème
Si une application boucle sur elle-même, se bloque ou ne libère pas une res-
source, toutes les applications restent en attente et peuvent bloquer le système
d’exploitation.
Eric TERNISIEN
IUT de Saint Dié des Vosges 44/152
Département Génie Electrique et informatique Industrielle
Systèmes multitâches Le noyau
Noyau préemptif
Dans ce type de noyau, chaque application qui s’exécute peut se voir retirer
le processeur à n’importe quel instant.
Dans d’autres systèmes comme les systèmes temps réel, des tâches à forte
priorité peuvent également réquisitionner le processeur pour exécuter des trai-
tements importants (souvent liés à des interruptions).
Eric TERNISIEN
IUT de Saint Dié des Vosges 45/152
Département Génie Electrique et informatique Industrielle
Systèmes multitâches Le noyau
Unix
Multitâche préemptif depuis sa naissance en 1969.
Linux
Multitâche préemptif depuis sa naissance en 1991.
Macintosh
I MacOS à MacOS 9 : multitâche coopératif.
I depuis 2001 et MacOS X : multitâche préemptif.
Windows
I Windows 1.0 à Windows 3.11 : multitâche coopératif.
I Windows 95 à Windows Millenuim : multitâche hybride
I depuis Windows NT : multitâche préemptif.
Eric TERNISIEN
IUT de Saint Dié des Vosges 46/152
Département Génie Electrique et informatique Industrielle
Systèmes temps réel Concepts
Plan
Eric TERNISIEN
IUT de Saint Dié des Vosges 47/152
Département Génie Electrique et informatique Industrielle
Systèmes temps réel Concepts
Un système temps réel (ou noyau temps réel) est un ”programme” regroupant
un ensemble de fonctions ou primitives permettant de faire cohabiter
l’exécution en ”parallèle” de plusieurs ”programmes”, dits tâches ou proces-
sus. C’est donc un système multitâche.
Définition
Un système temps réel est un système capable de piloter à tout instant un
processus évolutif dans le temps.
Les résultats produits doivent être logiques et déterministes par rapport aux
entrées fournies.
Tous les changements d’états doivent être prévus y compris les fonctionne-
ments occasionnels type défauts.
Eric TERNISIEN
IUT de Saint Dié des Vosges 49/152
Département Génie Electrique et informatique Industrielle
Systèmes temps réel Concepts
Pour être exact, le résultat du calcul doit être fourni après un intervalle de
temps raisonnable car durant le calcul, le robot est toujours en mouvement.
Problème
Le robot doit pouvoir, à
l’échelle de réaction hu-
maine, avancer et observer
son entourage.
Eric TERNISIEN
IUT de Saint Dié des Vosges 50/152
Département Génie Electrique et informatique Industrielle
Systèmes temps réel Concepts
Conditions
Il faut que t1 + t2 + t3 < tlim . tlim dépendant de la vitesse du robot.
Eric TERNISIEN
IUT de Saint Dié des Vosges 51/152
Département Génie Electrique et informatique Industrielle
Systèmes temps réel Concepts
Conditions
Il faut que t1 + t2 + t3 < tlim . tlim dépendant de la vitesse du robot.
Conclusion
L’important n’est pas de connaı̂tre le temps de chaque tâche, mais de connaı̂tre
et de respecter tlim .
Eric TERNISIEN
IUT de Saint Dié des Vosges 51/152
Département Génie Electrique et informatique Industrielle
Systèmes temps réel Concepts
idée reçue n◦ 3
Un système temps réel n’est pas un système ”qui va le plus vite possible” mais
qui satisfait des contraintes temporelles.
Conclusion
La notion de temps réel est quelque chose de flou ! ! !.
Eric TERNISIEN
IUT de Saint Di´ 52/152
epartement Génie Electrique et informatique Industrielle
Systèmes temps réel Concepts
Eric TERNISIEN
IUT de Saint Dié des Vosges 53/152
Département Génie Electrique et informatique Industrielle
Systèmes temps réel Concepts
Eric TERNISIEN
IUT de Saint Dié des Vosges 54/152
Département Génie Electrique et informatique Industrielle
Systèmes temps réel Concepts
Eric TERNISIEN
IUT de Saint Dié des Vosges 55/152
Département Génie Electrique et informatique Industrielle
Systèmes temps réel Concepts
Déterminisme temporel
Les contraintes de temps doivent toujours être respectées. Le fait de dépasser
une échéance est assimilable à une défaillance du système
Prévisibilité
On cherche à savoir a priori si le système temps réel est en mesure de répondre
aux exigences du système contrôlé. Tous les cas doivent être étudiés.
Fiabilité
La fiabilité des composants matériels et logiciels est nécessaire pour garantir
le respect des contraintes.
Eric TERNISIEN
IUT de Saint Dié des Vosges 56/152
Département Génie Electrique et informatique Industrielle
Systèmes temps réel Composition d’un système temps réel
Plan
Eric TERNISIEN
IUT de Saint Dié des Vosges 57/152
Département Génie Electrique et informatique Industrielle
Systèmes temps réel Composition d’un système temps réel
Comme précisé au début de cette partie, un système temps réel est un système
multitâche. On va donc retrouver les composants déjà énoncé précédemment :
I Hardware : processeur, mémoire... ;
I Software : noyau avec des stratégies d’ordonnancement.
On pourra trouver des cartes embarquées aussi bien que des PCs industriels.
Les fonctionnalités proposées sont bien sûr différentes selon les cas.
Eric TERNISIEN
IUT de Saint Dié des Vosges 58/152
Département Génie Electrique et informatique Industrielle
Systèmes temps réel Composition d’un système temps réel
Quoi de plus ?
Une bibliothèque de fonctions
Avec un système temps réel, une bibliothèque de fonctions appelées primi-
tives est fournie. Ces dernières permettent de faire des appels systèmes et de
travailler directement avec le noyau.
Eric TERNISIEN
IUT de Saint Dié des Vosges 59/152
Département Génie Electrique et informatique Industrielle
Systèmes temps réel Composition d’un système temps réel
Quoi de plus ?
La prise en compte des interruptions
Les interruptions jouent un rôle fondamental dans les systèmes temps réel.
Ce sont elles qui permettent la prise en compte d’événements asynchrones
demandant une réponse temps réel.
Une interruption n’est pas une tâche, elle lance une tâche.
Quoi de plus ?
Gestion des interruptions en fonction du type de noyau
Noyau non-préemptif Noyau préemptif
Eric TERNISIEN
IUT de Saint Dié des Vosges 61/152
Département Génie Electrique et informatique Industrielle
Systèmes temps réel Composition d’un système temps réel
Quoi de plus ?
Phase de traitement d’une interruption
Eric TERNISIEN
IUT de Saint Dié des Vosges 62/152
Département Génie Electrique et informatique Industrielle
Systèmes temps réel Types de systèmes temps réel
Plan
Eric TERNISIEN
IUT de Saint Dié des Vosges 63/152
Département Génie Electrique et informatique Industrielle
Systèmes temps réel Types de systèmes temps réel
Eric TERNISIEN
IUT de Saint Dié des Vosges 64/152
Département Génie Electrique et informatique Industrielle
Systèmes temps réel Types de systèmes temps réel
Eric TERNISIEN
IUT de Saint Dié des Vosges 65/152
Département Génie Electrique et informatique Industrielle
Systèmes temps réel Types de systèmes temps réel
Eric TERNISIEN
IUT de Saint Dié des Vosges 66/152
Département Génie Electrique et informatique Industrielle
Systèmes temps réel Types de systèmes temps réel
Domaines d’application
I Télécommunications ;
I Multimédia ;
I Poursuite radar ;
I Traitement de flux de données.
Eric TERNISIEN
IUT de Saint Dié des Vosges 67/152
Département Génie Electrique et informatique Industrielle
Systèmes temps réel Types de systèmes temps réel
I Cas de l’image :
X Standard vidéo 30 images/sec (TVHD 60 images/sec), téléconférence 10
à 20 personnes ;
X MPEG-2 : débit en compression selon l’application de 1,5 à 35 Mbit/sec
(très gros consommateur de CPU).
I Cas du son :
X De 16kbit/sec téléphone à 128kbit/sec son qualité CD ;
X Dans une diffusion son/image la synchronisation des lèvres impose un
décalage de moins de 80 msec entre les flux audio et vidéo ;
X L’oreille est très sensible aux glitchs ou trous de quelques centaines de
millisecondes.
Eric TERNISIEN
IUT de Saint Dié des Vosges 68/152
Département Génie Electrique et informatique Industrielle
Systèmes temps réel Types de systèmes temps réel
Domaines d’application
I Transport ;
I Aérospatial ;
I Temps réel critique.
Eric TERNISIEN
IUT de Saint Dié des Vosges 69/152
Département Génie Electrique et informatique Industrielle
Systèmes temps réel Types de systèmes temps réel
Eric TERNISIEN
IUT de Saint Dié des Vosges 70/152
Département Génie Electrique et informatique Industrielle
Les stratégies d’ordonnancement Généralités
Plan
Eric TERNISIEN
IUT de Saint Dié des Vosges 71/152
Département Génie Electrique et informatique Industrielle
Les stratégies d’ordonnancement Généralités
Eric TERNISIEN
IUT de Saint Dié des Vosges 72/152
Département Génie Electrique et informatique Industrielle
Les stratégies d’ordonnancement Généralités
Les deux critères qui peuvent donner un aperçu des performances d’un ordon-
nanceur sont :
I Temps moyen d’attente : moyenne de tous les temps d’attente de chaque
tâche ;
I Temps moyen d’exécution : moyenne de tous les temps d’exécution de
chaque tâche.
Eric TERNISIEN
IUT de Saint Dié des Vosges 73/152
Département Génie Electrique et informatique Industrielle
Les stratégies d’ordonnancement Noyau non-préemptif (coopératif)
Plan
Eric TERNISIEN
IUT de Saint Dié des Vosges 74/152
Département Génie Electrique et informatique Industrielle
Les stratégies d’ordonnancement Noyau non-préemptif (coopératif)
La pile FIFO
Fonctionnement
Les tâches sont exécutées dans l’ordre d’arrivée.
Exemple
Eric TERNISIEN
IUT de Saint Dié des Vosges 75/152
Département Génie Electrique et informatique Industrielle
Les stratégies d’ordonnancement Noyau non-préemptif (coopératif)
Fonctionnement
Les tâches sont rangées dans la file en fonction de leur temps de calcul.
Inconvénients
Cette stratégie favorise les traitements courts par rapport aux traitements
longs.
I Il faut une connaissance a priori de la durée du traitement ;
I Il y a privation d’accès au processeur des processus longs.
Eric TERNISIEN
IUT de Saint Dié des Vosges 76/152
Département Génie Electrique et informatique Industrielle
Les stratégies d’ordonnancement Noyau non-préemptif (coopératif)
Eric TERNISIEN
IUT de Saint Dié des Vosges 77/152
Département Génie Electrique et informatique Industrielle
Les stratégies d’ordonnancement Noyau préemptif
Plan
Eric TERNISIEN
IUT de Saint Dié des Vosges 78/152
Département Génie Electrique et informatique Industrielle
Les stratégies d’ordonnancement Noyau préemptif
Fonctionnement
La technique du temps partagé est utilisé dans les systèmes d’exploitation où
l’utilisateur est susceptible d’intervenir fréquemment et de manière asynchrone
par rapport au fonctionnement du système.
Une tâche en cours d’exécution est interrompue tous les n ticks (unité de base
du noyau ≈ 10ms) et replacée en fin de file. Les n ticks sont appelés Quantum
de temps (50ms à 100ms)
Eric TERNISIEN
IUT de Saint Dié des Vosges 79/152
Département Génie Electrique et informatique Industrielle
Les stratégies d’ordonnancement Noyau préemptif
Eric TERNISIEN
IUT de Saint Dié des Vosges 80/152
Département Génie Electrique et informatique Industrielle
Les stratégies d’ordonnancement Noyau préemptif
Eric TERNISIEN
IUT de Saint Dié des Vosges 81/152
Département Génie Electrique et informatique Industrielle
Les stratégies d’ordonnancement Noyau préemptif
Eric TERNISIEN
IUT de Saint Dié des Vosges 81/152
Département Génie Electrique et informatique Industrielle
Les stratégies d’ordonnancement Noyau préemptif
Eric TERNISIEN
IUT de Saint Dié des Vosges 81/152
Département Génie Electrique et informatique Industrielle
Les stratégies d’ordonnancement Noyau préemptif
Conclusion
I Les tâches commencent plus vite à s’exécuter (temps d’attente réduit).
I Les tâches mettent plus de temps à s’exécuter (temps d’exécution plus
grand).
Eric TERNISIEN
IUT de Saint Dié des Vosges 81/152
Département Génie Electrique et informatique Industrielle
Les stratégies d’ordonnancement Noyau préemptif
Néanmoins, quand cela est possible, le problème est que si le choix de l’unité
de temps est mal adapté, on risque de consommer ± de temps machine pour la
commutation des tâches.
Eric TERNISIEN
IUT de Saint Dié des Vosges 82/152
Département Génie Electrique et informatique Industrielle
Les stratégies d’ordonnancement Noyau préemptif
Si dans les mêmes conditions, le quantum est fixé à 4 ticks. Chaque tâche
attendra pendant un cycle de plus de 16 ticks pour reprendre la main. Par
contre le Noyau, lui, occupe toujours le processeur pendant 2.5 ticks non
négligeables devant les 16 ticks (16% du temps de cycle ⇒ début d’overhead).
Eric TERNISIE
IUT de Saint Dié des Vosges 83/152
Département Génie Electrique et informatique Industrielle
Les stratégies d’ordonnancement Noyau préemptif
Eric TERNISIEN
IUT de Saint Dié des Vosges 84/152
Département Génie Electrique et informatique Industrielle
Les stratégies d’ordonnancement Noyau préemptif
Eric TERNISIEN
IUT de Saint Dié des Vosges 85/152
Département Génie Electrique et informatique Industrielle
Les stratégies d’ordonnancement Noyau préemptif
Eric TERNISIEN
IUT de Saint Dié des Vosges 86/152
Département Génie Electrique et informatique Industrielle
Les stratégies d’ordonnancement Noyau préemptif
Eric TERNISIEN
IUT de Saint Dié des Vosges 86/152
Département Génie Electrique et informatique Industrielle
Les stratégies d’ordonnancement Noyau préemptif
Eric TERNISIEN
IUT de Saint Dié des Vosges 86/152
Département Génie Electrique et informatique Industrielle
Les stratégies d’ordonnancement Noyau préemptif
Eric TERNISIEN
IUT de Saint Dié des Vosges 86/152
Département Génie Electrique et informatique Industrielle
Les stratégies d’ordonnancement Noyau préemptif
Eric TERNISIEN
IUT de Saint Dié des Vosges 86/152
Département Génie Electrique et informatique Industrielle
Les stratégies d’ordonnancement Noyau préemptif
Eric TERNISIEN
IUT de Saint Dié des Vosges 86/152
Département Génie Electrique et informatique Industrielle
Les stratégies d’ordonnancement Noyau préemptif
Eric TERNISIEN
IUT de Saint Dié des Vosges 86/152
Département Génie Electrique et informatique Industrielle
Les stratégies d’ordonnancement Noyau préemptif
Eric TERNISIEN
IUT de Saint Dié des Vosges 86/152
Département Génie Electrique et informatique Industrielle
Les stratégies d’ordonnancement Noyau préemptif
Eric TERNISIEN
IUT de Saint Dié des Vosges 86/152
Département Génie Electrique et informatique Industrielle
Les stratégies d’ordonnancement Noyau préemptif
Eric TERNISIEN
IUT de Saint Dié des Vosges 86/152
Département Génie Electrique et informatique Industrielle
Les stratégies d’ordonnancement Noyau préemptif
Eric TERNISIEN
IUT de Saint Dié des Vosges 86/152
Département Génie Electrique et informatique Industrielle
Les stratégies d’ordonnancement Noyau préemptif
Eric TERNISIEN
IUT de Saint Dié des Vosges 86/152
Département Génie Electrique et informatique Industrielle
Les stratégies d’ordonnancement Noyau préemptif
Eric TERNISIEN
IUT de Saint Dié des Vosges 86/152
Département Génie Electrique et informatique Industrielle
Les stratégies d’ordonnancement Noyau préemptif
Eric TERNISIEN
IUT de Saint Dié des Vosges 86/152
Département Génie Electrique et informatique Industrielle
Les stratégies d’ordonnancement Noyau préemptif
Eric TERNISIEN
IUT de Saint Dié des Vosges 86/152
Département Génie Electrique et informatique Industrielle
Les stratégies d’ordonnancement Noyau préemptif
Eric TERNISIEN
IUT de Saint Dié des Vosges 86/152
Département Génie Electrique et informatique Industrielle
Les stratégies d’ordonnancement Noyau préemptif
Eric TERNISIEN
IUT de Saint Dié des Vosges 87/152
Département Génie Electrique et informatique Industrielle
Les stratégies d’ordonnancement Noyau préemptif
Conclusion
En conclusion, la multiplication des files d’attente associées à des quantums
différents favorise bien l’exécution des tâches les plus courtes, mais retarde le
démarrage de l’exécution des tâches les plus longues.
Eric TERNISIEN
IUT de Saint Dié des Vosges 87/152
Département Génie Electrique et informatique Industrielle
Les stratégies d’ordonnancement Noyau préemptif
Fonctionnement
Le temps partagé est idéal pour les systèmes transactionnels (répartition
équitable de l’accès au processeur).
Eric TERNISIEN
IUT de Saint Dié des Vosges 88/152
Département Génie Electrique et informatique Industrielle
Les stratégies d’ordonnancement Noyau préemptif
Eric TERNISIEN
IUT de Saint Dié des Vosges 89/152
Département Génie Electrique et informatique Industrielle
Les stratégies d’ordonnancement Noyau préemptif
Eric TERNISIEN
IUT de Saint Dié des Vosges 90/152
Département Génie Electrique et informatique Industrielle
Les stratégies d’ordonnancement Noyau préemptif
I condition suffisante :
N
X Ci 1
m= 6 N(2 N − 1)
Pi
i=1
avec
I m : taux d’occupation du processeur ;
I Ci : temps de calcul de la tâche i ; Si N → ∞, on a 70% d’occupation.
I Pi : période de la tâche i ;
I N : nombre de tâches.
Eric TERNISIEN
IUT de Saint Dié des Vosges 91/152
Département Génie Electrique et informatique Industrielle
Les stratégies d’ordonnancement Noyau préemptif
Le principe est le même sauf que les priorités sont affectées aux tâches selon
l’ordre inverse de leurs échéances.
Eric TERNISIEN
IUT de Saint Dié des Vosges 92/152
Département Génie Electrique et informatique Industrielle
Les stratégies d’ordonnancement Noyau préemptif
Algorithme RM et DM
Avantages
Inconvénients
I mécanisme simple
I hypothèses restrictives
I s’implante naturellement avec
I uniquement avec préemption
les OS du marché
I indépendance impérative
I peut être utilisé pour affecter
entre les tâches
des priorités d’interruptions
Eric TERNISIEN
IUT de Saint Dié des Vosges 93/152
Département Génie Electrique et informatique Industrielle
Les stratégies d’ordonnancement Noyau préemptif
Eric TERNISIEN
IUT de Saint Dié des Vosges 94/152
Département Génie Electrique et informatique Industrielle
Les stratégies d’ordonnancement Noyau préemptif
Exemple
Soient 2 tâches T1 et T2 de période respective P1 et P2 . T1 et T2 ont
besoin respectivement de 50% de leur période P1 et P2 pour s’exécuter
complètement. On suppose que P1 et P2 sont dans le rapport 3/2.
Eric TERNISIEN
IUT de Saint Dié des Vosges 95/152
Département Génie Electrique et informatique Industrielle
Les stratégies d’ordonnancement Noyau préemptif
A chaque instant, la tâche qui s’exécute est celle dont l’échéance est la plus
proche.
Eric TERNISIEN
IUT de Saint Dié des Vosges 96/152
Département Génie Electrique et informatique Industrielle
Les stratégies d’ordonnancement Noyau préemptif
avec
I m : taux d’occupation du processeur ;
I Ci : temps de calcul de la tâche i ;
I Pi : période de la tâche i ; Si N → ∞, on a 100% d’occupation.
I Di : échéance de la tâche i ;
I N : nombre de tâches.
Eric TERNISIEN
IUT de Saint Dié des Vosges 97/152
Département Génie Electrique et informatique Industrielle
Les stratégies d’ordonnancement Noyau préemptif
A chaque instant la tâche qui s’exécute est celle qui a la marge la plus courte
(marge = échéance - temps de calcul restant).
Eric TERNISIEN
IUT de Saint Dié des Vosges 98/152
Département Génie Electrique et informatique Industrielle
Les stratégies d’ordonnancement Noyau préemptif
Inconvénients
I mauvais comportement en cas
Avantages de surcharge
I mécanisme simple I uniquement avec préemption
I optimise l’usage des res- I indépendance impérative
sources entre les tâches
I bien adapté aux tâches I pas implantable facilement
périodiques à courtes dans les OS actuels
échéances I nécessite de maintenir à
jour le temps de calcul déjà
consommé par chaque tâche
Eric TERNISIEN
IUT de Saint Dié des Vosges 99/152
Département Génie Electrique et informatique Industrielle
Les stratégies d’ordonnancement Noyau préemptif
Eric TERNISIEN
IUT de Saint Dié des Vosges 100/152
Département Génie Electrique et informatique Industrielle
Les stratégies d’ordonnancement Noyau préemptif
Exemple
Eric TERNISIEN
IUT de Saint Dié des Vosges 101/152
Département Génie Electrique et informatique Industrielle
Communication entre tâches Généralités
Plan
Eric TERNISIEN
IUT de Saint Dié des Vosges 102/152
Département Génie Electrique et informatique Industrielle
Communication entre tâches Généralités
Il faut gérer les relations entre l’ensemble des tâches qui communiquent avec
le système informatique. Il y a 3 types de relations possibles.
Tâches indépendantes
Eric TERNISIEN
IUT de Saint Dié des Vosges 103/152
Département Génie Electrique et informatique Industrielle
Communication entre tâches Généralités
Ressources communes
Tâches liées
Eric TERNISIEN
IUT de Saint Dié des Vosges 104/152
Département Génie Electrique et informatique Industrielle
Communication entre tâches Synchronisation entre tâches
Plan
Eric TERNISIEN
IUT de Saint Dié des Vosges 105/152
Département Génie Electrique et informatique Industrielle
Communication entre tâches Synchronisation entre tâches
Principes
Définition
Le problème de synchronisation se pose dès que des tâches doivent réagir
face à des signaux associés à des événements.
Ces événements sont soit des événements hardwares (venant des périphériques)
ou softwares (venant d’autres tâches).
Synchronisation directe
Une tâche agit directement sur une autre tâche ⇒ le nom de la tâche à
synchroniser doit être connu de la tâche qui la contrôle.
Eric TERNISIEN
IUT de Saint Dié des Vosges 108/152
Département Génie Electrique et informatique Industrielle
Communication entre tâches Synchronisation entre tâches
Eric TERNISIEN
IUT de Saint Dié des Vosges 109/152
Département Génie Electrique et informatique Industrielle
Communication entre tâches Synchronisation entre tâches
Eric TERNISIEN
IUT de Saint Dié des Vosges 111/152
Département Génie Electrique et informatique Industrielle
Communication entre tâches Synchronisation entre tâches
Eric TERNISIEN
IUT de Saint Dié des Vosges 112/152
Département Génie Electrique et informatique Industrielle
Communication entre tâches Partage de ressources et exclusion mutuelle
Plan
Eric TERNISIEN
IUT de Saint Dié des Vosges 113/152
Département Génie Electrique et informatique Industrielle
Communication entre tâches Partage de ressources et exclusion mutuelle
Principes
Définition
La ressource est un objet nécessaire à l’exécution d’une tâche. L’exécution
concurrente de plusieurs tâches fait apparaı̂tre le problème de l’accès simultané
à une même ressource.
Si une ressource est utilisée par plusieurs tâches, elle est dite commune
(partageable). A une ressource partageable, on associe une capacité N. Dans
ce cas la ressource est N-partageable. Si N=1, la ressource est une ressource
critique.
Eric TERNISIEN
IUT de Saint Dié des Vosges 114/152
Département Génie Electrique et informatique Industrielle
Communication entre tâches Partage de ressources et exclusion mutuelle
Exclusion mutuelle
Eric TERNISIEN
IUT de Saint Dié des Vosges 115/152
Département Génie Electrique et informatique Industrielle
Communication entre tâches Partage de ressources et exclusion mutuelle
Exclusion mutuelle
Compte en banque
T1 compte T2 compte
...
-50e
lire compte
...
lire compte
compte = compte + 300e 250e
écrire compte
...
compte = compte - 50e
écrire compte -100e
...
Eric TERNISIEN
IUT de Saint Dié des Vosges 116/152
Département Génie Electrique et informatique Industrielle
Communication entre tâches Partage de ressources et exclusion mutuelle
Attente active
Principe du verrou
L’exclusion est réalisée à l’aide d’un verrou binaire qui indique si la ressource
est libre ou utilisée.
Eric TERNISIEN
IUT de Saint Dié des Vosges 117/152
Département Génie Electrique et informatique Industrielle
Communication entre tâches Partage de ressources et exclusion mutuelle
Attente active
Exemple d’exclusion mutuelle à base de verrou
int verrou;
void prendreVerrou(void)
{
while(verrou==1);/* Tant que le verrou n’est pas libre
j’attend ... */
verrou=1; /* Maintenant qu’il est libre je le prends */
return;
}
void rendreVerrou(void)
{
verrou=0; /* je libere l’acces a la ressource */
return;
}
Eric TERNISIEN
IUT de Saint Dié des Vosges 118/152
Département Génie Electrique et informatique Industrielle
Communication entre tâches Partage de ressources et exclusion mutuelle
Attente passive
L’exclusion est réalisée à l’aide d’un sémaphore qui indique si la ressource est
libre ou utilisée.
Eric TERNISIEN
IUT de Saint Dié des Vosges 119/152
Département Génie Electrique et informatique Industrielle
Communication entre tâches Partage de ressources et exclusion mutuelle
Attente passive
Eric TERNISIEN
IUT de Saint Dié des Vosges 120/152
Département Génie Electrique et informatique Industrielle
Communication entre tâches Partage de ressources et exclusion mutuelle
Attente passive
Compte en banque
Eric TERNISIEN
IUT de Saint Dié des Vosges 121/152
Département Génie Electrique et informatique Industrielle
Communication entre tâches Partage de ressources et exclusion mutuelle
Eric TERNISIEN
IUT de Saint Dié des Vosges 122/152
Département Génie Electrique et informatique Industrielle
Communication entre tâches Partage de ressources et exclusion mutuelle
Eric TERNISIEN
IUT de Saint Dié des Vosges 123/152
Département Génie Electrique et informatique Industrielle
Automate et multitâche Rappels
Plan
VI - Automate et multitâche
1 - Rappels
2 - Questions
3 - Ordonnancement des tâches
Eric TERNISIEN
IUT de Saint Dié des Vosges 124/152
Département Génie Electrique et informatique Industrielle
Automate et multitâche Rappels
I Périodique
Elle est surveillée par un chien de garde (Watchdog) et mise en défaut en cas
de dépassement du temps d’exécution imparti.
Eric TERNISIEN
IUT de Saint Dié des Vosges 126/152
Département Génie Electrique et informatique Industrielle
Automate et multitâche Questions
Plan
VI - Automate et multitâche
1 - Rappels
2 - Questions
3 - Ordonnancement des tâches
Eric TERNISIEN
IUT de Saint Dié des Vosges 127/152
Département Génie Electrique et informatique Industrielle
Automate et multitâche Questions
Eric TERNISIEN
IUT de Saint Dié des Vosges 128/152
Département Génie Electrique et informatique Industrielle
Automate et multitâche Questions
Eric TERNISIEN
IUT de Saint Dié des Vosges 128/152
Département Génie Electrique et informatique Industrielle
Automate et multitâche Questions
Eric TERNISIEN
IUT de Saint Dié des Vosges 128/152
Département Génie Electrique et informatique Industrielle
Automate et multitâche Questions
Eric TERNISIEN
IUT de Saint Dié des Vosges 129/152
Département Génie Electrique et informatique Industrielle
Automate et multitâche Questions
OUI ! ! !
Eric TERNISIEN
IUT de Saint Dié des Vosges 129/152
Département Génie Electrique et informatique Industrielle
Automate et multitâche Questions
Eric TERNISIEN
IUT de Saint Dié des Vosges 129/152
Département Génie Electrique et informatique Industrielle
Automate et multitâche Questions
Eric TERNISIEN
IUT de Saint Dié des Vosges 129/152
Département Génie Electrique et informatique Industrielle
Automate et multitâche Ordonnancement des tâches
Plan
VI - Automate et multitâche
1 - Rappels
2 - Questions
3 - Ordonnancement des tâches
Eric TERNISIEN
IUT de Saint Dié des Vosges 130/152
Département Génie Electrique et informatique Industrielle
Automate et multitâche Ordonnancement des tâches
Ordonnancement
C’est un ordonnancement statique préemptif (type Rate Monotonic). La prio-
rité est attribuée à la tâche pendant la programmation.
Exemple
Tâche maı̂tre cyclique, tâche rapide de période 20ms et une tâche
événementielle.
Eric TERNISIEN
IUT de Saint Dié des Vosges 131/152
Département Génie Electrique et informatique Industrielle
Automate et multitâche Ordonnancement des tâches
Communication
Les tâches ne peuvent communiquer entre elles que par des zones mémoires
allouées. Les zones de communication sont des ressources partagées qui ne
peuvent être lues ou écrites que par une seule tâche à la fois.
Eric TERNISIEN
IUT de Saint Dié des Vosges 132/152
Département Génie Electrique et informatique Industrielle
Automate et multitâche Ordonnancement des tâches
Chez Siemens
Les tâches sont réparties par blocs d’organisation (OB) qui ont chacun une
priorité prédéfinie. L’ensemble des OB regroupe les tâches maı̂tres, rapides et
événementielles.
I OB1 : tâche maı̂tre ;
I OB10 à OB17 : alarmes horaires ;
I OB20 à OB23 : alarmes temporisées ;
I OB30 à OB38 : alarmes d’horloge ;
I OB40 à OB47 : alarme process ;
I OB80 à OB87 : réaction aux erreurs asynchrones ;
I OB90 : tâche de fond (système) ;
I OB121 - OB122 : réaction aux erreurs synchrones.
Eric TERNISIEN
IUT de Saint Dié des Vosges 133/152
Département Génie Electrique et informatique Industrielle
Automate et multitâche Ordonnancement des tâches
Chez Schneider
Eric TERNISIEN
IUT de Saint Dié des Vosges 134/152
Département Génie Electrique et informatique Industrielle
Automate et multitâche Ordonnancement des tâches
Eric TERNISIEN
IUT de Saint Dié des Vosges 135/152
Département Génie Electrique et informatique Industrielle
Automatismes embarqués Rappels
Plan
Eric TERNISIEN
IUT de Saint Dié des Vosges 136/152
Département Génie Electrique et informatique Industrielle
Automatismes embarqués Rappels
La norme
Les API se programment à l’aide des 5 langages définis par la norme IEC
61131-3.
Le langage SFC (sequential function chart)
Langage graphique utilisé pour décrire les opérations
séquentielles. Le procédé est représenté par une suite
connue d’étapes reliées entre elles par des transitions.
Eric TERNISIEN
IUT de Saint Dié des Vosges 137/152
Département Génie Electrique et informatique Industrielle
Automatismes embarqués Rappels
La norme
Le langage LD (ladder diagram)
représentation graphique d’équations booléennes com-
binant des contacts (en entrée) et des relais (en sortie).
Eric TERNISIEN
IUT de Saint Dié des Vosges 138/152
Département Génie Electrique et informatique Industrielle
Automatismes embarqués L’automatisme autrement
Plan
Eric TERNISIEN
IUT de Saint Dié des Vosges 139/152
Département Génie Electrique et informatique Industrielle
Automatismes embarqués L’automatisme autrement
Les cartes embarquées sont des équipement dédiés à des applications pour
lesquelles un automate est trop coûteux, trop volumineux ou n’offrant pas
assez de fonctionnalités (gestion simple d’affichage, de divers protocoles
(RS232, I2C, ...), ...).
Eric TERNISIEN
IUT de Saint Dié des Vosges 140/152
Département Génie Electrique et informatique Industrielle
Automatismes embarqués L’automatisme autrement
Eric TERNISIEN
IUT de Saint Dié des Vosges 141/152
Département Génie Electrique et informatique Industrielle
Automatismes embarqués Grafcet vs Machine d’états
Plan
Eric TERNISIEN
IUT de Saint Dié des Vosges 142/152
Département Génie Electrique et informatique Industrielle
Automatismes embarqués Grafcet vs Machine d’états
r1
1 KM1
r2
2 V 1+
r3 r4
3 4
r5 r6
Eric TERNISIEN
IUT de Saint Dié des Vosges 143/152
Département Génie Electrique et informatique Industrielle
Automatismes embarqués Grafcet vs Machine d’états
Les transitions
Grafcet Algorithme
Si l’état vaut 1 (étape 1), la machine ne change pas
1 KM1 d’état tant que la réceptivité associée à la transition
n’est pas validée.
r2 while 1 do
...
2 V 1+ if etat = 1 ET r2 then
etat = 2
end if
....
end while
Eric TERNISIEN
IUT de Saint Dié des Vosges 144/152
Département Génie Electrique et informatique Industrielle
Automatismes embarqués Grafcet vs Machine d’états
Les divergences en OU
Algorithme
Grafcet while 1 do
...
2
if etat = 2 ET r3 then
etat = 3
r3 r4 end if
if etat = 2 ET r4 then
3 4 etat = 4
end if
...
end while
Eric TERNISIEN
IUT de Saint Dié des Vosges 145/152
Département Génie Electrique et informatique Industrielle
Automatismes embarqués Grafcet vs Machine d’états
Les convergences en OU
Grafcet
Algorithme
3 4
while 1 do
r5 r6 ...
if (etat = 3 ET r5 ) OU (etat = 4 ET r6 ) then
etat = 0
end if
0
...
end while
Eric TERNISIEN
IUT de Saint Dié des Vosges 146/152
Département Génie Electrique et informatique Industrielle
Automatismes embarqués Grafcet vs Machine d’états
Les divergences en ET
Algorithme
Grafcet
La solution consiste à transformer chaque
1 KM1 branche du ET en une machine (tâche)
r1 indépendante et à les synchroniser (avec ou
sans tâche principale).
2 V 1+ 3 KM12
Eric TERNISIEN
IUT de Saint Dié des Vosges 147/152
Département Génie Electrique et informatique Industrielle
Automatismes embarqués Grafcet vs Machine d’états
Les actions
Algorithme
Grafcet while 1 do
...
1 KM1 Traitement de l’état de la machine
....
r2 if (etat = 1) then
KM1 = 1
2 V 1+ end if
if (etat = 2) then
V1+ = 1
end if
end while
Eric TERNISIEN
IUT de Saint Dié des Vosges 148/152
Département Génie Electrique et informatique Industrielle
Automatismes embarqués Grafcet vs Machine d’états
Exemple
r1
1 KM1
r2
2 V 1+
r3 r4
3 4
r5 r6
Eric TERNISIEN
IUT de Saint Dié des Vosges 149/152
Département Génie Electrique et informatique Industrielle
Automatismes embarqués Grafcet vs Machine d’états
Exemple
Eric TERNISIEN
IUT de Saint Dié des Vosges 150/152
Département Génie Electrique et informatique Industrielle
Automatismes embarqués Grafcet vs Machine d’états
La synchronisation de graphes
Algorithme
while 1 do
...
if (etatCourant = 1 ET r1 ) while 1 do
then ...
Grafcet etatFutur = 2 if (etatCourant = 15) then
vendre(sem) pendre(sem)
end if etatFutur = 16
if (etatCourant = 2 ET r2 ) end if
1 KM1 15 KM12 then if (etatCourant = 16 ET r21 )
etatFutur = ... then
r1 X2 end if etatFutur = ...
... end if
etatCourant = etatFutur ...
2 V 1+ 16
if (etatCourant = 1) then etatCourant = etatFutur
KM1 = 1 if (etatCourant = 15) then
r2 r21 end if KM12 = 1
if (etatCourant = 2) then end if
V1+ = 1 ...
end if end while
...
end while
Algorithme
Grafcet while 1 do
...
while 1 do
if (etatCourant = 1 ET r1 ) then
...
pendre(sem)
if (etatCourant = 11 ET r20 ) then
1 KM1 11 KM12 etatFutur = 2
pendre(sem)
end if
etatFutur = 12
if (etatCourant = 2 ET r2 ) then
r1 .X 12.X 13 r20 .X 2.X 3 end if
etatFutur = 3
if (etatCourant = 12 ET r21 ) then
end if
2 V 1+ 12 etatFutur = 13
if (etatCourant = 3 ET r3 ) then
end if
etatFutur = 4
if (etatCourant = 13 ET r22 ) then
r2 r21 vendre(sem)
etatFutur = 14
end if
vendre(sem)
if (etatCourant = 4 ET r4 ) then
3 13 end if
etatFutur = ...
if (etatCourant = 14 ET r23 ) then
end if
r3 r22 etatFutur = ...
...
end if
etatCourant = etatFutur
...
4 14 if (etatCourant = 1) then
etatCourant = etatFutur
KM1 = 1
if (etatCourant = 11) then
r4 r23 end if
KM12 = 1
if (etatCourant = 2) then
end if
V1+ = 1
...
end if
end while
...
end while
Eric TERNISIEN
IUT de Saint Dié des Vosges 152/152
Département Génie Electrique et informatique Industrielle