Fibre (informatique)

Fibre (informatique)
Page d'aide sur l'homonymie Pour les articles homonymes, voir Fibre (homonymie).

En Informatique, une fibre (fiber en anglais) est un thread d'exécution particulièrement léger.

Comme les threads, les fibres partagent la même mémoire virtuelle. Toutefois, les fibres utilisent impérativement un multitâche coopératif là où les threads utilisent en général un multitâche préemptif. Les threads dépendent souvent du scheduler du noyau (en anglais kernel) pour préempter un thread occupé et reprendre l'exécution d'un autre thread. Les fibres doivent manuellement rendre l'exécution afin de permettre à une autre fibre de continuer sa propre exécution.

Sommaire

Fibres et coroutines

Les fibres décrivent essentiellement le même concept que les coroutines. La distinction, s'il y en a une, est que les coroutines sont un concept même du langage, là où les fibres sont plus du domaine du système d'exploitation, vues comme des threads qui se trouvent ne pas s'exécuter en concurrence. La dépendance d'un concept envers l'autre n'est pas claire : Les fibres peuvent être vues comme une implémentation de coroutines[1], ou une fonctionnalité sur laquelle est implémentée les coroutines[2].

Avantages et désavantages

Puisque les fibres fonctionnent dans un mode multitâche coopératif, la synchronisation n'est plus le problème majeur comme avec les threads fonctionnant en multitâche préemptifs. Les concepts usuels de synchronisation comme les sémaphores, les mutex et l'atomicité des opérations sont inutiles lorsque l'on écrit le code destiné à une fibre, puisque la synchronisation est implicite. Toutefois, certaines bibliothèques utilisant des fibres pour certaines opérations (comme les entrées/sorties non-bloquantes), il est recommandé de parcourir les documentations avant d'utiliser des fibres.

Le désavantage des fibres est que les fibres ne bénéficient pas automatiquement d'une architecture multiprocesseurs sans passer par l'usage de threads préemptifs. Toutefois, un modèle de thread de type N:M avec pas plus de threads que de cœurs/processeurs peut être plus efficace qu'un modèle simple basé uniquement sur des threads, ou un modèle simple basé uniquement sur des fibres.

Support des fibres selon les systèmes d'exploitation

Les fibres nécessitent moins de support de la part du système d'exploitation que les threads. Elles peuvent être implémentées sur les systèmes modernes Unix en utilisant des fonctions comme getcontext, setcontext et swapcontext définies dans l'entête ucontext.h de la librairie GNU Portable Threads.

Sur Microsoft Windows, les fibres sont créées via les appels à ConvertThreadToFiber et CreateFiber; une fibre suspendue pouvant voir son exécution reprendre dans n'importe quelle thread. Le Fiber local storage, analogue au Thread Local Storage, peut être utilisé pour créer des copies de variables uniques pour la fibre[3].

Symbian OS utilise un concept similaire aux fibres dans son Active Scheduler. Un Active object (Symbian OS) contient une fibre qui sera exécutée par l'Active Scheduler lorsque l'une des tâches asynchrones s'achève. De multiples Active objects peuvent être en attente d'exécution (selon leur priorité), et chacun doit restreindre son propre temps d'exécution.

Notes et références

Voir aussi

  • Fonctions getcontext/setcontext
  • Thread
  • Green thread

Liens externes



Wikimedia Foundation. 2010.

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

Игры ⚽ Поможем сделать НИР

Regardez d'autres dictionnaires:

  • fibre optique — ● n. f. ►CABLE Très mince fil de verre (très fragile) permettant de transporter de l information sous la forme d impulsions lumineuses. Le principal inconvénient de la fibre optique est son coût. Son principal intérêt est de ne pas être sensible… …   Dictionnaire d'informatique francophone

  • fibre — ● n. f. ►CABLE Voir Fibre Channel, fibre optique …   Dictionnaire d'informatique francophone

  • Fibre Channel — ● n. f. ►NORM Le Fibre Channel est une norme de transmission de données en série, permettant d obtenir un débit de 100 Mo/s sur des liens de quelques kilomètres de long (10 km au maximum). Voir FC AL. http://www.fiberchannel.com …   Dictionnaire d'informatique francophone

  • Fibre (homonymie) — Cette page d’homonymie répertorie les différents sujets et articles partageant un même nom. Le mot fibre peut correspondre à: Fibre, un materiau naturel (végétal, animal ou minéral) ou artificiel. Fibre (informatique), dans le monde informatique …   Wikipédia en Français

  • Fibre Optique — Fibres optiques Une fibre optique est un fil en verre ou en plastique très fin qui a la propriété de conduire la lumière et sert dans les transmissions terrestres et océaniques de données. Elle offre un débit d informations nettement supérieur à… …   Wikipédia en Français

  • Fibre Channel — est un protocole défini par la norme ANSI X3T11 permettant une connexion haut débit (de l ordre du gigabit par seconde) entre un ordinateur et son système de stockage ou d autre type de périphérique. Il garantit l’arrivée des données, il permet… …   Wikipédia en Français

  • Fibre De Verre — Ensemble de fibres de verre La fibre de verre est un filament de verre extrêmement fin. Par extension, les matériaux composites renforcés de cette fibre (généralement associés à polymères) sont aussi appelé fibre de verre. Sommaire …   Wikipédia en Français

  • Fibre Optique Noire — La fibre optique noire désigne une fibre optique brute installée mais qui n est pas encore activée, ni à plus forte raison, utilisée. Elle est appelée ainsi car elle n est pas encore alimentée par une source lumineuse. On retrouve beaucoup de… …   Wikipédia en Français

  • Fibre optique — Fibres optiques Une fibre optique est un fil en verre ou en plastique très fin qui a la propriété de conduire la lumière et sert dans les transmissions terrestres et océaniques de données. Elle offre un débit d informations nettement supérieur à… …   Wikipédia en Français

  • Fibre optique : le collage à froid — La fibre optique est un moyen de transmission utilisant la lumière pour transmettre les données. Elle est de plus en plus utilisée de nos jours surtout dans le domaine de l informatique. Le collage à froid est une technique permettant de… …   Wikipédia en Français

Share the article and excerpts

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