Vous êtes sur la page 1sur 49

Chapitre II :

Gestion des processus


Notion de processus
• Rappel : Un programme est une suite
d'instructions (un objet statique)
• Un programme qui s’exécute est appelé un
processus.
• Un processus est un programme en exécution
et son contexte (un objet dynamique).
Notion de processus
• Dans un SE mono-tâche, la notion de
processus est réduite à sa plus simple
expression.
• Dans un SE multitâches (ex : Linux, UNIX),
plusieurs processus s'exécutent
"simultanément". Ils doivent se partager l'accès
au processeur.
• Plusieurs processus peuvent exécuter
simultanément des copies (ou instances) d'un
même programme.
Notion de processus
• Plusieurs processus peuvent exécuter
simultanément la même copie d'un même
programme : réentrance.
• Plusieurs processus peuvent se trouver
simultanément en cours d'exécution
(multiprogrammation et temps partagé), si un
système informatique ne comporte qu'un seul
processeur, alors, à un instant donné, un seul
processus aura accès à ce processeur.
Notion de processus
• Un processus comporte du code machine
exécutable, une zone mémoire (données
allouées par le processus), une pile ou stack
(pour les variables locales des fonctions et la
gestion des appels et retour des fonctions) et
un tas ou heap pour les allocations
dynamiques.
Notion de processus
• Un processus est une entité qui, de sa création à
sa mort, est identifié par une valeur numérique :
le PID (Process IDentifier).
• Tous les processus sont donc associés à une
entrée dans la table des processus qui est interne
au noyau.
• Chaque processus a un utilisateur propriétaire,
qui est utilisé par le système pour déterminer ses
permissions d’accès aux fichiers.
Création des processus
• Quatre événements provoquant la création
des processus
– Initialisation du système d’exploitation
– Exécution d’un appel système de création de
processus par un processus en cours
– Requête utilisateur sollicitant la création d’un
nouveau processus
– Initiation d’un travail en traitement par lots
Fin de processus
• Rien n’est éternel, pas même un processus
• Tôt ou tard un processus s’arrête pour diverses
raisons :
– Arrêt normal
– Arrêt pour erreur
– Arrêt pour erreur fatale
– Processus arrêté par un autre processus
Hiérarchie des processus
• Quand un processus crée un autre processus, les
deux sont liés d’une certaine manière
• Le processus créateur est le processus parent
• Le processus créé est le processus enfant
• Le processus enfant à son tour peut créer
d’autres processus  hiérarchie de processus
• Un processus à un seul parent
• Un processus peut avoir zéro ou plusieurs enfants
Etats des processus
• Un programme en exécution peut avoir
plusieurs états :
– En cours d’exécution ou en état actif ou élu :
utilisant le processeur en cet instant
– Prêt ou éligible : exécutable, temporairement
arrêté pour laisser s’exécuter un autre processus
– Bloqué ou en attente : ne pouvant s’exécuter tant
qu’un moment externe ne se produit pas (ex : fin
d'une entrée-sortie).
Changement d’état
• Le changement d'état d'un processus peut être provoqué par :
– un autre processus (qui lui a envoyé un signal, par exemple)
– le processus lui-même (appel à une fonction d'entrée-sortie
bloquante,...)
– une interruption (fin de quantum, terminaison d'entrée-
sortie, ...)
• le passage de l’état actif à l’état prêt est provoqué par le système
en fonction de sa politique d’ordonnancement (fin de quantum,
préemption du processus actif si un processus plus prioritaire
devient prêt dans le cas des politiques préemptives, …),
• le passage de l’état actif à l’état bloqué est provoqué par le
programme exécuté par le processus. On peut citer : opération
P sur un sémaphore dont le compteur est négatif, E/S bloquante
du type scanf, opérations sleep ou wait sous UNIX).
Transitions entre états
Transitions entre états
Exercices
Exo1 : Dans un système où plusieurs processus sont actifs,
le fait qu’un processus exécute une transition peut causer
une autre transition dans un autre processus!
1. Dire de quel type de système d’exploitation est-il
question.
2. Déterminer quelles transitions d’un processus peuvent
causer une autre transition dans un autre processus
Exo2 : Le diagramme de transition d’états suivant serait
approprié dans certaines situations – Lesquelles?

Nouveau Exécution Attente Terminé


Gestion des processus
• Le SE gère les transitions entre les états 
une liste de processus éligibles et une liste de
processus en attente.
• Il doit également avoir une politique
d'activation des processus éligibles
Gestion des processus
• La gestion de processus peut se faire A :
– Court terme
– Moyen terme
– Long terme
• A long terme, les processus sont classés dans la file des
processus éligibles par l'ordonnanceur (en anglais
scheduler).
• A Moyen terme les processus sont chargés et
déchargés de la mémoire principale par le swapper
• A court terme, le distributeur (en anglais dispatcher)
se chargera de leur activation au moment voulu.
Ordonnancement
• Dans un système multitâches, le SE doit allouer le
processeur aux processus à tour de rôle. On parle
d'ordonnancement des processus
• Plusieurs politiques d'allocation :
– politiques d'allocation sans priorité :
• premier arrivé premier servi (first come, first served : FCFS)
• Le Plus Court d'Abord (PCA) (Shortest Job First : SJF)
• Etc.
– politiques d'allocation avec priorité :
• la priorité peut être fixe ou dynamique
• il peut y avoir préemption, ou non
Ordonnancement
Type d’ordonnancement
• Coopératif : chaque processus doit suspendre
de lui-même son exécution pour permettre
aux autres de s’exécuter
• Préemptif : l'ordonnanceur a la responsabilité
de l'interruption des tâches et du choix de la
prochaine tâche à exécuter
Notion de temporisateur
• Pour éviter qu’un processus ne s’accapare du
processeur, le SE déclenche un temporisateur
à chaque fois qu'il alloue l'unité centrale à un
processus.
• Quand ce temporisateur expire, si le processus
occupe toujours l'unité centrale (il peut avoir
été interrompu par un événement extérieur
ou s'être mis en attente), le système
d'exploitation va le faire passer dans l'état
prêt et activer un autre processus de la liste
des processus éligibles.
Notion de temporisateur
• La désactivation d'un processus peut se faire sur
expiration du temporisateur ou sur réquisition
(en anglais preemption) du processeur central par
un autre processus.
• Un temporisateur peut être vu comme un
système de compte à rebours ou de sablier. On
lui donne une valeur initiale qu'il décrémente au
rythme de l'horloge de l'ordinateur jusqu'à
atteindre la valeur zéro.
Notion de temporisateur
• La valeur initiale du temporisateur est le
quantum de temps alloué à l'exécution du
processus.
• A l'expiration du temporisateur le système
d'exploitation est immédiatement prévenu par
une interruption
Contexte d’un processus
• Ensemble des informations relatives à
l'exécution d'un processus, telles que :
– l'état des registres (compteur ordinal, registre
d'état, registres généraux),
– les registres décrivant l'espace virtuel du
processus et son espace physique d'implantation,
– les pointeurs de piles,
– les ressources accédées (ex : droits d'accès,
fichiers ouverts),
– autres informations (ex : valeur d'horloge).
Contexte d’un processus
• Deux contextes : le contexte matériel et le
contexte logiciel.
• Contexte matériel : photographie de l'état des
registres à un instant t :
– compteur ordinal,
– pointeur de pile,
– registre d'état qui indique si le processeur
fonctionne en mode utilisateur (user) ou en mode
noyau (kernel), etc.
Contexte d’un processus
• Le contexte logiciel contient des informations
sur les conditions et droits d'accès aux
ressources de la machine :
– priorité de base,
– quotas sur les différentes ressources (nombre de
fichiers ouverts, espaces disponibles en mémoires
virtuelle et physique...).
• Chaque fois que le processeur passe à
l'exécution d'un nouveau processus il doit
changer les configurations de ses registres. On
parle de changement de contexte.
Bloc de contrôle d'un processus
• En anglais Process Control Block (PCB)
• PCB : une structure de données qui contient
toutes les informations relatives au contexte
d'un processus.
• Quand un processus est désactivé ou bloqué,
toutes les informations relatives à son contexte
sont sauvegardées dans son PCB
• Quand un processus est activé, on restaure son
contexte à partir de son PCB.
Table des processus
• C’est une table où sont décrits tous les
processus
• Chaque entrée de cette table correspond à un
processus
• Chaque entrée de cette table donne des
informations sur l'état du processus et permet
de retrouver les 3 régions : code exécutable,
données (data segment) et la pile (stack
segment).
Table des processus
• Seules les informations dont le système a
besoin en permanence sont dans la table des
processus
• Les autres informations sont dans la u-
structure qui peut être éventuellement passée
sur le disque si nécessaire.
Table des processus
Multiprogrammation
• Mécanisme permettant de charger
simultanément plusieurs processus en
mémoire et de leur faire partager les
ressources.
• Le principe de fonctionnement est de laisser
un processus s'exécuter jusqu'à ce qu'il ait
besoin de se mettre en attente (par exemple
sur une fin d'entrée/sortie). Pendant que ce
processus est en attente, un autre processus
peut utiliser à son tour le processeur.
• Pour éviter des longues attentes pour certains
processus  politique d’allocation du CPU
Politique d’allocation (PA)
• La manière de décider comment l'unité centrale
est partagée entre les processus chargés en
mémoire.
• Appelée aussi politique d'ordonnancement.
• Exemple :
– On peut décider que c'est le premier processus qui est
prêt à s'exécuter qui s'exécute (politique Premier Arrivé
Premier Servi).
– On peut aussi choisir le processus dont la durée
d'exécution est la plus courte pour lui attribuer l'unité
centrale d'abord (politique Plus Court d'Abord).
Critères d'évaluation de PA
• Objectif d’un algorithme d’ordonnancement :
identifier le processus qui conduira à la
meilleure performance possible
• Plusieurs politiques d'allocations étant
possibles, la question qui se pose est de savoir
comment les évaluer.
• Il faudra tout d'abord s'assurer que la
politique ne crée pas de famine (il y a famine
si un processus prêt à s'exécuter n'accède pas
à l'unité centrale en un temps fini).
Critères d’ordonnancement
• Il existe un certain nombre critères dont :
– Utilisation du CPU : pourcentage de temps
pendant lequel le CPU exécute un processus
– Utilisation repartie : pourcentage du temps
pendant lequel est utilisé l’ensemble des
ressources
– Débit ou Rendement d'un système : nombre de
processus pouvant être exécutés pendant une
période de temps
– Temps de rotation ou Temps de service
(turnaround time ) : durée moyenne qu’il faut
pour qu’un processus s’exécute
Critères d’ordonnancement
– Temps d’attente (waiting time) : durée moyenne
qu’un processus passe à attendre
– Temps de réponse (response time ) : temps
moyen qu’il faut au système pour commencer à
répondre aux entrées d’un utilisateur
– Prévisibilité : manque de variabilité des autres
mesures de performance
– Equité : degré d’égalité de s ’exécuter pour les
processus
– Priorité : privilège permettant à un processus
d’être traité en préférence
Premier Arrivé Premier Servi (PAPS)
• En anglais, First Come First Served (FCFS)
• C’est la plus simple PA
• L'ordre d'exécution est identique à l'ordre
d'arrivée dans la file des processus éligibles
• Cette politique n’est pas préemptive
• Son implémentation implique une file de
processus ou stockage de la date de création
du processus  choix du processus le plus tôt
soumis
Premier Arrivé Premier Servi (PAPS)
• Le rendement n’est pas toujours garanti
• Exemple :
- On a trois processus 1, 2, 3 à exécuter de
durées d'exécution respectives 12, 2 et 2
unités de temps.

•Si l'ordre d'arrivée est 1, 2, 3, les temps de service


respectifs sont 12, 14, et 16 unités de temps, et le temps
de service moyen est de 14 unités de temps.
•Mais si l'ordre d'arrivée est 2,3,1, le temps de service
moyen est : (2+4+16) / 3 = 7,3
Le Plus Court d'Abord (PCA)
• En anglais, Shortest Job First (SJF)
• On exécute d'abord les processus qui ont
le temps d'exécution le plus court.
• En cas d’égalité, la PAPS peut être utilisée
• Cette politique n’est pas préemptive
• Problème : comment prédire la durée
d'exécution des processus apriori ?
Le Plus Court d'Abord (PCA)
• Solutions :
– faire de la prédiction sur la durée
d'exécution des processus.
– faire accompagner la demande d'exécution
de chaque programme d'une durée
maximum d'exécution autorisée qui est
utilisée comme durée d'exécution.
• Autre problème : risque de famine (les
processus de longue durée peuvent n'avoir
jamais accès au processeur si des processus de
courte durée arrivent en permanence).
Temps restant le plus court
• C’est la version préemptive du Plus Court
d'Abord (PCA)
• Quand un nouveau processus est admis dans
le pool de processus, l’ordonnanceur compare
la valeur estimée du temps de son traitement
à celle du processus actif. Si cette valeur est la
plus petite, le processus actif est préempté au
profit du nouveau
• Problème : risque de famine comme PCA
Algorithme du tourniquet (Round
Robin)
• C’est une PA préemptive
• Le temps est découpé en tranches ou
quantum de temps.
• Un quantum de temps est alloué à chaque
processus de la file des processus éligibles à
tour de rôle.
• Conçu pour les systèmes "temps partagé", afin
d'obtenir une utilisation équitable du
processeur par les processus présents en
mémoire.
Exemple
• Si le quantum est d'une unité de temps
• Soit :
• Temps moyen de service : 9 = (5+6+16)/ 3, si
tous sont prêts au temps 0. (Meilleur que celui
donné par l'algorithme FCFS pour le même
ordre d'arrivé.)
• Performances sensibles à la taille choisie pour
le quantum. Si le quantum est très pétit  ++
commutation  perte de performance
PA avec priorité :PAP
• Le principe de l'algorithme de priorité est
d'associer une priorité à chaque processus.
• On exécute alors les processus de forte
priorité avant ceux de plus basse priorité.
• En cas d’égalité, la PAPS peut être utilisée
• On peut remarquer que si l'on alloue à chaque
processus une priorité inversement
proportionnelle à sa durée, on retrouve
l'algorithme PCA.
Problème de la PAP
• Risque de famine (les processus de faible
priorité pouvant n'avoir jamais accès à l'unité
centrale si des processus de forte priorité
arrivent en permanence).
• Solution : utiliser une technique dite de
vieillissement (en anglais aging) dont le
principe est d'accroître la priorité des
processus à intervalles de temps réguliers,
jusqu'à ce qu'ils accèdent à l'unité centrale.
• Intérêt : certains processus système doivent
être exécutés en priorité.
PA avec priorité :PAP
• Le mécanisme d’attribution des priorité sont
variables :
– Priorité basée sur la caractéristique du processus
seléctionné (utilisation de la mémoire, fréquence
d’E/S)
– Priorité basée sur l’utilisateur qui crée le
processus
– Priorité basée sur les coûts d’utilisation (CPU)
– Priorité basée sur un paramètre que
l’administrateur définit
• Certains mécanismes produisent des priorités
dynamiques, d’autres des priorités statiques
PA à file multiniveaux à retour (FMR)
• En anglais, Multilevel feedback queue
(MFQ)
• Les PA précédentes traitent tous les
processus de la même manière
• FMR traite les processus en fonction des
caractéristiques de performances
• FMR ouvre deux ou plusieurs files
d’ordonnancement
PA à file multiniveaux à retour (FMR)
• Un nouveau processus est inséré dans la file
de niveau le plus élevé, une fois
sélectionnés, les processus reçoivent un
quantum court. A l’expiration de ce
quantum, le processus est déplacé dans la
file de niveau inférieur.
• Les quantums associés aux files s’accroissent
au fur et à mesure que le niveau décroit.
• La sélection au sein d’une file se fait par le
PAPS
PA à file multiniveaux à retour (FMR)

Utilisation
processus processus … processus
CPU TERMINAISON

Utilisation
processus processus … processus
CPU TERMINAISON

Utilisation
processus processus … processus
CPU
TERMINAISON
Options du MFQ
• Le nombre de variables dans un système MFQ rend ce
dernier à la fois plus souple et plus complexe
• Les principales options :
– Nombre de files
– Quantum associé à chaque file
– Algorithme de sélection utilisé dans chaque file
– Condition(s) provoquant le passage dans une file de niveau
inférieur
– Condition(s) provoquant le passage dans une file de niveau
supérieur
– Le fait que l’arrivée d’un processus dans une file de niveau
supérieur préempte ou non un processus d’une file de
niveau inférieur
– Mécanisme de détermination de la file dans laquelle entre
un nouveau processus
Fin

Vous aimerez peut-être aussi