• Aucun résultat trouvé

TP4: Entre processus père et fils A. Héritage : 1.

N/A
N/A
Protected

Academic year: 2022

Partager "TP4: Entre processus père et fils A. Héritage : 1."

Copied!
2
0
0

Texte intégral

(1)

1

TP4: Entre processus père et fils

A. Héritage :

1. Soit le code suivant :

#include <stdio.h>

#include <sys/types.h>

#include <unistd.h>

char buf[1024]; /* tableau pour récupérer le répertoire de travail, à utiliser avec la fonction getcwd */

void main(){

int i;

nice(10); /* augmentation de 10 de la valeur du nice avant le fork*/

……… /*à compléter*/

}

a) Que représente la valeur de nice

b) Complétez le code afin d’afficher les informations suivantes sur le processus père et fils:

uid, euid, egid, cwd et nice.

2. Soit le code suivant. Exécutez et interprétez le résultat.

#include <stdio.h>

#include <unistd.h>

#include <stdlib.h>

#include <sys/wait.h>

void main(){

int m=5,n=10,status,w;

printf("1) Père: m= %d, n= %d, w=%d\n", m, n, w);

int pid=fork();

if(pid==0){

w=15;

printf("2) Fils: m= %d, n= %d, w=%d\n", m, n, w);

m *= 2; n *= 2;

printf("3) fils: m*2= %d, n*2= %d, w=%d\n", m, n, w);

exit(0);

}

wait(&status);

printf("4) Père: m= %d, n= %d, w=%d\n", m, n, w);

}

B. Wait :

Soit le code suivant :

#include <sys/wait.h>

#include <stdio.h>

#include <stdlib.h>

#include <unistd.h>

void main(){

int returnfork, returnWait, status;

returnfork=fork();

if (returnfork==0){

printf("processus fils %d\n", getpid());

exit(10);

}

Année universitaire 2019-2020

OS2 - SMI-S4

(2)

returnWait=wait(&status);

printf("processus père %d\n", getpid());

printf("sortie du wait \n ");

sleep(15);

printf("returnWait = %d status = %d\n", returnWait, WEXITSTATUS(status));

exit(0);

}

1. Exécutez puis commentez le résultat de l’exécution de ce code.

2. Quel est le rôle de wait?

3. Que représente la valeur de returnWait et celle de status?

C. Waitpid :

Soit le code suivant.

#include <stdio.h>

#include <stdlib.h>

#include <unistd.h>

#include <sys/wait.h>

int main(void){

int pid;

int retourFils;

int retourWP;

pid=fork();

switch(pid){

case -1:

printf("Echec de fork \n");

exit(2);

case 0:

printf("Dans le fils \n");

printf("PID %u PPID %u \n", getpid(), getppid());

sleep(5);

printf("Fin du fils\n");

exit(0);

default:

printf("Dans le pere \n");

do{

retourWP=waitpid(pid,&retourFils,WNOHANG);

if (retourWP==0){

printf("Fils n’a pas fini: retourWP= %d, retourFils= %d\n",retourWP,retourFils);

sleep(1);

}

} while (retourWP==0);

printf("Fils a fini: retourWP= %d, retourFils= %d\n",retourWP,retourFils);

} }

1. Exécutez puis commentez l’exécution de ce code.

2. Quel est le rôle de waitpid() et celui WNOHANG?

3. Que représente la valeur de retourWP, retourFils et celle de status?

Références

Documents relatifs

Le récit du père, Fernand Malraux, constitue un mystère dont nous ne saurons jamais rien, le point vraisemblablement originel mais aveugle d’un roman organisé autour de

Et le Père apparaît alors comme étant lui aussi le Serviteur du Fils dans l’accomplissement de leur volonté commune, pour notre seul bien… C’est ainsi que le Père est

fork() rend la valeur 0 dans le processus fils, et le numéro d’identification (PID) du fils créé dans le processus père ; on récupère donc cette valeur par une instruction du type

Pour autant, ce dernier aspect demeure moins déterminant que la filiation symbolique du héros avec l’élément liquide ; Moïse n’est pas le « sauvé des eaux » (ce que

Théoriquement, il suffit de suivre ces différentes étapes : récupérer le handle d'un processus en cours d'exécution, allouer de la mémoire virtuelle dans ce processus pour

La sensualité ne doit plus être cantonnée aux femmes, car les hommes ont aussi des corps, et les êtres ont besoin d'être touchés pour garder leur équilibre et savoir qu'ils

Mais, dans les moments les plus doux, victime d’un orgueil bizarre, il prétendit encore jouer le rôle d’un homme accoutumé à subjuguer des femmes : il fit des efforts

Et les autres vous en ont voulu et ils ont délimité votre communauté pour l'enfermer dans un ghetto.. - Mais il a fallu le terrible boule- versement de mai pour