Aller au contenu

Ordonnancement

I. L'ordonnancement⚓

Ordonnancement

Afin de choisir quel processus va repasser en mode exĂ©cution, l'ordonnanceur applique un algorithme prĂ©dĂ©fini lors de la conception de l'OS. Le choix que va rĂ©aliser cet algorithme va impacter directement la rĂ©activitĂ© du systĂšme et les usages qui pourront en ĂȘtre fait. C'est un Ă©lĂ©ment critique du systĂšme d'exploitation.

Nous allons maintenant voir le principe de fonctionnement de l'ordonnancement

Les différents algorithmes d'ordonnancement

  • Le modĂšle FIFO : on affecte les processus dans l'ordre de leur apparition dans la file d'attente.
  • Le modĂšle SJF (Shortest Job First) : on affecte en premier le « plus court processus en premier » de la file d'attente Ă  l'unitĂ© de calcul.
  • Le modĂšle Round Robin : (ou mĂ©thode du tourniquet) on effectue un bloc de chaque processus prĂ©sent dans la file d'attente Ă  tour de rĂŽle, pendant un quantum de temps d'en gĂ©nĂ©ral 20 Ă  30 ms. Si le processus n'est pas terminĂ©, il repart en fin de liste d'attente.
D'autres algorithmes

Il existe d'autres algorithmes d'ordonnancement, comme par exemple le modĂšle PrioritĂ©, oĂč chaque processus dispose d’une valeur de prioritĂ© et on choisit le processus de plus forte prioritĂ© Ă  chaque fois. Actuellement, la plupart des systĂšmes d’exploitation utilise une Ă©volution du modĂšle prioritĂ©, reposant sur les principes suivants :

Chaque processus possÚde une priorité de base.
Cette priorité augmente quand le processus est inactif et diminue quand il est actif (le taux de changement dépend de la priorité de base).
Le systÚme choisit parmi les processus de plus forte priorité.

Le quantum

Le quantum est une unité arbitraire de temps

Eléments pour l'ordonnancement
  • DurĂ©e du processus ou durĂ©e d'exĂ©cution sur le coeur : Ă  la durĂ©e en quantum P nĂ©cessaire Ă  l'execution du processus.
  • Date d'arrivĂ©e ou date de soumission : date oĂč le processus arrive dans la file d'attente.
  • Date de terminaison: pour un processus P : durĂ©e Ă©coulĂ©e entre le temps 0 et le temps oĂč le processus est terminĂ©e P
  • Temps d'exĂ©cution ou temps de sĂ©jour : diffĂ©rence entre le temps d'arrivĂ©e de P et le temps de terminaison de P.
  • Temps d'attente d'un processus P : diffĂ©rence entre le temps d'execution et la durĂ©e du processus.
  • Temps moyen d'attente : moyenne des temps d'attente de tous les processus

Nous allons voir ceci dans différents ordonnancements

II. L'ordonnancement SJF⚓

En exemple, nous allons traiter un ordonnancement avec le modĂšle SJF

Processus P1 P2 P3 P4 P5
Durée en quantum 3 6 4 2 1
Date d'arrivée 0 1 4 6 7

👉 Etape 1 : classons les processus selon l'ordre croissant de leur durĂ©e : P5 (1 qt) < P4 (2qt) < P1 (3 qt) < P3 (3 qt) < P2 (6qt)

👉 Etape 2 :

  • Au dĂ©but du traitement des processus l'horloge mesurant les quantums est Ă  0.
  • P1 arrive en 0 , il n'y a pas d'autre processus en attente. L'OS execute P1 pendant 3 quantums
  • A la fin de P1, l'horloge indique 3 quantums. Pendant le traitement de P1 seul P2 est arrivĂ©. L'OS traite P2 et son traitement dure 6 quantums.
  • A la fin du traitement de P2, l'horloge indique 9 quantums. Pendant le temps de traitement de P2, sont arrivĂ©s P3, P4 et P5. L'OS va traiter le plus court donc P5, puis il va traiter P4 en enfin il traite P3.
  • A la fin du traitement des 5 processus, l'horloge indique 16 quantums

✏ Nous obtenons le schĂ©ma suivant :

sjf

Comment compléter le tableau suivant ?
Processus P1 P2 P3 P4 P5
Durée en quantum 3 6 4 2 1
Date d'arrivée 0 1 4 6 7
Date de terminaison
Temps d'exécution
temps d'attente
Aides
  • La date de terminaison (optionnelle) est la date de dĂ©marrage de l'exĂ©cution plus la durĂ©e en quantums
  • Le temps d'exĂ©cution est la date de terminaison moins la date d'arrivĂ©e
  • Le temps d'attente est le temps d'exĂ©cution moins la durĂ©e du processus
RĂ©ponse
Processus P1 P2 P3 P4 P5
Durée en quantum 3 6 4 2 1
Date d'arrivée 0 1 4 6 7
Date de terminaison 3 9 16 12 10
Temps d'exécution 3 8 12 6 3
temps d'attente 0 2 8 4 2

III. Les ordonnancements FIFO et Round Robin (tourniquet)⚓

IV. Exercices⚓

Exercice 1 :⚓

FIFO
Processus P1 P2 P3
Durée en quantum 8 3 9
Date d'arrivée 8 5 0

Représenter l'ordonnancement des processus ci-dessus à l'aide du modÚle FIFO.

RĂ©ponse

exo_1

Exercice 2 :⚓

SJF
Processus P1 P2 P3 P4
Durée en quantum 8 5 9 2
Date d'arrivée 4 0 3 7

Représenter l'ordonnancement des processus ci-dessus à l'aide du modÚle SJF.

RĂ©ponse

exo_2

Exercice 3 :⚓

Round Robin
Processus P1 P2 P3
Durée en quantum 8 5 9
Date d'arrivée 1 0 3

Représenter l'ordonnancement des processus ci-dessus à l'aide du modÚle Round Robin (tourniquet)

RĂ©ponse

exo_3

Exercice 4 :⚓

SJF et Round Robin

Les trois processus suivants doivent ĂȘtre exĂ©cutĂ©s simultanĂ©ment sur un ordinateur Ă  un seul microprocesseur. Chaque instruction dure 1 quantum. Nous les noterons P1, P2 et P3.

  1. L’ordonnanceur du systĂšme d’exploitation utilise la mĂ©thode SJF « plus court d’abord ». SchĂ©matiser l’ordre de traitement des instructions des 3 processus.
  2. L’ordonnanceur du systĂšme d’exploitation utilise la mĂ©thode du tourniquet. SchĂ©matiser l’ordre de traitement des instructions des 3 processus. Au dĂ©part, on supposera que P1 est exĂ©cutĂ©, puis P2, puis P3.

exo_2

RĂ©ponse

exo_4

Exercice 5 :⚓

comparaison des algorithmes

5 processus, P1, P2, P3, P4, P5 sont dans une file d'attente dans cet ordre (P1 est le premier, P5 est le dernier). Ils arrivent tous en mĂȘme temps pour ĂȘtre traitĂ©. Leur exĂ©cution demande un temps total de service exprimĂ© en unitĂ©s arbitraires (quantum).

Processus P1 P2 P3 P4 P5
Durée en quantum 10 1 2 1 5
  • DĂ©crire l'exĂ©cution des processus (schĂ©ma + tableau) dans le cadre des politiques d'ordonnancement FIFO, SJF, RR (avec un quantum de 1).
  • Quelle est de ces trois politiques, celle qui correspond Ă  un temps minimal d'attente moyen par processus?
RĂ©ponse

exo_5

Temps d'attente moyen :

  • RR : \(\dfrac{9+1+5+3+9}{5} = 5,4\)
  • FIFO : \(\dfrac{0+10+11+13+14}{5} = 9,6\)
  • SJF : \(\dfrac{9+0+2+1+4}{5} = 3,2\)

DĂ©tails :

exo_5 détails

QCM⚓

Comment s'appelle la gestion du partage du processeur entre différents processus?
  • l'interblocage
  • l'ordonnancement
  • la planification
  • la priorisation
  • ❌
  • ✅ l'ordonnancement
  • ❌
  • ❌
L'ordonnanceur :
  • donne des instructions pour rĂ©parer des processus cassĂ©s
  • transforme un programme en processus
  • planifie l'exĂ©cution des processus
  • ❌
  • ❌
  • ✅ planifie l'exĂ©cution des processus
Un processus
  • ne s'exĂ©cute jamais en mĂȘme temps qu'un autre processus sur le mĂȘme processeur.
  • peut ĂȘtre mis en attente par l'ordonnancement du systĂšme d'exploitation
  • rĂ©alise l'ensemble des ses instructions avant de rendre la main
  • ✅ ne s'exĂ©cute jamais en mĂȘme temps qu'un autre processus sur le mĂȘme processeur.
  • ✅ peut ĂȘtre mis en attente par l'ordonnancement du systĂšme d'exploitation
  • ❌

TP ordonnancement⚓

Le TP

Vous lirez le fichier Ă  partir de Basthon

👉 Vous devrez tĂ©lĂ©charger dans le mĂȘme dossier les deux fichiers suivants

🌐 TD Ă  tĂ©lĂ©charger : Fichier TP_ordonnanceur_sujet_2023.ipynb : "Clic droit", puis "Enregistrer la cible du lien sous"

👉 Vous devez charger le module suivant : test_tp_ordonn_sjf.py dans le document : icone ouvrir fichier puis choisir Installer le module

🌐 module Ă  tĂ©lĂ©charger : "Clic droit", puis "Enregistrer la cible du lien sous"

RĂ©ponse

🌐 Fichier TP_ordonnanceur_corr_2023.ipynb : "Clic droit", puis "Enregistrer la cible du lien sous"

CrĂ©dits⚓

Auteurs Mireille Coilhac, Valérie Mousseaux, Jean-Louis Thirot , sur la base du travail de :

  • Olivier LĂ©cluse
  • monlycĂ©enumerique.fr
  • courstechinfo.be