Technopedia Center
PMB University Brochure
Faculty of Engineering and Computer Science
S1 Informatics S1 Information Systems S1 Information Technology S1 Computer Engineering S1 Electrical Engineering S1 Civil Engineering

faculty of Economics and Business
S1 Management S1 Accountancy

Faculty of Letters and Educational Sciences
S1 English literature S1 English language education S1 Mathematics education S1 Sports Education
  • Registerasi
  • Brosur UTI
  • Kip Scholarship Information
  • Performance
  1. Weltenzyklopädie
  2. Section critique — Wikipédia
Section critique — Wikipédia 👆 Click Here! Read More..
Un article de Wikipédia, l'encyclopédie libre.

Cet article est une ébauche concernant l’informatique.

Vous pouvez partager vos connaissances en l’améliorant (comment ?) selon les recommandations des projets correspondants.

Consultez la liste des tâches à accomplir en page de discussion.

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 ressources partagées par plusieurs threads.

Une section critique peut être protégée par un mutex, un sémaphore ou d'autres primitives de programmation concurrente.

Puisqu'à un moment donné, jamais plus d'un thread ne peut être actif dans une section critique, le thread la détenant doit la libérer le plus vite possible pour éviter qu'elle ne devienne un goulot d'étranglement. Libérer la section critique permet d'améliorer les performances en permettant aux threads en attente d'y accéder.

Exemple d'opération nécessitant une section critique

[modifier | modifier le code]

Soient deux threads qui souhaitent incrémenter un même compteur. L'incrémentation doit être protégée par une section critique. En effet, l'incrémentation d'une variable n'est pas forcément une opération atomique. Il serait par exemple possible de traduire l'incrémentation d'une variable dans le code assembleur (inspiré du bytecode de la JVM) suivant :

load @variable // charger la variable sur une pile (en Java, chaque thread dispose de sa propre pile d'exécution)
load 1 // charger la constante 1 sur la pile
add // effectuer l'incrémentation
store @variable // stocker le sommet de la pile dans la variable
Exemple de séquence d'opération conduisant à une erreur dans une incrémentation.

Dans cet exemple, il faut quatre opérations pour réaliser l'incrémentation de la variable. Si deux tâches souhaitent effectuer l'incrémentation en même temps, le résultat de l'incrémentation ne sera pas juste. Par exemple, si la séquence des opérations est la suivante :

  • La tâche 1 charge la variable partagée sur sa pile d'exécution.
  • La tâche 2 charge la variable partagée sur sa pile d'exécution.
  • La tâche 1 charge la constante 1 sur sa pile d'exécution.
  • La tâche 2 charge la constante 1 sur sa pile d'exécution.
  • La tâche 1 effectue l'incrémentation.
  • La tâche 1 stocke le sommet de sa pile dans la variable partagée.
  • La tâche 2 effectue l'incrémentation.
  • La tâche 2 stocke le sommet de sa pile dans la variable partagée.

Après une telle séquence d'opérations, la variable n'aura été incrémentée qu'une seule fois.

Exemple de section critique de la vie de tous les jours

[modifier | modifier le code]

Le concept de section critique existe aussi dans la vie réelle. Il est possible de citer par exemple

  • Les carrefours routiers.
  • Les chemins de fer à voie unique.
  • Réservation de billets d'avion avec un nombre de places limité

Voir aussi

[modifier | modifier le code]
  • Réentrance
  • Transaction (base de données)
v · m
Synchronisation en programmation concurrente
Principes de base
  • Atomicité
  • Section critique
  • Communication inter-processus
  • Thread Local Storage
Patrons de conception
  • Barrière de synchronisation
  • Futex
  • Futures
  • Moniteur
  • Mutex
  • Sémaphore
  • Spinlock
  • Algorithme de Peterson
  • Algorithme de Dekker
  • Algorithme du banquier
  • Algorithme de Maekawa
Problèmes classiques
  • Couplage fort
  • Famine
  • Interblocage
  • Inversion de priorité
  • Situation de compétition
  • icône décorative Portail de l’informatique
Ce document provient de « https://fr.teknopedia.teknokrat.ac.id/w/index.php?title=Section_critique&oldid=143668149 ».
Catégorie :
  • Programmation concurrente
Catégories cachées :
  • Wikipédia:ébauche informatique
  • Portail:Informatique/Articles liés
  • Portail:Technologies/Articles liés

  • indonesia
  • Polski
  • الرية
  • Deutsch
  • English
  • Español
  • Français
  • Italiano
  • مصر
  • Nederlands
  • 本語
  • Português
  • Sinugboanong Binisaya
  • Svenska
  • Українска
  • Tiếng Việt
  • Winaray
  • 中文
  • Русски
Sunting pranala
Pusat Layanan

UNIVERSITAS TEKNOKRAT INDONESIA | ASEAN's Best Private University
Jl. ZA. Pagar Alam No.9 -11, Labuhan Ratu, Kec. Kedaton, Kota Bandar Lampung, Lampung 35132
Phone: (0721) 702022
Email: pmb@teknokrat.ac.id