Chapitre 10 : Les processus

Définition et environnement Un processus représente à la fois un programme en cours d’exécution et tout son environnement d’exécution (mémoire, état, identification, propriétaire, père …). Voir les cours de Système d’exploitation. Voici une liste des données d’identification d’un processus : Un numéro de processus unique PID : chaque processus Unix est numéroté afin de pouvoir être différencié des autres. Le premier processus lancé par le système est 1 et il s’agit d’un processus appelé généralement init. On utilise le PID quand on travaille avec un processus. Lancer 10 fois le même programme (même nom) donne 10 PID différents. Un numéro de processus parent PPID : chaque processus peut lui-même lancer d’autres processus, des processus enfants (child process). Chaque enfant reçoit parmis les informations le PID du processus père qui l’a lancé. Tous les processus ont un PPID sauf le processus 0 qui est un pseudo-processus représentant le démarrage du système (créé le 1init). Un numéro d’utilisateur et un numéro de groupe : correspond à l’UID et au GID de l’utilisateur qui a lancé le processus. C’est nécessaire pour que le système sache si le processus à le droit d’accéder à certaines ressources ou non. Les processus enfants héritent de ces informations. Dans certains cas (que nous verrons plus tard) on peut modifier cet état. Durée de traitement et priorité : la durée de traitement correspond au temps d’exécution écoulé depuis le dernier réveil du processus. Dans un environnement multitâches, le temps d’exécution est partagé entre les divers processus, et tous ne possèdent pas la même priorité. Les processus de plus haute priorité sont traités en premier. Lorsqu’il est inactif sa priorité augmente afin d’avoir une chance d’être exécuté. Lorsqu’il est actif, sa priorité baisse afin de laisser sa place à un autre. C’est le scheduler du système qui gère les priorités et les temps d’exécution. Répertoire de travail actif : A son lancement, le répertoire courant (celui depuis lequel le processus a été lancé) est transmis au processus. C’est ce répertoire qui servira de base pour les chemins relatifs. Fichiers ouverts : table des descripteurs des fichiers ouverts. Par défaut au début seuls trois sont présents : 0 1 et 2 (les canaux standards). A chaque ouverture de fichier ou de nouveau canal, la table se remplit. A la fermeture du processus, les descripteurs sont fermés (en principe). On trouve d’autres informations comme la taille de la mémoire allouée, la date de lancement du processus, le terminal d’attachement, l’état du processus, UID effectif et Reel ainsi que GID effectif et réel. Etats d’un processus Durant sa vie (temps entre le lancement et la sortie) un processus peut passer par divers états ou process state :