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.
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.
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.
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)
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
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
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
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