Des systèmes classiques aux systèmes temps réels

Slides:



Advertisements
Présentations similaires
Module Systèmes d’exploitation
Advertisements

GEF 435 Principes des systèmes d’exploitation
GEF 435 Principes des systèmes dexploitation Le matériel des ordinateurs Revue Pt II (Tanenbaum 1.4)
Synchronisation de Processus
Le Concept du programme enregistré
Module Systèmes d’exploitation
Algorithmique Résume.
Types des systèmes d’exploitation
Critère d’ordonnancement en temps réel Partie III
GEF 435 Principes des systèmes dexploitation Ordonnancement partie I (Tanenbaum 2.5)
GEF 435 Principes des systèmes d’exploitation
GEF 435 Principes des systèmes d’exploitations
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage GEF 243B Programmation informatique appliquée Considération de temps.
GEF 435 Principes des systèmes dexploitation Communication Interprocessus (CIP) II (Tanenbaum 2.3)
GEF 435 Principes des systèmes d’exploitation
auxiliaires ou mémoires de masse ou alors secondaire).
Synchronisation des Processus
PLAN du COURS Introduction Structure des Systèmes Informatiques
Exécutif Temps réel. Limitation des système classiques Rappels Mise en œuvre lourde des communications entre processus Problème de prédictibilité avec.
Introduction Qu'est ce que le temps-réel ?
Plan Ordonnancement Obtention des tests de faisabilité entre processus
Le Concept du programme enregistré
Introduction aux systèmes temps réel Ce cours sadresse aux informaticiens novices en matière de temps réel.
Mémoire & Processus Cours SE - SRC
INTRODUCTION.
Automatisme Les Systèmes automatisés I - Introduction => Les Systèmes Automatisés Simples ou complexes, les systèmes automatisés sont partout dans notre.
Les bases de l’Algorithmique
Module 1 : Préparation de l'administration d'un serveur
Les Systèmes d’Exploitation
Section XI Traitement de fichiers
Synchronisation et communication entre processus
Réalisée par :Samira RAHALI
TRANSMISSION DES DONNEES.
Architecture des Ordinateurs
Algorithmique et Programmation
Allocation de mémoire Allocation de mémoire.
Etude globale de système.
8.1 URDL22005 Systèmes dexploitation Interblocages Modèle Système Caractérisation dinterblocage Méthodes pour Gérer les Interblocages Prévention des Interblocages.
Module 51 Module 5 - Synchronisation de Processus (ou threads, ou fils ou tâches) Module 5 - Synchronisation de Processus (ou threads, ou fils ou tâches)
Chapitre 6 (Silberchatz)
Module 2 : Préparation de l'analyse des performances du serveur
NOTIONS DE BASE DES SYSTÈMES TEMPS-RÉEL
Synchronisation Classique
Mécanismes d'exécution et de communication
Structures de données IFT-2000 Abder Alikacem La récursivité Semaine 5 Département dinformatique et de génie logiciel Édition Septembre 2009.
Cours Temps Réel [© tv 2003] Définition Caractéristiques
FONCTIONNEMENT AUTOMATE
Qu’est-ce qu’un système d’exploitation ?
L ’Ordonnancement Ordonnancement.
Systèmes d'exploitations Processus
Temps Réel Barat Christian
Gestion de processus Corrigé TD 1 EFREI I
Théorie Système Exploitation
NOTIONS DE BASE DES SYSTÈMES TEMPS-RÉEL Sujets Concepts de processus/thread concurrents –Windows NT et la programmation temps réel Lectures: Chapitres.
Interactions entre Processus
Le contenu est basé aux transparents du 7 ème édition de «Software Engineering» de Ian Sommerville«Software Engineering» de Ian Sommerville B.Shishedjiev.
Programmation Système et Réseau
1 Université Henri Poincaré, Nancy 1 La préemption appliquée aux FPGAs Soutenance de rapport bibliographique de DEA Faculté des Sciences Vandoeuvre-lès-Nancy.
MOCK.
NOTIONS DE BASE DES SYSTÈMES TEMPS-RÉEL Sujets Concepts de processus/thread concurrents –Windows NT et la programmation temps réel –Synchronisation et.
Cours Système LI324 Les Interruptions Cours Système LI324
Les Processus.
Scripts et fonctions Instructions de contrôle
Systèmes d’exploitation Processus conclusion Modèle conceptuel de processus Pour masquer les effets des interruptions, les SE fournissent un modèle conceptuel.
Semaine 5 Registres spéciaux et périphériques internes Projet initial en ingénierie informatique et travail en équipe INF1995 Jérôme Collin et al.
Objets et Actions Élémentaires.
Architecture d’un ordinateur
Gestion des Tâches Les Processus. Un système multitâches La carte mère comporte Le Processeur (calcul et attente) Les jeux de composants spécialisés (entrées-sorties.
Chapitre 12 Surveillance des ressources et des performances Module S41.
1 UNIX AVANCE Yves PAGNOTTE – Janvier – LES PROCESSUS SOUS UNIX.
Transcription de la présentation:

Des systèmes classiques aux systèmes temps réels Objectif : Nous revenons sur les principaux mécanismes mis en œuvre dans un système classique. Certains sont utilisés par les systèmes temps réels ; d'autres doivent être abandonnés car ils ne permettent pas la prise en compte de contraintes temporelles.

Plan Services d'un système élémentaire Services multitâches Gestion du processeur Gestion des interruptions et multitâches Partage des ressources et exclusion mutuelle

Vue d'un ordinateur classique Mémoire principale Stockage Secondaire Périphérique E/S CPU Bus Registres Unité de contrôle Unité Arithmétique et Logique

Les services de base qu'un OS offre : Exécution d'un programme dans le processeur Échange avec l'extérieur Gestion mémoire Partage des ressources Gestion du temps Nous allons étudier ces services en étudiants leurs limites vis à vis de la prise en compte des contraintes de temps réel. Dans la suite, nous détaillons uniquement l'exécution du programme dans le processeur en étudiant les limites vis à vis de la prise en compte de contraintes temps réel.

Services d'un système élémentaire Interaction par scrutation cyclique Interaction par Interruption Limites des approches précédentes Nous allons voir l'interaction entre le programme et le monde extérieur. C'est à dire comment le programme réagit à un événement à des instants qu'il ne maîtrise pas.

Les interaction par scrutation cyclique Le programme va interroger (ou scruter) ses périphériques régulièrement. faire vérifier capteur tant que (données non disponibles) lire capteurs traiter les données démarrer les réactions vérifier les actionneurs tant que actions effectuées jusqu'à arrêt du système

Les interactions par interruptions Le programme est averti de la survenue d'un événement. Une interruption interrompt le cours du programme et lui permet de reprendre le programme là où il a été interrompu. Programme de scrutation : traitement différé faire faire vérifier les capteurs tant que (état = données disponibles) lire données mémorisées remettre à zéro état des capteurs Jusqu’à arrêt du système Gestionnaire d'interruption : Prise en compte immédiate Interruption : lire et mémoriser les données positionner (état capteur = données disponibles) acquitter l’interruption

Les interactions Avantages : Simple à programmer s'il y a peu des périphériques Le temps de réaction d'un système est simple à déterminer. Il s'agit du temps de traitement d'une boucle. On peut s'avoir si le système satisfait les contraintes de temps.

Limitations des approches précédentes Inconvénients : Va à l'encontre des pratiques du génie logiciel. Le programme mal structuré devient rapidement illisible et impossible à maintenir. Un nouveau périphérique demande la remise en cause de l'existant. Une grande partie du temps processeur est consacrée à autre chose qu'à l'application.

Exemple : Soit un programme émettant des caractères sur une liaison série à 9600 bauds via un UART. Il possède 2 séries de registres pour transférer et recevoir des caractères. L'UART cause des interruptions différentes pour l'émission et l'arrivée des caractères. L'UART émet un caractère tout les millisecondes environ. L'ordinateur ne peut émettre le caractère suivant que quand l'UART est prêt. Il perd donc beaucoup de temps à tester par scrutation s'il est autorisé à émettre le caractère suivant ou pas.

Exemple suite Pour émettre un caractère, le programme se bloque en faisant appel à l'opération (Attendre). L'UART répond par une interruption (TxReady) lorsqu'il est prêt. Le gestionnaire d'interruption effectue l'opération (Signaler) et le programme suspendu peut rependre le processeur et réémettre un caractère immédiatement. Il faut noter que pendant la milli-seconde qui s'est écoulée entre (Attendre) et l'interruption, d'autres programmes pourraient effectuer un travail utile. C'est pour mieux répondre à ce besoin qu'on a introduit la notion de tâche.

Plan Services d'un système élémentaire Services multitâches Gestion du processeur Partage des ressources et exclusion mutuelle

Introduction à la notion de tâches Le traitement d'un événement externe est partagé entre un traitement immédiat effectué par le gestionnaire d'interruption et le traitement différé confié à une tâche (c'est à dire un code séquentiel dédié à une tâche). Plusieurs tâches peuvent s'exécuter concurremment, on peut donc récupérer les temps morts. C'est cette récupération qui fait tout l'intérêt des modèles multitâches.

Système Multitâches Un programme seul n'occupe pas la capacité totale d'un processeur en particulier lors des E/S. L'idée : une exécution concurrente pour récupérer les temps morts. Le système d'exploitation va gérer l'exécution concurrente des programmes.

Plan Services d'un système élémentaire Services multitâches Gestion du processeur Partage des ressources et exclusion mutuelle

La gestion du processeur Tâches Gestion multitâches Politiques d'ordonnancement classiques Limites de ces mécanismes pour le temps réel

Les tâches : Définitions Un programme est composé d'une suite d'instructions qui agissent sur un ensemble de données : objet statique Processus : lorsque l'on déclenche l'exécution d'un programme, il devient un objet dynamique géré par l'OS. Le contexte d'un processus est l'ensemble des informations qui caractérisent son exécution (Registres, son nom, état …) Un processus est dit lourd lorsque le contexte est volumineux. Un processus est légers lorsqu'il s'exécutent avec d'autre processus au sein d'un même contexte.

États d'une tâche opérationnelle Blocage En_attente Courant Allocation Réveil Préemption Prêt Tâche Active

Etat pour un noyau temps réel Attente d'une durée Exécutée Endormie Suppression Préemption Suppression Election Réveil Prête Attente blocante Suppression Arrivée evt Bloquée Suppression Initialisation Existante Créée Existante non initialilsée

L'ordonnancement La partie du système qui fait évoluer les états des tâches et qui alloue le processeur aux tâches s'appelle l'ordonnanceur (Scheduler). L'OS manipule les tâches aux travers de structures de données appelées descripteurs de tâches (task control block).

L'ordonnancement Code T1 Code T2 Code T3 Liste des tâches prêtes Contexte T1 état = PRET Contexte T2 état = PRET Contexte T3 état = PRET Liste des tâches prêtes Liste des tâches en attente Tâche courante T4 état = Attente T5 état= Attente T6 état=Courant

Les politiques d'ordonnancement classiques Ordonnancement préemptif Un ordonnancement est dit « avec réquisition » ou préemptif si le processus courant peut être désalloué par décision de l'ordonnanceur. Dans le cas d'un système préemptif, une interruption peut survenir en n'importe quel point du déroulement d'une tâche et provoquer une préemption.

Modèle de tâches Période d'activation T ID Depart C D T Etat C_restante P Deadline T1 2 3 5 5 Période d'activation T Borne sur le temps d'exécution C Arrivée Depart Délai critique relatif à T D

Modèle de tâches ID Depart C D T Etat C_restante P Deadline T1 2 3 4 5

Lois d'ordonnancement classique Premier arrivé, premier servi Le tour de rôle ou tourniquet L’ordonnancement par priorité

Exemple : FIFO ID Pr C Depart Critère ID croissant T1 2 6 0 T2 1 3 0 4 5 6 7 8 9 10 11 12 13 14 T1 T2 T3 nop

Robin ID Robin C Depart Critère RR croissant T1 1 6 0 T2 1 3 0 4 5 6 7 8 9 10 11 12 13 14 T1 T2 T3 nop la formule permet de simuler une liste circulaire. =SI(MOD(temps;3)=0;0;SI(MOD(temps;3)=1;2;1)) =SI(MOD(temps;3)=0;1;SI(MOD(temps;3)=1;0;2)) …

Robin avec priorité ID Robin C Depart Critère Robin et 2 critère RR

Robin + incrément de priorité ID Depart C Robin T1 10 1 T2 11 T3 2 T4 3 T5 pour simu, le premier robin avec 100 en tps augmenté le deuxieme avec 10. En 10 T3 a sa priorite qui passe à 1 et rentre dans la pile avec T1 et T2. Elle sera donc ordo 3 tps apres. et T4, T5 passe en 2 et ne sont donc tjs pas ordonnancées.

Exemple : Priorité ID Pr C Depart Critère Pr croissant T1 2 6 0 3 4 5 6 7 8 9 10 11 12 13 14 T2 T1 T3 nop ID Pr C Depart T1 2 6 0 T2 1 3 0 T3 2 4 0

Ordonnancement avec interactions entre les tâches Tâche 1 (prio=2) T1.1 Attendre1s T1.2 Signaler (tache2,evt) T1.3 Tâche 2 (prio=1) T2.1 Attendre(evt) T2.2 1s T1.1 T1.2 T1.3 Tâche1 Tâche2 Tâche de fond* Attendre evt T2.1 T2.2 * fournit le minimum d'exécution sous forme d'une boucle infinie.

Limitations de ces mécanismes pour le temps réel Un exécutif temps réel multitâches offre une politique d'ordonnancement préemptive basée sur les priorités. L’application est testée pour contrôler le bon respect des contraintes temporelles. Limites : Affecter des priorités n'est pas toujours une garantie de maîtrise des contraintes temporelles (variables partagées).

Plan Services d'un système élémentaire Services multitâches Gestion du processeur Partage des ressources et exclusion mutuelle

Partages des ressources et exclusion mutuelle. Une application temps réel est découpée en tâches. Ces tâches mettent en œuvre des algorithmes portant sur un ensemble de ressources qui peuvent être partagées. Problème T1 LireA A=A+10 EcrireA T2 LireA A=A+30 EcrireA Si T2 préempte T1 suite à une interruption : LireA A=A+30 EcrireA A=A+10

Des solutions Les problèmes viennent du fait que l'exécution des séquences est intérrompue On appelle séquence atomique, une suite d'opérations exécutées par un système qui permet de passer d'un état cohérent du système à un autre état cohérent sans possibilité d'interruption. On appelle section critique, une séquence d'opérations qu'il faut effectuer de façon atomique. Les sections critiques portant sur des ressources communes doivent être exécutées en exclusion mutuelle. Solutions : Masquage et sémaphore.

Les sémaphores binaires Un sémaphore est une entité logique gérée par le système d'exploitation associé de manière univoque à une ressource. Deux primitives P et V permettent de manipuler le sémaphore P : Compteur = Compteur-1 si compteur<0 mettre la T en fille d'attente sinon accorder la ressource V : Compteur = Compteur+1 si compteur <=0 sortir une tâche de la fille d'attente

Exemple Le sémaphore S est initialisé à 1. T1 P(s) I=I+J; V(s) T2 P(s) I=I-k; V(s) Lire I dans R1 Lire J dans R2 additionner R1 à R2 …

Listes des mécanismes sémaphores pour le temps réel A partir du moment où une tâche a acquis une ressource (passé le P), toutes les tâches parvenant à un P sur le même sémaphore resteront bloquées, quelle que soit leur priorité. Ces cas de blocage posent un problème car il existe des cas où l'on ne sait pas donner de bornes temporelles à ce type de situation.

Conclusion L'exclusion mutuelle, la communication et la synchronisation sont des problèmes généraux à prendre en compte dès que plusieurs tâches s'exécutent concurremment dans un système. Le maintien de la cohérence des données et des codes du système conduit les tâches à utiliser des services qui génèrent des mises en file d'attente. Un système qui attribue des priorités aux tâches, ne peut plus assurer qu'une tâche de plus faible priorité ne bloque pas une tâche de plus forte priorité.

Nous allons identifier et présenter les mécanismes spécifiques qui permettent de prévoir avec plus d'exactitude le comportement temporel d'un système.