Une tâche en programmation informatique est un élément de programmation de base que le système d'exploitation gère. Selon la façon dont le système d'exploitation définit une tâche dans sa conception, cette unité de programmation peut être un programme entier ou chaque invocation successive d'un programme. Les programmes utilitaires peuvent demander d'autres programmes. Ces programmes utilitaires peuvent être considérés comme des tâches ou des sous-tâches. Le multitâche est une caractéristique de tous les systèmes d'exploitation les plus populaires aujourd'hui. Elle permet d'exécuter plusieurs tâches simultanément, en utilisant différentes ressources. Le multitâche préemptif attribue à chaque tâche une priorité en fonction de son importance, de sa consommation de ressources et d'autres facteurs. Un système d'exploitation interrompra alors une tâche de priorité inférieure pour lui donner son tour. Windows 2000 , OS/390 , Linux , et Amiga sont des exemples de systèmes d'exploitation qui utilisent le multitâche préemptif. La capacité d'un système d'exploitation à gérer plusieurs tâches, comme l'exécution simultanée d'applications, sans avoir à les préempter. Il est facile de confondre le multitâche et le multithreading. Le multithreading fait référence à la gestion simultanée de plusieurs programmes concurrents. La plupart des systèmes d'exploitation et des langages informatiques modernes prennent en charge le multithreading.