Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
Les processus
1. INTRODUCTION
2
Dans ce chapitre: la gestion d’allocation du processeur au
programmes en exécution (politique d’accès au processeur)
processus
C’est l’unité de travail dans les machines modernes à temps
partagé (possédant des tâches ou des programmes des
utilisateurs)
Le concept de processus est fondamental dans les systèmes
d’exploitation
Définition: un processus est un programme en cours d’exécution
Un processus est une entité active caractérisée par
Une image binaire (fichier exécutable peut être chargé en
mémoire )
3
Un contexte d’exécution: code (pile du programme) et valeurs de
registres du processeur et du cache
Un espace mémoire: les données du programme (variables
globales ou locales, constantes)
Un ensemble de ressources: fichiers, ressources matériels, …
Autres informations
Chaque processus est caractérisé par un PCB (Process Control
Block): une fiche détenue par le SE sur laquelle sont signalées les
informations du processus
Le PCB accomplit la virtualisation des ressources (vis-à-vis aux
processus)
Permet la gestion des ressources du système d’une manière
virtuelle (Mémoire, registres, matériel et fichiers) : chaque
processus dispose d’une machine complète
4
2. LES ÉTATS D’UN PROCESSUS
5
Prêt: un processus est suspendu provisoirement en attente
d’exécution, pour permettre l’exécution d’un autre processus
Bloqué: un processus attend un évènement extérieur pour
pouvoir continuer, il est bloqué sur une ressource (exemple:
lecture sur disque) (en attente)
A un instant donné,
Un seul processus peut être élu pour chaque processeur
Un ou plusieurs processus peuvent être prêts ou bloqués
Diagramme simplifié des états d’un processus avec quatre
transitions
6
Élu
Bloqué Prêt
8
Les transitions 2 et 3 : existe un choix (2: quelle est la durée
d’exécution; 3: quel est le processus qui doit être sélectionné
pour l’exécution) ces deux transitions sont provoquées par
l’ordonnanceur
9
3. L’ORDONNANCEMENT DES PROCESSUS
Problèmes:
Plusieurs processus sont gérés par le SE (dans une ou
plusieurs files d’attente)
Efficacité maximale d’un ordinateur: le nombre de
processeurs disposé est égal au nombre de processus
exécutés
La plus part des machine: un seul processeur
SE doit décider:
10
– Quel est le nombre maximal de processus dans la
mémoire: degré de la multiprogrammation
(ordonnanceur de haut niveau)
– Dansquelle file d’attente seront déplacés les processus
(ordonnanceur du niveau intermédiaire)
–À quel processus est alloué le processeur (ordonnanceur
(dispatcheur qui doit résider en MC) de bas niveau)
Remarque: la majorité des SE actuels, le premier et le
deuxième niveau sont combinés (ordonnancement de haut
niveau)
11
Parmi les objectifs:
Maximiser le nombre de processus exécutés par unité de
temps
Minimiser le temps d’attente d’exécution de chaque processus
Maximiser les temps d’utilisation des processeurs et autres
ressources
Éviter le problème de famine (attente infinie).
Favoriser les processus les plus prioritaires.
Minimiser le nombre et la durée des changements de contexte.
Difficile de satisfaire tous les objectifs à la fois
Satisfaire les objectifs selon un ordre de priorité
12
Critères de performance:
Taux d’utilisation de l’unité centrale (temps utilisation de
CPU/temps écoulé)
Capacité de traitement : nombre de processus traités par
unité de temps.
Temps de restitution ou de séjour d’un processus : temps
entre l’admission ou la soumission du processus et sa sortie
ou terminaison.
Temps d’attente d’un processus : somme des périodes que le
processus passe à l’état prêt (dans la file d’attente des
processus prêts)
Temps de réponse: temps qui s’écoule entre l’entrée d’un
processus et le moment où il commence à être traité
13
Politiques:
Choix de processus
– Plus vieux
– Plus avancé dans son traitement, qui a consommé le moins
du temps CPU, plus prioritaire, …
Allocation du processeur au processus sélectionné:
– Mode non préemptif: un processus en exécution continue
jusqu’à ce qu’il se termine ou se bloque (non adéquat aux
systèmes temps réel et temps partagé)
14
– Mode préemptif: un processus en exécution peut être
interrompu par diverses causes (un nouveau processus plus
prioritaire arrive, un temps q s’est écoulé, la priorité d’un
processus prêt est plus grande que celle du processus actif )
Appel de l’ordonnanceur: quand
– Un processus: se termine, se bloque ou cède l’UC
– Le temps alloué a expiré
– Un processus plus prioritaire arrive
15
4. PRINCIPAUX ALGORITHMES
16
Mode de décision: non préemptif (sans réquisition)
Règle d’arbitrage: choix au hasard, le plus court (pour les
processus qui arrivent au même temps)
Exemple:
P1 P2 P3
0 24 27 30
17
Temps d’attente: nombre de périodes passées dans la file
d’attente des processus prêts
Processus Temps d’attente
P1 0
P2 24
P3 27
Temps moyen 17
Changement d’ordre: P2, P3 et P1
P2 P3 P1
0 3 6 30
18
Temps moyen est élevé si des longs processus sont exécutés
en premier les jobs courts sont pénalisés
Cette stratégie n’est pas adéquate pour les systèmes en temps
partagé (chaque utilisateur détient l’UC à des intervalles
réguliers)
Short Job First (SJF, Job le plus court d’abord):
Cette stratégie: le temps total du service est connu à l’avance
Le processus le plus court prend l’UC en premier: optimal en
terme de temps d’attente
Mode de décision: non préemptif (aucun processus plus
prioritaire n’est reçu dans la file d’attente) ou préemptif
Règle d’arbitrage: chronologie ou choix au hasard (file
d’attente n’est plus ordonnée de façon chronologique)
19
Minimum du temps d’attente (prouvée)
Difficile à implémenter
P4 P1 P3 P2
0 3 9 16 24
Temps moyen d’attente: 7 ms
SJF non préemptif et tous les processus dans la file d’attente
Exemple: SJF préemptif (avec interruption)
20
Processus Temps du cycle Temps d’arrivée
P1 8 0
P2 4 1
P3 9 2
P4 5 3
Diagramme de Gantt: SJF préemptif
P1 P2 P4 P1 P3
0 1 5 10 17 26
Préemptif: Temps moyen d’attente= ((10-1)+0+(17-2)+(5-
3))/4= 6,5 ms
Non préemptif: Temps moyen d’attente= (0+(8-1)+(17-
2)+(12-3))= 7,75 ms
SJF préemptif: appelé temps restant le plus court (Shortest
remaining time first)
21
Round Robin (RR, tourniquet):
Un quantum du temps Q est imposé
Lorsque un processus actif épuise son quantum Q: il lâche
le processeur ensuite il est placé en queue d’une liste
Les nouveaux processus sont placés à la fin de la liste
La file d’attente est vue comme une queue circulaire (FIFO
circulaire)
Règle d’arbitrage: cyclique,
Tous les processus ont la même priorité: deux cas,
− Le processus actif lâche l’UC avant le fin de sa tranche
de temps (E/S) (sans attente l’UC est attribuée au
processus suivant)
22
− Le processus actif est préempté
le processus est placé à la fin de la file (priorité
proportionnelle à l’emplacement dans la file)
Performance du RR
− Si le quantum est trop grand, RR devient FCFS
− Si le quantum est très petit, RR est appelé
partage du processeur (si n processus résident dans
la file, la vitesse du processeur est ralentie de 1/n,
selon l’utilisateur)
23
Exemple : un quantum de 4 ms
Diagramme de Gantt: RR
P1 P2 P3 P1 P1 P1 P1 P1
0 4 7 10 14 18 22 26 30
25
L’ordonnancement avec priorité est basé sur les étapes
suivantes:
− Comparer régulièrement la priorité du processus actif
avec celles des processus éligibles,
− Si un parmi les processus prêts est plus prioritaire: 1)
préempter le processus actif et 2) exécuter le plus
prioritaire.
26
Remarque: dans les exemples, on considère que la priorité
est inversement proportionnelle aux nombres attribués (0
désigne la plus haute priorité)
Exemple:
Processus Temps du cycle Priorité
P1 10 3
P2 1 1
P3 2 3
P4 1 4
P5 5 2
P2 P5 P1 P3 P4
0 1 6 16 18 19 27
Temps moyen d’attente= ((6-0)+0+(16-0)+(18-0)+(1-0))/5=
8,2 ms
Remarque: l’ordonnancement avec priorité peut être avec ou sans
réquisition
Exemple: si à l’instant t= 7 ms, le processus P6 arrive
Processus Temps du cycle Priorité
P6 4 0
Diagramme de Gantt: ordonnancement à priorité et avec
réquisition
P2 P5 P1 P6 P1 P3 P4
0 1 6 7 11 20 22 23
28
Remarque: dans les politiques avec préemption (RR et avec
priorité), la stratégie avec files d’attente multiples peut être
utilisée,
32
Les quanta sont réajustés lorsque tous les processus sont
bloqués ou leurs quanta sont nuls : Quantum = Quantum / 2
+ priorité
Lorsque l’ordonnanceur prend le contrôle, il attribue une
note à chaque processus :
− Note = 1000 + priorité si le processus appartient aux
classes temps réel
− Note = Quantum >0 ? Quantum + priorité : 0 sinon
Le processus élu est celui qui a la note la plus élevée
Le temps d’allocation du processeur est au plus égal à 10
fois son Quantum.
33
Windows : préemptif et à priorité
Ne dispose pas d’un module autonome pour
l’ordonnancement (dispersé entre plusieurs composants du
SE)
Ordonnancement avec files d’attente multiples
– Chacune est associée à une classe de priorité (classement
de processus)
– Chacune est gérée selon la politique RR
32 niveaux de priorité: variés dynamiquement
4 classes de processus (légers)
– Les processus temps réel : priorité entre 16 et 31, ne
change jamais.
34
– Les processus utilisateur :
– priorité entre 1 et 15,
– varie durant la vie du processus (reste entre 1 et 15)
– Le processus peut changer de file selon l’évolution de
sa priorité.
– Le processus zéro (priorité 0) : exécuté, en arrière plan, si
toutes les files de priorité supérieure sont vides
– Le processus idle : exécuté si toutes les files sont vides.
Windows défini plusieurs classes de processus
Dans chaque classe de processus, il y a plusieurs classes de
priorité (processus systèmes ne change pas de classe, mais
c’est le cas pour les processus utilisateurs)
35
36