Appels systèmes communication inter processus

Processus : appels systèmes 1/4
• Appels (primitives) système permettant de manipuler des processus
• Comment les utiliser en C sous Unix ?
–Le détail des fonctions systèmes est aussi donné par le man!
–man primitive_système vous indiquera les librairies à inclure dans votre programme C (#include <librairie.h>)
• Exemple :
GETPID(2) Linux Programmer’s Manual GETPID(2)
NAME
getpid, getppid – get process identification
SYNOPSIS
#include <unistd.h>
pid_t getpid(void);
pid_t getppid(void);
DESCRIPTION
getpid returns the process ID of the current process.
(This is often used by routines that generate unique temporary file names.)
getppid returns the process ID of the parent of the current process.
Processus : appels systèmes 2/4
• int fork()
–L’appel système forkduplique le processus.
–Après l ’appel, l’exécution continue dans les 2 processus (fils et père)
–Pour savoir dans quel processus (père/fils) on se retrouve, il faut regarder la valeur retournée par la fonction :
»PID (fils) pour le processus père
»0 pour le processus fils
»-1en cas d’échec (manque de mémoire, trop de processus, …)
• void exit(int status)
–L’appel système exittermine le processus qui l’appelle
–La valeur statusest retournée au processus père pour indiquer une éventuelle erreur (0 sinon)
• int sleep(int seconds)
–L’appel système sleepbloque un processus pendant n secondes sauf si le processus reçoit un signal
–(ne pas utiliser pour de la synchronisation de processus)
Processus : appels systèmes 3/4
• int execlp(char *comm, char *arg, … , NULL)
–L’appel système execlprecouvre un processus par un autre exécutable.
–Après l ’appel, la fonction retourne :
»-1en cas d ’erreur
»rien sinon : le programme appelant n’existe plus, puisqu’il a été remplacé par la commande passée en paramètres !
–Ex : execlp( « ls », « ls », « -l », « /usr », NULL)
»il faut bien indiquer 2 foisls (commande et argument[0])
• int wait(0)
–L’appel système waitbloque un processus jusqu’à la fin d’un de ses fils
–Après l ’appel, la fonction retourne :
»-1en cas d ’erreur ou si le processus n ’a pas de fils
»le PID du fils qui s’est arrêté..

Si le lien ne fonctionne pas correctement, veuillez nous contacter (mentionner le lien dans votre message)
Manipuler les processus (249 KO) (Cours PDF)
Manipuler les processus

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *