Le système d’exploitation est le logiciel le plus important et le cœur de l’ordinateur, qui gère non seulement la mémoire et les processus internes, mais permet également aux utilisateurs d’exécuter le logiciel d’application. C'est un ensemble collectif de programmes qui synthétisent le matériel du système et présentent aux utilisateurs une machine virtuelle complète. Outre les tâches de base telles que le suivi des fichiers ou des répertoires, le contrôle des périphériques, l'envoi de la sortie à l'écran, le système d'exploitation sert également à des objectifs plus ambitieux, tels que la multiprogrammation et le multitâche, pour s'assurer que les programmes exécutés simultanément n'interfèrent pas. Les systèmes d’exploitation modernes facilitent non seulement le traitement en parallèle, mais aussi la gestion du temps qui n’est qu’un concept de multiprogrammation. Le multitâche est simplement une forme rudimentaire de multiprogrammation utilisée dans un contexte différent.
La multiprogrammation est la possibilité pour plusieurs utilisateurs d’utiliser simultanément l’ordinateur en utilisant un seul processeur. L'idée est d'utiliser efficacement le processeur pour créer plusieurs processus prêts à l'emploi, chaque processus appartenant à un utilisateur différent. Si le processus en cours est bloqué pour une raison quelconque, car il doit attendre un événement particulier, le système d'exploitation alloue la CPU à un autre processus de la file d'attente. Toute l'opération est facilitée par la multiprogrammation des systèmes d'exploitation afin de maximiser l'utilisation de la CPU afin de réduire le temps d'inactivité de la CPU. L'idée est de garder le processeur occupé le plus longtemps possible.
Le multitâche signifie l’exécution simultanée de plusieurs processus par un utilisateur sur le même ordinateur utilisant plusieurs processeurs. Par exemple, dans un système d’exploitation multitâche, vous pouvez travailler sur un document Word avec un programme tout en écoutant de la musique au même moment avec un autre programme. Le multitâche est efficace lorsque les programmes sur un ordinateur nécessitent un degré élevé de parallélisme. Il repose sur le concept de partage du temps, car plusieurs processus ou tâches peuvent être basculés en conséquence à intervalles réguliers, de sorte que les utilisateurs aient l’idée qu’ils sont exécutés simultanément..
Le terme multiprogrammation est une forme rudimentaire de traitement parallèle qui signifie que plusieurs processus s'exécutent simultanément au même moment sur un même processeur. Le terme est utilisé dans les systèmes d'exploitation modernes lorsque plusieurs programmes ou processus s'exécutent sur un même processeur et que le système d'exploitation a pour tâche de gérer tous les processus de manière efficace. Le multitâche fait référence à la capacité du système d'exploitation d'exécuter plusieurs tâches à la fois en utilisant plusieurs processeurs. Il utilise essentiellement deux processeurs ou plus au sein d’un même système pour l’attribution de tâches partageant des ressources communes, notamment le processeur et la mémoire..
La multiprogrammation est basée sur le concept de commutation de contexte qui est une procédure standard qui facilite la commutation de la CPU d’un processus de thread à un autre en utilisant une seule CPU. Il stocke l'état d'un processus actif pour la CPU dans le bloc de contrôle de processus (PCB) afin que le processus reprenne à partir du même état. Le multitâche, quant à lui, repose sur le concept de partage du temps, technique utilisée pour fournir à chaque utilisateur une partie du système à temps partagé, permettant aux utilisateurs de partager simultanément les mêmes ressources. C'est une extension logique de la multiprogrammation.
Les deux termes partagent presque le même sens et sont les termes communs utilisés dans les systèmes d'exploitation modernes, mais avec des objectifs différents. Le concept de multiprogrammation repose uniquement sur la capacité de l'ordinateur à stocker des programmes ou des instructions pendant une période plus longue afin de réduire le temps d'inactivité de la CPU. L'allocation de processus est effectuée via un algorithme de planification. Le système d'exploitation exécute une partie d'un programme à la fois, suivie d'une partie d'un autre programme, etc. Dans un système d’exploitation multitâche, la CPU permet à plusieurs processus de s’exécuter simultanément via le partage du temps et les exécute en conséquence..
Dans les systèmes d'exploitation multiprogrammés, l'idée est de fournir une transparence complète entre les utilisateurs, car plusieurs utilisateurs partagent le même processeur, ce qui permet de basculer rapidement d'un utilisateur à un autre pour améliorer l'utilisation du processeur. Il permet une allocation efficace des ressources sans interaction de l'utilisateur avec le système. Le système d'exploitation exécute une partie d'un programme suivi d'un autre programme, mais il apparaît que tous les programmes sont exécutés simultanément. Dans les systèmes d’exploitation multitâches, les utilisateurs sont remplacés par des programmes ou des processus et chaque processus occupe une part non négligeable du temps CPU. Le processus se déroule si rapidement qu'il semble que plusieurs tâches s'exécutent simultanément.
En un mot, les deux termes sont souvent utilisés conjointement pour représenter des systèmes d'exploitation modernes, mais avec des objectifs et des fonctionnalités différents. Alors qu'un système d'exploitation multiprogrammant permet à plusieurs programmes de s'exécuter simultanément à l'aide d'un seul processeur, un système d'exploitation multitâche permet à plusieurs processus ou tâches d'être exécutés simultanément à l'aide de plusieurs processeurs. La multiprogrammation est basée sur la commutation de contexte, ce qui ne permet pas à la CPU de rester inactive, optimisant ainsi l'utilisation de la CPU, tandis que le multitâche est basé sur le partage du temps, car plusieurs tâches peuvent être commutées en fonction de la priorité à intervalles réguliers pour des performances de CPU maximales.