Areva

Disponible uniquement sur Etudier
  • Pages : 2 (498 mots )
  • Téléchargement(s) : 0
  • Publié le : 19 avril 2011
Lire le document complet
Aperçu du document
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. …...
tracking img