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.

Slides:



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

Module Systèmes d’exploitation
GEF 435 Principes des systèmes d’exploitation
Synchronisation de Processus
Synchronisation des processus père - fils
Module Systèmes dexploitation Chapitre 6 Communication Interprocessus Partie III École Normale Supérieure Tétouan Département Informatique
Types des systèmes d’exploitation
GEF 435 Principes des systèmes d’exploitation
GEF 435 Principes des systèmes dexploitation Communication Interprocessus (CIP) II (Tanenbaum 2.3)
GEF 435 Principes des systèmes dexploitation Communication Interprocessus (CIP) III (Tanenbaum 2.3)
TP 7.1 synchronized et join Écrire un programme Java qui crée 1000 threads et maintient un compteur nb du nombre de threads créés jusque-là. Le thread.
Synchronisation des Processus
Cours n°2M2. IST-IE (S. Sidhom) UE 303 Promo. M2 IST-IE 2005/06 Conception dun système d'information multimédia Architecture trois-tiers : PHP/MySQL &
Conception et programmation Programmation Parallèle
Chapitre 3 Coopération et synchronisation par variables partagées
C.
Des systèmes classiques aux systèmes temps réels
Mémoire & Processus Cours SE - SRC
Parallélisation d’un Algorithme CNFT
Jc/md/lp-01/05Boot Loader1 BOOT LOADER. jc/md/lp-01/05Boot Loader2 Objectif du chapitre Introduire la notion de Boot Loader Donner un aperçu de lorganisation.
Points importants de la semaine Les commentaires. Les variables. Les instructions conditionnelles. Les instructions itératives (les boucles).
Rappel sur la synchronisation des processus
Concepts de base : la Classe Pour faire une comparaison simple, une classe serait a priori, une structure C avec des variables et des fonctions.
Synchronisation et communication entre processus
Sommaire Objectif de Peakup Principes de fonctionnement
1 Threads et Lightweight Processes Chapitre 5 En français on utilise parfois flots ou fils pour threads. Votre manuel préfère le mot anglais thread : terminologie.
Système d’exploitation
Algorithmique et Programmation
Introduction au paradigme objet Concepts importants surcharge (overload) redéfinition (override) Définition d’une classe Définition des attributs.
Gestion des bases de données
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 1 Cours de CPI Philippe Bancquart CPI 2005.
Master 1 SIGLIS Java Lecteur Stéphane Tallard Chapitre 5 – Héritage, Interfaces et Listes génériques.
Les fichiers indexés (Les B-arbres)
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)
Programmation concurrente
Chapitre 6 (Silberchatz)
Parallelisme (Basé sur Concepts of Programming Languages, 8th edition, by Robert W. Sebesta, 2007)
Architecture et technologie des ordinateurs II
Chapitre 3 Interblocages 3.1. Ressources
NOTIONS DE BASE DES SYSTÈMES TEMPS-RÉEL
Chapitre 7 continuation
Chapitre 6 : Synchronisation des processus et des fils
Synchronisation Classique
Systèmes d’exploitation
Qu’est-ce qu’un système d’exploitation ?
Systèmes d'exploitations Processus
Vue d'ensemble Surveillance des journaux d'événements
SYSTÈME D’EXPLOITATION I
Module 8 : Surveillance des performances de SQL Server
Gestion de processus Corrigé TD 1 EFREI I
Travailler avec des processus
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
Tutorat en bio-informatique
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.
Cours LCS N°4 Présenté par Mr: LALLALI
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.
Processus Légers. Rappel sur le fork() fork() Processus 1 Pile Data Text Processus 2 Pile Data Text.
Pthread Ordonnancement. #define _MULTI_THREADED #include #ifndef _CHECK_H #define _CHECK_H /* headers used by a majority of the example program */ #include.
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.
Exécuter une fonction en parallèle Utilisation de plusieurs fonctions en parallèles pour obtenir un résultat Accès à des ressources simultanément.
Capocasale & Droz. Exécuter une fonction en parallèle Utilisation de plusieurs fonctions en parallèles pour obtenir un résultat Accès à des ressources.
1 UNIX AVANCE Yves PAGNOTTE – Janvier – LES PROCESSUS SOUS UNIX.
1 UNIX AVANCE Yves PAGNOTTE – Janvier – PROCESSUS ET RESSOURCES.
Transcription de la présentation:

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 les optimisations matérielles et logicielle Gestion grossière du temps L'ordonnancement favorise l'équité

Platform fork()pthread_create() realusersysrealusersys IBM 375 MHz POWER IBM 1.5 GHz POWER IBM 1.9 GHz POWER5 p INTEL 2.4 GHz Xeon INTEL 1.4 GHz Itanium fork_vs_thread.txtork_vs_thread.txt

Utilisation des tâches Le concept de processus indépendant rend complexe le processus de communication Utilisation des tâches Les tâches partagent le même espace mémoire Définitions Un noyau temps réel assure la gestion des tâches et de la mémoire Un exécutif assure les services nécessaires à l'utilisation des entrées/sorties, réseau et fichiers Ces services sont modulaires, ils sont donc configurables en fonction des architectures cibles. Un système d'exploitation temps réel repose sur un exécutif temps réel

Notion des états d'une taches Prête Exécutée Bloquée Endormie Créée Existante Existante non initialisée Suppression Initialisation Attente blocante Préemption Election Attente d'une durée Réveil Arrivée evt

Outils de communication Les tâches interagissent en se synchronisant et en communiquant Les sémaphores, les moniteurs et les variables conditionnelles permettent d'implémenter les outils nécessaires

Les sémaphores Un sémaphore est une variable n-aire. pour n=2 deux états sont possibles : pris pas pris On parle de Mutex (Mutual exclusion) lorsqu'il est utilisé pour assurer l'exclusion mutuelle pour n>2 si le sémaphore est pris la valeur = 0 sinon des instances sont libres

Caractérisation d'un compteur avec plafond Sémaphore Valeur n>=0 Valeur max des tâches l'utilisant File d'attente {tâches, nb instances}

Moniteur Proposé par Hoare 1973 l'idée est d'encapsuler une ressource, et de ne permettre son utilisation qu'au travers des primitives qui elles-mêmes sont protégées contre la réentrance. La réentrance d'une primitive a lieu lorsqu'un processus exécute le code d'une primitive, et qu'il est interrompu par un processus exécutant lui aussi la primitive.

Exemple Variable : X Incrémenter Décrémenter Lire P1 P2 Variable : X ?

Variable : X Incrémenter Décrémenter LireExemple X invisible de l'extérieur X invisible de l'extérieur Incrémenter Décrémenter Lire Le moniteur possède des variables internes accessibles uniquement par des primitives non réentrantes.

Exemple de code Moniteur moniteur_ressource ressource=0; Procedure add ressource++; Procedure sub ressource--; End_moniteur A cause de la non-réentrance, il est impossible que deux tâches aient accès simultanément à ressource via add ou sub. L'exclusion mutuelle est donc garantie par la non-réentrance. Appel de fonction : moniteur_ressource.add Il reste à bloquer les processus de façon efficace.

Blocage : cas du producteur/consommateur Moniteur prod_cons taille T:tampon(taille) nb_pris=0 Procédure produire(e:element) while (nb_pris=taille) do wait // dort mis dans l'état prêt mettre e dans T nb_pris++ signal } // reveil Procédure consommer(&e:element) while (nb_pris=0) do wait nb_pris enlever et retourner un element de T signal } } Appel avec prod_cons.consommer ou prod_cons.produire

Variable conditionnelle Les variables conditionnelles sont des outils de base conjointement utilisés avec des sémaphores d'exclusion mutuelle pour la construction de moniteurs de Hoare. En effet, la primitive wait d'un moniteur de Hoare consiste à libérer et à placer la tâche dans l'état bloquée de façon atomique. Cette portion de code doit être atomique ce que permet les variables conditionnelles.