Concept

Fibre (informatique)

Résumé
En informatique, une fibre (fiber en anglais) est un type de thread particulièrement léger. Comme les threads, les fibres partagent le même espace mémoire. 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 de l'ordonnanceur (en anglais 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. 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, ou une fonctionnalité sur laquelle sont implémentées les coroutines. 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. Les fibres ont l'inconvénient de ne pas bénéficier 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.
À propos de ce résultat
Cette page est générée automatiquement et peut contenir des informations qui ne sont pas correctes, complètes, à jour ou pertinentes par rapport à votre recherche. Il en va de même pour toutes les autres pages de ce site. Veillez à vérifier les informations auprès des sources officielles de l'EPFL.