Fiche de révision

Processus et ressources

Contenu


Un programme est statique. Son exécution change l'état du processeur et de la mémoire. Après avoir appris comment écrire un programme, il s'agit de comprendre comment la machine organise son traitement alors que bien d'autres programmes sont aussi en cours d'exécution.

INotion de processus

Il faut distinguer un programme de son exécution : le lancement d'un programme entraîne des lecture/écriture de registres et d'une partie de la mémoire. D'ailleurs, un même programme peut être exécuté plusieurs fois sur une même machine au même moment en occupant des espaces mémoire différents.

Un processus représente une instance d'exécution d'un programme dans une machine donnée.

IILes états d'un processus

Au cours de son existence dans la machine, un même processus peut se retrouver dans différents états qui sont résumés ci-dessous.

Un processus est créé et se trouve alors dans l'état prêt : il attend de pouvoir avoir accès au processeur.

Le processus obtient l'accès au processeur. Il passe alors dans l'état élu.

Alors qu'il est élu, le processus peut avoir besoin d'attendre une ressource quelconque comme, par exemple, une ressource en mémoire. Il doit alors quitter momentanément le processeur pour que celui-ci puisse être utilisé à d'autres tâches (le processeur ne doit pas attendre !). Le processus passe donc dans l'état bloqué.

Le processus a obtenu la ressource attendue mais s'est fait prendre sa place dans le processeur par un autre processus. Il se met donc en attente et repasse à l'état prêt.

Un processus ne pourra terminer que s'il est déjà dans l'état élu sauf anomalie.

06461_chap09_fiche28_i01

Cycle des états d'un processus

IIILes commandes Linux de gestion des processus

1 La commande ps

La commande ps (penser à ProcessuS) est utilisée pour afficher des informations sur un processus. L'option u permet de préciser le propriétaire, l'option l permet un affichage avec plus d'attributs (long).

Par exemple, pour connaître les processus appartenant à l'utilisateur moi :

Tableau de 6 lignes, 9 colonnes ;Corps du tableau de 6 lignes ;Ligne 1 : ; $ ps -lu moi; Ligne 2 : ; F S UID; PID; PPID C; PRI; NI; ADDR SZ  WCHAN; TTY TIME; CMD; Ligne 3 : ; 0 S 1000; 9412; 3048 0; 80; 0; -   1156 wait; ? 00:00:00; sh; Ligne 4 : ; 0 S 1000; 9413; 9412 0; 80; 0; - 178754 poll_s; ? 00:00:07; tilda; Ligne 5 : ; 0 S 1000; 9423; 9413 0; 80; 0; -   7537 wait; pts/2 00:00:00; bash; Ligne 6 : ; 4 R 1000; 28867; 9423 0; 80; 0; -  11140 -; pts/2 00:00:00; ps;

La colonne S indique l'état (state) du processus : S pour stopped, R pour running et Z pour zombie.

PID est le processus identifier : un identifiant sous forme d'entier donné par le système.

PPID est le parent processus identifier qui donne l'identifiant du parent qui a engendré le processus.

CMD est le nom de la commande.

2 La commande kill

Il n'est parfois pas possible de fermer un processus graphique en cliquant par exemple sur la croix prévue pourtant à cet effet. On peut utiliser la commande kill si on connaît le PID du processus à « tuer » qui peut être obtenu avec l'option C de ps :

Tableau de 9 lignes, 10 colonnes ;Corps du tableau de 9 lignes ;Ligne 1 : ; $ ps -lC codium; Ligne 2 : ; F S UID; PID; PPID; C; PRI; NI; ADDR SZ WCHAN TTY; TIME; CMD; Ligne 3 : ; 0 S 1000; 3091; 1; 3; 80; 0; - 218751 poll_s ?; 00:00:01; codium; Ligne 4 : ; 0 S 1000; 3093; 3091; 0; 80; 0; -  94034 poll_s ?; 00:00:00; codium; Ligne 5 : ; 0 S 1000; 3116; 3091; 2; 80; 0; - 134596 poll_s ?; 00:00:01; codium; Ligne 6 : ; 0 S 1000; 3129; 3091; 0; 80; 0; - 111394 futex_ ?; 00:00:00; codium; Ligne 7 : ; 0 S 1000; 3138; 3091; 11; 80; 0; - 276851 futex_ ?; 00:00:05; codium; Ligne 8 : ; 0 S 1000; 3162; 3138; 3; 80; 0; - 173887 ep_pol ?; 00:00:01; codium; Ligne 9 : ; 0 S 1000; 3192; 3091; 1; 80; 0; - 182402 futex_ ?; 00:00:00; codium;

On découvre une « généalogie » des processus. 3091 est le parent de tous les autres. C'est lui qu'il faut interrompre :

Tableau de 3 lignes, 2 colonnes ;Corps du tableau de 3 lignes ;Ligne 1 : ; $ kill 3091; Ligne 2 : ; $ ps -lC codium; Ligne 3 : ; F S  UID  PID  PPID  C  PRI  NI  ADDR  SZ  WCHAN  TTY  TIME  CMD;

Accéder à tous les contenus
dès 6,79€/mois

  • Les dernières annales corrigées et expliquées
  • Des fiches de cours et cours vidéo/audio
  • Des conseils et méthodes pour réussir ses examens
  • Pas de publicités
S'abonner