Ordonnancement des processus
Cours système d’exploitation
BTS-IG
G.Mohamed Bechir IPSET-2023
Introduction
• Lorsqu’un ordinateur est multiprogrammé, il possède
fréquemment plusieurs processus/threads en
concurrence pour l’obtention de temps processeur.
• Dans ce cas le système d’exploitation doit gérer
l’allocation du processeur aux différents processus à
exécuter. C’est l’ordonnanceur qui s’acquitte de cette
tâche.
Système d'exploitation 2
Définition
 Ordonnanceur:
• le module du noyau du système d'exploitation qui choisit les
processus qui vont être exécutés par les processeurs d'un
ordinateur.
• Critères d’ordonnancement:
– L’ordre d’arrivée
– Durée d’exécution
– La priorité
• La partie du système d’exploitation qui effectue ce choix se nomme
l’ordonnanceur (scheduler) et l’algorithme qu’il emploie s’appel
algorithme d’ordonnancement (scheduling algorithm)
Système d'exploitation 3
Définition
 Processus
• Un processus est une activité: programme, entrées, sorties…
• Une ou plusieurs tâches en cous d’exécution
• Peut être aussi un programme en exécution.
• Une entité active, avec un compteur d’instructions spécifiant
l’instruction suivante à exécuter et un ensemble de ressources
associées.
•  il est possible d’avoir plusieurs processus différents
associés à un même programme.
Système d'exploitation 4
Processus – Ordonnanceur – Processeur
Système d'exploitation 5
Programme et processus
• Un programme est une suite d'instructions (un objet
statique).
• Un processus est un programme en exécution et son
contexte (un objet dynamique).
• Dans un environnement mono tâche la notion de processus
est réduite à sa plus simple expression.
• Dans un système 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.
• Plusieurs processus peuvent exécuter simultanément la
même copie d'un même programme.
Système d'exploitation 6
Objectifs d'un ordonnanceur
• Les objectifs d'un ordonnanceur d'un système multiutilisateur
sont entre autres :
 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.
 Être prédictible.
Système d'exploitation 7
• Le processus est bloqué, en attente d’une donnée, événement,
• L’ordonnanceur choisit un autre processus,
• L’ordonnanceur choisit ce processus,
• La donnée, l’évènement devient disponible.
Système d'exploitation 8
État de processus
• Quand un processus s’exécute, il change d’état.
• Toutefois, plusieurs processus peuvent être prêts et en attente
• Un processeur ne peut exécuter qu’un seul processus à la fois!
Système d'exploitation 9
États de processus et ordonnancement 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électionner 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.
Système d'exploitation 10
Diagramme de Gantt
• Représentation schématique de l’évolution dans le temps des
processus.
• Le diagramme de Gantt est un outil utilisé en
ordonnancement et en gestion de projet et permettant de
visualiser dans le temps les diverses tâches composant un
projet
Système d'exploitation 11
Stratégies d’ordonnancement de
processus
Système d'exploitation 12
Politique de choix : FIFO
• Politique « FIFO » (First In First Out)
• Allocation dans l’ordre d’arrivée (premier arrivé = premier servi)
• FIFO traite les processus dans l’ordre de leur soumission (date
d’arrivée) sans aucune considération de leur temps d’exécution.
• Inconvénient :
– défavorise les entités ayant besoin d’utiliser la ressource pour
un court laps de temps
– Le temps d’attente n’est pas proportionnel au temps
d’utilisation
• pas équitable,
• temps moyen de traitement élevé
Système d'exploitation 13
Algorithme FIFO
Système d'exploitation 14
Ordonnancement FIFO
• Supposons que les processus arrivent dans l’ordre suivant: P1 , P2 , P3 Le
diagramme correspondant est:
• Temps d‘attente de P1 = 0; P2 = 24; P3 = 27
• Temps d’attente moyen: (0 + 24 + 27)/3 = 17
Système d'exploitation 15
Ordonnancement FIFO
• Supposons que les processus arrivent dans l’ordre suivant P2 , P3 ,
P1
• Le diagramme de Gantt serait alors :
• Temps d’attente de P1; P2; P3.?
• Temps d’attente moyen: ?
Système d'exploitation 16
Politique de choix : SJF
• Politique SJF (Shortest Job First) ou PCTU (Plus Court Temps
d’Utilisation d’abord)
• Allocation selon ordre croissant de durée d’utilisation
prévue
• Inconvénients
– Pas réaliste : exige la connaissance a priori des durées
d’utilisation
– les tâches dont la durée d’exécution estimée est longue peuvent
attendre leur tour indéfiniment …
• Avantages
– Temps d’attente faible pour entités à courte durée d’utilisation
– Temps moyen d’attente minimal
Système d'exploitation 17
Algorithme SJF
Système d'exploitation 18
Exemple : algorithme SJF
• Temps moyen d’attente = (0 + 6 + 3 + 7)/4 = 4
Système d'exploitation 19
• Il existe d’autres algorithmes qui sont «pré-emptif » telque :
• Round Robin (RR)
• Shortest Remaining Time (SRT)
• …
• Pour les algorithmes dit préemptifs il y a possibilité
d’appropriation du processeur par un processus avant la fin
du processus courant.
Système d'exploitation 20
Gestions de processus sous Linux/UNIX
• Démarrage Linux/UNIX: un processus spécial appelé init est
présent dans l’image d’amorçage.
• Lorsqu’il s’exécute, il lit un fichier indiquant combien de
terminaux sont présents; il génère un nouveau processus
par terminal.
• Ce processus attendent une ouverture de session (login)
• Si l’une d’elles réussit, le processus de login exécute un
SHELL pour accepter des commandes.
• Ces commandes peuvent lancer d’autres processus, et ainsi
de suite.
• Tous les processus de l’ensemble du SE appartiennent à un
arborescence unique, dont init est la racine.
Système d'exploitation 21
Gestions de processus sous Linux/UNIX
• Un processus a un seul parent et peut avoir 0 ou
plusieurs fils.
• Si le processus A crée le processus B, A est le parent de B,
B est le fils de A (A par défaut, exécute le même code que
B) B peut à son tour créer des processus. Un processus
avec tous ses descendants forment un groupe de
processus représenté par un arbre de processus.
• fork est le seul appel système de création de processus.
Système d'exploitation 22

Cours SE Ordonnancement des processus - IPSET.pdf

  • 1.
    Ordonnancement des processus Courssystème d’exploitation BTS-IG G.Mohamed Bechir IPSET-2023
  • 2.
    Introduction • Lorsqu’un ordinateurest multiprogrammé, il possède fréquemment plusieurs processus/threads en concurrence pour l’obtention de temps processeur. • Dans ce cas le système d’exploitation doit gérer l’allocation du processeur aux différents processus à exécuter. C’est l’ordonnanceur qui s’acquitte de cette tâche. Système d'exploitation 2
  • 3.
    Définition  Ordonnanceur: • lemodule du noyau du système d'exploitation qui choisit les processus qui vont être exécutés par les processeurs d'un ordinateur. • Critères d’ordonnancement: – L’ordre d’arrivée – Durée d’exécution – La priorité • La partie du système d’exploitation qui effectue ce choix se nomme l’ordonnanceur (scheduler) et l’algorithme qu’il emploie s’appel algorithme d’ordonnancement (scheduling algorithm) Système d'exploitation 3
  • 4.
    Définition  Processus • Unprocessus est une activité: programme, entrées, sorties… • Une ou plusieurs tâches en cous d’exécution • Peut être aussi un programme en exécution. • Une entité active, avec un compteur d’instructions spécifiant l’instruction suivante à exécuter et un ensemble de ressources associées. •  il est possible d’avoir plusieurs processus différents associés à un même programme. Système d'exploitation 4
  • 5.
    Processus – Ordonnanceur– Processeur Système d'exploitation 5
  • 6.
    Programme et processus •Un programme est une suite d'instructions (un objet statique). • Un processus est un programme en exécution et son contexte (un objet dynamique). • Dans un environnement mono tâche la notion de processus est réduite à sa plus simple expression. • Dans un système 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. • Plusieurs processus peuvent exécuter simultanément la même copie d'un même programme. Système d'exploitation 6
  • 7.
    Objectifs d'un ordonnanceur •Les objectifs d'un ordonnanceur d'un système multiutilisateur sont entre autres :  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.  Être prédictible. Système d'exploitation 7
  • 8.
    • Le processusest bloqué, en attente d’une donnée, événement, • L’ordonnanceur choisit un autre processus, • L’ordonnanceur choisit ce processus, • La donnée, l’évènement devient disponible. Système d'exploitation 8
  • 9.
    État de processus •Quand un processus s’exécute, il change d’état. • Toutefois, plusieurs processus peuvent être prêts et en attente • Un processeur ne peut exécuter qu’un seul processus à la fois! Système d'exploitation 9
  • 10.
    États de processuset ordonnancement 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électionner 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. Système d'exploitation 10
  • 11.
    Diagramme de Gantt •Représentation schématique de l’évolution dans le temps des processus. • Le diagramme de Gantt est un outil utilisé en ordonnancement et en gestion de projet et permettant de visualiser dans le temps les diverses tâches composant un projet Système d'exploitation 11
  • 12.
  • 13.
    Politique de choix: FIFO • Politique « FIFO » (First In First Out) • Allocation dans l’ordre d’arrivée (premier arrivé = premier servi) • FIFO traite les processus dans l’ordre de leur soumission (date d’arrivée) sans aucune considération de leur temps d’exécution. • Inconvénient : – défavorise les entités ayant besoin d’utiliser la ressource pour un court laps de temps – Le temps d’attente n’est pas proportionnel au temps d’utilisation • pas équitable, • temps moyen de traitement élevé Système d'exploitation 13
  • 14.
  • 15.
    Ordonnancement FIFO • Supposonsque les processus arrivent dans l’ordre suivant: P1 , P2 , P3 Le diagramme correspondant est: • Temps d‘attente de P1 = 0; P2 = 24; P3 = 27 • Temps d’attente moyen: (0 + 24 + 27)/3 = 17 Système d'exploitation 15
  • 16.
    Ordonnancement FIFO • Supposonsque les processus arrivent dans l’ordre suivant P2 , P3 , P1 • Le diagramme de Gantt serait alors : • Temps d’attente de P1; P2; P3.? • Temps d’attente moyen: ? Système d'exploitation 16
  • 17.
    Politique de choix: SJF • Politique SJF (Shortest Job First) ou PCTU (Plus Court Temps d’Utilisation d’abord) • Allocation selon ordre croissant de durée d’utilisation prévue • Inconvénients – Pas réaliste : exige la connaissance a priori des durées d’utilisation – les tâches dont la durée d’exécution estimée est longue peuvent attendre leur tour indéfiniment … • Avantages – Temps d’attente faible pour entités à courte durée d’utilisation – Temps moyen d’attente minimal Système d'exploitation 17
  • 18.
  • 19.
    Exemple : algorithmeSJF • Temps moyen d’attente = (0 + 6 + 3 + 7)/4 = 4 Système d'exploitation 19
  • 20.
    • Il existed’autres algorithmes qui sont «pré-emptif » telque : • Round Robin (RR) • Shortest Remaining Time (SRT) • … • Pour les algorithmes dit préemptifs il y a possibilité d’appropriation du processeur par un processus avant la fin du processus courant. Système d'exploitation 20
  • 21.
    Gestions de processussous Linux/UNIX • Démarrage Linux/UNIX: un processus spécial appelé init est présent dans l’image d’amorçage. • Lorsqu’il s’exécute, il lit un fichier indiquant combien de terminaux sont présents; il génère un nouveau processus par terminal. • Ce processus attendent une ouverture de session (login) • Si l’une d’elles réussit, le processus de login exécute un SHELL pour accepter des commandes. • Ces commandes peuvent lancer d’autres processus, et ainsi de suite. • Tous les processus de l’ensemble du SE appartiennent à un arborescence unique, dont init est la racine. Système d'exploitation 21
  • 22.
    Gestions de processussous Linux/UNIX • Un processus a un seul parent et peut avoir 0 ou plusieurs fils. • Si le processus A crée le processus B, A est le parent de B, B est le fils de A (A par défaut, exécute le même code que B) B peut à son tour créer des processus. Un processus avec tous ses descendants forment un groupe de processus représenté par un arbre de processus. • fork est le seul appel système de création de processus. Système d'exploitation 22