Architecture logicielle pour le contrôle-commande Informatique Industrielle 1
Systèmes informatiques Opérateur hiérarchie IHM Fonctions/Traitement Entrées Système informatique Sorties Interface entrées/sorties Processus Capteurs Procédé Actionneurs Informatique Industrielle 2
Systèmes informatiques ØLes systèmes informatiques pour les applications de contrôle-commande ØRappels sur les systèmes d exploitations ØNotions de tâches et thread ØVers les exécutifs temps-réels ØProgrammation multitâches Informatique Industrielle 3
Systèmes informatiques Systèmes transformationnels Données fournies à l'initialisation par l'utilisateur Aucune contrainte de temps sur l obtention du résultat Ex : Calcul Scientifique, gestion de base de données Systèmes interactifs Données produites par l'interaction avec l'environnement (clavier, fichier, réseaux, etc.) Contraintes temporelles réduites (confort de travail) Ex : Outils bureautique Systèmes de contrôlecommande Données fournies par l environnement physique réel Contrainte de temps forte pour l obtention du résultat Systèmes temps-réel ou systèmes réactifs : Systèmes embarqués Systèmes où l intervention humaine est limitée Résultats entièrement conditionnés par l environnement connecté Instants de production dépendant de la dynamique du procédé Instants de production fortement contraints Informatique Industrielle 4
Contraintes temporelles des SNCC 1 heure Temps Contrôle en chimie 1 minute Contrôle de fabrication 1 seconde 10 ms 1 ms 1 μs 100 ns Systèmes vocaux Systèmes radar Systèmes mesures scientifiques Robotique Source : Collet 2005 Applications Informatique Industrielle 5
Systèmes d exploitation (rappels) Définition Ensemble de programmes qui permettent Ø Contrôler et gérer les ressources matérielles d un ordinateur Ø Fournir des services aux utilisateurs pour accéder à ces ressources Caractéristiques Ø Mono-utilisateur ou multi-utilisateur Ø Multitâches ou mono-tâche Ø Distribué ou non Ø Temps-réel Ø Embarqué Utilisateur Logiciels d application Système d exploitation Matériel Informatique Industrielle 6
Systèmes d exploitation (rappels) Le cœur du système d exploitation : le noyau Applications Noyau (kernel) CPU Mémoire Pilotes Les noyaux spécifiques à une architecture matérielle, souvent mono-tâche, d autres généralistes souvent multitâches et multiutilisateurs. Deux architectures : Ø Noyaux monolithiques Ø Monolithiques non modulaires et modulaires Ø Micro-noyaux Ø Noyaux hybrides Informatique Industrielle Source Wikipédia 7
Systèmes d exploitation (rappels) Noyaux monolithiques L ensemble des fonctions du systèmes et des pilotes sont regroupés dans un seul bloc et un seul binaire généré à la compilation Informatique Industrielle Source Wikipédia 8
Systèmes d exploitation (rappels) Noyaux monolithiques modulaires Les fonctions principales sont regroupées au sein d un seul bloc de code unique. Les parties optionnelles, les pilotes de périphériques par exemple, sont regroupées dans des modules qui sont des entités bien distinctes du noyau. Informatique Industrielle Source Wikipédia 9
Systèmes d exploitation (rappels) Micro-noyaux Dans ce type de configuration, on cherche à minimiser les fonctions nécessitant le noyau. On utilisera des services à l extérieur dans l espace utilisateur Informatique Industrielle Source Wikipédia 10
Systèmes d exploitation (rappels) Noyaux Noyau monolithique Noyau monolithique modulaire Micro-noyau (enrichi) Anciens BSD BSD 4.4 QNX Linux (version < 1.2) Linux (version >1.2) RTAI SunOS 5 VxWords Grandes diversités d OS Ø Unix : crée 1969 Ø Linux : clone gratuit d UNIX à Xenomai, Linux RT, Ø Mac OS : première interface graphique Ø MS-DOS : équipe les premiers PC Ø MS-Windows Ø Windows NT Informatique Industrielle 11
Systèmes d exploitation Limitations des systèmes d exploitation généralistes Ø Indépendance desprocessusè gestion communication entre processus Ø Optimisation locale (traitement de données) è nuit à la prédictibilité Ø Gestion grossière dutemps Ø Favorise l équité entre processus è impactles temps de réponse Ø Nombreux processusde maintenance pour favoriser l utilisation du système Ø Mémoire virtuelle è nuit à la prédictibilité Ce type d exécutif n estgénéralement paspréemptible. La gestion de certain événement utilise des fonctions haut niveau àlatence Informatique Industrielle 12
Pourquoi les systèmes temps-réel Notions d exécutif temps-réel (noyau temps-réel Exécutif : Ø Ordonnancement des tâches Ø Protéger l accèsaux ressources partagées Ø Recevoir et transmettre les signaux de synchronisation Un exécutif temps-réel peut être utilisé à la place d un système d exploitation généraliste, lorsque le système de contrôle-commande estsoumis à descontraintes temporelles ou qu ildoitêtre embarqué sur un microcontrôleur. Informatique Industrielle 13
Systèmes temps-réel Définition Contraintes des systèmes temps-réel [Stankovic1998] «En informatique temps-réel, le comportement correct d un système dépend, non seulement des résultats logiques des traitements, mais aussi du temps auquel les résultats sont produits». Objectifs (Cours Pr. Singhoff Frank) Déterminisme logique (entrées appliquées au système produisent les mêmes résultats) ; Déterminisme temporel ( respect des contraintes temporelles ) Fiabilité (fiabilité du logiciel et du matériel) è Système prédictible : on cherche à déterminer a priori si le système va répondre aux exigences temporelles. SYSTEME TEMPS-REEL SYSTEME RAPIDE Informatique Industrielle 14
Systèmes temps-réel notions fondamentales Tâches non préemptibles : La tâche ne peutêtre interrompues qu à des instants/endroits spécifiques ou à lademande de latâche elle-même. Tâches préemptibles : La tâche peut être interrompue à n importe quel instant et le processeur est alors affecté à une autre tâche. Programmation plus complexe et gestion des accèsà des ressources critiques. Analyse de l ordonnancement hors ligne : la séquence d exécution complète est construite à l avance sur la base des paramètres temporels des tâches (modélisation type réseaux de pétri ou simulation) Analyse de l ordonnancement ligne : la prochaine tâche à exécuter est choisi de manière dynamique en fonction desparamètres de la tâche Exécutionsynchrone : si les tâches sont non préemptibles et qu elles s exécutent les unes après les autres dans l ordre défini par l analyse hors ligne de l ordonnancement Exécution asynchrone : les tâches sont préemptibles et s exécutent selon l ordonnancementqui se fait obligatoirement en ligne. Informatique Industrielle 15
Classification Classement selon le respect des contraintes temporelles : Temps-réel dur ou critique (hard real-time) : Le non respect des contraintes temporelles entraîne de graves défaillances du système Ex : Système de pilotage d un avion, guidage d un missile, etc. Temps-réel mou ou souple (soft real-time) : Le respect des échéances temporelles est importante mais la violation de celles-ci ne provoque pas de graves défaillances du système Ex : vidéoconférence, etc. Temps-réel ferme (firm real-time) : les échéances peuvent occasionnellement être manquées sans mettre le système en erreur. Le résultat ne sert plus à rien après l échéance Ex : Internet Informatique Industrielle 16
Architecture logicielle Entrée Tâche 1 Tâche 8 Synchro Tâche 7 Sortie Tâche 2 Ressource critique Tâche 5 Tâche 3 Tâche 4 Tâche 6 Informatique Industrielle 17
Implémentation des applications TR Informatique Industrielle 18
Implémentation des applications TR Programmation multitâches ou multithread Un «thread» (tâche) est un processus léger qui fait partie intégrante d un processus et qui se caractérise par : Date d activation de latâche ; Période d activation de latâche ; Durée de latâche ; Priorité de latâche. Un processus est un programme en cours d exécution qui peut contenir plusieurs tâches dont l exécution semble se dérouler en parallèle. Un thread partage des ressources avec les autres thread d un même processus, par contre il possède sa propre pile et ses registres A la différence d un processus, un thread peut créer et changer de contexte rapidement Informatique Industrielle 19
Implémentation des applications TR Problèmes sous-jacent de la programmation multitâches Ordonnancement des processus : Stratégie permettant de choisir le processus a exécuté en premierparmi lesprocessusprêtà être exécuté (notion de priorité); Gestion de la concurrence : le système d exploitation doit gérer la synchronisation et la communication entre différentes tâches qui souhaitent soient accéder à une ressource critique ou alorscommuniquer. Ø Synchronisation : Mutex (verrou d exclusion mutuelle), Sémaphore, Variables de condition Ø Communication inter-process (IPC) : pipe, fifo, mailbox Informatique Industrielle 20
Implémentation des applications TR Ordonnancement préemptif Routine de Service Interruption (ISR) Tâche de haute priorité ISR Pre-emptstask 2 3 4 ISR retourne à la tâche de haute priorité 5 ( source : note d'application Philips AN711 ) 6 1 Tâche de faible priorité La tâche est toujours en attente pour exécution (1) Tâche de faible priorité en cours d exécution (4) ISR invoque service du noyau pour retourner à la tâche de haute priorité (2) Interruption asynchrone (5) La tâche de haute priorité s exécute (3) Microprocesseur pour la gestion d autre tâches (6) Retour à la tâche de basse priorité Informatique Industrielle 21 Temps
Implémentation des applications TR Threads périodiques Instant d activation de la tâche RT RT Tâche Durée de tâche OS process Te : période 0 Te 2Te Temps Informatique Industrielle 22
Implémentation des applications TR Threads périodiques Instant d activation de la tâche RT Erreur RT Tâche Durée de tâche > Te OS process Te : période 0 Te 2Te Temps Informatique Industrielle 23