Couplage Fort (Programmation Concurrente)

Couplage Fort (Programmation Concurrente)

Couplage fort (programmation concurrente)

Page d'aide sur l'homonymie Pour l’article homonyme, voir Couplage
Problèmes classiques des
méthodes de synchronisation

Couplage fort - Famine

Interblocage - Inversion de priorité

Le couplage fort se produit lorsqu'un algorithme réalise un passage explicite de la main (flux de contrôle) entre les fils d'exécution (thread) souhaitant entrer dans une section critique. Dans un algorithme sans couplage fort, l'entrée dans la section critique ne dépend pas de la sortie d'une tâche spécifique, mais simplement du fait que la section n'est pas utilisée.

Exemples de méthodes de protection d'une section critique avec couplage fort

L'algorithme suivant présente un algorithme d'accès à une section critique pour deux tâches. Le paramètre d'entrée est le numéro de la tâche (index à base zéro). La variable AUTORISE sert de verrou d'accès. Elle vaut zéro(0) au début de l'exécution du système.

ENTRER(i) :
   TANTQUE AUTORISE<>i FAIRE
      rien
   FIN TANTQUE
SORTIR(i) :
   AUTORISE=1-AUTORISE

La tâche zéro(0) passe explicitement la main à la tâche un(1) qui en fait de même pour la tâche zéro(0), les deux tâches accèdent à une ressource commune (ressource critique) et elles s'exécutent en exclusion mutuelle. Le couplage fort implique que l'entrée d'une des tâches dans la section critique dépend de la sortie de l'autre, cette solution est une cause fréquente d'interblocage.

En plus d'induire un couplage fort, cet algorithme induit aussi de l'attente active. Par contre, cette situation n'est pas nécessaire. En effet, il est possible de réaliser un couplage fort sans attente active.

Voir aussi

  • Luigi Zaffalon, Programmation concurrente et temps réel avec ADA 95, Presses polytechniques et universitaires romandes, Lausanne, 1999
  • Portail de l’informatique Portail de l’informatique
Ce document provient de « Couplage fort (programmation concurrente) ».

Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Couplage Fort (Programmation Concurrente) de Wikipédia en français (auteurs)

Игры ⚽ Нужно сделать НИР?

Regardez d'autres dictionnaires:

  • Couplage fort (programmation concurrente) —  Pour l’article homonyme, voir Couplage.  Le couplage fort se produit lorsqu un algorithme réalise un passage explicite de la main (flux de contrôle) entre les fils d exécution (thread) souhaitant entrer dans une section critique. Dans… …   Wikipédia en Français

  • Programmation concurrente — La programmation concurrente est un style de programmation tenant compte, dans un programme, de l existence de plusieurs piles sémantiques. Ces piles peuvent être appelées threads, processus ou tâches. Elles sont matérialisées en machine par une… …   Wikipédia en Français

  • Parallélisme (informatique) — Pour les articles homonymes, voir parallèle. Blue Gene L cabinet., un des ordinateurs massivement parallèle les plus rapides des années 2000 En informatiqu …   Wikipédia en Français

  • Synchronisation (multitâches) — Pour les articles homonymes, voir Synchronisation. Dans le contexte de la programmation concurrente, le terme de synchronisation se réfère à deux concepts distincts mais liés : la synchronisation de processus et la synchronisation de données …   Wikipédia en Français

  • Sémaphore (informatique) — Pour les articles homonymes, voir sémaphore. Un sémaphore permet de protéger une variable (ou un type de donnée abstrait) et constitue la méthode utilisée couramment pour restreindre l accès à des ressources partagées (par exemple un espace de… …   Wikipédia en Français

  • Semaphore (informatique) — Sémaphore (informatique) Pour les articles homonymes, voir sémaphore. Un sémaphore est une variable protégée (ou un type de donnée abstrait) et constitue la méthode utilisée couramment pour restreindre l accès à des ressources partagées (par… …   Wikipédia en Français

  • Futures — En programmation, les notions de futures, promises ou delay font référence à des techniques de synchronisation pour certains langages concurrents. Il s agit d abstractions qui servent de proxy pour un résultat non connu au moment où il est… …   Wikipédia en Français

  • Allocation de ressources — v · d · m Synchronisation en …   Wikipédia en Français

  • Interblocage — Un interblocage (deadlock en anglais, appelé aussi « étreinte fatale ») est un phénomène qui peut survenir en programmation concurrente. L interblocage se produit lorsque deux processus concurrents s attendent mutuellement. Les… …   Wikipédia en Français

  • Section critique — En programmation concurrente, une section critique est une portion de code dans laquelle il doit être garanti qu il n y aura jamais plus d un thread simultanément. Il est nécessaire d utiliser des sections critiques lorsqu il y a accès à des… …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”