Nous utilisons des cookies pour améliorer votre expérience. En poursuivant votre navigation sur ce site, vous acceptez l'utilisation de cookies.


Politique de confidentialité

Processus et programmes

 

Processus et programmes

Un programme est une entité passive qui n'effectue aucune action par elle-même ; il doit être exécuté pour que les actions qu'il demande aient lieu. Un processus est l'exécution d'un programme. Il exécute réellement les actions spécifiées dans un programme. Un système d'exploitation  partage l'unité centrale (processeur) entre les processus. C'est ainsi qu'il fait exécuter les programmes utilisateur.

Qu'est-ce qu'un processus ?

De manière informelle, comme mentionné précédemment, un processus est un programme en cours d'exécution. L'état de l'activité en cours d'un processus est représenté par la valeur du compteur de programme et le contenu des registres du processeur. La disposition de la mémoire d'un processus est généralement divisée en plusieurs sections et est illustrée dans la figure ci-dessous. Ces sections comprennent:

  •  Section texte - le code exécutable
  •  Section de données - variables globales
  •  Section tas : mémoire allouée dynamiquement pendant l'exécution du programme.
  •  Section pile - stockage temporaire de données lors de l'appel de fonctions (paramètres de fonction, adresses de retour et variables locales).

Notez que les tailles des sections de texte et de données sont fixes, car leurs tailles ne changent pas pendant l'exécution du programme. En revanche, les sections pile et tas peuvent diminuer et augmenter dynamiquement pendant l'exécution du programme. Chaque fois qu'une fonction est appelée, un enregistrement d'activation contenant les paramètres de la fonction, les variables locales et l'adresse de retour est poussé sur la pile ; lorsque le contrôle est rendu par la fonction, l'enregistrement d'activation est retiré de la pile. De même, le tas s'agrandit au fur et à mesure que la mémoire est allouée dynamiquement, et se rétrécit lorsque la mémoire est rendue au système.

Bien que les sections pile et tas croissent l'une vers l'autre, le système d'exploitation doit s'assurer qu'elles ne se chevauchent pas.

Nous soulignons qu'un programme en lui-même n'est pas un processus. Un programme est une entité passive, comme un fichier contenant une liste d'instructions stockées sur le disque (souvent appelé fichier exécutable). En revanche, un processus est une entité active, avec un compteur de programme spécifiant la prochaine instruction à exécuter et un ensemble de ressources associées. Un programme devient un processus lorsqu'un fichier exécutable est chargé en mémoire.

Bien que deux processus puissent être associés au même programme, ils sont néanmoins considérés comme deux séquences d'exécution distinctes. Chacun d'eux est un processus distinct. Et bien que les sections de texte soient équivalentes, les sections de données, de tas et de pile varient.

Notez qu'un processus peut lui-même être un environnement d'exécution pour un autre code. L'environnement de programmation Java en est un bon exemple. Dans la plupart des cas, un programme Java exécutable est exécuté dans la machine virtuelle Java (JVM). La JVM s'exécute comme un processus qui interprète le code Java chargé et prend des mesures (via des instructions machine natives) au nom de ce code.

Relations entre processus et programmes

Un programme est constitué d'un ensemble de fonctions et de procédures. Lors de son exécution, le contrôle circule entre les fonctions et les procédures selon la logique du programme. L'exécution d'une fonction ou d'une procédure est-elle un processus ? Ce doute conduit à la question évidente : quelle est la relation entre les processus et les programmes ?

Le système d'exploitation  ne sait rien de la nature d'un programme, y compris les fonctions et les procédures de son code. Il ne sait que ce qu'on lui dit par le biais des appels système. Le reste est sous le contrôle du programme. Ainsi, les fonctions d'un programme peuvent être des processus distincts ou constituer la partie code d'un seul processus.

Partager ce cours avec tes amis :
Rédigé par ESSADDOUKI Mostafa
ESSADDOUKI
The education of the 21st century opens up opportunities to not merely teach, but to coach, mentor, nurture and inspire.