Areva

Pages: 2 (498 mots) Publié le: 19 avril 2011
Cours 3: Synchronisation entre processus : suite de l’étude des outils

Batterie d’algorithmes et outils de synchronisation : 2 catégories
(Masquer les interruptions -> plus de concurrence -> plusde pbms !)

Attente active : quelque chose qui représente la condition, plus un algorithme qui met en place le test et l’attente (semi-)active (« spinlock », « verrou tournant »)
Des variablespartagées (« solution purement logicielle ») pour exprimer la condition Solutions impliquant le matériel :
instruction assembleur: Test-and-set Instruction assembleur: swap

Attente passive (plus hautniveau d’abstraction) :
Sémaphore (IPC Unix semop, Java 1.5+ ) Moniteur avec variable(s) conditionnelle(s) (Concurrent Pascal, Java) Verrou conditionnel cad mutex+var. condition (POSIX pthread, Java1.5+ )
2

1

Outil de synchronisation Sémaphore (Dyjsktra 1965)
Structure de données et des méthodes
Entier File d’attente de processus/threads Opérations pour
Initialiser l’entier : nombrede jetons Prendre un “jeton”, ou s’endormir si pas de disponible : P(sem) Réveiller un processus qui attend le jeton, en le lui passant, sinon, le deposer : V(sem)

Outil général, comme moniteur,pour
le problème de l’exclusion mutuelle : 1 jeton initial Exclusion mutuelle sur N exemplaires équivalents d’une même ressource : N jetons N’importe quelle forme de synchronisation conditionnelle : enjouant sur la valeur du jeton et sur les appels P ou V
3

Détail des opérations sur sémaphore : une variante possible
structure de données :
Val : entier File : file de (contexte de) processusou threads Opération Init(s:semaphore, int init) Opé Init(s:semaphore, init) s.Val = init ; creer s.File, vide s.File,

Opération P(s:semaphore) Opé P(s:semaphore) Si (s.Val FIFO order in the queuepublic void release() // Releases a permit, returning it to the semaphore. public boolean tryAcquire() // Acquires a permit from this semaphore, only if one is available at the time of invocation. …...
Lire le document complet

Veuillez vous inscrire pour avoir accès au document.

Vous pouvez également trouver ces documents utiles

  • Areva
  • Areva
  • areva
  • Areva
  • Areva
  • areva
  • Areva
  • Areva

Devenez membre d'Etudier

Inscrivez-vous
c'est gratuit !