Vous êtes sur la page 1sur 7

Université de Blida 1 Système d’exploitation

Département d’informatique 2ème année LMD

CHAPITRE II : GESTION DES PROCESSEUR

1. CONCEPT DE PROCESSUS :

1.1 Définition :
Un processus représente l’exécution d’un programme comportant des instructions et des
ressources (mémoire, processeur, imprimante, fichier de données,…). C’est une entité
dynamique (active) créée à un instant donné, qui disparaît en général au bout d’un temps
fini. Un programme est une entité passive. Il peut engendrer un ou plusieurs processus.

1.2 Etats d’un processus :


Durant son séjour dans un SE, un processus peut changer d’état à plusieurs reprises. Ces
états peuvent être résumés dans le schéma suivant : (Figure 1 : Etats d’un processus.)
Voici une brève explication de chacun de ces états :
1°) Etat Created (Créé): dés qu'un processus est lancé par un utilisateur il commence sa vie
par cet état. A ce niveau le système examine la disponibilité de toutes les ressources
nécessaires pour démarrer l'exécution du processus. Il ne pourra être exécuté que si toutes
ces ressources peuvent lui être allouées.
2°) Etat Ready (Prêt): c'est l'état correspondant au fait qu'il ne manque au processus qu'un
processeur pour s'exécuter (attente du ou d'un processeur).
3°) Etat Running (Actif) : ici le processus dispose de toutes les ressources (y compris un
processeur) et s'exécute.
4°) Etat Waiting (Bloqué) : le processus attend au moins une ressource autre qu'un
processeur.
5°) Etat Complete (Terminé): le processus a terminé son traitement et toutes les ressources
qu'il détenait doivent être récupérées par le système.

1.3 Bloc de contrôle de processus :


Pour suivre son évolution, le SE maintient pour chaque processus une structure de données
particulière appelée bloc de contrôle de processus (PCB : Process Control Bloc) et dont le
rôle est de reconstituer tout le contexte du processus.
Numéro de processus
Etat du processus
Compteur d’instruction
Registres

Liste des fichiers ouverts
Figure 2 : Bloc de contrôle de processus.
Les informations contenues dans le PCB, permettant de reconstituer le contexte d’un
processus :

1/7
Université de Blida 1 Système d’exploitation
Département d’informatique 2ème année LMD

· L’état du processus : Il peut avoir l’une des valeurs suivantes : Nouveau, Prêt, Actif ou
Bloqué.
· Le compteur d’instructions : Le compteur indique l’adresse de la prochaine instruction à
exécuter par le processus.
· Les registres du processeur : Les registres varient en nombre et en type en fonction de
l’architecture de l’ordinateur. Ils englobent des accumulateurs et d’autres registres. Ces
informations doivent être sauvegardées avec le compteur d’instructions quand il se produit
une interruption, afin de permettre au processus de poursuivre correctement son exécution
après la reprise.
· Informations sur le scheduling du processeur : Ces informations comprennent la priorité du
processus, les pointeurs sur les files d’attente de scheduling.
· Informations sur l’état des E/S : Les fichiers ouverts, la liste des périphériques d’E/S.
1.4 Opérations sur les processus
Pour le système un processus est un objet, identifié par un identificateur unique et sur
lequel on peut appliquer certaines opérations telles que:
• Création,

• Destruction,

• Blocage,

• Réveil,

• Activation (par le dispatcher),

• Désactivation (en fin de quantum),

• Suspension.

• Relance.

1.4.1 Création d'un processus


Cette opération consiste à :
- Allouer un descripteur au processus (PCB),
- Affecter un identificateur unique au processus,
- Initialiser le descripteur (PCB) :
- Programme à exécuter,
- Pile d'exécution,
- Mémoire centrale utilisée par le programme et les données du processus,
- Etat du processus,
- Priorité du processus,
- Autres ressources,...
Propriétés de la fonction « création » de processus :
La création des processus est en général dynamique: Les processus sont créés à la demande.
Dans ce cas un processus peut créer ou détruire un autre processus. Le problème qui se pose
alors est le risque de création d'un nombre illimité de processus. En réalité le nombre de
créations de processus est limité par le système : un plafond Pmax qui est le nombre

2/7
Université de Blida 1 Système d’exploitation
Département d’informatique 2ème année LMD

maximum de processus existant simultanément dans le système est imposé aux utilisateurs
(Pmax est un paramètre modifiable du noyau).
Le processus créé par un autre processus est appelé processus "Fils" et le processus
créateur est appelé processus "Père". On établit généralement une hiérarchie entre les
processus selon les règles suivantes:
Règle 1: Un processus peut avoir plusieurs fils.
Règle 2: Un processus ne peut avoir qu'un seul père.
1.4.2 Destruction de processus
La destruction d'un processus ne peut être effectuée que par le processus père ou un
processus système. Cette opération consiste à:
• Libérer les ressources occupées par le processus,
• Détruire éventuellement toute la descendance du processus ; ce choix dépend du
système:
_dans les systèmes de la famille Multics la destruction de la descendance est réalisée
automatiquement par le noyau.
_dans les systèmes de la famille Unix quand un processus se termine ses fils (ou sa
descendance) ne sont pas détruits.
• Libérer son descripteur (PCB).

2. SCHEDULING DE PROCESSUS (Ordonnancement) :


C'est un ensemble de règles définissant l'ordre d'exécution des processus en tenant compte
de la disponibilité des ressources (processeurs) nécessaires, de manière à optimiser un ou
plusieurs critères. On peut dire, également, que l'ordonnancement consiste à allouer une ou
plusieurs tranches de temps processeur à chaque processus existant dans le système. Les
principaux objectifs assignés à un ordonnanceur sont:
- Occupation maximale du processeur,
- S'assurer que chaque processus en attente d'exécution reçoive sa part de temps
processeur.
- Minimiser le temps de réponse pour les utilisateurs en mode interactif,
- Satisfaire le maximum de processus des utilisateurs en respectant certaines
contraintes telles la priorité, l'échéance (dans les systèmes temps réel), etc…
Ces objectifs sont parfois complémentaires, parfois contradictoires : augmenter la
performance par rapport à l’un d’entre eux peut se faire au détriment d’un autre. Il est
impossible de créer un algorithme qui optimise tous les critères de façon simultanée.

2.1 Files d’attentes de scheduling :


Pour gérer les processus durant leur séjour, le SE maintient plusieurs files d’attente. On peut
citer entre autres :

3/7
Université de Blida 1 Système d’exploitation
Département d’informatique 2ème année LMD

· File d’attente des processus prêts : Cette file contient tous les processus en attente du
processeur.
· File d’attente de périphérique : Pour contrôler les demandes d’allocation des différents
périphériques, on peut imaginer une file d’attente pour chaque périphérique. Quand un
processus demande une opération d’E/S, il est mis dans la file d’attente concernée.
Un nouveau processus est initialement placé dans la file d’attente des processus prêts. Il
attend dans cette file jusqu’à ce qu’il soit sélectionné pour son exécution et qu’on lui
accorde le processeur. Une fois qu’on a alloué le processeur au processus et que celui-ci est
en cours d’exécution, il pourrait se produire l’un des événements suivants :
· Le processus pourrait émettre une requête d’E/S et ensuite placé dans une file d’attente
d’E/S.
· Le processus pourrait être enlevé du processeur ; on dit aussi que le processeur a été
réquisitionné. Dans ce cas, le processus est remis dans la file d’attente des processus prêts.
· Le processus pourrait se terminer.
Les différents états de transition du processus entre les files d’attente sont résumés par la
figure suivante.

2.2 Le scheduler (ordonnanceur) :


Le scheduler est un programme du SE qui s’occupe de choisir, selon une politique de
schedulind donnée, un processus parmi les processus prêts pour lui affecter le processeur.

2.3 Commutation de contexte :


Le fait de commuter le processeur sur un autre processus demande de sauvegarder l’état de
l’ancien processus et de charger l’état sauvegardé par le nouveau processus. Cette tâche est
connue sous le nom de commutation de contexte.

2.4 Les critères de scheduling :


Les divers algorithmes de scheduling du processeur possèdent des propriétés différentes et
peuvent favoriser une classe de processus plutôt qu’une autre. Pour choisir quel algorithme
utiliser dans une situation particulière, nous devons tenir compte des propriétés des divers
algorithmes.
Plusieurs critères ont été proposés pour comparer et évaluer les performances des
algorithmes de scheduling du processeur. Les critères les plus souvent utilisés sont :

1) Utilisation du processeur central (CPU):


a) Le taux d'utilisation du processeur central est défini par le rapport temps CPU consommé/
temps de séjour des processus. Le taux d'utilisation du processeur doit être le plus élevé
possible.
b )L’OverHead de gestion du CPU: Soit Tc le temps de commutation de contextes, et soit Q
(quantum) la tranche de temps allouée à chaque processus avant de lui retirer le processeur

4/7
Université de Blida 1 Système d’exploitation
Département d’informatique 2ème année LMD

, on appelle Overhead Cpu le rapport Tc/Q : ce paramètre mesure la proportion de temps


perdue par la gestion du Cpu par rapport au temps d’allocation du CPU (paramètre
d’efficacité de gestion du CPU ). L’OverHead Cpu doit être le plus faible possible.
2) Temps de résidence (turn around time) ou temps de séjour: C'est le temps passé par le
processus dans le système. C'est la somme du temps d'exécution et du temps passé dans les
différentes files (file des processus prêts, files des processus bloqués). Soient te: le temps (ou
date) d'entrée processus dans le système et ts: le temps (ou date) de sortie du processus.
Temps de résidence = ts - te
3)Temps d'attente (waiting time): C'est le temps passé dans la file des processus prêts; c'est-
à-dire le temps total d’attente du processeur central (cpu).
Remarque : ne pas confondre avec le temps passé dans l'état bloqué (par exemple temps
d'attente des entrées/sorties ou temps d'attente d’une ressource autre que le cpu,...).
4)Temps de réponse: Le temps de résidence n'est pas significatif pour les programmes
interactifs, donc on utilise un autre critère de performance qui est le temps de réponse. C'est
le temps qui sépare le moment où le processus soumet une requête et le début de la
réponse à cette requête ; on ne tient pas compte de la durée de la réponse : le processus
peut commencer à envoyer des réponses à l'utilisateur avant qu'il soit terminé.
Soient : te: le temps (ou date) de soumission de la requête et ts: le temps (ou date) de début
de la réponse à cette requête.
Temps de réponse = ts – te
2.5 Différentes stratégies d'ordonnancement
On peut classer les politiques ou stratégies d'ordonnancement en deux classes:
a)Non-préemptif (Sans réquisition) : L'exécution du processus en cours ne peut jamais être
interrompue au profit d'un autre processus. Ce sont les algorithmes utilisés dans les
premiers systèmes BATCH.
b)Préemptif (Avec réquisition) : L'exécution du processus en cours peut être interrompue au
profit d'un autre processus plus prioritaire (ou plus urgent) ou de même priorité (voir
algorithme du tourniquet sans priorité). Ce type d'algorithmes favorise les processus courts
et assure, dans les systèmes interactifs, un temps de réponse assez bref.

3 LES ALGORITHMES DE SCHEDULING :

3.1 L’algorithme du Premier Arrivé Premier Servi (FCFS) :


L’algorithme de schedulind du processeur le plus simple est l’algorithme du Premier Arrivé
Premier Servi (First Come First Served : FCFS). Avec cet algorithme, on alloue le processeur
au premier processus qui le demande. L’implémentation de la politique FCFS est facilement
gérée avec une file d’attente FIFO. Quand un processus entre dans la file d’attente des

5/7
Université de Blida 1 Système d’exploitation
Département d’informatique 2ème année LMD

processus prêts, son PCB est enchaînée à la queue de la file d’attente. Quand le processeur
devient libre, il est alloué au processeur en tête de la file d’attente.
Exemple : Trois processus P1, P2 et P3 arrivent dans cet ordre au système. Leurs durées
d’exécution sont respectivement : 24, 3, 3 unités de temps. Pour représenter l’historique
d’occupation du processeur, on utilise le diagramme suivant, appelé diagramme de Gantt :
Diagramme de Gantt :

Ce diagramme montre que le processus P1 occupe le processeur de l’instant 0 jusqu’à


l’instant 24. A l’instant 24, le processeur devient occupé par le processus P2, puis à l’instant
27 il sera suivi du processus P3.
Le temps d’attente est égal à 0 pour le processus P1, 24 pour le processus P2 et 27 pour le
processus P3. Le temps d’attente moyen est égal à : (0+24+27)/3, soit 17 unités de temps.
Si les processus étaient arrivés dans l’ordre P2, P3 et P1, les résultats seraient différents :
Diagramme de Gantt :

Le temps moyen d’attente serait : (0+3+6)/3=3 unités.


Ainsi le temps moyen d’attente avec une politique FCFS n’est généralement pas minimal et
peut varier substantiellement si les durées d’exécution des processus varient beaucoup.

3.2 L’algorithme du Plus Court d’abord (SJF) :


Cet algorithme (en anglais Shortest Job First : SJF) affecte le processeur au processus
possédant le temps d’exécution le plus court. Si plusieurs processus ont la même durée, une
politique FIFO sera alors utilisée pour les départager.
Exemple : On soumet au système quatre processus P1, P2, P3 et P4 dont les durées
d’exécution sont données par le tableau suivant :

L’algorithme du travail le plus court donnera alors le résultat suivant :

Le temps moyen d’attente est = (0+3+9+16)/4=7. Alors que si on avait choisi une politique
FCFS, le temps moyen serait de : 10.25 unités de temps.

6/7
Université de Blida 1 Système d’exploitation
Département d’informatique 2ème année LMD

3.3 Scheduling avec priorité :


Cet algorithme associe à chaque processus une priorité, et le processeur sera affecté au
processus de plus haute priorité.
Exemple : On dispose de 5 processus ayant des priorités différentes :
Processus Durée Priorité
d’exécution
P1 10 2
P2 1 4
P3 2 2
P4 1 1
P5 5 3
Diagramme de Gantt :

Le temps moyen d’attente est = (0+1+6+16+18)/5=8.2 unités de temps.

3.4 L’algorithme de Round Robin (Tourniquet) :


L’algorithme de scheduling du tourniquet, appelé aussi Round Robin, a été conçu pour des
systèmes à temps partagé. Il alloue le processeur aux processus à tour de rôle, pendant une
tranche de temps appelée quantum. Dans la pratique le quantum s’étale entre 10 et 100 ms.
Exemple : On dispose de 3 processus P1, P2 et P3 ayant comme durée d’exécution,
respectivement 24, 3 et 3 ms. En utilisant un algorithme Round Robin, avec un quantum de
4 ms, on obtient le diagramme de Gantt suivant :
Diagramme de Gantt :

Le temps moyen d’attente est de : (6+4+7)/3 = 17/3 = 5.66 ms


La performance de l’algorithme de Round Robin dépend largement de la taille du quantum.
Si le quantum est très grand, la politique Round Robin serait similaire à celle du FCFS. Si le
quantum est très petit, la méthode Round Robin permettrait un partage du processeur :
Chacun des utilisateurs aurait l’impression de disposer de son propre processeur.
Cependant le quantum doit être choisi de sorte à ne pas surcharger le système par de
fréquentes commutations de contexte.
Exemple : On dispose d’un processus P dont le temps d’exécution est de 10 ms. Calculons le
nombre de commutations de contexte nécessaires pour un quantum égal respectivement à :
12, 6 et 1.
Quantum=12 Nombre de commutations de contexte = 1 ; Quantum=6 Nombre de
commutations de contexte = 2 et Quantum=1 Nombre de commutations de contexte = 9

7/7

Vous aimerez peut-être aussi