Académique Documents
Professionnel Documents
Culture Documents
Ordonnancement
INTTIC
Cours Système Exploitation
Processus
Un Processus est une activité, crée et gérée par le système d’exploitation (SE),
dont le but est d’accompagner l’exécution d’un programme.
Cette activité possède plusieurs états, qui transite l’un vers l’autres à cause de
plusieurs événement (E/S, ressources disponible ou pas, fin programme...)
Pour simplifié, en considérera une architecture monoprocesseur (exemple:
Intel 8086).
Le processus dans les différent système:
Système batch:
1 seul processus occupe le CPU jusqu’à ce qu’il termine.
Implémentation simple, généralement aucun conflit sur les ressources.
Système Multiprogrammation:
Plusieurs processus occupe, a tour de rôle, le CPU jusqu’à ce qu’ils terminent l’un
après l’autre.
Nécessite des gestions de temps, d’états et de contexte de chaque processus, ainsi
que la gestion (partage) de ressources pour éviter tout genre de conflits et/ou
d’interblocage .
Processus
Le modèle de processus.
3
Processus
Le modèle de processus.
Processus de conception séquentiel donnant une
impression de parallélisme lors de l’exécution.
De point de vue conceptuelle, chaque processus possède
son propre CPU (Virtuelle).
Un compteur ordinale (virtuelle) existe pour chaque
processus. Un compteur ordinal (physique sur la machine).
Processus
Création de processus.
Créer un processus?
UNIX: fork –création d’un clone et execve –modifier l’image du processus
Windows: CreateProcess
Processus
Démons (daemon) ou en arrière-plan, exemples: courriers électroniques, pages web…
Premier-plan
Les voir?
Ctrl+alt+del sur Windows
ps sur UNIX
Système Multiprogrammation: basculement entre processus donnant
l’impression d’un parallélismes (pseudo parallélisme).
Nécessite une gestion d’accès des processus au CPU (l’ordonnancement).
Les ressources sont demandé par plusieurs processus donnant naissance à
plusieurs problèmes de partage et d’interblocage, qui doivent être résolus.
Communication inter Processus.
........................................
Chaque Fenêtre graphique est un processus, l’utilisateur en choisissant une
fenêtre il rentre en interaction avec le processus.
Fin d’un processus:
1. Arrêt normal (volontaire).
e
ad
interruption
rti
mi
so
s
activer
prêt - en
prêt
suspendu exécution
suspendre
te
r dispatch de l’ordonnanceur
terminaison d’E/S ou mi
d’ ain
en S
ou d’évènement év so
em E/
t
èn n
én d’
em d’E
év nte
en attente - en /S en attente
ou tte
t
a
suspendu
activer
suspendre
CPU saute à l’adresse trouvée dans Les registres CPU sont rechargés
le vecteur d’interruption avec ces infos dispatcher
Nous supposons que le premier processus dans une file est celui qui utilise la ressource: ici, proc7
exécute, proc3 utilise disque 0, etc.
Une façon plus synthétique de
décrire la même situation
prêt 7 2
bandmag0
bandmag1
disq0 3 14 6
term0 5
Les files contiennent les pointeurs sur PCB
et non les PCB eux mêmes
disk unit 0
Au départ
Au départ
Au départ
Processus dans le SE – Representation
Pour les utilisateurs (et les processus) un processus est identifié par
son Process ID (PID)
Dans le SE, les processus sont représentés par des entrées dans la
Table des Processus(Process Table (PT))
PID est un index dans l’entrés de la PT
Entré PT = Process Control Block (PCB)
PCB est une large structure de donné qui contient (ou pointe vers)
tous les informations concernant un processus
Linux – défini dans task_struct –plus de 70 champs
voir include/linux/sched.h
Windows XP – définie dans EPROCESS – a peu prêt 60 champs
Ordonnancement
28
Ordonnanceur & Algorithme
d’ordonnancement
1. Ordonnanceur (scheduler): partie du SE qui
sélectionne les processus.
2. Algo d’ordonnancement (scheduling algorithm)
1. Non-Préemptif: Le processus, quitte le CPU
uniquement s’il termine ou se bloque sur E/S.
2. Préemptif: Non-Préemptif ou qu’un processus plus
prioritaire se présente.
29
Ordonnanceur
Processus
Ordonnanceur
Conceptuellement, l’ordonnanceur est au niveau le plus bas du SE
Prend en charge les interruptions et l’ordonnancement
Les autres processus séquentiels sont au dessus
Ordonnancement & Ressources
Objectif multiprogrammation =
Utilisation optimale des ressources: CPU, périphériques..
Bon temps de réponse pour l’utilisateur
L`ordonnanceur décide, a travers un Algorithme, quel
processus doit occuper la ressource lorsqu’elle se libère.
Le CPU est une ressource.
Les périphériques sont aussi des ressources.
Les mêmes Algorithmes peuvent donc être appliqués pour l’
ordonnancement des processus sur les périphériques d’E/S.
31
Critères d’ordonnancement
Système Batch
Débit: nombre de processus exécutés par unité de temps
Rendement utilisation processeur
Temps de restitution / service : délai entre la soumission et
fin de tache.
Système Interactif
Temps de réponse : délai entre la soumission et début
d’execution .
Temps d’attente : temps passé en état prêt
Proportionnalité : aux attentes des utilisateurs
32
Critères d’ordonnancement
Système Temps-réel
Respect des dates limites : éviter la perte de données
Prédictibilité : stabilité des applications multimédia
33
Critères d’ordonnancement:
maximiser/minimiser
34
Politiques d’ordonnancement
Pour
Systèmes par lots
Ordonnancement FIFO/FCFS
Exemple: Processus Temps de cycle
P1 24
P2 3
P3 3
Si les processus arrivent au temps 0 dans l’ordre: P1 , P2 , P3
Le diagramme de Gantt est le suivant:
P1 P2 P3
0 24 27 30
P1 P2 P3
0 24 27 30
Ordonnancement FIFO/FCFS
Si les mêmes processus arrivent à 0 mais dans l’ordre
PP22 , P3 , P
P31 P1
0 3 6 30
P1 P2 P3
0 24 27 30
Ordonnancement FIFO/FCFS
Principe
Algorithme sans réquisition (préemption).
File d’attente FIFO pour les processus prêts
Facile à comprendre et à programmer
Intrinsèquement équitable pour des processus équivalents
Inconvénients
Grande variance des critères d’ordonnancement
Effet d’accumulation
=) Mauvais algorithme pour les systèmes interactif , temps-partagé et
temps réel. OK pour les systèmes de batch.
Ordonnancement SJF - Shortest Job First
Le processus qui demande moins de CPU est sélectionner en premier
Optimal en principe du point de vue du temps d’attente moyen
(v. le dernier exemple)
P2 P3 P1
0 3 6 30
SJF (avec ou sans préemption )
Arrivé d’un nouveau processus:
• SJF Sans préemption: on permet au processus
courant de terminer son cycle
0 7 8 12 16
P1 P2 P3 P2 P4 P1
0 2 4 5 7 11 16
P2 arr.
P3 arr. P4 arr
• Temps moyen d`attente = (9 + 1 + 0 +2)/4 = 3
P1 attend de 2 à 11, P2 de 4 à 5, P4 de 5 à 7
44
• Temps de rotation moyen = 16+ (7-2) + (5-4) + (11-5) = 7
Ordonnancement SJF
Principe
Algorithme sans préemption
Le prochain cycle le plus court est sélectionné
En cas d’égalité, on revient au FCFS
Version avec préemption : « temps restant le plus court » (SRTF)
Avantage
Temps moyen d’attente minimal
Inconvénient
Difficulté de calculer la longueur des cycles (Approximation possible par moyenne
exponentiel): τn+1 = ατn + (1−α)τn−1
Risque d’obtention d’une « Situation de famine »
47
Exemple: RR, Quantum = 20 ms
Processus Cycle
P1 53
P2 17
P3 68
P4 24
P1 P2 P3 P4 P1 P3 P4 P1 P3 P3
49
Le temps de séjour (turnaround) varie
avec la tranche
= FIFO
Exemple qui montre que le temps de séjour moyen ne s’améliore pas nécessairement en
augmentant la tranche (sans considérer les temps de commutation contexte)
50
Ordonnancement par Priorités
51
Ordonnancement par Priorités
Principe
Généralisation du SJF.
Algorithme avec ou sans réquisition
Priorités internes (consommation de ressources etc.)
Priorités externes (fixées par l’utilisateur)
Inconvénient
Risque de situation de « famine »
Solution : technique du « vieillissement » (augmentation
progressive de la priorité des processus en attente)
52
Ordonnancement avec files multiples
Chaque file
possède son
propre algorithm
d‘odonnancement.
Les processus
interactive – RR,
80% temps CPU
Processus
Arrière plan
(batch) –
FCFS, 20%
temps CPU
Un proc peut être servi seulement si toutes les files de priorités plus hautes sont vides
53
Ordonnancement avec files multiples
Principe
Découpage de la file d’attente des processus prêts en plusieurs
files (processus système, interactifs, arrière-plan etc.)
Ordonnancement spécifique au sein de chaque file (RR, FCFS).
Ordonnancement des files entre elles (priorités fixes, allocation
de tranches de temps etc.)
Ordonnancement file multiples avec feedback (recyclage)
Possibilité de déplacer les processus d’une file d’attente à
l’autre
implémentation du vieillissement
dégradation des priorités (ex. cycles longs)
54
Ordonnancement par loterie
Principe
Distribution de tickets
Tirage du gagnant à intervalle fixe
Avantages
Implémentation légère d’un mécanisme de « promesse » (les
processus importants peuvent obtenir plusieurs tickets)
Efficace pour des processus coopératifs (transmission de tickets)
55
Ordonnancement équitable
Principe
Partager le temps processeur équitablement entre les
utilisateurs.
Exemple
User1: A,B,C,D
User2:E
Ordonnancement équitable =
A,E,B,E,C,E,D,E,A,E,B,E,C,E,D,E,.....
56
Politiques d’ordonnancement
Pour
Systèmes Temps-réels
Catégories d’événements temps réel
Types d’événements
Périodiques : distribution vidéo, chaîne industrielle etc.
Apériodiques : monitoring hospitalier, contrôleur de bord etc.
Cas particulier
Systèmes « ordonnançables » : Soient N événements
périodiques de période Pi, nécessitant Ci temps CPU pour
s’exécuter. Le système est dit ordonnançable si et seulement
si :
Catégories d’ordonnanceurs temps
réel
Types d’ordonnanceurs
Temps réel rigide : « réservation de ressource ».
L’ordonnanceur doit connaître exactement les échéances de chaque
processus, et les ressources nécessaires.
Temps réel souples : fournir des priorités hautes et non dégradables,
minimiser la latence de dispatching.