Vous êtes sur la page 1sur 5

UNIVERSITE PROTESTANTE AU CONGO

FACULTE DE SCIENCES INFORMATIQUES


MINISTERE DE L’ENSEIGNEMENT SUPERIEUR ET UNIVERSITAIRE
BP. 4745 Kinshasa II
Kinshasa – Lingwala
__________________________________________________________________

TRAVAIL PRATIQUE DE PROGRAMMATION SYSTÈME

Par
MBUYAL MUZODI CHRISTIAN
NGOIE WA NGOIE CHRISTIAN
MUKEBA MPUTU JORDI

PROFESSEUR :

Année Académique : 2022-2023


TRAVAIL PRATIQUE DE PROGRAMMATION SYSTÈME :

QUESTIONS :

1. À travers les exemples précis, abordez la question de la création des processus en c .

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() .

Vous aimerez peut-être aussi