Chapitre1 Processus
Chapitre1 Processus
Chapitre1 Processus
TextBook :
Operating System Concepts, Ninth Edition, A. Silberschatz,P. Galvin, and G. Gagne.
John Wiley & Sons, 2012.
Autre référence:
Modern Operating Systems, 4th Edition Andrew S. Tanenbaum. Prentice Hall, 2014.
Processus
Programme en cours d’exécution
L’exécution se fait d’une manière séquentielle
Un processus inclus :
Compteur programme (program counter)
Pile (stack)
Section de données
tas
données
code
0
chargé interrompu
alloué
fin d’E/S ou d’événement début d’E/S ou d’événement
Etat du processus
Numéro du processus
Compteur programme
Registres
Limites mémoire
...
Systèmes d’exploitation- 2INFO 8 ENIT
Commutation de contexte entre deux processus
nouveau
travail
file d'attente des travaux
création
d'un
Disque
processus
SW AP
IN SW AP
stockage sur disque OUT
CPU
file d'attente CPU
E / S
file d'attente E / S
Scénarios d’exécution
Père et fils s’exécute simultanément
Le père attend la fin de l’exécution des fils
Sous UNIX
fork est un appel système (system call) permettant de créer un nouveau
processus
exec est un appel système utilisé après fork pour charger un nouveau
programme
reprend
père
termine
fils
#include <unistd.h>
#include <stdio.h>
int main ( )
{ pid_t pid;
int i ;
for (i=0; i<2; i++){
pid = fork();
printf(" Processus %d de père %d. \n", getpid(), getppid()) ;
}
}
#include <unistd.h>
#include <stdio.h>
int main ( )
{ pid_t pid;
int i ;
for (i=0; i<4; i++){
pid = fork();
if (pid > 0 )
break ;
printf(" Processus %d de père %d. \n", getpid(), getppid()) ;
}
}
Systèmes d’exploitation- 2INFO 20 ENIT