Temps Réel Barat Christian 2005-2006.

Slides:



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

GEF 435 Principes des systèmes dexploitation Le matériel des ordinateurs Revue Pt II (Tanenbaum 1.4)
GEF 435 Principes des systèmes dexploitation Les systèmes dexploitation en général (Tanenbaum 1.1 et 1.3)
Module 5 : Implémentation de l'impression
Types des systèmes d’exploitation
GEF 435 Principes des systèmes d’exploitations
GEF 435 Principes des systèmes dexploitation Communication Interprocessus (CIP) II (Tanenbaum 2.3)
GEF 435 Principes des systèmes d’exploitation
Synchronisation des Processus
PLAN du COURS Introduction Structure des Systèmes Informatiques
Conception et programmation Programmation Parallèle
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.
C.
Des systèmes classiques aux systèmes temps réels
Plan Ordonnancement Obtention des tests de faisabilité entre processus
Mémoire & Processus Cours SE - SRC
6.1 URDL22005 Systèmes dexploitation Ordonnancement du CPU Concepts de Base Critères dOrdonnancement Algorithmes dOrdonnancement Ordonnancement Multi-Processeur.
Structures de données linéaires
Module 1 : Préparation de l'administration d'un serveur
Les Systèmes d’Exploitation
Parcours de formation SIN-7
Synchronisation et communication entre processus
Réalisée par :Samira RAHALI
Algorithmique et Programmation
Introduction au paradigme objet Concepts importants surcharge (overload) redéfinition (override) Définition d’une classe Définition des attributs.
Allocation de mémoire Allocation de mémoire.
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)
NOTIONS DE BASE DES SYSTÈMES TEMPS-RÉEL
Leçon 1 : notion dobjet IUP Génie Informatique Besançon Méthode et Outils pour la Programmation Françoise Greffier Université de Franche-Comté.
Synchronisation Classique
Mécanismes d'exécution et de communication
Réalisé par Mr CALVO du Lycée Bon Secours à PERPIGNAN
Les Systèmes d’Exploitation
Structures de données IFT-2000 Abder Alikacem La récursivité Département d’informatique et de génie logiciel Édition Septembre 2009.
Gestion de Projet © GlobalProd’.
Cours Temps Réel [© tv 2003] Définition Caractéristiques
Interoperabilité des SI - Urbanisation
Qu’est-ce qu’un système d’exploitation ?
L ’Ordonnancement Ordonnancement.
Informatique 1. Les applications de l’informatique
Systèmes d'exploitations Processus
Systèmes d’exploitation
Introduction aux systèmes d’exploitation
SYSTEMES D’EXPLOITATION
Cours des Systèmes d’exploitations
SYSTÈME D’EXPLOITATION I
La notion de type revisitée en POO
Module 8 : Surveillance des performances de SQL Server
Gestion de processus Corrigé TD 1 EFREI I
Travailler avec des processus
Jeu de Librairies Virtuelles « DLL » Windows pour la réalisation de programmes informatiques.
Théorie Système Exploitation
B.Shishedjiev -Logiciels
Algorithmique et programmation (1)‏
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.
Créer des packages.
Interactions entre Processus
La programmation système
Programmation Système et Réseau
A) Avec l’ordonnancement Rate Monotonic les priorités des processus suivent l’ordre inverse des périodes : P1 est prioritaire sur P2, lui-même prioritaire.
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.
Doan Chien Thang Aôut,2008.  La vue d'ensemble des systèmes d'exploitation  Les processus et les fils  Gestion de la mémoire  Le système des fichiers.
Cours Système LI324 Les Interruptions Cours Système LI324
Lancement du système Chapitre 3.
Les Processus.
Systèmes d’exploitation Processus conclusion Modèle conceptuel de processus Pour masquer les effets des interruptions, les SE fournissent un modèle conceptuel.
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.
1 UNIX AVANCE Yves PAGNOTTE – Janvier – LES PROCESSUS SOUS UNIX.
Transcription de la présentation:

Temps Réel Barat Christian 2005-2006

Définitions On retrouve un ensemble de définitions James Martin dans Real-Time computer system Un calculateur temps réel peu être défini comme contrôlant son environnement en recevant des informations, les traitant et agissant en retournant les résultats suffisamment vite pour affecter, modifier le fonctionnement de l’environnement à chaque instant. Kaiser On dit qu’il y a traitement en temps réel lorsque le temps de réponse à des interrogations, généralement aléatoires, est soumis à des contraintes du système.

Définition On prendra cette définition: Un système temps réel est un système qui permet l’exécution de tâches ayant des contraintes temporelles. Il doit garantir des réponses à des stimuli avec des échéances fixées (contraintes strictes) ou des temps de réponse bornés (contraintes relatives)

Les systèmes d’exploitation Une machine informatique doit gérer ses différents organes : clavier, écran, mémoire centrale, disque dur, etc…C’est le programme de gestion de la machine appelé système d’exploitation qui s’occupe de cela (Disk Operating System: gère les accès au disque). Exemples : MS-DOS, UNIX Système d’exploitation monoprocesseur, mono tâche: Le système alloue le CPU (Central Processing Unit) à un seul programme. Tant que celui-ci s’exécute aucune autre application ne peut s’exécuter (MS-DOS).

Les systèmes d’exploitation Système d’exploitation monoprocesseur, multitâche Le système d’exploitation peut préempter le CPU au profit d’une application en fonction de situations diverses. Le multitâche à pour objectif d’exploiter le plus efficacement possible toutes les ressources d’un système informatique. Exemples: L’application se suspend elle-même pour attendre la fin d’une opération E/S qu’elle a préalablement lancé. Le CPU est alloué à une application en attente d’exécution. Un évènement urgent nécessite un traitement immédiat se traduisant par l’exécution d’un programme associé. Systèmes d’exploitations : OS/2 (IBM), WINDOWS NT (Microsoft) , UNIX (ATT)

Les systèmes d’exploitation Système d’exploitation multiprocesseur, multitâche Les tâches sont exécutées respectivement sur des cartes CPU distinctes. On a un parallélisme des activités. Cela implique une coopération entre tâches : communication, synchronisation, partage des ressources. D’où l’utilisation d’un bus système avec gestion multi-maitres. Bus VME (Motorola), Multibus (Intel), MCA (IBM), EISA, PCI. On utilise un système d’exploitation de type UNIX ou des exécutif multitâches temps réel de type (VRTX), RTC, A6MTR.

Systèmes d’exploitation Structuration d’un système informatique classique. Application Plate-forme Professionnelle Noyau Interface HM Biblio Programmes Services du système d’exploitation Gestion fichiers Base Données Gestion Objets Gestion Horloge Ordonnanceur Gestion mémoire Gestion MV matériel Messagerie Gestion IT Pilotes Gestion Tâches Sémaphore

Le multitâche But : Exploiter le plus efficacement possible toutes les ressources d’un système informatique. Le système d’exploitation doit mettre en œuvre les règles de possession et de partage de ressources, définir les compétiteur (prg en mémoire centrale) et les contrôler tout au long de leur exécution. Plusieurs prgs coexistent en mémoire centrale et sont exécuté alternativement dans le temps par l’unité centrale.

La tache Une tache comporte en général 3 zones: Une zone de programme contenant les instructions et certaines constantes (accessible en R). Une zone de données contenant les données variables et les données constantes ou initialisées (accessible en R/W). Une zone de pile permettant de ranger les informations temporaires (accessible R/W). Contexte de la tache : état des registre du processeur, l’état des pointeurs (programme, données, pile), le nom, la priorité, les droits d’accès, identificateur de l’état de la tache. Zone données Zone Programme Zone Pile

ETATS DES TACHES Une tache est une unité logicielle dynamique : le noyau la place dans un des 4 états possibles. Active : La tache est en cours d’exécution (1 seule, priorité + grande) Prête : Elle attend le processeur (ll peut y en avoir plusieurs) Suspendue : Attente d’un événement pour passer dans l’état prêt. Inactive: Elle ne participe plus à l’activité du système. La gestion des taches par l’Ordonnanceur s’effectue par l’intermédiaire d’un automate logiciel.

Automate logiciel active inactive attente Prêt Terminer Attente condition inactive attente sélection préemption Arrêt tâche Démarrer tâche Occurrence condition Prêt Arrêt tâche

Communication et synchronisation En environnement multitâche, les processus coopèrent en vue de la réalisation d’une activité commune. Coopération temporelle : notion de blocage et déblocage Coopération spatiale : échange d’informations 4 catégories de relations : Processus indépendants Processus ayant accès à des ressources communes Processus liés Processus à contrainte de temps

Partage de ressources Le Pb de partage de ressources est crucial : c’est un problème d’ordonnancement de taches. Exemple : Tache P1 : Prendre la ressource R2 et l’occuper Prendre la ressource R1 quand P2 la libère Tache P2 Prendre la ressource R1 et l’occuper Prendre la ressource R2 quand P1 la libère Inter blocage

Condition d’inter blocage [Coffman71] : Les ressources ne sont pas partageables Il n’est pas possible de préempter un processus en possession de la ressource à un instant donné. Un processus en possession d’un ressource peut faire une requête d’une autre ressource. Il existe une file de n processus pour laquelle le processus Pi attend la ressource allouée à Pi+1, Pn étant en attente de Po.

L’exclusion mutuelle Deux processus en phase d’impression sont en exclusion mutuelles vis-à-vis de l’imprimante. L’exclusion mutuelle de 2 processus/ressource partageable suppose une phase pendant laquelle un seul processus est en possession de la ressource. Section critique (dans le code c’est la région critique) La région critique correspond à une zone de code dans laquelle il ne peut y avoir de prise en main par l’Ordonnanceur du système pour l’exécution d’une tache plus prioritaire. Solutions : Sémaphore/Evenements

Sémaphore Objet jouant le rôle de distributeur de tickets Opération P (Prendre) : demande de ticket, le processus est bloqué jusqu’à ce qu’un ticket soit disponible. Opération V (Vendre) : signale la disponibilité d’un ticket, parmi tout les processus en attente d’un ticket un processus est chois et réveillé. Peut être utilisé pour la synchronisation ou l’exclusion mutuelle.

Synchronisation par sémaphore Valeur initiale nulle Exemple : P2 édite les résultats de P1 Processus P1 Début //traitement V(S_P2) /*..*/ P(S_P1) Fin Processus P2 P(S_P2) /*affiche*/ V(S_P1) P1 P2 P(S_P2) traitement V(S_P2) P(S_P1) affiche V(S_P1)

Exclusion mutuelle par sémaphore Valeur initiale 1 On encadre la section critique Processus n Début /*..*/ P(Sémaphore) //section critique V(Sémaphore) Fin

Les événements Autre méthode de synchronisation Signal logiciel asynchrone/processus récepteur Représenté par une variable booléenne Ev = 0 : Non arrivé Ev = 1 : Arrivé Trois opérations : Positionnement de l’événement (Ev = 1) : SET Mise à zéro de l’événement (Ev = 0) : RESET Attente de l’événement (Mise dans la file d’attente) : WAIT

Les files d’attentes La manière de gérer les files de processus à une grande incidence sur les performances d’un système. LIFO (pile) ou FIFO (liste, file, queue). Tableau pointeur sur les différentes files Processus en cours Ordonnanceur File des processus prêts Les processus actifs sont chaînés par priorité Les processus en cours ne sont pas chaînés Les processus en attente d’événement ne sont pas chaînés Les processus en attente sur sémaphore sont chaînés par ordre d’arrivée Les processus en attente de messages sont chaînes sur la boite au lettre File des processus en attente d’événement File des processus en Attente sur sémaphore

Les files d’attente Les processus actif sont chaînés par priorité. Cette file est susceptible d’être modifiée dynamiquement au cours du temps en fct de la stratégie adoptée. La file des processus en attente d’événement est statique (ne dépend pas des priorités). On peut avoir une file d’attente distincte à chaque type d’événements. Les files d’attente sur sémaphore (mutex) sont généralement gérés par ordre d’arrivée.

Ordonnancement L’Ordonnanceur sélectionne les taches. C’est le chef d’orchestre. Il est invoqué chaque fois qu’une modification intervient sur l’ensemble des taches actives. Il alloue le processeur à une tache parmi N taches éligibles. Assure la gestion des commutations de taches de l’état bloqué à l’état éligible.

Le dispatcher/répartiteur Il réalise l’élection effective d’un processus et e changement de contexte associé. Ordonnanceur Processeur Processus élu dispatcher File d’attente Des processus bloqués File d’attente des processus éligibles

Commutation des taches Commutation contexte différent de commutation des taches: Commutation de contexte Sauvegarde de l’état des registres du processus courant Restauration de l’état des registres relatif au nouveau processus Effectuées lors d’un appel noyau ou lors de l’occurrence d’une interruption Commutation des taches Abandon du traitement de la tache en cours pour le traitement d’une autre tache. Provoquée par la demande explicite de la tache en cours (attente,..) Provoquée sur décision de l’Ordonnanceur (tache + prioritaire active). Provoquée par la nécessité de réponse à un phénomène externe.

Commutation de tache et de contexte Recherche de la Tache de plus Haute priorité Sauvegarde Contexte tache 1 Restauration Contexte tache 2 Tache 1 Tache 2 Mise en sommeil Tache 1

Les critères de sélection A l’Ordonnanceur est associé une technique de gestion des différentes taches avec des contraintes : Garantir à chaque tache un temps d’allocation donné Respecter un ordre de priorité entre tache Respecter un temps de réponse donné Annuler de manière préemptive une tache qui monopolise le processeur Généralement l’invocation de l’Ordonnanceur s’effectue sur : Mise en attente ou réveil d’une tache Changement de priorité d’une tache Réquisition du processeur au profit d’une tache plus prioritaire

Ordonnancement Ordonnancement par file descripteurs : Les taches actives sont organisées en files doublement chaînées par l’intermédiaire de leur descripteur. Tableau pointeur sur les différentes files Ordonnanceur

Le temps partagé/time sharing Ordonnanceur préemptif Chaque processus est interrompu toute les x millisecondes par le système (horloge temps réelle). Round robin : s’effectue sur une unique file d’attente de processus eligiblent. Le choix de l’unité de temps est primordial pour une bonne optimisation des temps d’attente et/ou d’occupation de l’unité centrale.

Choix du quantum de temps Si temps trop court : Overhead (temps du à la commutation des taches) Si temps trop long Temps alloué à des processus pour rien. Files multiples: Quantum Q sélection processeur P3 … P2 P1 Pn Quantum 2Q P7 … P4 P6 Pi Parcours : F1,F1,F2,F1,F1,F2 arrivées

Approche temps réel P3 -- P2 P1 Pn 41 12 8 1 Multitâche : Round robin ou file multiple OK Temps réel : Assurer un déterminisme entre 2 utilisations successives d’un processeur par un processus. Associer une priorité au processus Processus De priorité 30 sélection P3 -- P2 P1 Pn 41 12 8 1 processeur priorité

Contraintes temps réel Un système temps réel doit induire, de par ses caractéristiques la mise en œuvre d’un certain nombre d’éléments, lui permettant de répondre aux critères temps réels. Cela impose des contraintes sur le système, le matériel et les logiciels. Contraintes Système : datation, sûreté et sécurité de fonctionnement. Il faut minimiser l’effet de défaillance en exigeant que l’arrêt d’un processus ne doit pas traduire par l’arrêt de tous les processus présents dans le système. Contraintes matériel : horloge temps réel, mécanisme d’interruption, instruction spécialisées, interfaces adaptés aux processus mis en jeu, un mécanisme de priorité d’interruption en tenant compte des différentes cadences et délais. Contraintes logicielles : mise en œuvre aisée de la gestion des relations entre processus (instructions spécialisées)

Le facteur temps Le déterminisme (délai) : impose le traitement l’exécution dans un temps limite définit. Un exécutif temps réel sera dit déterministe s’il est indépendant de la charge du système (nb de taches actives) et si l’on peut répondre le plus vite possible à une requête externe et la traiter dans un temps indépendant de l’environnement extérieur. La préemption est l’un des outils mise en œuvre pour assurer l’aspect déterministe d’un système. Cela permet de prendre en compte l’urgence de traitement.

Multitâche et temps réel Un exécutif temps réel reprend tout ce qui caractérise un système multitache : Exécution concurrente de taches Synchronisation et communication Temps réel implique principalement l’adoption de stratégie différentes dans le cadre des traitements: Déterminisme Urgence Multitâche = optimisation du processeur Temps réel = déterminisme des actions

Idées reçues Toute application temps réel est multitâche: Est-ce que les contraintes de temps sont respectées. Tout exécutif temps réel réalise des traitements en temps réel quelque soit le domaine d’application On évalue la puissance d’un exécutif temps réel sur la base de ses temps critiques Dans une application temps réel, c’est l’aspect déterministe qui compte le plus

Références Le temps réel en milieu industriel : concepts, environnements, multitâches A. Dorseuil, P. Pillot , Editions DUNOD 1991 Gestion des processus industriels temps réel : Des interruptions électroniques aux exécutifs multitâches. J.J. Montois, ellipses/édition marketing S.A. 1999 Ordonnancement temps réel : cours et exercices corrigés F. Cottet, J. Delacroix, C. Kaiser, Z. Mammeri, Edition Hermes Sciences Publications, 2000 Meeting Deadlines in Hard Real-Time Systems: The Rate Monotonic Approach L. P. Briand, D. M. Roy, Editions IEEE Computer Society, 1999