SlideShare une entreprise Scribd logo
1  sur  31
Télécharger pour lire hors ligne
Algorithmes d’ordonnancement sans réquisition
Algorithmes d’ordonnancement avec réquisition
Partie 3 Ordonnancement des processus
SEII
Algorithmes d’ordonnancement sans réquisition
Algorithmes d’ordonnancement avec réquisition
Introduction
Dans un système multitâche plusieurs processus sont en cours
simultanément, mais le processeur ne peut, à un moment donné, exécuter
qu’une instruction (d’un programme) à la fois. Le processeur travaille
donc en temps partagé.
L’ordonnanceur (scheduler) est le module du SE qui s’occupe de
sélectionner le processus suivant à exécuter parmi ceux qui sont
prêts.
SEII
Algorithmes d’ordonnancement sans réquisition
Algorithmes d’ordonnancement avec réquisition
Ordonnancement de processus
Un processus passe entre les diverses files d’attente pendant sa durée
de vie (file d’attente des processus prêts (attendant pour s’exécuter),
fille d’attentes des périphériques, ....).
Le SE doit sélectionner les processus à partir de ces files d’attente
d’une manière quelconque.
Le processus de sélection est mené à bien par le scheduleur
approprié.
Classification des processus
Tributaire des E/S : dépense la plupart du temps à effectuer des E/S
plutôt que des calculs
Tributaire de la CPU : génère peut fréquemment des requêtes d’E/S,
cad, passe plus de temps à effectuer des calculs
SEII
Algorithmes d’ordonnancement sans réquisition
Algorithmes d’ordonnancement avec réquisition
Ordonnancement de processus
SEII
Algorithmes d’ordonnancement sans réquisition
Algorithmes d’ordonnancement avec réquisition
Ordonnanceurs (schedulers)
Programmes qui gèrent l’utilisation de ressources de l’ordinateur
L’ordonnanceur ne fournit pas seulement un mécanisme, mais prend
des décisions
Trois types d’ordonnanceurs :
à court terme
à long terme
à moyen terme
SEII
Algorithmes d’ordonnancement sans réquisition
Algorithmes d’ordonnancement avec réquisition
Ordonnanceurs (schedulers)
Le scheduler à long terme (ou scheduler de travaux)
Sélectionne le processus qui doit aller dans la fille de processus prêts.
S’exécute moins fréquemment : peut être lent (seconds, minutes).
Contrôle le degré de multiprogrammation (le nombre de processus
dans la mémoire).
Il est important que le scheduleur à long terme réalise un bon
mélange de processus tributaires de la CPU et tributaires des E/S
Le scheduler à court terme (ou scheduler de la CPU)
Choisit parmi les processus prêts celui à être exécuté (alloue la CPU
à lui).
Appelé assez fréquemment : doit être Très rapide
SEII
Algorithmes d’ordonnancement sans réquisition
Algorithmes d’ordonnancement avec réquisition
Ordonnanceurs (schedulers)
Le manque de ressources peut parfois forcer le SE à suspendre des
processus
ils seront plus en concurrence avec les autres pour des ressources
ils seront repris plus tard quand les ressources deviendront disponibles
Ces processus sont enlevés de mémoire centrale et mis en mémoire
secondaire, pour être repris plus tard
"swap out/swap in", va-et-vient
SEII
Algorithmes d’ordonnancement sans réquisition
Algorithmes d’ordonnancement avec réquisition
Ordonnanceurs (schedulers)
SEII
Algorithmes d’ordonnancement sans réquisition
Algorithmes d’ordonnancement avec réquisition
Ordonnanceurs (schedulers)
Un bon ordonnanceur se doit :
de maximiser l’utilisation du processeur,
d’être équitable entre les différents processus, de présenter un temps
de réponse acceptable
d’avoir un bon rendement, d’assurer certaines priorités.
Un bon algorithme d’ordonnancement doit donc être capable de :
s’assurer que chaque processus reçoit sa part de temps processeur,
utiliser le temps processeur à 100%,
minimiser les temps de réponse pour les utilisateurs en mode
intéractif,
minimiser l’attente des utilisateurs qui travaillent en batch,
maximiser le nombre de travaux effectués en une heure.
SEII
Algorithmes d’ordonnancement sans réquisition
Algorithmes d’ordonnancement avec réquisition
Algorithmes d’ordonnancement
Les algorithmes d’ordonnancement peuvent être classés en deux
catégories :
1 Non préemptif (sans réquisition)
Sélectionne un processus, puis le laisse s’exécuter jusqu’à ce qu’il
bloque (soit sur une E/S, soit en attente d’un autre processus) où
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 de l’horloge.
inefficace et dangereux (ex : exécution d’une boucle sans fin. . . )
2 Préemptif (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 à l’issue de ce délai, il est
suspendu et le scheduleur sélectionne un autre processus à exécuter.
SEII
Algorithmes d’ordonnancement sans réquisition
Algorithmes d’ordonnancement avec réquisition
Algorithmes d’ordonnancement
Critères utilisés :
Utilisation de la CPU : maintenir la CPU aussi occupée que possible.
Débit (ou rendement, Throughput) à maximiser : nombre de
processus complétés pendant une période d’observation donnée.
Temps de rotation ou temps d’exécution (Turnaround time) à
minimiser : temps nécessaire pour l’exécution d’un processus =
temps terminaison moins temps arrivée.
Temps d’attente (waiting time ) à minimiser : quantité de temps
qu’un processus passe à attendre dans la file d’attente des processus
prêts.
Temps de réponse (response time) à minimiser : utile pour les
systèmes interactifs. Temps écoulé entre la soumission d’une requête
et la première réponse obtenue.
Equité : degré auquel tous les processus reçoivent une chance égale
de s’exécuter. On essaie ainsi d’éviter la famine : c’est le cas où un
processus n’obtient pas la ressource
Remarque : En général, on tente d’optimiser les valeurs moyennes
pour tous les processus mis en jeu pendant une période d’observation
donnée, pour les temps d’attente, de rotation et de réponse.
SEII
Algorithmes d’ordonnancement sans réquisition
Algorithmes d’ordonnancement avec réquisition
Premier arrivé, premier servi (FCFS : First-come,
first-served)
Les processus sont traités dans leur ordre d’arrivée (PAPS)
L’implantation de la politique FCFS est facilement gérée avec une
file d’attente FIFO.
Une fois que la CPU a été allouée à un processus, celui-ci garde la
CPU jusqu’à ce qu’il la libère (fin ou E/S).
FCFS est particulièrement incommode pour le temps partagé où il
est important que chaque utilisateur obtienne la CPU à des
intervalles réguliers.
SEII
Algorithmes d’ordonnancement sans réquisition
Algorithmes d’ordonnancement avec réquisition
Premier arrivé, premier servi (FCFS : First-come,
first-served)
SEII
Algorithmes d’ordonnancement sans réquisition
Algorithmes d’ordonnancement avec réquisition
Premier arrivé, premier servi (FCFS : First-come,
first-served)
Intérêts :
Algorithme facile à comprendre
Faible complexité d’implémentation (une seule liste chaînée)
Inconvénients :
Pas de prise en compte de l’importance relative des processus
Temps d’attente du processeur généralement important
SEII
Algorithmes d’ordonnancement sans réquisition
Algorithmes d’ordonnancement avec réquisition
Plus court temps d’exécution d’abord (PCTE) ou (SJF :
Shortest Job First)
Associe à chaque processus la longueur de son prochain cycle de CPU.
Quand la CPU est disponible, elle est assignée au processus qui possède le
prochain cycle le plus petit. Si deux processus possèdent la même
longueur, le FCFS est utilisé.
SJF est optimal : il obtient le temps moyen d’attente minimal pour un
ensemble de processus donné.
Difficulté : pouvoir connaître la longueur de la prochaine requête de la
CPU
Deux schémas : Non préemptif et préemptif.
SEII
Algorithmes d’ordonnancement sans réquisition
Algorithmes d’ordonnancement avec réquisition
Plus court temps d’exécution d’abord (PCTE) ou (SJF :
Shortest Job First)
SEII
Algorithmes d’ordonnancement sans réquisition
Algorithmes d’ordonnancement avec réquisition
Plus court temps d’exécution d’abord (PCTE) ou (SJF :
Shortest Job First)
Intérêts :
SJF réduit le temps d’attente des processus
Utilisation limitée à des environnements et à des applications
spécifiques
Inconvénients :
Pas de prise en compte de l’importance relative des processus
Algorithme optimal uniquement dans le cas où tous les processus
sont disponibles simultanément
SEII
Algorithmes d’ordonnancement sans réquisition
Algorithmes d’ordonnancement avec réquisition
Algorithmes d’ordonnancement avec réquisition
Pour s’assurer qu’aucun processus ne s’exécute pendant trop de
temps, les ordinateurs ont une horloge électronique qui 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
être suspendu pour laisser place à un autre
S’il décide de suspendre l’exécution au profit d’un autre, il doit
d’abord sauvegarder l’état des registres du processeur avant de
charger dans les registres les données du processus à lancer
(commutation de contexte)
Cette sauvegarde est nécessaire pour pouvoir poursuivre
ultérieurement l’exécution du processus suspendu
SEII
Algorithmes d’ordonnancement sans réquisition
Algorithmes d’ordonnancement avec réquisition
Algorithmes d’ordonnancement avec réquisition
Le processeur passe donc d’un processus à un autre en exécutant
chaque processus pendant quelques dizaines ou centaines de
millisecondes.
Le temps d’allocation du processeur au processus est appelé
quantum (noté par : q)
Cette commutation entre processus doit être rapide (temps
nettement inférieur au quantum).
Le processeur, à un instant donné, n’exécute réellement qu’un seul
processus
Pendant une seconde, le processeur peut exécuter plusieurs
processus et donne ainsi l’impression de parallélisme
SEII
Algorithmes d’ordonnancement sans réquisition
Algorithmes d’ordonnancement avec réquisition
Plus court temps restant (Shortest Remaining Time SRT)
C’est la version de PCTE avec réquisition
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.
SEII
Algorithmes d’ordonnancement sans réquisition
Algorithmes d’ordonnancement avec réquisition
Plus court temps restant (Shortest Remaining Time SRT)
Intérêts :
SRT minimise le temps d’attente moyen des processus les plus courts
Utilisation limitée à des environnements et à des applications
spécifiques
Inconvénients :
Pas de prise en compte de l’importance relative des processus
Non équité de service : SRT pénalise les processus longs
Possibilité de famine pour les processus longs
SEII
Algorithmes d’ordonnancement sans réquisition
Algorithmes d’ordonnancement avec réquisition
Ordonnancement circulaire (tourniquet=Round-Robin (RR))
Chaque processus possède un quantum d’exécution (en général de
10 à 100 ms)
Si le processus a fini dans cet intervalle : au suivant !
S’il n’a pas fini : le processus passe en fin de liste et au suivant !
SEII
Algorithmes d’ordonnancement sans réquisition
Algorithmes d’ordonnancement avec réquisition
Ordonnancement circulaire (tourniquet=Round-Robin (RR))
SEII
Algorithmes d’ordonnancement sans réquisition
Algorithmes d’ordonnancement avec réquisition
Ordonnancement circulaire (tourniquet=Round-Robin (RR))
Intérêts :
Equité de l’attribution du processeur entre toutes les tâches
Mise en œuvre simple
Inconvénients :
Pas de prise en compte de l’importance relative des tâches
Difficulté du choix de la tranche de temps
Si q est trop grand, Round-Robin devient équivalent à FIFO
Si q est trop petit, il y a augmentation du nombre de changements de
contexte !
SEII
Algorithmes d’ordonnancement sans réquisition
Algorithmes d’ordonnancement avec réquisition
Ordonnancement avec priorité
Une priorité est associée à chaque processus.
CPU est allouée au processus de plus haute priorité (priorité = 1 >
priorité = 2)
avec ou sans préemption
il y a une file prêt pour chaque priorité
Les processus ayant la même priorité sont schedulés dans un ordre
FCFS.
SJF : priorité déterminée par la durée du prochain cycle de CPU.
SEII
Algorithmes d’ordonnancement sans réquisition
Algorithmes d’ordonnancement avec réquisition
Ordonnancement avec priorité
Exemple
Problème : Famine (starvation) ou blocage indéfinie : processus avec
des basses priorités peuvent attendre indéfiniment (ne jamais être
exécutés).
Solution : Vieillissement (aging) :
modifier la priorité d’un processus en fonction de son âge et de son
historique d’exécution
le processus change de file d’attente
SEII
Algorithmes d’ordonnancement sans réquisition
Algorithmes d’ordonnancement avec réquisition
Files à plusieurs niveaux (multiples)
La file prêt est séparée en plusieurs files
travaux "d’arrière-plan" (background - batch)
travaux "de premier plan" (foreground - interactive)
Chaque file a son propre algorithme d ’ordonnancement
FCFS pour arrière-plan
tourniquet pour premier plan
Comment ordonnancer entre files ?
Priorité fixe à chaque file −→ famine possible ou
Chaque file reçoit un certain pourcentage de temps UCT :
80% pour arrière-plan
20% pour premier plan
SEII
Algorithmes d’ordonnancement sans réquisition
Algorithmes d’ordonnancement avec réquisition
Files à plusieurs niveaux (multiples)
SEII
Algorithmes d’ordonnancement sans réquisition
Algorithmes d’ordonnancement avec réquisition
Files multiples et à retour
Un processus peut passer d’une file à l ’autre, p.ex. quand il a passé
trop de temps dans une file
à déterminer :
nombre de files
algorithmes d’ordonnancement pour chaque file
algorithmes pour décider quand un proc doit passer d’une file à
l’autre
algorithme pour déterminer, pour un proc qui devient prêt, sur quelle
file il doit être mis
SEII
Algorithmes d’ordonnancement sans réquisition
Algorithmes d’ordonnancement avec réquisition
Files multiples et à retour
SEII
Algorithmes d’ordonnancement sans réquisition
Algorithmes d’ordonnancement avec réquisition
Exemple de files multiples à retour
Trois files :
Q0 : tourniquet, quantum 8 msecs
Q1 : tourniquet, quantum 16 msecs
Q2 : FCFS
Ordonnancement :
Un nouveau processus est inséré dans Q0
Processus de Q0 : S’il ne finit pas en 8ns, alors il est interrompu et
placé en Q1
Si Q0 est vide, le processus en tête de Q1 prend la CPU. S’il ne
termine pas en 16ns, il est interrompu et mis dans Q2
Processus de Q2 : exécutés avec FCFS (seulement quand Q0 et Q1
sont vides)
SEII

Contenu connexe

Similaire à The supply chain is susceptible to market volatility, driven by changing consumer demand, trade wars, raw material shortages, climate change, stringent environmental regulations, economic uncertainties, policy changes, and industrial unrest.

SdE 5 - Communication entre processus et Planification
SdE 5 - Communication entre processus et PlanificationSdE 5 - Communication entre processus et Planification
SdE 5 - Communication entre processus et PlanificationAlexandru Radovici
 
coursystemedexploitaionsghaieranouar-150103105816-conversion-gate01.pdf
coursystemedexploitaionsghaieranouar-150103105816-conversion-gate01.pdfcoursystemedexploitaionsghaieranouar-150103105816-conversion-gate01.pdf
coursystemedexploitaionsghaieranouar-150103105816-conversion-gate01.pdfRihabBENLAMINE
 
Cour systeme d'exploitation sghaier anouar
Cour systeme d'exploitation sghaier anouarCour systeme d'exploitation sghaier anouar
Cour systeme d'exploitation sghaier anouarAnouar Sghaier
 
Fr linux job_scheduling
Fr linux job_schedulingFr linux job_scheduling
Fr linux job_schedulingORSYP France
 
8.lesinterruptions
8.lesinterruptions8.lesinterruptions
8.lesinterruptionsahmedyes
 
Noyau temps réel freertos cheriet mohammed el amine
Noyau temps réel freertos cheriet mohammed el amineNoyau temps réel freertos cheriet mohammed el amine
Noyau temps réel freertos cheriet mohammed el amineCHERIET Mohammed El Amine
 
An52 g formation-analyse-de-performance-pour-aix-outils-avances
An52 g formation-analyse-de-performance-pour-aix-outils-avancesAn52 g formation-analyse-de-performance-pour-aix-outils-avances
An52 g formation-analyse-de-performance-pour-aix-outils-avancesCERTyou Formation
 
Continuité de service informatique : comment ça fonctionne ?
Continuité de service informatique : comment ça fonctionne ?Continuité de service informatique : comment ça fonctionne ?
Continuité de service informatique : comment ça fonctionne ?Trader's - Quick Software Line
 
Système d’exploitation: Principe
Système d’exploitation: PrincipeSystème d’exploitation: Principe
Système d’exploitation: PrincipeSouhaib El
 
Systèmes d'Exploitation - chp2-gestion des processus
Systèmes d'Exploitation - chp2-gestion des processusSystèmes d'Exploitation - chp2-gestion des processus
Systèmes d'Exploitation - chp2-gestion des processusLilia Sfaxi
 
Simulation d’un système à temps partagé
Simulation d’un système à temps partagéSimulation d’un système à temps partagé
Simulation d’un système à temps partagéBachir Benyammi
 
Chapitre iii interruptions
Chapitre iii interruptionsChapitre iii interruptions
Chapitre iii interruptionsSana Aroussi
 
#12 et #13 Versioning et JaDOrT
#12 et #13 Versioning et JaDOrT#12 et #13 Versioning et JaDOrT
#12 et #13 Versioning et JaDOrTGuillaume Sauthier
 

Similaire à The supply chain is susceptible to market volatility, driven by changing consumer demand, trade wars, raw material shortages, climate change, stringent environmental regulations, economic uncertainties, policy changes, and industrial unrest. (20)

SdE 5 - Communication entre processus et Planification
SdE 5 - Communication entre processus et PlanificationSdE 5 - Communication entre processus et Planification
SdE 5 - Communication entre processus et Planification
 
Chap06 1
Chap06 1Chap06 1
Chap06 1
 
coursystemedexploitaionsghaieranouar-150103105816-conversion-gate01.pdf
coursystemedexploitaionsghaieranouar-150103105816-conversion-gate01.pdfcoursystemedexploitaionsghaieranouar-150103105816-conversion-gate01.pdf
coursystemedexploitaionsghaieranouar-150103105816-conversion-gate01.pdf
 
La gestion des processus
La gestion des processusLa gestion des processus
La gestion des processus
 
Cour systeme d'exploitation sghaier anouar
Cour systeme d'exploitation sghaier anouarCour systeme d'exploitation sghaier anouar
Cour systeme d'exploitation sghaier anouar
 
Fr linux job_scheduling
Fr linux job_schedulingFr linux job_scheduling
Fr linux job_scheduling
 
8.lesinterruptions
8.lesinterruptions8.lesinterruptions
8.lesinterruptions
 
SYSTèmes d'exploitation
SYSTèmes d'exploitationSYSTèmes d'exploitation
SYSTèmes d'exploitation
 
Scheduler & SLA
Scheduler & SLAScheduler & SLA
Scheduler & SLA
 
SdE 4 - Processus
SdE 4 - ProcessusSdE 4 - Processus
SdE 4 - Processus
 
ex6_solution.pdf
ex6_solution.pdfex6_solution.pdf
ex6_solution.pdf
 
Noyau temps réel freertos cheriet mohammed el amine
Noyau temps réel freertos cheriet mohammed el amineNoyau temps réel freertos cheriet mohammed el amine
Noyau temps réel freertos cheriet mohammed el amine
 
An52 g formation-analyse-de-performance-pour-aix-outils-avances
An52 g formation-analyse-de-performance-pour-aix-outils-avancesAn52 g formation-analyse-de-performance-pour-aix-outils-avances
An52 g formation-analyse-de-performance-pour-aix-outils-avances
 
Continuité de service informatique : comment ça fonctionne ?
Continuité de service informatique : comment ça fonctionne ?Continuité de service informatique : comment ça fonctionne ?
Continuité de service informatique : comment ça fonctionne ?
 
Système d’exploitation: Principe
Système d’exploitation: PrincipeSystème d’exploitation: Principe
Système d’exploitation: Principe
 
Systèmes d'Exploitation - chp2-gestion des processus
Systèmes d'Exploitation - chp2-gestion des processusSystèmes d'Exploitation - chp2-gestion des processus
Systèmes d'Exploitation - chp2-gestion des processus
 
SYSTEMES D EXPLOITATION
SYSTEMES D EXPLOITATIONSYSTEMES D EXPLOITATION
SYSTEMES D EXPLOITATION
 
Simulation d’un système à temps partagé
Simulation d’un système à temps partagéSimulation d’un système à temps partagé
Simulation d’un système à temps partagé
 
Chapitre iii interruptions
Chapitre iii interruptionsChapitre iii interruptions
Chapitre iii interruptions
 
#12 et #13 Versioning et JaDOrT
#12 et #13 Versioning et JaDOrT#12 et #13 Versioning et JaDOrT
#12 et #13 Versioning et JaDOrT
 

The supply chain is susceptible to market volatility, driven by changing consumer demand, trade wars, raw material shortages, climate change, stringent environmental regulations, economic uncertainties, policy changes, and industrial unrest.

  • 1. Algorithmes d’ordonnancement sans réquisition Algorithmes d’ordonnancement avec réquisition Partie 3 Ordonnancement des processus SEII
  • 2. Algorithmes d’ordonnancement sans réquisition Algorithmes d’ordonnancement avec réquisition Introduction Dans un système multitâche plusieurs processus sont en cours simultanément, mais le processeur ne peut, à un moment donné, exécuter qu’une instruction (d’un programme) à la fois. Le processeur travaille donc en temps partagé. L’ordonnanceur (scheduler) est le module du SE qui s’occupe de sélectionner le processus suivant à exécuter parmi ceux qui sont prêts. SEII
  • 3. Algorithmes d’ordonnancement sans réquisition Algorithmes d’ordonnancement avec réquisition Ordonnancement de processus Un processus passe entre les diverses files d’attente pendant sa durée de vie (file d’attente des processus prêts (attendant pour s’exécuter), fille d’attentes des périphériques, ....). Le SE doit sélectionner les processus à partir de ces files d’attente d’une manière quelconque. Le processus de sélection est mené à bien par le scheduleur approprié. Classification des processus Tributaire des E/S : dépense la plupart du temps à effectuer des E/S plutôt que des calculs Tributaire de la CPU : génère peut fréquemment des requêtes d’E/S, cad, passe plus de temps à effectuer des calculs SEII
  • 4. Algorithmes d’ordonnancement sans réquisition Algorithmes d’ordonnancement avec réquisition Ordonnancement de processus SEII
  • 5. Algorithmes d’ordonnancement sans réquisition Algorithmes d’ordonnancement avec réquisition Ordonnanceurs (schedulers) Programmes qui gèrent l’utilisation de ressources de l’ordinateur L’ordonnanceur ne fournit pas seulement un mécanisme, mais prend des décisions Trois types d’ordonnanceurs : à court terme à long terme à moyen terme SEII
  • 6. Algorithmes d’ordonnancement sans réquisition Algorithmes d’ordonnancement avec réquisition Ordonnanceurs (schedulers) Le scheduler à long terme (ou scheduler de travaux) Sélectionne le processus qui doit aller dans la fille de processus prêts. S’exécute moins fréquemment : peut être lent (seconds, minutes). Contrôle le degré de multiprogrammation (le nombre de processus dans la mémoire). Il est important que le scheduleur à long terme réalise un bon mélange de processus tributaires de la CPU et tributaires des E/S Le scheduler à court terme (ou scheduler de la CPU) Choisit parmi les processus prêts celui à être exécuté (alloue la CPU à lui). Appelé assez fréquemment : doit être Très rapide SEII
  • 7. Algorithmes d’ordonnancement sans réquisition Algorithmes d’ordonnancement avec réquisition Ordonnanceurs (schedulers) Le manque de ressources peut parfois forcer le SE à suspendre des processus ils seront plus en concurrence avec les autres pour des ressources ils seront repris plus tard quand les ressources deviendront disponibles Ces processus sont enlevés de mémoire centrale et mis en mémoire secondaire, pour être repris plus tard "swap out/swap in", va-et-vient SEII
  • 8. Algorithmes d’ordonnancement sans réquisition Algorithmes d’ordonnancement avec réquisition Ordonnanceurs (schedulers) SEII
  • 9. Algorithmes d’ordonnancement sans réquisition Algorithmes d’ordonnancement avec réquisition Ordonnanceurs (schedulers) Un bon ordonnanceur se doit : de maximiser l’utilisation du processeur, d’être équitable entre les différents processus, de présenter un temps de réponse acceptable d’avoir un bon rendement, d’assurer certaines priorités. Un bon algorithme d’ordonnancement doit donc être capable de : s’assurer que chaque processus reçoit sa part de temps processeur, utiliser le temps processeur à 100%, minimiser les temps de réponse pour les utilisateurs en mode intéractif, minimiser l’attente des utilisateurs qui travaillent en batch, maximiser le nombre de travaux effectués en une heure. SEII
  • 10. Algorithmes d’ordonnancement sans réquisition Algorithmes d’ordonnancement avec réquisition Algorithmes d’ordonnancement Les algorithmes d’ordonnancement peuvent être classés en deux catégories : 1 Non préemptif (sans réquisition) Sélectionne un processus, puis le laisse s’exécuter jusqu’à ce qu’il bloque (soit sur une E/S, soit en attente d’un autre processus) où 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 de l’horloge. inefficace et dangereux (ex : exécution d’une boucle sans fin. . . ) 2 Préemptif (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 à l’issue de ce délai, il est suspendu et le scheduleur sélectionne un autre processus à exécuter. SEII
  • 11. Algorithmes d’ordonnancement sans réquisition Algorithmes d’ordonnancement avec réquisition Algorithmes d’ordonnancement Critères utilisés : Utilisation de la CPU : maintenir la CPU aussi occupée que possible. Débit (ou rendement, Throughput) à maximiser : nombre de processus complétés pendant une période d’observation donnée. Temps de rotation ou temps d’exécution (Turnaround time) à minimiser : temps nécessaire pour l’exécution d’un processus = temps terminaison moins temps arrivée. Temps d’attente (waiting time ) à minimiser : quantité de temps qu’un processus passe à attendre dans la file d’attente des processus prêts. Temps de réponse (response time) à minimiser : utile pour les systèmes interactifs. Temps écoulé entre la soumission d’une requête et la première réponse obtenue. Equité : degré auquel tous les processus reçoivent une chance égale de s’exécuter. On essaie ainsi d’éviter la famine : c’est le cas où un processus n’obtient pas la ressource Remarque : En général, on tente d’optimiser les valeurs moyennes pour tous les processus mis en jeu pendant une période d’observation donnée, pour les temps d’attente, de rotation et de réponse. SEII
  • 12. Algorithmes d’ordonnancement sans réquisition Algorithmes d’ordonnancement avec réquisition Premier arrivé, premier servi (FCFS : First-come, first-served) Les processus sont traités dans leur ordre d’arrivée (PAPS) L’implantation de la politique FCFS est facilement gérée avec une file d’attente FIFO. Une fois que la CPU a été allouée à un processus, celui-ci garde la CPU jusqu’à ce qu’il la libère (fin ou E/S). FCFS est particulièrement incommode pour le temps partagé où il est important que chaque utilisateur obtienne la CPU à des intervalles réguliers. SEII
  • 13. Algorithmes d’ordonnancement sans réquisition Algorithmes d’ordonnancement avec réquisition Premier arrivé, premier servi (FCFS : First-come, first-served) SEII
  • 14. Algorithmes d’ordonnancement sans réquisition Algorithmes d’ordonnancement avec réquisition Premier arrivé, premier servi (FCFS : First-come, first-served) Intérêts : Algorithme facile à comprendre Faible complexité d’implémentation (une seule liste chaînée) Inconvénients : Pas de prise en compte de l’importance relative des processus Temps d’attente du processeur généralement important SEII
  • 15. Algorithmes d’ordonnancement sans réquisition Algorithmes d’ordonnancement avec réquisition Plus court temps d’exécution d’abord (PCTE) ou (SJF : Shortest Job First) Associe à chaque processus la longueur de son prochain cycle de CPU. Quand la CPU est disponible, elle est assignée au processus qui possède le prochain cycle le plus petit. Si deux processus possèdent la même longueur, le FCFS est utilisé. SJF est optimal : il obtient le temps moyen d’attente minimal pour un ensemble de processus donné. Difficulté : pouvoir connaître la longueur de la prochaine requête de la CPU Deux schémas : Non préemptif et préemptif. SEII
  • 16. Algorithmes d’ordonnancement sans réquisition Algorithmes d’ordonnancement avec réquisition Plus court temps d’exécution d’abord (PCTE) ou (SJF : Shortest Job First) SEII
  • 17. Algorithmes d’ordonnancement sans réquisition Algorithmes d’ordonnancement avec réquisition Plus court temps d’exécution d’abord (PCTE) ou (SJF : Shortest Job First) Intérêts : SJF réduit le temps d’attente des processus Utilisation limitée à des environnements et à des applications spécifiques Inconvénients : Pas de prise en compte de l’importance relative des processus Algorithme optimal uniquement dans le cas où tous les processus sont disponibles simultanément SEII
  • 18. Algorithmes d’ordonnancement sans réquisition Algorithmes d’ordonnancement avec réquisition Algorithmes d’ordonnancement avec réquisition Pour s’assurer qu’aucun processus ne s’exécute pendant trop de temps, les ordinateurs ont une horloge électronique qui 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 être suspendu pour laisser place à un autre S’il décide de suspendre l’exécution au profit d’un autre, il doit d’abord sauvegarder l’état des registres du processeur avant de charger dans les registres les données du processus à lancer (commutation de contexte) Cette sauvegarde est nécessaire pour pouvoir poursuivre ultérieurement l’exécution du processus suspendu SEII
  • 19. Algorithmes d’ordonnancement sans réquisition Algorithmes d’ordonnancement avec réquisition Algorithmes d’ordonnancement avec réquisition Le processeur passe donc d’un processus à un autre en exécutant chaque processus pendant quelques dizaines ou centaines de millisecondes. Le temps d’allocation du processeur au processus est appelé quantum (noté par : q) Cette commutation entre processus doit être rapide (temps nettement inférieur au quantum). Le processeur, à un instant donné, n’exécute réellement qu’un seul processus Pendant une seconde, le processeur peut exécuter plusieurs processus et donne ainsi l’impression de parallélisme SEII
  • 20. Algorithmes d’ordonnancement sans réquisition Algorithmes d’ordonnancement avec réquisition Plus court temps restant (Shortest Remaining Time SRT) C’est la version de PCTE avec réquisition 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. SEII
  • 21. Algorithmes d’ordonnancement sans réquisition Algorithmes d’ordonnancement avec réquisition Plus court temps restant (Shortest Remaining Time SRT) Intérêts : SRT minimise le temps d’attente moyen des processus les plus courts Utilisation limitée à des environnements et à des applications spécifiques Inconvénients : Pas de prise en compte de l’importance relative des processus Non équité de service : SRT pénalise les processus longs Possibilité de famine pour les processus longs SEII
  • 22. Algorithmes d’ordonnancement sans réquisition Algorithmes d’ordonnancement avec réquisition Ordonnancement circulaire (tourniquet=Round-Robin (RR)) Chaque processus possède un quantum d’exécution (en général de 10 à 100 ms) Si le processus a fini dans cet intervalle : au suivant ! S’il n’a pas fini : le processus passe en fin de liste et au suivant ! SEII
  • 23. Algorithmes d’ordonnancement sans réquisition Algorithmes d’ordonnancement avec réquisition Ordonnancement circulaire (tourniquet=Round-Robin (RR)) SEII
  • 24. Algorithmes d’ordonnancement sans réquisition Algorithmes d’ordonnancement avec réquisition Ordonnancement circulaire (tourniquet=Round-Robin (RR)) Intérêts : Equité de l’attribution du processeur entre toutes les tâches Mise en œuvre simple Inconvénients : Pas de prise en compte de l’importance relative des tâches Difficulté du choix de la tranche de temps Si q est trop grand, Round-Robin devient équivalent à FIFO Si q est trop petit, il y a augmentation du nombre de changements de contexte ! SEII
  • 25. Algorithmes d’ordonnancement sans réquisition Algorithmes d’ordonnancement avec réquisition Ordonnancement avec priorité Une priorité est associée à chaque processus. CPU est allouée au processus de plus haute priorité (priorité = 1 > priorité = 2) avec ou sans préemption il y a une file prêt pour chaque priorité Les processus ayant la même priorité sont schedulés dans un ordre FCFS. SJF : priorité déterminée par la durée du prochain cycle de CPU. SEII
  • 26. Algorithmes d’ordonnancement sans réquisition Algorithmes d’ordonnancement avec réquisition Ordonnancement avec priorité Exemple Problème : Famine (starvation) ou blocage indéfinie : processus avec des basses priorités peuvent attendre indéfiniment (ne jamais être exécutés). Solution : Vieillissement (aging) : modifier la priorité d’un processus en fonction de son âge et de son historique d’exécution le processus change de file d’attente SEII
  • 27. Algorithmes d’ordonnancement sans réquisition Algorithmes d’ordonnancement avec réquisition Files à plusieurs niveaux (multiples) La file prêt est séparée en plusieurs files travaux "d’arrière-plan" (background - batch) travaux "de premier plan" (foreground - interactive) Chaque file a son propre algorithme d ’ordonnancement FCFS pour arrière-plan tourniquet pour premier plan Comment ordonnancer entre files ? Priorité fixe à chaque file −→ famine possible ou Chaque file reçoit un certain pourcentage de temps UCT : 80% pour arrière-plan 20% pour premier plan SEII
  • 28. Algorithmes d’ordonnancement sans réquisition Algorithmes d’ordonnancement avec réquisition Files à plusieurs niveaux (multiples) SEII
  • 29. Algorithmes d’ordonnancement sans réquisition Algorithmes d’ordonnancement avec réquisition Files multiples et à retour Un processus peut passer d’une file à l ’autre, p.ex. quand il a passé trop de temps dans une file à déterminer : nombre de files algorithmes d’ordonnancement pour chaque file algorithmes pour décider quand un proc doit passer d’une file à l’autre algorithme pour déterminer, pour un proc qui devient prêt, sur quelle file il doit être mis SEII
  • 30. Algorithmes d’ordonnancement sans réquisition Algorithmes d’ordonnancement avec réquisition Files multiples et à retour SEII
  • 31. Algorithmes d’ordonnancement sans réquisition Algorithmes d’ordonnancement avec réquisition Exemple de files multiples à retour Trois files : Q0 : tourniquet, quantum 8 msecs Q1 : tourniquet, quantum 16 msecs Q2 : FCFS Ordonnancement : Un nouveau processus est inséré dans Q0 Processus de Q0 : S’il ne finit pas en 8ns, alors il est interrompu et placé en Q1 Si Q0 est vide, le processus en tête de Q1 prend la CPU. S’il ne termine pas en 16ns, il est interrompu et mis dans Q2 Processus de Q2 : exécutés avec FCFS (seulement quand Q0 et Q1 sont vides) SEII