Systèmes d’exploitation 2
Elaboré par : Maryem Jaouadi 1ère année SI, ISI
jaouadimaryem@gmail.com
A.U 2022-2023
Plan du cours
• Chapitre 1 : Introduction aux systèmes d’exploitation
• Chapitre 2 : Gestion des processus
• Chapitre 3 : Les algorithmes d’ordonnancement
• Chapitre 4 : Système de gestion de fichiers
• Chapitre 5 : Gestion de la mémoire
2
Objectifs
- Comprendre l’intérêt de l’ordonnancement des processus.
- Maitriser les algorithmes d’ordonnancement non préemptifs.
- Maitriser les algorithmes d’ordonnancement préemptifs.
- Différencier entre ordonnanceurs préemptifs et non préemptifs.
Durée estimative= 3 séances
Plan du chapitre
Ordonnancement des processus
Critères d’évaluation de l‘ordonnanceur
Ordonnanceurs préemptifs
Ordonnanceurs non préemptifs
4
Rappel sur les processus
Un processus est
un programme en
exécution
• L’exécution d’un processus doit progresser séquentiellement, CAD, à n’importe
quel moment une seule instruction au plus est exécutée au nom du processus
5
5
Rappel sur les processus
o Processus et temps partagé
6
6
Rappel sur les processus
•Processus : exécution d’un programme
« j’ai 3 processus qui s’exécutent … »
« … un lecteur de musique, et 2 éditeurs de texte »
→ plusieurs processus peuvent exécuter le même programme
Un processeur ne peut exécuter qu’un seul processus
Les systèmes actuels permettent l’exécution de plusieurs processus simultanément
Solution 1: Un processeur pour chaque processus
Solution 2: partager le processeur entre les processus demandant
simultanément le processeur
On parle d’ordonnancement des processus
7
7
Ordonnancement des processus
o Motivation
• Lorsqu’un ordinateur est multiprogrammé, il possède fréquemment plusieurs
processus en concurrence pour l’obtention du temps processeur.
• S’il n’y a qu’ un seul processeur, un choix doit être fait quant au prochain processus
à exécuter
• La gestion des processus s’occupe alors de l’allocation du processeur aux processus
créés.
CPU
88
9
Ordonnancement des processus
o Présentation
• La partie du SE qui effectue ce choix se nomme l’ordonnanceur (scheduler).
• L’algorithme qu’il emploie s’appelle algorithme d’ordonnancement (scheduling
algorithm).
1010
Ordonnancement des processus
o Objectifs d’un ordonnanceur
• S'assurer que chaque processus en attente d'exécution reçoive sa part de temps
processeur.
• Minimiser le temps de réponse.
• Utiliser le processeur à 100%.
• Prendre en compte des priorités.
11
11
Ordonnancement des processus
o Quand ordonnancer ?
• Lorsqu’un nouveau processus est créé
→ il faut se décider s’il faut exécuter d’abord le processus parent ou le processus
enfant.
• Lorsqu’un processus se termine
→ un autre processus doit être choisi parmi les processus prêts
• Lorsqu’un processus se bloque
→ un autre processus doit être sélectionné pour être exécuter
• Lorsqu’une interruption d’E/S se produit
→ il faut prendre une décision d’ordonnancement parmi les processus qui étaient
bloqué en attente d’E/S.
12
12
Critères d’Ordonnancement
• L’ordonnancement des processus peut toucher des critères comme :
- Le temps de traitement (séjour) moyen :
- Le temps d’attente moyen :
13
13
Ordonnancement des processus
o Interruption et ordonnancement
• On utilise les interruptions d’horloge pour commuter les tâches dans les systèmes
multitâches.
• Généralement, une interruption périodique est déclenchée par une horloge
et l'ordonnanceur est alors mis en action.
Selon l’interruption d’horloge, on distingue deux types d’algorithmes
d’ordonnancement: préemptifs et non préemptifs
14
14
Ordonnancement des processus
o Mode d’ordonnancement
15
15
Ordonnanceurs non préemptifs
• appelés aussi sans réquisition
• Sélectionne un processus, puis le laisse s’exécuter jusqu’à ce qu’il se bloque, ou
qu’il libère volontairement le processeur.
- Même s’il s’exécute pendant des heures, il ne sera pas suspendu de force
- Aucune décision d’ordonnancement n’intervient pendant les interruptions
d’horloge
16
16
Ordonnanceurs non préemptifs
o FCFS (first come first served)
• Appelé aussi FIFO (first in first out) ou premier arrivé premier servi.
• Cet algorithme traite les processus selon l’ordre de leur soumission (arrivée)
- -> sans prendre compte de leur temps d’exécution
• L’organisation de la file d’attente des processus prêts est tout simplement FIFO.
17
17
Ordonnanceurs non préemptifs
o Exemple (FCFS )
• Considérons les processus P1, P2, P3 avec les temps d’exécutions suivants.
Processus Temps d’exécution
P1 24
P2 3
P3 3
• Si les processus arrivent dans l’ordre P1, P2, P3, on aura le diagramme de Gantt
suivant:
P1 P2 P3
0 24 27 30
18
18
Ordonnanceurs non préemptifs
o Exemple (FCFS )
• Le temps d’attente de P1 est de 0ms, celui de P2 est de 24ms et enfin celui de P3
est 27ms.
• Le temps d’attente moyen est de (0 +24 +27)/3 = 17ms
• Supposons que les processus arrivent dans l’ordre P2, P3, P1, on aura la diagramme
de Gantt suivant :
P2 P3 P1
0 3 6 30
• Le temps d’attente moyen devient (0+3+6)/3 = 3ms
19
19
Ordonnanceurs non préemptifs
o L’algorithme FCFS
• L'ordonnancement, dans ce cas, dépend uniquement de la date d'arrivée du
processus au fil d’attente.
• Chaque processus élu est le premier arrivé à la liste et il sera exécuté jusqu’à
la fin.
Algorithme facile a comprendre
Faible complexité Pas de prise en compte de
d'implémentation l’importance relative des
processus
20
20
Ordonnanceurs non préemptifs
o SJF (shortest job first)
• SJF, ou la plus courte durée d’exécution, choisit les processus ayant le plus court
temps d’exécution.
• Quand le processeur est disponible, il est assigné au processus qui possède le
prochain cycle le plus petit.
• Si deux processus possèdent la même longueur, le FCFS/FIFO peut être utilisé
(arbitrage).
21
21
Ordonnanceurs non préemptifs
o Exemple SJF (shortest job first)
• Les processus arrivent pratiquement en même temps
Processus Temps d’exécution
P1 3
P2 6
P3 4
P4 2
P5 1
• Ordre d’ exécution:
P5 P4 P1 P3 P2
22
22
Application 1
Considérons cinq processus A, B, C, D et E, dont les temps d'exécution et leurs temps
d’arrivée respectifs sont les suivants:
Faire un schéma qui illustre l’exécution (diagramme de Gantt) et calculer le temps
moyen de séjour et le temps moyen d'attente en utilisant :
– Premier arrivé premier servi (FCFS)
– Le plus court d'abord (SJF)
23
23
Application 1
Solution
a) Premier arrivé premier servi (FCFS)
24
24
Application 1
Solution
a) Premier arrivé premier servi (FCFS)
25
25
Application 1
Solution
a) Premier arrivé premier servi (FCFS)
26
26
Application 1
Solution
b) Shortest Job First (SJF)
• Pour la stratégie SJF nous aurons la séquence d'exécution A,B,E,D,C
27
27
Ordonnanceurs non préemptifs
o Algorithme SJF
• L'ordonnancement dans ce cas dépend de la durée d’exécution supposé connu à
l’avance
• L'Ordonnanceur SJF élit le processus dont le temps d’exécution est le plus court
sachant que ce processus se trouve en tête de la file d’attente.
SJF est optimal: il obtient le temps moyen Risque de privation des tâches les
d’attente minimal pour un ensemble de plus longues
processus donné.
28
28
Ordonnanceurs préemptifs
• appelés aussi avec réquisition
• Sélectionne un processus et le laisse s’exécuter pendant un délai déterminé
- si le processus est toujours en cours d’exécution à l’issue de ce délai, il est
suspendu
- l’ordonnancement sélectionne un autre processus à exécuter
29
29
Ordonnanceurs préemptifs
Pour s'assurer qu'aucun processus ne s'exécute pendant trop de temps → une
horloge électronique génère périodiquement une interruption.
A chaque interruption d'horloge, le système d'exploitation reprend la main et
décide :
– si le processus courant doit poursuivre son exécution
– ou s'il doit être suspendu pour laisser place à un autre.
30
30
Ordonnanceurs préemptifs
o Commutation de contexte
Si le processus courant doit suspendre son exécution au profit d'un autre :
- l’OS doit d'abord sauvegarder le contexte du processus avant de charger le
contexte du processus à lancer.
C'est qu'on appelle la commutation de contexte ou le changement de contexte
- Cette sauvegarde est nécessaire pour pouvoir poursuivre ultérieurement
l'exécution du processus suspendu.
31
31
Ordonnanceurs préemptifs
o SRT (Shortest Remaining Time)
• C’est une version préemptive de l’algorithme SJF.
• Si un processus dont le temps d’exécution est plus court que le reste du temps
d’exécution du processus en cours de traitement, alors il prendra sa place.
Pas de prise en compte de
SRT minimise le temps l’importance relative des
d'attente moyen des processus
processus les plus courts
32
32
Ordonnanceurs préemptifs
o Exemple SRT
Processus Temps d’arrivé Temps d’exécution
P1 0 7
P2 2 4
P3 4 1
P4 5 4
Ordre d’exécution:
0 2 4 5 7 11 16
P1 P2 P3 P2 P4 P1
33
33
Application 2
Donner le diagramme de Gantt pour l’exécution de ces différents processus en
utilisant l’algorithme SRT, calculer :
• Temps de traitement de chaque processus et le temps de traitement moyen
• Temps d’attente de chaque processus et le temps d’attente moyen
P1 commence à t=0, il est le seul processus dans la file d’attente
● P2 arrive à t=1ms
● Le temps restant à P1 est de 7ms > temps demandé par P2, 4ms
→ P2 est exécuté et P1 retourne dans le file d’attente
34
34
Ordonnanceurs préemptifs
o AlgorithmeTourniquet ou Round Robin
• Lorsque un processus est élu on lui attribue une tanche de temps fixe appelé
quantum: c’est le temps d’allocation du processeur au processus
• Au bout de ce temps on ne poursuit plus l’exécution du processus.
• On lui retire donc le processeur et on le réinsère dans la file des processus prêt.
36
35
Ordonnanceurs préemptifs
o Exemple RR
Processus Temps d’exécution
P1 24
P2 3
P3 3
Quantum q=4 ms
P1 P2 P3 P1 P1 P1 P1 P1
0 4 7 10 14 18 22 26 30
37
36
Application 3
• Calculer le temps de séjour de chaque processus, le temps moyen de séjour, le
temps d'attente, le temps moyen d'attente avec:
– Round robin (quantum = 3 unités de temps)
38
Application 4
Etant donné cinq processus décrits au niveau du tableau suivant par leurs temps
d’arrivée ainsi que leurs temps d’exécution:
Dessiner le diagramme de GANTT pour l’ordonnancement Round Robin
(quantum = 1 unités de temps ensuite quantum = 3)
40
Ordonnanceurs préemptifs
o Impact de la valeur de quantum
• Un quantum trop petit provoque trop de commutations de processus et abaisse
l'efficacité du processeur.
• Un quantum trop élevé augmente le temps de réponse des courtes commandes en
mode interactif.
43
39
Ordonnanceurs préemptifs
o Algorithme Tourniquet ou Round Robin
Pas de prise en compte de
l’importance relative des
Algorithme simple et fiable.
tâches
Equite de l’attribution du Difficulté du choix de la
processeur entre toutes les tranche de temps
tâches Si q est trop grand, Round-
Mise en oeuvre simple Robin devient équivalent a
FIFO
44
40
Ordonnancement avec priorité
L'ordonnanceur à priorité attribue à chaque processus une priorité.
Le choix du processus à élire dépend des priorités des processus prêts.
Le processeur est allouée au processus de plus haute priorité
Les processus de même priorité sont regroupés dans une file du type FIFO.
41
45
Ordonnancement avec priorité
o Exemple
Processus Temps d’arrivé Priorité
P1 00 3
P2 00 1
P3 00 4
P4 00 5
P5 00 2
• Pour cet exemple, Un nombre de priorité élevé correspond à une priorité plus
importante.
Ordre d’exécution:
P4 P3 P1 P5 P2
46
42
Ordonnancement avec priorité
o Attribution et évolution des priorités
Un ordonnanceur préemptif diminue régulièrement la priorité du processus en
cours d'exécution , pour empêcher les processus de priorité élevée de s'exécuter
indéfiniment
Lorsque la priorité devient inférieure, la commutation a lieu.
Performant et fiable processus avec des basses
Prise en compte de l'importance priorités peuvent attendre
relative des processus indéfiniment (ne jamais être
Mise en oeuvre simple exécutés).
47
43
Application 5
Dessiner un schéma illustrant l’exécution des processus suivants, en utilisant
l’ordonnancement avec priorités et Calculer ensuite le temps de séjour de chaque
processus.
Remarque : Un nombre de priorité élevé correspond à une priorité plus importante.
Réaliser l’exercice dans une approche sans préemption
48
44
Récapitulons
FCFS: pénalise les processus de court temps d’exécution
SJF: problème de famine
Tourniquet: Bien choisir le Quantum de temps par rapport au cout de
commutation de contexte
Priorité :Risque de famine des processus de faible priorité
49