Tp2 Flashcards
Héritage
Le fils hérite quelques attributs :
les propriétaires réels et effectifs,
le répertoire de travail et
la valeur de nice.
Tms_stime
#include<sys/times.h>
indique le temps système c à dire temps CPU passé par le Kernel (le système d’exploitation) au nom du processus appelant
Tms_utime
#include<sys/times.h>
indique le temps utilisateur c à dire le temps CPU passé par le processus en cours (pour exécuter les instructions de son programme )
Tous les temps sont donnés en nombres de ticks d’horloge.
Copie des donées :
Le fils travaille sur les données du père s’il accède seulement en lecture.
S’il accède en écriture à une donnée, celle-ci est alors recopiée dans son espace local
(principe copy-on-write : performances du système sont améliorées).
Héritage
Par contre, le processus fils n’hérite pas :
- la priorité du père : la priorité du fils est initialisée à une valeur standard.
- Des temps d’exécution qui sont initialisés à 0
- les verrous sur les fichiers détenus par le père
- les signaux reçus pendant du père
Les processus Zombies
- Un processus zombie est un processus qui a été lancé par un processus parent et qui s’est
terminé sans que le processus parent ne soit mis au courant. - Le système vide alors la mémoire et les ressources utilisées par le processus Zombie .
- La table des processus garde une trace de ce processus, à disposition du processus parent.
- Dès lors, au moment où le processus parent demandera au système l’état du processus
dont il est l’instigateur, le processus zombie disparaîtra
Un processus Zombie se caractérise dans le résultat affiché par la commande ps par:
o la valeur Z de l’état,
o pour l’espace mémoire
o Sur de nombreuses versions ‘ defunct ‘ dans le champ commande
Wait :
o L’appel système wait est déclarée comme suit : pid_t wait(int *status);
o La macro WEXITSTATUS(status) extrait spécifiquement le code de sortie du
statut retourné par wait. Elle masque les autres bits d’information
Waitpid :
o waitpid est déclarée comme suit : pid_t waitpid(pid_t pid, int *status, int
options).
o La primitive waitpid permet au processus parent de spécifier le pid du processus
fils qu’il souhaite attendre.
o Cela donne au processus parent un plus grand contrôle sur lequel de ses
processus fils il attend la terminaison.
o De plus, waitpid offre la possibilité d’attendre la fin d’un processus fils sans
bloquer le processus parent, en utilisant le drapeau WNOHANG
Les tubes de communication
permettent deux ou plusieurs pro essus s’exécutant sur
une même machine d’échanger des informations sous forme de flots de caractères: ils
permettent d’ ta lir des liaisons unidirectionnelles de communication entre processus
d’une même machine
Les tubes de communication anonymes
- De type FIFO
- Est unidirectionnel : un processus peut soit lire soit écrire dans un pipe.
- Le pipe est considéré comme un fichier temporaire
- La taille du pipe est limitée de 4k à 20k dépendant du matériel.
Les tubes nommées,
- Ils peuvent être utilisés par des processus indépendants, condition qu’ils,
s’exécutent sur une même machine. - Ils ont chacun un nom qui existe dans le système de fichiers et sont considérés
comme des fichiers spéciaux. - Leur tailles est plus grande que celles des tubes anonymes.
- Ils sont créés par la commande « mkfifo» ou « mknod » ou par l’appel système
mknod() ou mkfifo(). - Ils existeront jusqu’à ce qu’ils soient supprimés explicitement (unlink) ou rm
Les signaux:
Un signal est un mécanisme qui permet à un processus de réagir de façon asynchrone à un événement qui s’est produit.
*les signaux ne transportent pas d’information
Chaque signal:
- a un nom,
- a un numéro,
- a un gestionnaire (handler) et
- est, en général, associé à un événement.