Multitâche, multithreading et multitraitement
- Mise à jour2025-08-27
- Temps de lecture : 2 minute(s)
Le multitâche représente la capacité du système d'exploitation à passer rapidement d'une tâche à une autre en donnant l'apparence d'exécuter ces tâches simultanément. Par exemple, sous Windows 3.1, une tâche est en général une application entière, comme Microsoft Word, Microsoft Excel ou LabVIEW. Chaque application s'exécute pour une petite fraction de temps avant d'être remplacée par l'application suivante. Windows 3.1 utilise une technique appelée multitâche coopératif, selon laquelle les applications en cours d'exécution doivent céder le contrôle du processeur au système d'exploitation à intervalles réguliers. Windows repose sur le multitâche préemptif, lequel permet au système d'exploitation de prendre contrôle du processeur à tout instant, quel que soit l'état de l'application en cours d'exécution. Le multitâche préemptif assure une meilleure réponse à l'utilisateur et un débit de données plus élevé.
Le multithreading étend le concept du multitâche aux applications, de sorte que les différentes opérations à l'intérieur d'une même application peuvent être réparties dans plusieurs threads capables, en théorie, de s'exécuter en parallèle. Le système d'exploitation peut alors répartir le temps d'exécution non seulement entre les différentes applications, mais aussi entre les différents threads d'une application. Par exemple, dans un programme LabVIEW multithread, une application peut être répartie entre trois threads qui peuvent avoir leur propre priorité et opérer indépendamment : un thread d'interface utilisateur, un thread d'acquisition de données et un thread de contrôle d'instrument. Les applications multithread peuvent donc avoir plusieurs tâches qui s'exécutent parallèlement à d'autres applications.
Le multitraitement, ou programmation multicœur, fait référence à la présence de plusieurs processeurs dans un ordinateur qui sont chacun capables d'exécuter simultanément un thread différent. Une application monothread ne peut s'exécuter que sur un processeur à la fois. Une application multithread peut avoir plusieurs threads qui s'exécutent en même temps sur différents processeurs. Dans l'exemple à plusieurs threads de LabVIEW, le thread d'acquisition de données pourrait s'exécuter sur un processeur pendant que le thread d'interface utilisateur s'exécute sur un autre. Les applications monothread peuvent affecter considérablement les performances du système.