Vous êtes sur la page 1sur 45

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

Vous aimerez peut-être aussi