Tâche (informatique)

Un exemple de groupement de fils d’exécution (en) (cases vertes) avec un ordonnancement des tâches en attente (pastilles bleues) et des tâches traitées (pastilles jaunes) vu comme un ensemble appelé tâche ou unité de travail.

En informatique, une tâche est une unité d’exécution dite aussi unité de travail. Il s'agit d'un terme global qui peut être précisé par une dénomination plus spécifique tel que le processus, le processus léger, le fil d'exécution et le mécanisme de requête-réponse (en).

Dans le diagramme adjacent, on trouve un exemple de tâche ou une file d'attente de travaux à effectuer (task queue) est rangée en entrée d'un groupement de fils d’exécution (thread pool) afin d'être traités puis stockés en sortie dans une file de travaux terminés (completed tasks). L'ensemble du travail ou les tâches qui effectuent ce travail peuvent tous être appelés « tâches ».

Terminologie générale

Dans certains systèmes d'exploitation il a le sens d'une « unité d'exécution ». Dans d'autre cas, une tâche peut être le synonyme d'un processus ou il peut encore être synonyme de fil d’exécution. Dans une exécution non interactive (traitement par lots), une tâche est une unité d'exécution d'un travail qui elle-même est typiquement un processus.

Le terme de « multitâche » fait principalement référence au sens de traitement de plusieurs tâches qui s'exécutent en même temps, mais elle présente des nuances selon le sens que l'on donne au terme de « travail ».

Terminologie IBM

L'utilisation du terme par IBM a été influente, bien que soulignant l'ambiguïté du terme. Dans la terminologie d'IBM, une « tâche » a des dizaines de significations spécifiques, notamment :

  • Une unité de travail représentant l'une des étapes d'un processus ;
  • Un traitement à accomplir par un dispositif ou un processus ;
  • Un processus et les procédures qui exécutent le traitement ;
  • Un ensemble d'actions conçues pour atteindre un résultat particulier. Une tâche est exécutée sur un ensemble de cibles selon un ordonnancement spécifique ;
  • Une unité de calcul. Dans un travail parallèle, deux ou plusieurs tâches simultanées fonctionnent ensemble via le passage de message à la mémoire partagée. Bien qu'il soit courant d'allouer une tâche par processeur physique ou logique, les termes de « tâche » et de « processeur » ne sont pas interchangeables ;
  • Une activité ayant une valeur commerciale, lancée par un utilisateur et qui sera réalisée par un logiciel.

Cette terminologie IBM est allégrement reprise dans les logiciels et les manuels édités par Microsoft.

Dans z/OS en particulier, la tâche est définie précisément comme :

« Dans un environnement multiprogrammation ou multitraitement, une ou plusieurs séquences d'instructions traitées par un programme de contrôle comme un élément de travail à accomplir par un ordinateur. »

À travers z/OS, le terme de tâche dans OS/360 est à peu près équivalent à un processus léger : les tâches d'une étape du travail partagent un espace d'adressage. Cependant, dans MVS/ESA via z/OS, une tâche ou un bloc SRB (en) peut avoir accès à d'autres espaces d'adresse via une liste d'accès.

Note et référence