Chaque processus possède un état
Et une image mémoire (segment de données)
Source images: Wikimedia Commons CC BY-SA 3.0
fork() sous Unixfork créé un processus fils, clone du processus père qui
l'exécute
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
int main() {
pid_t pid = fork();
if (pid == -1) {
// Il y a une erreur
perror("fork");
return EXIT_FAILURE;
} else if (pid == 0) {
// On est dans le fils
printf("Mon PID est %i et celui de mon père est %i\n", getpid(), getppid());
} else {
// On est dans le père
printf("Mon PID est %i et celui de mon fils est %i\n", getpid(), pid);
}
return EXIT_SUCCESS;
}
exit(n) ou n est le code de retourwait(&nb)
Approche mixte : tourniquet + priorité