Chapitre 3 - Gestion Des Processus

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 8

Chapitre III

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

- Il existe des appels système permettant de créer un processus, charger


N1 P1 Processus père son contexte et lancer son exécution (fork, exec sous Unix).
- Un processus peut (père) créer d’autres processus (fils) qui hérite les
descripteurs de son père. Ce dernier à son tour crée d’autres
N2 P2 P3 processus. Un processus a un seul père mais peut avoir plusieurs fils
- Les processus peuvent se terminer ou ils peuvent être éliminés par
d’autres processus (la primitive kill). A la destruction d’un processus,
N3
P4 P5 P6 on libère toutes les ressources qu’il avait.
- Dans certains cas, la destruction d’un processus entraîne
l’élimination de ces descendants ; cette opération n’affecte pas les
P7 processus qui peuvent continuer indépendamment de leur père
(processus orphelins).

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.

IV- Ordonnancement des processus


Chaque fois, que le processeur devient inactif, le système d’exploitation doit sélectionner un processus
de la file d’attente des processus prêts, et lui passe le contrôle. D’une manière plus concrète, cette tâche
est prise en charge par deux routines système en l’occurrence le Dispatcheur et le Scheduleur
(Ordonnanceur).
1- Le Dispatcheur
Il s’occupe de l’allocation du processeur à un processus sélectionné par l’Ordonnanceur du
processeur. Une fois allouer, le processeur doit réaliser les tâches suivantes :
 Commutation de contexte : sauvegarder le contexte du processus qui doit relâcher le
processeur et charger le contexte de celui qui aura le prochain cycle processeur
 Commutation du mode d’exécution : basculer du mode Maître (mode d’exécution du
dispatcheur) en mode utilisateur (mode d’exécution du processeur utilisateur)
 Branchement : se brancher au bon emplacement dans le processus utilisateur pour le
faire démarrer.
2- L’Ordonnanceur
Certains systèmes d’exploitation utilisent une technique d’ordonnancement à deux niveaux qui
intègre deux types d’Ordonnanceurs :
Ordonnanceur du processeur : c’est un Ordonnanceur court terme opère sur une ensemble du
processus présents en mémoire. Il s’occupe de la sélection du processus qui aura le prochain
cycle processeur, à partir de la file d’attente des processus prêts.
Ordonnanceur de travail : ou Ordonnanceur long terme, utilisé en cas d’insuffisance de
mémoire, son rôle est de sélectionné le sous ensemble de processus stockés sur un disque et qui
vont être chargés en mémoire. En suite, il retire périodiquement de la mémoire les

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

TRM= TRi n , avec TRi=date fin –date arrivée.


i1

- 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
i1

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 :

processus Durée Estimé Date Arrivée Diagramme de Gantt :


P1 8 0
P2 4 1
P3 5 2
P4 9 3

TRM

TAM

b- Ordonnancement SJF (Shortest Job First) (Plus Cours temps d'Exécution en


Premier)
SJF choisit de façon prioritaire les processus ayant le plus court temps d’exécution sans
réellement tenir compte de leur date d’arrivée.
Dans cet algorithme les différents processus sont rangés dans la file d'attente des processus prêts
selon un ordre croissant de leur temps d'exécution (cycle de calcul). Les règles régissant cet
ordonnancement sont :
1. Quand un processus est prêt à s’exécuter, il est inséré dans la file d’attente des processus
prêts à sa position approprie.
2. Quand le processeur devient libre, il est assigné au processus se trouvant en tête de la
file d’attente des processus prêts (ce processus possède le plus petit cycle processeur.).
Si deux processus ont la même longueur de cycle, on applique dans ce cas l’algorithme
FCFS.
3. Si le système ne met pas en oeuvre la réquisition, le processus élu relâche le processeur
s’il se termine ou s’il demande une entrée sortie. Dans le cas contraire, le processus élu
perd le processeur également. Quand un processus ayant un cycle d’exécution inférieur
au temps processeur restant du processus élu, vient d’entrer dans la file d’attente des
prêts. Le processus élu dans ce cas sera mis dans la file d’attente des éligibles, et le
processeur est alloué au processus qui vient d’entrer.
 Caractéristiques de l’Ordonnanceur
 Cet Ordonnanceur peut être avec ou sans réquisition

5
 Implémentation difficile, car il n’existe aucune manière pour connaître le cycle
suivant du processeur.
 Exemple d’algorithme SJF :

processus Durée Estimé Date Arrivée Diagramme de Gantt (à t = 5) :


P1 10 0
P2 05 2
P3 15 3
P4 03 4

TRM

TAM

c- Ordonnancement RR (round robin)


Dans cet algorithme les processus sont rangés dans une file d'attente des éligibles, le processeur
est alloué successivement aux différents processus pour une tranche de temps fixe Q appelé
Quantum.
Cet Ordonnancement est régit par les règles suivantes :
1. Un processus qui rentre dans l’état éligible est mis en queue de la file d'attente des prêts.
2. Si un processus élu se termine ou se bloque avant de consommer son quantum de temps,
le processeur est immédiatement alloué au prochain processus se trouvant en tête de la
file d'attente des prêts.
3. Si le processus élu continue de s'exécuter au bout de son quantum, dans ce cas le
processus sera interrompu et mis en queue de la file d'attente des prêts et le processeur
est réquisitionné pour être réalloué au prochain processus en tête de cette même file
d’attente.
 Caractéristiques de l’Ordonnanceur
 Avec réquisition
 Adapté aux systèmes temps partagé.
 La stratégie du tourniquet garantit que tous processus est servis au bout d’un temps fini.
Son avantage est d’éviter la famine. On dit qu'un processus est en famine lorsqu'il est
prêt à être exécuté et se voit refuser l'accès à une ressource (ici le processeur) pendant
un temps indéterminé
 L’efficacité de cet ordonnanceur dépend principalement de la valeur du quantum Q:
o Le choix d'un Q assez petit augmente le nombre de commutation.
o Le choix d'un Q assez grand augmente le temps de réponse du système
 Exemple d’algorithme RR : Diagramme de Gantt (quantum = 1) :
processus Durée Estimé Date Arrivée
P1 30 0
P2 05 1
P3 02 2

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

e- Ordonnancement basé sur les priorités


Dans cet algorithme, les processus sont rangés dans la file d’attente des processus prêt par
ordre décroissant de priorité. L’ordonnancement dans ce cas est régit par les règles suivantes :
1. Quand un processus est admis par le système, il est inséré dans la file d’attente des
processus prêts à sa position approprie (dépend de la valeur de priorité).
2. Quand le processeur devient libre, il est alloué au processus se trouvant en tête de file
d’attente des processus prêts (le plus prioritaire).
3. Un processus élu relâche le processeur s’il se termine ou se bloque (E/S ou autre).
 Remarque :
Si le système met en oeuvre la réquisition, quand un processus de priorité supérieure à celle du
processus élu entre dans l’état prêt ; le processus élu sera mis dans la file d’attente des éligibles
à la position approprie, et le processeur est alloué au processus qui vient d’entrer.
 Caractéristiques de l’Ordonnanceur
Les principales caractéristiques sont :
 Peut être avec ou sans réquisition
 Un processus de priorité basse risque de ne pas être servi (problème de famine) d’où la
nécessité d’ajuster périodiquement les priorités des processus prêts. L’ajustement
consiste à incrémenter graduellement la priorité des processus de la file d’attente des

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

Remarque : la priorité adoptée est celle la plus élevée.


plan

Vous aimerez peut-être aussi