Académique Documents
Professionnel Documents
Culture Documents
Abdelouahed Gherbi
Hiver 2014
• Dans ce cours
– Introduction des concepts de base de l’ordonnancement de la CPU
– Présentation de quelques algorithmes d’ordonnancement
• Ce patron se répète
– à chaque fois qu’un processus doit attendre, un autre processus prend la CPU
• Sinon :
– Ordonnancement préemptif (avec réquisition)
• Le dispatcheur doit être très rapide car il est invoqué dans chaque
commutation de contexte
• Utilisation de la CPU
– On désire occuper la CPU le plus possible
– Conceptuellement : 0 à 100% mais pratiquement 40% - 90%
• Débit (throughput)
– Nombre de processus complétés par unité de temps
– Processus long : 1 processus / heure – transaction courtes : 10 processus /sec
• Temps d’attente
– L’algorithme d’ordonnancement n’affecte pas le temps durant lequel le processus s’exécute ou attend une E/S
– Il affecte le temps durant lequel le processus attend dans la file des processus prêt
– Temps d’attente : la somme des périodes passées en attente dans la file des processus prêts
• Temps de réponse
– Dans un système interactif, le temps de rotation n’est pas nécessairement le meilleur critère
– Un processus peut rapidement produire des sorties et continuer à calculer d’autres résultats pendant que les
premières sorties sont données à l’utilisateur
– Temps de réponse :
• temps entre la soumission d’une requête et le production de la première réponse
• Temps nécessaire pour commencer à répondre et non le temps pour sortir cette réponse
• Quand un processus entre dans la file des processus prêt, sont PCB est
chainé à la fin de la file
• Temps d’attente P1 = 6; P2 = 0; P3 = 3
• Temps d’attente moyen sous FCFS n’est pas minimal et peut varier substantiellement si le temps des cycles CPU
varient d’une manière importante.
• Est-ce que FCFS est adéquat pour les système à temps partagé (time sharing)?
• Exercice : Par comparaison avec un SJF non préemptif on obtient un temps d’attente = ?
LOG 710 Hiver2014 23
Travail le plus court d’abord (SJF)
• On considère l’ensemble de processus suivant :
Processus Temps d’arrivée Cycle CPU
P1 0 8
P2 1 4
P3 2 9
P4 3 5
• Par comparaison avec un SJF non préemptif on obtient un temps d’attente = 7.75
LOG 710 Hiver2014 24
Exercice 01
• Solution ?
LOG 710 Hiver2014 29
Ordonnancement avec priorité
• L’ordonnancement avec priorité peut être préemptif ou non préemptif
• Solution :
– Vieillissement (aging)
– Technique qui consiste à incrémenter graduellement la priorité des processus qui attendent
dans le système depuis une longue période.
• Similaire à FCFS mais avec réquisition de la CPU afin de passer d’un processus à un autre
• La file des processus prêt est gérée comme une file circulaire
• Implémentation de RR:
– La file des processus prêt est une FIFO circulaire
– Nouveau processus sont ajoutés à la fin de la file
– Ordonnanceur RR prend le premier processus dans la file, initialise un timer pour générer une
interruption après un quantum de temps et lance le processus
– Premier cas :
• le processus a un cycle CPU inférieure au quantum : il va libérer lui-même la CPU et RR passe au processus suivant dans la
file des processus prêt
– Deuxième cas :
• Le cycle CPU du processus est plus long que le quantum: le timer va générer une interruption; en traitant cette interruption,
l’OS va mette le processus en fin de la file et RR sélectionne le prochain processus
• Exemple
• Le quantum de temps doit être plus grand que le temps nécessaire à une commutation de
contexte mais pas trop grand pour ne pas devenir un FCFS
LOG 710 Hiver2014 33
Exercice 02
• Principe :
– Séparer les processus selon les caractéristiques de leur cycles CPU
– Si un processus utilise trop le temps de CPU, il est déplacé vers une file de
priorité plus basse
• Résultat : Les processus tributaire d’E/S et interactifs demeurent dans les files de plus
haute priorité
– Un processus qui attend trop longtemps dans une file de priorité basse peut
être déplacé vers une file plus haute priorité
• Cette forme de vieillissement permet de combattre la famine (starvation)
LOG 710 Hiver2014 37
Ordonnancement utilisant des files multi-niveaux avec retour
• Exemple : Ordonnancement utilisant trois (03) files multi-niveaux avec retour
• Les processus de la file 2 sont exécutés selon FCFS seulement quand la file 0
et 1 sont vides.
– Nombre de files