Système d’Exploitation
-Processus-
Med. AMNAI
Filière SMI-S4
Département d’Informatique
2023-2024
Introduction
Hiérarchie des Processus
Structures de Gestion des Processus
Exécution d'un Processus
Programmation des Processus
Plan
1 Introduction
Med AMNAI Système d'Exploitation-Processus 2 / 33
Introduction
Hiérarchie des Processus
Structures de Gestion des Processus
Exécution d'un Processus
Programmation des Processus
Plan
1 Introduction
2 Hiérarchie des Processus
Med AMNAI Système d'Exploitation-Processus 2 / 33
Introduction
Hiérarchie des Processus
Structures de Gestion des Processus
Exécution d'un Processus
Programmation des Processus
Plan
1 Introduction
2 Hiérarchie des Processus
3 Structures de Gestion des Processus
Med AMNAI Système d'Exploitation-Processus 2 / 33
Introduction
Hiérarchie des Processus
Structures de Gestion des Processus
Exécution d'un Processus
Programmation des Processus
Plan
1 Introduction
2 Hiérarchie des Processus
3 Structures de Gestion des Processus
4 Exécution des Processus
Med AMNAI Système d'Exploitation-Processus 2 / 33
Introduction
Hiérarchie des Processus
Structures de Gestion des Processus
Exécution d'un Processus
Programmation des Processus
Plan
1 Introduction
2 Hiérarchie des Processus
3 Structures de Gestion des Processus
4 Exécution des Processus
5 Programmation des Processus
Med AMNAI Système d'Exploitation-Processus 2 / 33
Introduction
Hiérarchie des Processus Rappels
Structures de Gestion des Processus Déntion
Exécution d'un Processus Partage du Temps
Programmation des Processus
Structure Générale d'Unix
Med AMNAI Système d'Exploitation-Processus 3 / 33
Introduction
Hiérarchie des Processus Rappels
Structures de Gestion des Processus Déntion
Exécution d'un Processus Partage du Temps
Programmation des Processus
Processus de Démarrage
Med AMNAI Système d'Exploitation-Processus 4 / 33
Introduction
Hiérarchie des Processus Rappels
Structures de Gestion des Processus Déntion
Exécution d'un Processus Partage du Temps
Programmation des Processus
Qu'est-ce qu'un processus ?
• Un processus est un ensemble d'instructions se déroulant
séquentiellement sur le processeur ;
• Un processus est l'abstraction d'un programme en cours
d'exécution ;
• Chaque exécution d'un programme donne lieu à un
processus diérent ;
• A tout instant, un processeur exécute au plus un processus.
RQ : Les processus partagent l'accès à diérentes ressources :
processeur, mémoire et périphériques.
Med AMNAI Système d'Exploitation-Processus 5 / 33
Introduction
Hiérarchie des Processus Rappels
Structures de Gestion des Processus Déntion
Exécution d'un Processus Partage du Temps
Programmation des Processus
Caractéristiques d'un Processus
Un processu est caractérisé par un programme, des données
et un contexte courant d'exécution.
• Son état : exécution, suspendu, etc ;
• Son identicateur ;
• Son compteur ordinal (contrôleur de ux) : indique la
prochaine instruction à exécuter ;
• Sa pile d'exécution : en cours de l'exécution, les données
obtenues sont stockées dans la pile ;
• Ses données en mémoire ;
• Toutes informations utiles à son exécution (E/S, chiers
ouverts, . . . ).
Med AMNAI Système d'Exploitation-Processus 6 / 33
Introduction
Hiérarchie des Processus Rappels
Structures de Gestion des Processus Déntion
Exécution d'un Processus Partage du Temps
Programmation des Processus
Commande PS
• PS : Ache la liste des processus en cours. Par défaut, elle ache
uniquement ceux de l'utilisateur et du terminal courant.
• -u : Ache tous les processus de l'utilisateur quelque soit le
terminal ;
• -A : Ache tous les processus du système ;
• -f : Donne plus d'informations sur les processus achés ;
• -H : Ordonne et indente les processus selon leur généalogie
(PPID) ;
• TOP : Ache les processus consommant le plus de ressource
CPU ;
• ps -ef : répertorie les processus en cours d'exécution. (Une autre
commande similaire est ps aux )
• ps -f pid id : Ache les processus basés sur un PID. A la place de
id entrez le PID correspondant.
• ps aux sort=-pcpu,+pmem : Ache les processus consommant
la plus grande quantité de CPU.
Med AMNAI Système d'Exploitation-Processus 7 / 33
Introduction
Hiérarchie des Processus Rappels
Structures de Gestion des Processus Déntion
Exécution d'un Processus Partage du Temps
Programmation des Processus
Partage du Temps
• Le processeur alterne entre plusieurs processus en attribuant
un quantum pour chaqu'un ;
• A tout instant, un seul processus utilise le processeur et un
seul programme s'exécute ;
• Le choix du processus suivant est assuré par le OS
(Ordonnancement ou "Scheduling").
Med AMNAI Système d'Exploitation-Processus 8 / 33
Introduction
Hiérarchie des Processus
Structures de Gestion des Processus Arborescence des Processus
Exécution d'un Processus
Programmation des Processus
Arborescences de Processus
• Premier processus : init ;
• Création d'un processus par duplication d'un autre existant
avec appel système fork() ;
• Notions de : Processus père et Processus ls.
Med AMNAI Système d'Exploitation-Processus 9 / 33
Introduction
Hiérarchie des Processus Structures de Gestion des Processus
Structures de Gestion des Processus Bloc de Contrôle de Processus
Exécution d'un Processus
Programmation des Processus
Structures de Gestion des Processus
• Segment de code ;
• Segment de données ;
• Pile (stack) : mémorise, de façon contiguës, les données obtenues en
cours de l'exécution ;
• Tas (heap) : stocke les données de façon non contiguë ;
• Bloc de Contrôle de Processus (PCB).
Med AMNAI Système d'Exploitation-Processus 10 / 33
Introduction
Hiérarchie des Processus Structures de Gestion des Processus
Structures de Gestion des Processus Bloc de Contrôle de Processus
Exécution d'un Processus
Programmation des Processus
Bloc de Contrôle de Processus (PCB)
• Le OS maintient toutes les informations sur tous les processus créés
dans une table appelée table des processus ;
• Une entrée par processus : Bloc de Contrôle de Processus ( PCB).
• Cette table permet au OS de localiser et de gérer tous les processus.
Med AMNAI Système d'Exploitation-Processus 11 / 33
Introduction État de Processus
Hiérarchie des Processus Transition des Etats des Processus
Structures de Gestion des Processus Modes d'Exécution
Exécution d'un Processus Notion d'Image
Programmation des Processus Changement de Contexte
État de Processus
• Actif ou élu (running) : le processus utilise le processeur ;
• Attente ou bloqué : le processus attend une ressource (ex :
n d'une entrée-sortie).
• Prêt ou éligible (ready) : Si le processus n'attend pas une
ressource partagée et s'il ne dispose pas du processeur..
Med AMNAI Système d'Exploitation-Processus 12 / 33
Introduction État de Processus
Hiérarchie des Processus Transition des Etats des Processus
Structures de Gestion des Processus Modes d'Exécution
Exécution d'un Processus Notion d'Image
Programmation des Processus Changement de Contexte
Transition des Etats des Processus
Med AMNAI Système d'Exploitation-Processus 13 / 33
Introduction État de Processus
Hiérarchie des Processus Transition des Etats des Processus
Structures de Gestion des Processus Modes d'Exécution
Exécution d'un Processus Notion d'Image
Programmation des Processus Changement de Contexte
Modes d'Exécution
• Mode noyau : accès sans restriction ;
• Mode utilisateur :
• accès restreint ;
• pas d'accès direct aux périphériques ;
• Il peut être interrompu par d'autres processus.
Med AMNAI Système d'Exploitation-Processus 14 / 33
Introduction État de Processus
Hiérarchie des Processus Transition des Etats des Processus
Structures de Gestion des Processus Modes d'Exécution
Exécution d'un Processus Notion d'Image
Programmation des Processus Changement de Contexte
Notion d'Image
Lors de l'exécution d'un programme, ce dernier sollicite un
ensemble de composants :
• Code ;
• Données (Statique, Tas, Pile) ;
• Contexte d'exécution ;
• Pointeur d'instruction.
• Registres mémoire.
• Fichiers ouverts.
• Répertoire courant.
• Priorité.
• ...
Med AMNAI Système d'Exploitation-Processus 15 / 33
Introduction État de Processus
Hiérarchie des Processus Transition des Etats des Processus
Structures de Gestion des Processus Modes d'Exécution
Exécution d'un Processus Notion d'Image
Programmation des Processus Changement de Contexte
Changement de Contexte
Le changement de contexte, entre processus, est le passage du
mode utilisateur au mode kernel.
Med AMNAI Système d'Exploitation-Processus 16 / 33
Introduction Fonctions d'Identication
Hiérarchie des Processus Création de Processus
Structures de Gestion des Processus Synchronisation
Exécution d'un Processus Mise en sommeil d'un processus
Programmation des Processus Recouvrement d'un processus
Fonctions d'Identication des Processus
Plusieurs identicateurs sont associés à un processus :
• Numéro de processus (pid) : getpid(void) ;
• Numéro du processus père (ppid) : getppid(void) ;
• Identicateur d'utilisateur réel ;
• Identicateur d'utilisateur eectif (bit setuid) ;
• Identicateur de groupe réel ;
• Identicateur de groupe eectif (bit setgid) ;
• Liste d'identicateurs de groupes.
Med AMNAI Système d'Exploitation-Processus 17 / 33
Introduction Fonctions d'Identication
Hiérarchie des Processus Création de Processus
Structures de Gestion des Processus Synchronisation
Exécution d'un Processus Mise en sommeil d'un processus
Programmation des Processus Recouvrement d'un processus
Exemple
Pid du processus et de son père.
Med AMNAI Système d'Exploitation-Processus 18 / 33
Introduction Fonctions d'Identication
Hiérarchie des Processus Création de Processus
Structures de Gestion des Processus Synchronisation
Exécution d'un Processus Mise en sommeil d'un processus
Programmation des Processus Recouvrement d'un processus
Création de Processus
• pid_t fork(void) : La valeur retournée est le pid du ls pour
le processus père, ou 0 pour le processus ls. La valeur -1 est
retournée en cas d'erreur.
• Recopie totale (données, attributs) du processus père vers son
processus ls (nouveau pid).
• Le ls continu son exécution à partir de cette primitive.
• Héritage du ls :
• La priorité ;
• La valeur du masque ;
• Le propriétaire ;
• Une copie des descripteurs des chiers ouverts ;
• Le pointeur de chier (oset) pour chaque chier ouvert ;
• Le comportement vis à vis des signaux.
Med AMNAI Système d'Exploitation-Processus 19 / 33
Introduction Fonctions d'Identication
Hiérarchie des Processus Création de Processus
Structures de Gestion des Processus Synchronisation
Exécution d'un Processus Mise en sommeil d'un processus
Programmation des Processus Recouvrement d'un processus
Exemple fork()
Med AMNAI Système d'Exploitation-Processus 20 / 33
Introduction Fonctions d'Identication
Hiérarchie des Processus Création de Processus
Structures de Gestion des Processus Synchronisation
Exécution d'un Processus Mise en sommeil d'un processus
Programmation des Processus Recouvrement d'un processus
Exemple fork() (suite)
Med AMNAI Système d'Exploitation-Processus 21 / 33
Introduction Fonctions d'Identication
Hiérarchie des Processus Création de Processus
Structures de Gestion des Processus Synchronisation
Exécution d'un Processus Mise en sommeil d'un processus
Programmation des Processus Recouvrement d'un processus
Exemple fork() (suite)
Med AMNAI Système d'Exploitation-Processus 22 / 33
Introduction Fonctions d'Identication
Hiérarchie des Processus Création de Processus
Structures de Gestion des Processus Synchronisation
Exécution d'un Processus Mise en sommeil d'un processus
Programmation des Processus Recouvrement d'un processus
Exemple : père et ls
Med AMNAI Système d'Exploitation-Processus 23 / 33
Introduction Fonctions d'Identication
Hiérarchie des Processus Création de Processus
Structures de Gestion des Processus Synchronisation
Exécution d'un Processus Mise en sommeil d'un processus
Programmation des Processus Recouvrement d'un processus
Exemple : Portée du code
Med AMNAI Système d'Exploitation-Processus 24 / 33
Introduction Fonctions d'Identication
Hiérarchie des Processus Création de Processus
Structures de Gestion des Processus Synchronisation
Exécution d'un Processus Mise en sommeil d'un processus
Programmation des Processus Recouvrement d'un processus
Exemple : Portée des Variables
Med AMNAI Système d'Exploitation-Processus 25 / 33
Introduction Fonctions d'Identication
Hiérarchie des Processus Création de Processus
Structures de Gestion des Processus Synchronisation
Exécution d'un Processus Mise en sommeil d'un processus
Programmation des Processus Recouvrement d'un processus
Synchronisation
• Un processus père est toujours prévenu de la n d'un ls et le
ls est toujours prévenu de la n du père.
• Si la n d'un ls n'est pas traitée par le père, il devient (ls)
processus zombie.
• Synchronisation pour les ns d'exécution :
• Possibilités d'échanges d'informations permettant une
synchronisation sur les ns d'exécutions.
• Eviter les processus zombies (n propre).
• Nécessite que le père soit en attente ( wait()).
• Information de la n du processus ls ( exit()).
Med AMNAI Système d'Exploitation-Processus 26 / 33
Introduction Fonctions d'Identication
Hiérarchie des Processus Création de Processus
Structures de Gestion des Processus Synchronisation
Exécution d'un Processus Mise en sommeil d'un processus
Programmation des Processus Recouvrement d'un processus
Appel système exit()
void exit(int status) ; termine normalement un processus et
la valeur status est envoyée au processus père ;
• Un exit(0) signie que le programme s'est exécuté sans
erreur :
• Exit ( int)
• EXIT_SUCCESS constante qui vaut 0
• EXIT_FAILURE constante qui vaut 1
• Valeur du int est transmise au père : code de retour.
• Diérentes valeurs peuvent désigner diérents types d'erreurs.
Med AMNAI Système d'Exploitation-Processus 27 / 33
Introduction Fonctions d'Identication
Hiérarchie des Processus Création de Processus
Structures de Gestion des Processus Synchronisation
Exécution d'un Processus Mise en sommeil d'un processus
Programmation des Processus Recouvrement d'un processus
Appel système Wait()
wait() permet de suspendre l'exécution du père jusqu'à ce que
l'un de ses enfants se termine.
• pid_t wait(int *satatus)
• En cas de réussite : la valeur retournée est le pid du ls qui
s'est terminé.
• En cas d'erreur : la valeur retournée est -1.
• L'entier pointé enregistre l'état du ls lorsqu'il est nit (valeur
en paramètre dans exit())
Med AMNAI Système d'Exploitation-Processus 28 / 33
Introduction Fonctions d'Identication
Hiérarchie des Processus Création de Processus
Structures de Gestion des Processus Synchronisation
Exécution d'un Processus Mise en sommeil d'un processus
Programmation des Processus Recouvrement d'un processus
Exemple : Appels système wait et exit
Med AMNAI Système d'Exploitation-Processus 29 / 33
Introduction Fonctions d'Identication
Hiérarchie des Processus Création de Processus
Structures de Gestion des Processus Synchronisation
Exécution d'un Processus Mise en sommeil d'un processus
Programmation des Processus Recouvrement d'un processus
Mise en sommeil d'un processus : sleep()
Int sleep(int n) : La fonction suspend l'exécution du processus
appelant pour une durée de n secondes.
Med AMNAI Système d'Exploitation-Processus 30 / 33
Introduction Fonctions d'Identication
Hiérarchie des Processus Création de Processus
Structures de Gestion des Processus Synchronisation
Exécution d'un Processus Mise en sommeil d'un processus
Programmation des Processus Recouvrement d'un processus
Recouvrement d'un processus
Un processus peut changer de code par un appel système à
exec :
• Code et données remplacés ;
• Pointeur d'instruction réinitialisé.
Med AMNAI Système d'Exploitation-Processus 31 / 33
Introduction Fonctions d'Identication
Hiérarchie des Processus Création de Processus
Structures de Gestion des Processus Synchronisation
Exécution d'un Processus Mise en sommeil d'un processus
Programmation des Processus Recouvrement d'un processus
Exemple : Appels système execl()
Med AMNAI Système d'Exploitation-Processus 32 / 33
Introduction Fonctions d'Identication
Hiérarchie des Processus Création de Processus
Structures de Gestion des Processus Synchronisation
Exécution d'un Processus Mise en sommeil d'un processus
Programmation des Processus Recouvrement d'un processus
Appels système execl() (bis)
Lorsqu'il s'exécute execl, il est totalement remplacé par l'exécution
du ls -l, le processus avec le programme, disparaît.
Med AMNAI Système d'Exploitation-Processus 33 / 33