Chapitre 3 - Gestion Des Processus
Chapitre 3 - Gestion Des Processus
Chapitre 3 - Gestion Des Processus
I- Introduction
Dans un système multitâche, la ressource la plus importante d’une machine est le processeur. Cette
ressource est allouée à un et un processus sélectionné parmi un ensemble des processus éligibles. Par
conséquent, il convient à bien gérer ce dernier afin de le rendre plus productif. En effet, un système
d’exploitation dispose d’un module qui s’occupe de l’allocation du processeur en l’occurrence le
Dispatcheur. Ce module est exécuté chaque fois qu’un processus se termine ou se bloque dans le but de
réquisitionner le processeur pour un autre processus. En plus de ce Dispatcheur, un système
d’exploitation dispose d’un autre module permettant ainsi la mise en ordre des processus qui demandent
le processeur.
II- Notion de processus
Un processus est une entité dynamique qui matérialise un programme en cours d'exécution avec ses
propres ressources physiques (mémoire, processeur, entrée/sortie, …) et logiques (données, variables,
…). Contrairement à un programme (texte exécutable) qui a une existence statique.
Le système d’exploitation manipule deux types de processus :
- Processus système : processus lancé par le système (init processus père des tous les
processus du système)
- Processus utilisateur : processus lancée par l’utilisateur (commande utilisateur)
Dès sa création, un processus reçoit les paramètres suivants :
PID : identificateur du processus (numéro unique)
PPID : identificateur du processus père
UID : identificateur de l’utilisateur qui a lancé le processus
GID : identificateur du groupe de l’utilisateur qui a lancé le processus
1
III- Etats d’un processus
Dans les systèmes mono programmés, un programme ne quitte pas l’unité centrale avant de terminer
son exécution. Pendant cette période, il dispose de toutes les ressources de la machine. Par contre, ce
n’est pas le cas dans les systèmes multiprogrammés et temps-partagé, un processus peut se trouver dans
l’un des états suivants :
1‐ Elu : (en cours d’exécution) : si le processus est en cours d'exécution
2- Bloqué : attente qu’un événement se produit ou bien ressource pour pouvoir continuer
3- Prêt : si le processus dispose de toutes les ressources nécessaires à son exécution à l'exception
du processeur.
Fin d’exécution
ELU
3 1
2
BLOQUE PRET
Destruction 4 Création
2
Sémantique des Transitions
(1) : Allocation du processeur au processus sélectionné
(2) : Réquisition du processeur après expiration de la tranche du temps par exemple
(3) : Blocage du processus élu dans l’attente d’un événement (E/S ou autres)
(4) : Réveil du processus bloqué après disponibilité de l’événement bloquant (Fin E/S, etc…)
Notons que nous avons omis les états Création et Terminaison de processus puisqu’ils
n’interviennent pas dans cette étude.
3
processus qui sont restés assez longtemps et les remplace par des processus qui sont sur le
disque depuis trop de temps.
Nous distinguons plusieurs algorithmes d’ordonnancement, les plus répandus sont :
Ordonnancement Premier Arrivé Premier Servi
Ordonnancement du plus court d’abord
Ordonnancement circulaire : Tourniquet
Ordonnancement circulaire à plusieurs niveaux
Ordonnancement avec priorité
3- Algorithmes d’ordonnancement
L'ordonnancement est la partie du système d'exploitation qui détermine dans quel ordre les
processus prêts à s'exécuter (présents dans la file des prêts) seront élus.
Ses objectifs sont :
- Assurer le plein usage du CPU (agir en sorte qu’il soit le moins souvent possible inactifs);
- Réduire le temps d'attente des utilisateurs.
- Assurer l'équité entre les utilisateurs.
Un algorithme d’ordonnancement permet d’optimiser une des grandeurs temporelles
suivantes :
- Le temps de réponse moyen décrit la moyenne des dates de fin d’exécution :
n
- Le temps d’attente moyen est la moyenne des délais d’attente pour commencer une
exécution :
n
TAM= TAi n
, avec TAi =TRi - temps d’exécution
i1
Les algorithmes d’ordonnancement se distinguent les uns des autres du fait que certains
autorisent la réquisition de l’unité centrale alors que d’autres l’interdisent. La réquisition est la
possibilité de retirer à n’importe quel instant le processeur à un processus même si ce dernier
est en cours d’exécution.
Remarque :
Pour représenter schématiquement l’évolution dans le temps des processus, on recourt
habituellement à des diagrammes de Gantt.
a- Ordonnancement FCFS (first come first Served)
Dans cet algorithme ; connu sous le nom FIFO (First In, First Out) ; les processus sont rangés
dans la file d’attente des processus prêts selon leur ordre d’arriver. Les règles régissant cet
ordonnancement sont :
2. Quand un processus est prêt à s’exécuter, il est mis en queue de la file d’attente des
processus prêts.
3. Quand le processeur devient libre, il est alloué au processus se trouvant en tête de file
d’attente des processus prêts.
4. Le processus élu relâche le processeur s’il se termine ou s’il demande une entrée sortie
4
Caractéristiques de l’Ordonnanceur
Ordonnanceur sans réquisition
Ordonnanceur non adapté à un système temps partagé car dans un système pareil,
chaque utilisateur obtienne le processeur à des intervalles réguliers.
Exemple d’algorithme FCFS :
TRM
TAM
5
Implémentation difficile, car il n’existe aucune manière pour connaître le cycle
suivant du processeur.
Exemple d’algorithme SJF :
TRM
TAM
6
Quantum = 1 Quantum = 10 Diagramme de Gantt (quantum = 10) :
TRM
TAM
d- Ordonnacement SRTF (Shortest Remaining Time first) (plus court temps d’exécution
restant PCTER)
SRTF choisit le processus dont le temps d’exécution restant est le plus court. C’est une
variante de l’algorithme SJF
Cet algorithme est non implantable parce qu’il suppose, entre autres, connu le temps
d’exécution réel de chaque processus pour pouvoir calculer le temps restant
Exemple SRTF :
Diagramme de Gantt :
processus Durée Estimé Date Arrivée
P1 8 0
P2 5 2
P3 5 3
P4 2 4
TRM
TAM
7
éligibles (par exemple à chaque 15 mn on incrémente d’une unité la priorité des
processus prêts)
Exemple d’algorithme de PRIO :
Diagramme de Gantt :
processus Durée Estimé Priorité
P1 5 1
P2 8 5
P3 4 3
TRM
TAM