III. Gestion des processus
a. Les informations liées aux processus
b. Commandes liées aux processus
c. Table de descripteurs (de fichiers)

III. Gestion des processus
Les priorités des processus créent un phénomène appelé "ordonnancement " lié à la gestion de la mémoire.
Ordonnancement
Le temps de processeur total disponible est divisé en petites plages : le quantum. Un processus ne peut rester dans le processeur que le temps d'un quantum.
Traitement des processus
Traitement d'un programme

a. Les informations liées aux processus UID, EUID, SUID sont hérités du père au moment du fork (UID=EUID=SUID). Au cours d'un exec, si le fichier est en Set UID, l'EUID du processus devient celui du fichier.
Exemple à propos de EUID et de EGID :
Soit un utilisateur (UID=501 et GID=100) qui lance la commande passwd (commande qui permet de changer le mot de passe). Cette information étant stockée dans le fichier /etc/passwd, l'utilisateur lambda ne peut donc pas la modifier. En théorie du moins.
En pratique, il se voit affecté temporairement (par le biais de Set UID et de Set GID) des valeurs 0 en EUID (valeur correspondant au root) et 2 en EGID. Il peut donc changer son mot de passe.
Autre exemple :
/usr/bin/ps Set UID=1
gauss% ps UID=root
UID EUID SUID
Avant l'exec linf13 linf13 linf13
Après l'exec linf13 root root
Deux cas où les UID, EUID, SUID peuvent changer :
  • appel système.
  • pendant l'exec.
Commande pour lister les processus : ps.
ps : affichage de quelques processus.
ps -e : affichage de tous les processus.
ps -f et ps -l : affichage d'informations, assez complete.
ps -u user: affichage des processus de user (EUID).
ps -U user: affichage des processus de user (UID).
b. Commandes liées aux processus
Zone u
Texte
Données

Tas


Pile

= Informations sur le processus

= Instructions
fork :
  • allocation d'une entrée dans la table de processus.
  • duplication de la zone u.
  • portage du code et des données.
  • copy on write (lorsqu'une modification intervient, il y a copie du processus).
exec :
  • on libère tout sauf l'entrée dans la table des processus et la zone u.
  • allocation des zones texte, données, pile et tas pour le programme chargé.
exit :
  • on libère tout sauf l'entrée dans la table des processus (processus en état zombie).
  • exit (n) retourne un code de sortie (n) qui pourra être récupéré par le père.
wait :
  • attente de terminaison du fils, s'il n'est pas encore terminé.
  • récupération des informations sur la terminaison du fils (code de sortie).
  • disparition définitive du fils.
c. Table de descripteurs (de fichiers)

Fichiers ouverts :
Table de descripteurs
Remarque :
Deux processus peuvent partager le même pointeur de fichier.