Académique Documents
Professionnel Documents
Culture Documents
Par
MBUYAL MUZODI CHRISTIAN
NGOIE WA NGOIE CHRISTIAN
MUKEBA MPUTU JORDI
PROFESSEUR :
QUESTIONS :
2. parler des macros des statuts d’un processus avec exemples concrets.
3. À travers les exemples concrets , abordez les fonctions, systèmes et signaux.
RÉSOLUTIONS :
1. Pour créer un processus en C, vous pouvez utiliser la fonction `fork()`. Cette fonction
crée un nouveau processus appelé processus fils, qui est une copie exacte du
processus parent. Le processus fils commence à s’exécuter à la ligne suivant l’appel à
`fork()`, tandis que le processus parent continue à s’exécuter normalement. Voici un
exemple de code pour créer un processus fils :
Ou
Dans cet exemple, fork() crée une copie du processus appelant. Le processus fils commence
à exécuter à partir de l’appel à fork() , et le processus parent continue son exécution après
l’appel à fork() .
2. Les macros de statut d’un processus sont des constantes entières qui représentent
l’état d’un processus. Les macros les plus courantes sont `WIFEXITED`,
`WEXITSTATUS`, `WIFSIGNALED`, et `WTERMSIG`.
Voici quelques exemples de macros de statut :
- `WIFEXITED(status)` : renvoie vrai si le processus s’est terminé normalement.
- `WEXITSTATUS(status)` : renvoie le code de sortie du processus.
- `WIFSIGNALED(status)` : renvoie vrai si le processus a été interrompu par un
signal.
- `WTERMSIG(status)` : renvoie le numéro du signal qui a interrompu le
processus.
Voici un exemple de code qui utilise ces macros pour analyser le statut de fin d’un
processus fils :
Dans cet exemple, le processus parent utilise wait() pour attendre que le processus fils se
termine. Les macros comme WIFEXITED et WEXITSTATUS sont utilisées pour déterminer si
le processus fils s’est terminé normalement et obtenir son code de sortie.
3. Les fonctions, systèmes et signaux sont des concepts clés en programmation système.
Les fonctions sont des blocs de code qui effectuent une tâche spécifique, comme
`fork()` que nous avons vu précédemment. Les systèmes sont des programmes qui
fournissent des services aux autres programmes, comme le système de fichiers ou le
système de gestion de processus. Les signaux sont des interruptions logicielles
envoyées à un processus pour lui indiquer qu’un événement s’est produit, comme la
fin d’un processus ou une erreur de segmentation.
Voici quelques exemples de fonctions, systèmes et signaux :
- Fonctions : `fork()`, `exec()`, `wait()`, `kill()`.
- Systèmes : `open()`, `read()`, `write()`, `close()`.
- Signaux : `SIGINT`, `SIGTERM`, `SIGKILL`, `SIGUSR1`.
Voici un exemple de code qui utilise les signaux pour gérer la fin d’un processus :
Dans cet exemple, le programme attend un signal (dans ce cas, SIGUSR1 ). Vous pouvez
envoyer ce signal depuis un autre processus à l’aide de la fonction kill() .