Processus (informatique)

Processus (informatique)
Page d'aide sur l'homonymie Pour les articles homonymes, voir Processus.
Diagramme d'état d'un processus simple.

Un processus (en anglais, process), en informatique, est une opération complexe exécutable par un ordinateur et définie par :

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.

Sommaire

Rôle du système d'exploitation

Un ordinateur équipé d'un système d'exploitation à temps partagé est capable d'exécuter plusieurs processus de façon quasi-simultanée. 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.

Ressources et Communication

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).

Exécution

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 :

  1. Arrêt normal (volontaire).
  2. Arrêt pour erreur (volontaire).
  3. Arrêt pour erreur fatale (involontaire).
  4. Le processus est arrêté par un autre processus (involontaire).

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 « lourd » (tels que nous les avons décrits), qui sont a priori complètement isolés les uns des autres, et « processus légers » (threads en anglais), qui ont 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.

États d'un processus

Les états successifs d'un processus sont généralement représentées par un diagramme d'état.

Observabilité

L'utilisation de diagrammes d'état est dû au fait qu'un processus n'est cohérent, de l'extérieur, qu'à certains moment 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).

États que peut prendre un processus sous la forme d'un diagramme états-transitions où les flèches sont les transitions autorisées.
Diagramme état-transition plus complexe suivi par les processus des systèmes d'exploitation modernes

États standards

Ces états existent dans la plupart des systèmes d'exploitation :

  • Initialisation (en anglais, created ou new) :
C'est le premier état d'un processus. Il y attend que l'ordonnanceur le place dans l'état prêt, ce qui peut prendre plus ou moins longtemps. Généralement, dans les ordinateur de bureau, cela est automatique ; dans un système d'exploitation temps réel, cette admission peut-être reportée. En effet, dans de tels systèmes, trop de processus en attente peuvent amener à une saturation, notamment des bus, entraînant l'incapacité du système à tenir les délais.
  • Prêt ou En attente (en anglais, ready ou runnable) :
Dans cet état, le processus a été chargé en mémoire centrale et attend son exécution sur le processeur, c'est-à-dire une commutation de contexte provoquée par l'ordonnanceur.
Il peut y avoir beaucoup de processus en attente car, sur un ordinateur équipé d'un seul processeur, les processus doivent passer un par un. Les processus disponibles sont rangés dans une file ; les autres, ceux qui attendent quelque chose (données provenant du disque dur, une connexion internet, etc.) ne sont pas pris en compte. Cette file d'attente (ready queue) est gérée par l'ordonnanceur.
  • Élu ou Exécution (en anglais, running ) :
Le processus est en cours d'exécution par le processeur.
  • Endormi ou Bloqué (en anglais, blocked ou waiting) :
Le processus a été interrompu ou attend un événement (la fin d'une opération d'entrée/sortie, un signal, ...).
  • Terminé (en anglais, terminated) :
Le processus est terminé, c'est-à-dire soit le résultat est connu, soit le programme a été forcé de s'arrêter.

États particuliers

Selon les systèmes d'exploitation, ces différents états peuvent aussi être possible :

Si un processus terminé ne peut pas être déchargé de la mémoire, par exemple, si un de ses fils n'est pas terminé, il passe dans un état appelé zombie.
  • Swappé :
Lorsque qu'un processus est transféré de la mémoire centrale dans la mémoire virtuelle, il est dit « swappé ». Un processus swappé peut être dans un état endormi ou prêt.
  • Préempté :
L'ordonnanceur a décidé de suspendre l'activité d'un processus. Par exemple, un processus qui consomme trop de temps CPU finira par être préempté. Un ordonnanceur préemptif utilise aussi l'indice de priorité (nice (Unix)) pour décider le processus qui sera préempté.
L'exécution a lieu dans un espace limité : seul certaines instructions sont disponibles.
Par opposition au mode utilisateur, l'exécution du processus n'est pas limité. Par exemple, un processus dans cet état peut aller lire dans la mémoire d'un autre.

Historique

Voir aussi

Articles connexes

Liens externes


Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Processus (informatique) de Wikipédia en français (auteurs)

Игры ⚽ Поможем сделать НИР

Regardez d'autres dictionnaires:

  • Processus informatique — Processus (informatique) Pour les articles homonymes, voir Processus. Diagramme d état d un processus. Un pro …   Wikipédia en Français

  • Processus zombie — Pour les articles homonymes, voir Zombie. En informatique, sous les systèmes de type UNIX et similaires, zombie (on utilise plutôt l orthographe anglaise) est un terme désignant un processus qui s est achevé, mais qui dispose toujours d un… …   Wikipédia en Français

  • Processus leger — Processus léger Pour les articles homonymes, voir Processus, Léger, Thread et Fil. Un processus avec deux process …   Wikipédia en Français

  • Processus léger — Pour les articles homonymes, voir Processus, Léger, Thread et Fil. Un processus avec deux process …   Wikipédia en Français

  • INFORMATIQUE ET SCIENCES HUMAINES - Art et informatique — L’utilisation d’ordinateurs pour des fins artistiques s’inscrit dans la généralisation de l’emploi de l’outil informatique. Mais elle résulte aussi d’un détournement: l’ordinateur, en effet, n’a pas été conçu pour l’art. Ses caractéristiques… …   Encyclopédie Universelle

  • Informatique Musicale — L informatique musicale est une discipline qui comporte des aspects de synthèse sonore et d aide à la composition musicale. Dans les années 1950 1970, l essor de la technologie numérique des ordinateurs a chamboulé la composition musicale qui,… …   Wikipédia en Français

  • Informatique et développement durable — L application des principes de développement durable à l informatique est un sujet à la fois nouveau, très complexe, et potentiellement extrêmement vaste. Nous ne sommes probablement qu au début d un processus de transformation des métiers de l… …   Wikipédia en Français

  • INFORMATIQUE — LE MOT «informatique» a été proposé en 1962 par Philippe Dreyfus pour caractériser le traitement automatique de l’information. Ce terme a été accepté par l’Académie française en avril 1966, avec la définition suivante: «Science du traitement… …   Encyclopédie Universelle

  • INFORMATIQUE - Informatique et sciences de la vie — Les moyens de l’informatique ont considérablement progressé, non seulement par l’ampleur des données ou des problèmes qu’ils permettent de traiter, mais aussi par les facilités d’accès et de programmation; de plus le coût, à performances égales,… …   Encyclopédie Universelle

  • Processus de transaction en ligne — Un processus de transaction en ligne (de l anglais On Line Transactional Processing, ou OLTP) permet de qualifier les bases de données pouvant réaliser rapidement des transactions SQL (parfois en temps réel) à destination d autres applications… …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”