Se CH2
Se CH2
Se CH2
1
CHAPITRE 2 : GESTION DES PROCESSUS
2
Table des matières
CHAPITRE 2 : GESTION DES PROCESSUS ........................................................................................ 2
OBJECTIFS DU COURS : ...................................................................................................................... 4
I. DEFINITIONS ET GENENRALITES ................................................................................................ 5
II. TYPES DE PROCESSUS ................................................................................................................. 8
II.1. Les processus interactifs ................................................................................................... 8
II.2. Les processus automatiques ........................................................................................... 9
II.3. Les daemons ....................................................................................................................... 9
III. LES ETATS D’UN PROCESSUS ................................................................................................ 10
IV. ORDONNANCEMENT DE PROCESSUS ............................................................................... 10
IV.1. Ordonnancement préemptif : ................................................................................. 10
IV.2. Ordonnancement non-préemptif :......................................................................... 10
V. QUELQUES ALGORITHMES D’ORDONNANCEMENT ........................................................... 11
V.1. FIFO (First In First Out) ou Premier arrivé, premier servi : ......................................... 11
V.2. Exécution du job le plus court en premier (Shortest Job First : STF) .................... 12
V.3. Exécution du temps restant le plus court (Shortest Remaining First : SRF) ........ 12
V.4. Ordonnancement de type tourniquet (Round Robin).......................................... 12
V.5. Ordonnancement par priorité...................................................................................... 13
3
OBJECTIFS DU COURS :
Donner aux étudiants les connaissances sur les systèmes d’exploitation, leurs
composants et leurs structures et leurs fonctionnalités de base.
4
I. DEFINITIONS ET GENENRALITES
Mots-clés
Processus et Programme
5
Par définition, un processus est une abstraction d’un programme en cours
d’exécution. Le processus est représenté dans le système par un PCB (Process Control
Block), possède un état, peut communiquer des informations avec d’autres processus
et peut concourir avec d’autres processus pour l’obtention d’une ressource.
Dans le cas de systèmes à temps partagé, tous les processus progressent dans le
temps, mais un seul s’exécute à la fois. Lorsque le processeur passe d’un processus à
un autre la vitesse de traitement de processus n’est pas uniforme, ni même
reproductible si le même processus s’exécutait une autre fois. Mais Quelle est la
différence entre un processus et un programme ?
Soupons que notre informaticien se mette à hurler car piqué d’une guêpe. Son
cerveau enregistre le point où il s’est arrêté dans la préparation du gâteau (l’état dans
lequel le processus en cours est enregistré). Il commence à suivre les instructions de
premiers secours. De ce fait, le processeur bascule du processus (confection gâteau)
6
vers un autre processus de priorité supérieure (administrer antidote). Chaque
processus découle d’un programme différent (recette et brochure sur les premiers
soins). Une fois le problème de piqure résolu, l’informaticien retourne au point où il
avait laissé la préparation du gâteau. En résumé un processus est une activité. Il inclut
un programme, une entrée, une sortie et un état. Un processeur peut être partagé par
plusieurs processus à l’aide d’un algorithme d’ordonnancement intervenant pour
déterminer à quel moment arrêter de travailler sur un processus pour en servir un autre.
Les SE ont besoin de savoir que tous les processus nécessaires existent bel et bien. Le
SE doit permettre l’exécution concurrentielle de processus, et a besoin d’une
méthode pour créer, et arrêter les processus au cours de leur activité.
7
Initiation d’un travail en traitement par lots : Ce cas de figure concerne les gros
mainframes. Les utilisateurs peuvent soumettre des tâches de traitement par
lots au système. Lorsque le SE constate qu’il dispose des ressources nécessaires
à l’exécution d’un job supplémentaire, il crée un nouveau processus et exécute
le job suivant de la file d’attente.
Une fois qu’un processus a été créé, il commence à s’exécuter quelle que soit sa
tâche et il finira à s’arrêter pour diverses raisons :
Les processus interactifs sont démarrés par l’utilisateur connecté au système. Ils sont
initialisés et contrôlés via une session terminale. Ces processus peuvent s’exécuter en
avant plan du terminal qui a lancé le programme. Dans ce cas aucune autre
application ne peut être lancée aussi longtemps que le processus est en train de
s’exécuter en avant plan.
8
II.2. Les processus automatiques
Les processus automatiques ou processus par lot sont des processus non connectés
au terminal. Ce sont plutôt de tâches mises dans une file d’attente pour être
exécutées. Cette file d’attente est gérée selon le mode du premier entré- premier sorti
(First in, First out : FIFO). De telles tâches sont exécutées selon les critères suivants :
9
III. LES ETATS D’UN PROCESSUS
On peut dire que pour qu’il ait l’ordonnancement, il faut avoir un système
multiprogrammé c’est-à-dire plusieurs processus sont exécutés simultanément mais un
seul processus à la fois a accès au CPU.
Si le processus est toujours en cours d’exécution après ces délais, il est suspendu et un
autre processus est choisi. L’ordonnancement préemptif nécessite une interruption à
la fin du délai afin de donner le contrôle du processeur à l’ordonnanceur.
Ici, on la sélection d’un processus qui s’exécute jusqu’à ce qu’il se bloque ou qu’il
libère volontairement le processeur. En effet aucune décision d’ordonnancement
n’intervient pendant les interruptions d’horloge. Une fois le traitement de l’interruption
terminé, le processus qui était en cours d’exécution avant l’interruption est toujours
relancé.
10
V. QUELQUES ALGORITHMES D’ORDONNANCEMENT
Il est sans doute le plus simple des algorithmes d’ordonnancement. Pour ce cas, les
processus se voient attribuer le temps processeur selon leur ordre d’arrivée. Il existe
une seule file d’attente des processus prêts. Le premier processus arrivé dans la file
d’attente est exécuté aussi longtemps qu’il le souhaite. Au fur et à mesure que les
autres jobs arrivent, ils prennent place dans la file d’attente. Lorsque le processus en
cours d’exécution se bloque, le processus suivant s’exécute. Quand il redevient prêt,
il est placé à la queue de la file d’attente comme si c’était un nouveau processus qui
arrive.
11
Il en résulte que chaque processus d’E/S arrive à lire un bloc par seconde et prend 1
000 secondes pour se terminer. Avec un algorithme d’ordonnancement qui
préempterait le processus de traitement toutes les 10 millisecondes, les processus d’E/S
se termineraient en 10 secondes au lieu de 1 000, et ce sans ralentir le processus de
traitement de façon palpable.
V.2. Exécution du job le plus court en premier (Shortest Job First : STF)
Ici, les processus les plus courants sont exécutés en premier. Pas de notion de priorité,
c’est un algorithme non-préemptif qui suppose que les délais d’exécution sont connus
d’avance. Le principe consiste à choisir le processus dans le prochain cycle d’horloge
et le plus petit. Remarque : Cet algorithme demande une connaissance à priori de la
longueur du prochain cycle d’horloge du CPU. Cet algorithme existe en version avec
ou sans préemption.
V.3. Exécution du temps restant le plus court (Shortest Remaining First : SRF)
Ici, les processus dont le reste de temps d’exécution le plus court sont exécutés en
premier. Pas de file d’attente. C’est un algorithme préemptif qui nécessite de
connaître la durée des processus. Lorsqu’un nouveau job arrive, son temps total est
comparé au temps restant pour le processus en cours. Si le nouveau job a un temps
d’exécution plus court que celui en cours d’exécution, ce dernier est suspendu au
profit du nouveau processus. Cela favorise les services des jobs courts.
Le principe du Round Robin est que le CPU obtenu pour une durée limitée (un
quantum de temps prédéfinis). Un intervalle de temps d’exécution est accordé à
chaque processus (quantum). A la fin du quantum de temps, si le processus est en
cours d’exécution le processeur est préempté au profit d’un autre processus. Si le
processus a bloqué ou terminé avant la fin du quantum, le basculement du
processeur se fait naturellement.
12
V.5. Ordonnancement par priorité
13