Leçon 5 : Qu'est-ce qu'un processus ? /proc et la structure de la mémoire
Un processus est un programme en cours d'exécution — pas le binaire sur le disque, mais son instance vivante avec sa mémoire, ses descripteurs de fichiers et son état. Chez NVIDIA, chaque application CUDA est un processus avec son propre contexte GPU. Quand un GPU se bloque, ps aux | grep cuda trouv
Un processus est comme un employé qui effectue une tâche : le fichier binaire est un CV écrit sur papier, mais le processus est l'employé réel, assis à son bureau, qui utilise un ordinateur et communique avec les autres. /proc est le tableau de gestion qui montre chaque employé et ce qu'il fait.
- Processus
- Une instance en cours d'exécution d'un programme. Chaque processus reçoit un PID unique, un espace d'adressage séparé, des descripteurs de fichiers et un état CPU. Des processus différents ne partagent pas directement la mémoire.
- PID (identifiant de processus)
- Un entier unique que le noyau attribue à chaque processus. Le PID 1 est toujours init/systemd. /proc/<pid>/ contient toutes les informations sur un processus.
- PPID (identifiant du processus parent)
- Le PID du processus parent qui a créé le processus actuel. Chaque processus est créé par un autre processus (sauf init). PPID=0 indique que le noyau a créé le processus.
- État du processus
- État actuel d'un processus : R (Running/Runnable), S (Sleeping — en attente d'E/S), D (Uninterruptible sleep — en attente du noyau), Z (Zombie — terminé mais le parent n'a pas nettoyé), T (Stopped).
- Système de fichiers /proc
- Un système de fichiers virtuel que le noyau génère en mémoire. Chaque /proc/<pid>/ est un répertoire contenant des informations en direct sur un processus : status, maps, fd, cmdline et plus encore.