SYSTÈMES D’EXPLOITATION (SE)
ORDONNANCEMENT DES
PROCESSUS
Dr. Jihène Tounsi ISG de Sousse
Site web http://www.jihenetounsi.com
Email: [email protected]
Cours développé par Dr. Jihène Tounsi
Plan 2
Introduction aux SE
L’ordonnancement
Ordonnancement sans réquisition
Ordonnancement avec réquisition
Bilan et exemples
Cours développé par Dr. Jihène Tounsi
Structure matérielle d’un ordinateur
• Ensemble de registres
• Compteur Ordinal
• Registre d’instruction
• Accumulateur
• Exécution des instructions machine
• Espace de stockage des programmes à exécuter et
des données
• Périphériques d’Entrées / Sorties
Cours développé par Dr. Jihène Tounsi
Structure d’un système informatique
Instruction machine
Systèmes d’exploitation (noyau)
Applications (web, mail, ftp, java…)
Utilitaires et bibliothèques
Cours développé par Dr. Jihène Tounsi
Définition (L. Baccouche, 2005)
Un SE est une couche d’interface entre la machine et
l’utilisateur conçue afin de gérer les composants de
l’ordinateur (ressources) en masquant la complexité
du matériel et en offrant un environnement de
programmation convivial (interface graphique).
Cours développé par Dr. Jihène Tounsi
Fonctions d’un Système d’exploitation
Transition entre mode d’exécution (esclave / maître)
Allocation du processeur
Gestion des processus
Gestion de la mémoire virtuelle
Gestion des Fichiers
Gestion des E/S
Cours développé par Dr. Jihène Tounsi
Le concept « Processus »
Processus = un programme en cours d’exécution
Il utilise les ressources matérielles et logicielles
__________
_
Programme
enregistré sur
disque dur
Programme chargé
en mémoire centrale
Processus créé par le
système d’exploitation afin
d’exécuter le programme
Exécution du programme par le
processeur
Cours développé par Dr. Jihène Tounsi
Le concept « Processus »
Un programme est une description statique
Un processus est une description dynamique
Il englobe le programme
Il a un début, un déroulement et une fin.
Il a un état qui évolue au cours du temps
Etat Contexte Processus
Cours développé par Dr. Jihène Tounsi
Etat d’un processus
Élu
Prêt Terminé
Bloqué
Demande d’une ressource
Exécution par le CPU
Ressource obtenue
Retour file d’attente
Tâche interrompue
Tâche terminée
Ordonnanceur
Zombie
Création
Processus
Cours développé par Dr. Jihène Tounsi
Etat d’un processus
Élu (en exécution) Au cours d’exécution dans le processeur
Prêt (éligible) Le processus est prêt à être exécuté par le système d’exploitation
Bloqué (en attente) Le processus attend la libération d’une donnée ou d’une ressource.
Le processus a fini sa tâche et attend une autre commande
Zombie (en attente) Le processus a fini sa tâche et attend la fin de ses fils (les processus
qu’il a créés lors de son exécution).
Terminé Le processus a terminé son exécution au niveau du système
d’exploitation
Cours développé par Dr. Jihène Tounsi
Contexte d’un processus
Toutes les informations concernant le processus
L’espace d’adressage Le segment code
Le segment des données
La pile
Le tas
Les données de contrôle par le système Le compteur ordinal
Le contenu des registres généraux
Les registres d’espace mémoire (@ début et @ fin)
Le registre d’état du processus
D’autres informations : valeur horloge, permission, priorité, etc.
Pile
Tas
Texte
Données
Cours développé par Dr. Jihène Tounsi
Commutation de contexte
Enregistrer Contexte P1
Charger Contexte P2
Enregistrer Contexte P2
Charger Contexte P1
P1 P2
Exécution
Exécution
Exécution
Système d’exploitation
Une commutation de contexte prend lieu entre l’état prêt et élu
Cours développé par Dr. Jihène Tounsi
Plan 13
Introduction aux SE
L’ordonnancement
Ordonnancement sans réquisition
Ordonnancement avec réquisition
Bilan et exemples
Cours développé par Dr. Jihène Tounsi
Les concepts de base pour un
processeur mono-coeur 14
Un ordonnanceur (scheduler ou dispatcher): un
programme qui gère l’ordre de passage des
processus dans le processeur (CPU).
Une file d’attente qui va accueillir les processus
prêts
L’algorithme d’ordonnancement (politique ou
approche) se traduit par un ensemble de règles
pour organiser ou ordonner les processus
Cours développé par Dr. Jihène Tounsi
Les concepts de base pour un
processeur multi-cœur 15
Un ordonnanceur par cœur: un programme qui gère l’ordre de
passage des processus dans le processeur (CPU).
Une file d’attente qui va accueillir les processus prêts pour tous
les cœurs.
L’algorithme d’ordonnancement : généralement les
ordonnanceurs respectent certaines règles (priorité et non
fréquemment élu)
Dans le multi-cœur il y a toujours un CPU master (généralement
le core 1) qui lance les autres cœurs en basse consommation
d’énergie.
Cours développé par Dr. Jihène Tounsi
Mécanismes de fonctionnement
classique 16
1. L’ordonnanceur ordonne la file « prêt » selon
l’algorithme adopté par le SE et ceci dès l’arrivée
d’un processus à la file.
2. L’ordonnanceur sélectionne un processus à exécuter
(tête de la file)
3. À la fin de l’exécution d’un processus,
l’ordonnanceur est sollicité pour faire sortir le
processus en cours et sélectionner un nouvel élu
C’est une commutation de contexte = changement de
l’élu dans un CPU
Cours développé par Dr. Jihène Tounsi
Rôle de l’algorithme 17
O.Dalle : « Décider de l’allocation de la ressource
aux entités qui l’attendent, de sorte à atteindre
certains objectifs. »
Entités
Un processus
Une file d’exécution à l‘intérieur d’un processus
Ressource: le processeur
Objectif : aboutir à un partage efficace du temps
d’utilisation
Efficace? Comment?
Cours développé par Dr. Jihène Tounsi
Critères de l’efficacité 18
Respect des priorités Le SE accorde des priorités aux différents processus (pas
tous les algorithmes)
La priorité peut être statique ou dynamique
Respect de l’équité Deux processus ayant le même niveau de priorité doivent
pouvoir utiliser le processeur (CPU) aussi souvent l’un que l’autre
Pas de famine Tout processus doit pouvoir utiliser le CPU. Pas d’attente à
l’infini.
Cours développé par Dr. Jihène Tounsi
Les Métriques de l’efficacité 19
Le rendement d’un système Débit =
Le temps de rotation (T.R) ou service (T.S) : durée moyenne qu’il faut pour qu’un processus s’exécute. Le temps de rotation d’un processus comprend tout le temps que celui-ci passe dans le système y compris dans l’état prêt.
T.S=
T.Smoyen =
Le temps d’attente (T.A) : est le temps passé dans la file des processus (prêts) T.A=
T.Amoyen =
Cours développé par Dr. Jihène Tounsi
Classification des algorithmes
d’ordonnancement 20
Sans réquisition : c’est au processus de lâcher
volontairement la ressource
Politique « FIFO » (First in First out)
Politique « PCTU » (Plus court temps d’utilisation du CPU) ou
SJF (Shortest Job First)
Avec réquisition : l’ordonnanceur peut récupérer la
ressource d’un processus au profit d’un autre
Politique du « SRT » (le plus court temps restant)
Politique du « Tourniquet » ou Round Robin
Politique « préemptif » (avec priorités)
Priorité statique
Priorité dynamique
Cours développé par Dr. Jihène Tounsi
Exemple d’application 21
Cet exemple servira de support pour développer
les algorithmes d’ordonnancement.
Processus Date
d’arrivée
Durée
d’exécution
(ms)
Priorité
P1 0 3 1
P2 0 5 3
P3 0 2 2
P4 0 6 5
P5 0 4 4
Cours développé par Dr. Jihène Tounsi
Plan 22
Introduction
Ordonnancement sans réquisition
Ordonnancement avec réquisition
Bilan et exemples
Cours développé par Dr. Jihène Tounsi
Politique FIFO 23
Allocation dans l’ordre d’arrivée : premier arrivée=
premier servi
Inconvénient : défavorise les entités ayant besoin
d’utiliser la ressource pendant un court laps de
temps.
Temps moyen de traitement élevé
Pas d’équité
Cours développé par Dr. Jihène Tounsi
Politique PCTU ou SJF 24
Allocation selon la durée d’exécution du processus.
La sélection se fait sur la base du plus court temps.
Inconvénient
Pas réaliste : exige de connaître dès le départ le temps
d’exécution
Famine (privation): les processus avec une durée longue
peuvent attendre indéfiniment
Avantage
temps d’attente et de réponse plus faible
Cours développé par Dr. Jihène Tounsi
Plan 25
Introduction
Ordonnancement sans réquisition
Ordonnancement avec réquisition
Bilan et exemples
Cours développé par Dr. Jihène Tounsi
La politique SRT 26
Allocation selon la durée d’exécution restante du
processus. La sélection se fait sur la base du plus
court temps.
Si le processus arrivant dans la file a un temps d’exécution
plus court que le temps restant du processus dans le CPU; ce
dernier est arrêté en faveur du nouveau.
Inconvénient
Famine (privation): les processus avec une durée longue
peuvent attendre indéfiniment
Cours développé par Dr. Jihène Tounsi
La politique du Tourniquet 27
Chaque processus s’exécute au maximum pendant
une tranche de temps fixe (quantum)
La ressource est allouée à l’entité en tête de la file,
pour une durée d’au maximum un quantum.
À la fin du quantum,
Soit, le processus est interrompu et replacé à la fin de
la file s’il a encore un temps restant d’exécution
Soit, Le processus part vers l’état attente pour
traitement (en veille) ou l’état terminé
Cours développé par Dr. Jihène Tounsi
La politique du Tourniquet 28
Quantum ni trop court
Le processus passe son temps à charger et décharger les
processus (temps de commutation est trop long)
Temps de réponse est trop grand.
…Ni trop long
L’illusion de l’exécution parallèle s’estompe
Cours développé par Dr. Jihène Tounsi
La politique priorité statique 29
La ressource est utilisée par le processus ayant la plus grande priorité.
La priorité est un nombre fixe attribué à chaque processus par le SE.
Les processus sont classés par ordre décroissant des priorités
Dans notre module, la classe1 est la priorité la plus haute
Le processus élu peut être interrompu par un processus de priorité plus importante
Cours développé par Dr. Jihène Tounsi
La politique priorité dynamique 30
Problème de la priorité statique: famine des entités de faible priorité
Solution : ajustement dynamique des priorités après un quantum ou un tic horloge (Priorité dynamique)
Une file par priorité.
Un processus ayant obtenu sa ressource pendant un quantum se voit sa priorité diminuer.
Un processus interrompu sans avoir fini son quantum garde la même priorité.
Conséquence : beaucoup de changement dans les files (1 file par priorité)
Cours développé par Dr. Jihène Tounsi
Plan 31
Introduction
Ordonnancement sans réquisition
Ordonnancement avec réquisition
Bilan et exemples
Cours développé par Dr. Jihène Tounsi
Bilan 32
Beaucoup d’algorithme d’ordonnancement
Les algorithmes classiques (présents dans le
cours) peuvent être mixés pour donner naissance
à une nouvelle politique.
L’ordonnanceur peut adopter un algorithme
différent pour chaque ressource
Pas d’algorithme idéal. Le choix dépend des
attentes et des besoins
Cours développé par Dr. Jihène Tounsi
Exemple 1 (Examen Mai 2011) 33
Processus Temps dans le
processeur (ms)
Instant
d’arrivée
Priorité
P1 3 0 3
P2 3 0 1
P3 4 4 3
P4 2 4 4
P5 1 5 2
1/ Pour chacune des politiques d’ordonnancement suivantes, dessinez le graphique
d’exécution et calculez le temps d’attente moyen et le temps de service moyen :
Politique FIFO (First In First Out)
Politique PCTU (Plus Court Temps d’utilisation du CPU)
Politique Préemptif (la priorité 1 est la plus haute)
Politique SRT (temps restant le plus court)
Politique du Tourniquet avec un quantum de 2 ms.
2/ Quelle politique est la plus optimale ? Expliquez.
Cours développé par Dr. Jihène Tounsi
Exemple 2 (Examen Juin 2011) 34
Processus Temps dans le
processeur (ms)
Instant
d’arrivée
Priorité
P1 4 0 1
P2 3 0 1
P3 4 0 2
P4 2 0 4
P5 3 0 3
1/ Pour chacune des politiques d’ordonnancement suivantes, dessinez le graphique
d’exécution et calculez le temps d’attente moyen et le temps de service moyen :
Politique FIFO (First In First Out)
Politique PCTU (Plus Court Temps d’utilisation du CPU)
Politique Préemptif (la priorité 1 est la plus haute)
Politique SRT (temps restant le plus court)
Politique du Tourniquet avec un quantum de 2 ms.
2/ Quelle politique est la plus optimale ? Expliquez.
3/ Refaire le même exercice (Q 1 et Q 2) en supposant que le changement de
contexte dure 1 unité de temps.