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.
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.
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.
Dans un programme, une coroutine est une unité de traitement qui s'apparente à une routine, à ceci près que, alors que la sortie d'une routine met fin à la routine, la sortie de la coroutine peut être le résultat d'une suspension de son traitement jusqu'à ce qu'il lui soit signalé de reprendre son cours. La suspension de la coroutine et la reprise de son cours peuvent s'accompagner d'une transmission de données. Les coroutines permettent de réaliser des traitements basés sur des algorithmes coopératifs comme les itérateurs, les générateurs, des canaux de communication, etc.
thumb|Un processus avec deux threads. Un thread ou fil (traduction normalisés par ISO/CEI 2382-7:2000 (autres appellations connues : processus léger, fil d'exécution, fil d'instruction, processus allégé, exétron, tâche, voire unité d'exécution ou unité de traitement) est similaire à un processus car tous deux représentent l'exécution d'un ensemble d'instructions du langage machine d'un processeur. Du point de vue de l'utilisateur, ces exécutions semblent se dérouler en parallèle.
Multiprocessors are a core component in all types of computing infrastructure, from phones to datacenters. This course will build on the prerequisites of processor design and concurrency to introduce
Course no longer offered for new students; this edition is only a make-up course for those who repeated the year. Please log in with EPFL credentials and consult the mediaspace link below for course v
Explore l'importance de la synchronisation sans verrouillage pour obtenir une faible latence dans les systèmes distribués et discute des solutions pratiques pour la génération d'identificateurs uniques et les files d'attente de messagerie.