Processus (informatique)
programme en cours d'exécution par un ordinateur De Wikipédia, l'encyclopédie libre
programme en cours d'exécution par un ordinateur De Wikipédia, l'encyclopédie libre
Un processus (en anglais, process), en informatique, est un programme en cours d'exécution par un ordinateur. De façon plus précise, il peut être défini comme :
L'exécution d'un processus dure un certain temps, avec un début et (parfois) une fin. Un processus peut être démarré par un utilisateur par l'intermédiaire d'un périphérique ou bien par un autre processus : les « applications » utilisateur sont des ensembles de processus.
Dans le CIM Schema défini par le Common Information Model, la classe de base CIM_Process est attribuée aux processus informatiques[1]. Selon le système d'exploitation, elle peut être dérivée en Win32_Process[2], en IBMzOS_Process[3] ou en CIM_UnixProcess[4].
Un ordinateur équipé d'un système d'exploitation multitâches est capable d'exécuter plusieurs processus de façon simultanés.
Par analogie avec les télécommunications, on nomme multiplexage ce procédé.
S'il y a plusieurs processeurs, l'exécution des processus est distribuée de façon équitable sur ces processeurs.
Le système d'exploitation est chargé d'allouer les ressources (mémoires, temps processeur, entrées/sorties) nécessaires aux processus et d'assurer que le fonctionnement d'un processus n'interfère pas avec celui des autres (isolation).
Il peut aussi fournir une API pour permettre la communication inter-processus (IPC).
Outre le multiplexage des ressources matérielles, le système peut contrôler l'accès des processus aux ressources selon une matrice de droits et également associer les processus aux utilisateurs, qui sont les récipiendaires d'un ensemble de droits d'accès : un processus a les droits de l'utilisateur qui l'a initialisé.
Un processus peut s'arrêter de plusieurs manières :
Quand un arrêt de processus n'est pas un arrêt normal, il peut être important d'en être prévenu. Cela peut se faire par des systèmes de supervision (aussi appelé monitoring).
La plupart des systèmes offrent la distinction entre processus, qui sont a priori complètement isolés les uns des autres, et « processus légers » (threads en anglais), qui composent les processus (chaque processus possède au moins un thread) et qui partagent un espace mémoire (et d'autres ressources) en commun.
Dans le cas de processus comportant plusieurs processus légers (ou suivant l'expression souvent utilisée multi-thread) il existe un état du processeur (un contexte d'exécution) distinct pour chaque processus léger.
Les états successifs d'un processus sont généralement représentées par un diagramme d'état.
L'utilisation de diagrammes d'état est dû au fait qu'un processus n'est cohérent, de l'extérieur, qu'à certains moments de son exécution, notamment en dehors des sections critiques. En pratique, on observe l'état d'un processus en communiquant avec lui ; il fournit ainsi une réponse au moment où il est cohérent.
Prenons un exemple ; soit la suite d'instructions en pseudo-code appartenant à un programme quelconque :
procédure empiler (v : valeur) compteur := compteur+1 vect[compteur] := v
Le programme utilisant cette fonction n'est observable qu'avant ou après un appel à la fonction empiler()
car, entre les instructions d'incrémentation et d'affectation, la cellule numéro compteur
du tableau vect[]
n'est pas affectée et contient... une valeur aléatoire (une mémoire est rarement vide).
Ces états existent dans la plupart des systèmes d'exploitation :
Selon les systèmes d'exploitation, ces différents états peuvent aussi être possibles :
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.