Réentrance

Réentrance

En informatique, la réentrance est la propriété pour une fonction d'être utilisable simultanément par plusieurs tâches utilisatrices. La réentrance permet d'éviter la duplication en mémoire vive d'un programme utilisé simultanément par plusieurs utilisateurs.

L'écriture de code réentrant était autrefois une tâche très ardue. Elle s'est simplifiée avec les langages actuels qui autorisent :

Le noyau d'un système d'exploitation comporte souvent des parties non réentrantes afin d'éviter des complications fâcheuses (incohérence de données critiques, perte de performances). L'écriture de modules destinés à être exécutés dans l'espace noyau reste, pour cette raison, délicate.

Réentrance et langages de programmation

La réentrance des programmes n'est pas forcément garantie par tous les langages de programmation. Ainsi, par exemple, un programme écrit en Ada sera toujours réentrant alors qu'un programme écrit en C ne l'est pas par défaut. La non-réentrance d'un programme est rarement un problème dans le cas de la programmation monotâche, mais peut produire des résultats désastreux en programmation concurrente.

Relation à "thread-safe"

Les deux concepts de réentrance et de thread-safe concernent la manière dont les fonctions gèrent les ressources. Le concept de réentrance a un impact sur l'interface externe de la fonction, alors que le concept de thread-safe concerne l'implémentation de la fonction.

  • Dans la plupart des cas, pour transformer une fonction non réentrante en une fonction réentrante, on doit modifier son interface externe pour que toutes les données soient fournies par l'appelant de la fonction (remplacement des éventuelles variables globales utilisées dans la fonction par des variables locales).
  • Pour rendre thread-safe une fonction non thread-safe, un changement d'implémentation seul suffit. De manière usuelle, l'ajout d'un point de synchronisation tel qu'une section critique ou un sémaphore est utilisé pour protéger l'accès a une ressource partagée d'un accès concurrent d'une autre tâche/thread.

La réentrance est une propriété plus forte que le thread-safe, autrement dit (et par définition) :

  • Toute fonction réentrante est thread-safe.
  • Une fonction thread-safe n'est pas forcément réentrante.

Voir aussi


Wikimedia Foundation. 2010.

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

Игры ⚽ Нужно решить контрольную?

Regardez d'autres dictionnaires:

  • Reentrance — Réentrance En informatique, la réentrance est la propriété pour une fonction d être utilisable simultanément par plusieurs tâches utilisatrices. La réentrance permet d éviter la duplication en mémoire vive d un programme utilisé simultanément par …   Wikipédia en Français

  • Reentrance — Re*[ e]n trance (r?*?n trans), n. The act entereing again; re?ntry. Hooker. [1913 Webster] …   The Collaborative International Dictionary of English

  • reentrance — noun Date: 1594 reentry …   New Collegiate Dictionary

  • reentrance — v.t., reentranced, reentrancing. * * * …   Universalium

  • reentrance — noun A second or subsequent entrance; the act of reentering …   Wiktionary

  • réentrance — ● n. f. ►EXEC Faculté d un système de faire appeler et exécuter son code par plusieurs programmes en même temps. DOS n est pas du tout réentrant car monotâche, par contre, les DLL de Windoze sont réentrantes …   Dictionnaire d'informatique francophone

  • reentrance — rɪː entrÉ™ns n. act of entering again, act of going in again, act of coming in again …   English contemporary dictionary

  • reentrance — re·entrance …   English syllables

  • reentrance — …   Useful english dictionary

  • I.A. — Intelligence artificielle Pour les articles homonymes, voir A.I. Intelligence artificielle (film),IA. Le robot humanoïde ASIMO …   Wikipédia en Français

Share the article and excerpts

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