La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

1 UNIX AVANCE Yves PAGNOTTE – Janvier 2011 4 – PROCESSUS ET RESSOURCES.

Présentations similaires


Présentation au sujet: "1 UNIX AVANCE Yves PAGNOTTE – Janvier 2011 4 – PROCESSUS ET RESSOURCES."— Transcription de la présentation:

1 1 UNIX AVANCE Yves PAGNOTTE – Janvier 2011 4 – PROCESSUS ET RESSOURCES

2 2 RESSOURCES mémoire processeur fichiers périphériques données procédures pour l ’exécution d ’un processus

3 3 RESSOURCES locale : utilisable par un seul processus partageable ou commune : utilisable par plusieurs processus une ressource partageable qui ne peut être accédée que par un seul processus à la fois est dite critique (exemple : une zone mémoire partagée en écriture)

4 4 GESTION DE RESSOURCES à toute ressource on associe : - un indicateur (ressource libre ou allouée au processus de pid…) - un pointeur sur une file d’attente des processus candidats à l’utilisation de cette ressource la gestion de la file d’attente prend en compte la priorité des processus candidats  manque de ressource = processus dans l’état endormi

5 5 GESTION DE RESSOURCE CRITIQUE une ressource critique doit être gérée avec une méthode d’exclusion mutuelle section critique d ’un programme pour une ressource = partie du code où cette ressource est gérée en exclusion mutuelle 2 processus ne doivent jamais entrer simultanément en section critique pour une même ressource ne jamais faire d’hypothèse sur la vitesse relative des processus pour gérer les ressources critiques

6 6 EXCLUSION MUTUELLE cahier des charges d’une méthode : la défaillance d ’un processus (achèvement ou "plantage") ne doit pas affecter le bon fonctionnement des autres pas d’interblocage pas de privation de ressource

7 7 EXCLUSION MUTUELLE 2 familles de méthodes : algorithmes par attente active on exécute du code en consommant du temps UC algorithmes par attente passive on n’exécute pas de code

8 8 ALGORITHMES PAR ATTENTE ACTIVE un exemple : la méthode des coroutines pour deux processus une variable tour initialisée à 1 ("c’est au tour de P1") deux processus P1 et P2 lancés en parallèle les processus sont modélisés par une alternance de sections critiques et de sections non critiques P1 ( ) faire toujours tant que tour = 2 fin tant que section critique tour    2 section non critique fin faire

9 9 CRITIQUE DE LA MÉTHODE DES COROUTINES la défaillance d’un processus bloque tous les autres (tour ne peut plus changer de valeur) Il y a eu de nombreuses tentatives d’amélioration dont la meilleure est l’algorithme de Dekker : - complexe pour 2 processus - non généralisable à plus de 2 processus conclusion : échec des algorithmes à attente active

10 10 L’OUTIL SÉMAPHORE (1) imaginé par Dijkstra en 1968 un sémaphore est un objet à deux champs : - un entier naturel - une file d’attente de processus à l’état endormi

11 11 L’OUTIL SÉMAPHORE (2) … avec 4 fonctions : - créer / initialiser un sémaphore - détruire un sémaphore - P : décrémente le champ entier s ’il est > 0 sinon endort le processus - V : incrémente le champ entier si la file d ’attente est vide, sinon réveille un processus P et V : non interruptibles et s’excluent mutuellement

12 12 APPLICATIONS DES SÉMAPHORES Gestion de l’exclusion mutuelle - créer un sémaphore s par ressource critique - initialisé à 1 - encadrer chaque section critique par : P (s) ….. V(s)

13 APPLICATIONS DES SÉMAPHORES Synchronisation de processus un sémaphore s par rendez-vous, initialisé à 0 Exemple : 3 processus P1, P2, P3 chargés du calcul de (a+ b) * (c + d) - (e/f) P2 calcule c + d, P3 calcule e/f et P1 le résultat. On initialise les sémaphores s1 et s2 à 0. P1 P2 P3 _________________________________________ t1 = a + b t2 = c + d t3 = e/f P (s1) V (s1) V(s2) t4 = t1 * t2 ∆ P (s2) res = t4 - t3 P1 ne peut se poursuivre au-delà de tant que P2 n'a pas exécuté V P1 ne peut se poursuivre au-delà de ∆ tant que P3 n'a pas exécuté V 13

14 14 APPLICATIONS DES SÉMAPHORES Modèle producteur-consommateur (1) règle 0 : le producteur produit des objets de taille fixe producteur et consommateur fonctionnent en parallèle à des vitesses quelconques règle 1 : le producteur ne peut pas ranger un objet si le tampon est plein

15 15 APPLICATIONS DES SÉMAPHORES Modèle producteur-consommateur (2) règle 2 : le consommateur ne peut pas prendre un objet si le tampon est vide règle 3 : le consommateur ne peut prélever un objet que le producteur est en train de ranger (exclusion mutuelle) règle 4 : information des processus sur les changements de situation

16 16 APPLICATIONS DES SÉMAPHORES Modèle producteur-consommateur (3) 2 sémaphores NPLEIN initialisé à 0 NVIDE initialisé à la taille du tampon ProducteurConsommateurFaire toujours produire un objet P (NPLEIN) P(NVIDE) prélever un objet déposer un objet V (NVIDE) V(NPLEIN) "consommer" l ’objetFin


Télécharger ppt "1 UNIX AVANCE Yves PAGNOTTE – Janvier 2011 4 – PROCESSUS ET RESSOURCES."

Présentations similaires


Annonces Google