Vous êtes sur la page 1sur 36

CHAPITRE II :

Les processus
1. INTRODUCTION

Les ordinateurs modernes ont la capacité d’exécuter plusieurs


programmes en l’espace d’une seconde, tout en disposant d’un
seul processeur  Pseudo-parallélisme
Parallélisme virtuel : Le logiciel de base (spécifiquement le SE)
de gestion d’une machine doit, principalement, :
Transformer une machine physique en une machine
confortable pour l’utilisateur (GUI, assistance, accès, …)
Gérer les ressources de la machine (processeur (s),
mémoires ,disques, horloges, terminaux, …)

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

La notion d’état d’un processus est indispensable pour


l’ordonnancement des processus.
Un processus en exécution change d’états
L’état d’un processus est défini en partie par l’activité courante de
ce processus (l’occupation du processeur)
Lors de son exécution, un processus peut passer par les principaux
états suivants:
Élu: un processus est actif en MC (en cours d’exécution)
Prêt: un processus est suspendu provisoirement en attente
d’exécution, pour permettre l’exécution d’un autre 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

Les transitions: Diagramme simplifié des états d’un processus


 Élu  Bloqué : un processus ne peut plus poursuivre son
exécution (attente de donnés, …), le processeur est retiré du
processus
 Élu  Prêt : le processeur est retiré du processus en cours
(exécuté pendant une durée suffisante)
7
 Prêt  Élu : le processeur est alloué à un autre processus
 Bloqué  Prêt : l’évènement extérieur attendu par un
processus se produit
 Le SE: détermine et modifie l’état d’un processus (sous
l’effet des évènements internes au processus: demande d’E/S,
ou externes provenant du SE: attribution des ressources)
 L’exécution d’un processus est une séquence alternée de
calculs CPU et d’attentes d’événements
 Les transitions 1 et 4: aucun choix n’est disponible
(changement d’état imposé),

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

L’ordonnanceur (Scheduler) doit faire face aux deux problèmes


(ordonnancement) :
Choix du processus à exécuter
Temps d’allocation du processeur au processus choisi
Il existe plusieurs méthodes pour choisir le processus qui va être
exécuté parmi la liste des processus prêts (plus vieux,, plus
prioritaire, …)

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

First Come First Served (FCFS, Premier arrivé premier servi):


La stratégie la plus simple
Lorsque l’UC est libre, elle est allouée au processus en tête de
la file d’attente
Le processus en exécution est supprimé de la file d’attente
Facile à implémenter: une gestion FIFO (First In First Out) de
la file d’attente
Ordre: celui de l’arrivée des processus dans la file des
processus prêts
Priorité: fonction du temps réel passé dans le système (p(r))

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:

Processus Temps du cycle


P1 24
P2 3
P3 3

Diagramme de Gantt: FCFS selon l’ordre P1, P2 et P3

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

Temps moyen d’attente: 3 ms

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

Exemple Processus Temps du cycle


P1 6
P2 8
P3 7
P4 3
Diagramme de Gantt: SJF

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

Processus Temps du cycle


P1 24
P2 3
P3 3

Diagramme de Gantt: RR

P1 P2 P3 P1 P1 P1 P1 P1
0 4 7 10 14 18 22 26 30

RR, temps moyen d’attente= ((10-4)+ (4-0)+(7-0))/3= 5,66


ms
Remarque: le temps de réponse maximal d’un processus est (n-
24
1)*Q
Ordonnancement avec priorité:
Dans la politique RR, tous les processus ont la même
importance
Dans des cas, il est indispensable de favoriser certaines
classes de processus par rapport aux autres (processus
interactif et en arrière plan )
L’ordonnancement à priorité attribue à chaque processus
une priorité
Les priorités des processus peuvent être imposées par
l’utilisateur ou calculées en fonction des divers paramètres
(processus ou système)

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.

 Problème de cette politique est la famine ou l’attente infinie


des processus
 Solution: incrémenter graduellement les priorités des
processus en attente (si plusieurs ont la même priorité,
imposer un quantum q)

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

Diagramme de Gantt: ordonnancement avec priorité

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,

Priorité haute Niveau 1


q1


… UC sortie
Te<=qi
Niveau n-1 qn-1
Priorité basse Niveau n
qn
‐ Te: temps d’exécution
‐ qi: quantum du niveau i
‐ Chaque processus de niveau i est placé dans la file de
niveau i+1 une fois son quantum qi est épuisé.
29
5. EXEMPLE DE SYSTÈMES D’EXPLOITATION

Linux: préemptif et à priorité


Trois politiques d’ordonnancement:
Deux pour l’ordonnancement en temps réel (contraintes
temporelles)
− Classe 1: processus FIFo temps réel,
− Classe 2: processus tourniquet temps réel
 accordés une très haute priorité, (mais sans leurs
garantir une réponse dans un temps spécifié).
30
La troisième politique: temps partagé
− Utilise un algorithme de temps partagé basé sur des
valeurs de priorité.
− Classe 3: les moins prioritaires (exécutés si aucun
processus Classe 1 et 2 n’est prêt)
Par défaut
− Unprocessus est associé à la politique de temps partagé
avec une priorité égale à 20
− Plus la valeur est élevée, plus la priorité est haute
− Les niveaux de priorités: 0 à 40
31
root peut associer un processus à une des classes
d’ordonnancement en temps réel
Modification de priorité (processus ou root): nice(val) val [-
20, 20] si val> 0 on diminue la priorité
Chaque processus de la deuxième et troisième classe a un
Quantum : valeur initiale = priorité
Le Quantum du processus en cours d’exécution diminue de 1
unité à chaque consommation de 10 ms de temps CPU

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

Vous aimerez peut-être aussi