Académique Documents
Professionnel Documents
Culture Documents
2 Processus PDF
2 Processus PDF
Notion de processus
Objectifs de séance
Introduire la notion de processus,
Introduire les différents identifiants qui y sont
associés, leurs significations et leurs utilisations
dans le système
1. Concept de processus
Données
Code
3. Hiérarchie
Arbre de
processus en
UNIX
4. Terminaison de processus
9
6. Sauvegarde d’informations
Représente la
situation
actuelle d’un
processus,
pour le Registres UCT
reprendre
plus tard
7. Lister les processus
1. Compiler « exemple_getuid.c »
2. lister les droits d’accès, les UID et GID
3. exécuter
10. Identification du user correspondant
UID sauvé
• Copie, effectuée automatiquement par le noyau, de
l’ancien UID effectif lorsque celui-ci est modifié
Un processus peut toujours demander à changer son UID
effectif ou son UID réel pour prendre la valeur de l’UID
sauvé
Il est également possible de prendre en UID effectif la
valeur de l’UID réel, et inversement
Un processus avec le bit Set-UID positionné démarre
avec un UID effectif différent de celui du user qui l’a
invoqué
• Pour effectuer une opération non privilégiée, il peut
demander à remplacer son UID effectif par l’UID réel
10. Identification du user correspondant
Exemple setgroups
12. Identification du groupe de processus
Les processus sont organisés en groupes
Ne pas confondre avec groupes de users
Les groupes de processus permettent l’envoi global de signaux à
un ensemble de processus.
• Utiles surtout aux shells pour implémenter le contrôle des jobs
• Rarement pris en considération dans les applications classiques
Déterminer le groupe d’un processus donné:
• pid_t getpgid (pid_t pid);
o déclaré dans <unistd.h>
o renvoie le numéro de groupe, ou –1 si le processus
mentionné n’existe pas,
Il faut déclarer la constante symbolique _GNU_SOURCE avant
l’inclusion de <unistd.h>
getpgrp() est similaire à getpgid(0)
• portabilité non assurée entre certaines versions d’Unix
12. Identification du groupe de processus
Exemple «exemple_getpgid.c»
1. Examiner la liste des processus
présents sur votre système
2. Compiler et exécuter en donnant
en ligne d’arguments la liste des
PID obtenu et finissez par 0
3. Que représente le processus
num 0
12. Identification du groupe de processus
Un processus peut modifier son propre identifiant de
groupe ou celui de l’un de ses descendants:
• int setpgid (pid_t pid, pid_t pgid);
• pid: PID du processus à modifier
o Nul => il s’agit du processus appelant.
• pgid : nouveau numéro de groupe pour le processus
concerné
o Si (pgid==pid || pgid==0) alors le processus devient leader de
son groupe
• échec si le processus visé n’est ni le processus
appelant ni l’un de ses descendants.
un processus ne peut plus modifier le groupe de l’un de
ses descendants si celui-ci a effectué un appel à l’une
des fonctions de la famille exec().
12. Identification du groupe de processus