Gestion Des Processus
Gestion Des Processus
Gestion Des Processus
objet statique).
Lorsquun programme est lanc, un processus est cr par le systme dexploitation. Ce processus
matrialise le programme en cours dexcution avec ses propres ressources physiques (mmoire,
processeur, E/S) et logiques (donnes, variables).
i.
ii.
Un processus est donc une instance dynamique dun programme en cours dexcution dans un
espace dadressage protg.
Un systme mono-tches ne peut excuter quun seul job la fois. Dans ce cas, le programme a
toutes les ressources sa disposition (MS-DOS).
Dans un systme multitche, plusieurs processus sexcutent simultanment.
En ralit, seuls les systmes multiprocesseurs sont capables de vrifier cette situation
concrtement, dans la mesure o il y aurait au plus autant de processus lus que de processeurs sur
la machine.
Au niveau des systmes monoprocesseurs, on parle de pseudo-paralllisme. La
multiprogrammation ici consiste basculer constamment le processeur entre les diffrents
processus qui en font appel de sorte ce quils aient lair de sexcuter en mme temps.
Linterface entre un SE et les programmes utilisateurs est dfinie par lensemble des appels systme.
Ils sont analogues des appels procduraux classiques, sauf quils sont effectus en mode noyau.
Ex: fork, execve, exit, read, write, open, close, rmdir, mkdir, link..
Cration :
Sous UNIX, un processus est cr via un appel systme (fork) par un autre processus, sauf le tout
premier, cr lors du dmarrage du systme. On dit quUNIX est un systme hirarchis. Les
processus pre & fils dans ce cas, partagent les mmes ressources (lenvironnement fichier) mais
disposent chacun de sa propre zone mmoire (celle du fils est une duplication de celle du pre). La
seule diffrence est que au niveau de la valeur de retour de fork : sur lespace mmoire du pre cest
le PID du fils, et sur celui du fils cest zro.
Pour modifier limage mmoire du processus fils (les instructions), et excuter un nouveau
programme, on utilise lappel systme (execve).
Il nexiste pas dhirarchie sous Windows. CreateProcess retourne un HANDLE pour contrler le
processus.
Fin :
La fin dun processus est soit :
1. Volontaire :
Arrt normal par un Appel systme : Exit (UNIX) ou ExitProcess (Windows)
En cas derreur (ex : fichier compiler nexiste pas)
2. Involontaire :
Par un processus : kill (UNIX) ou TerminateProcess (Windows)
En cas derreur fatal (ex : division par 0)
Proprits :
Un processus possde :
1. Son propre espace dadressage (zone mmoire) :
Le programme excutable (instructions)
Les donnes
La pile
2. Une entre dans la table des processus (sur la mmoire du systme) :
PCB (Process control Bloc)
Lorsquun processus est temporairement suspendu, ses donnes doivent tre sauvegardes pendant
sa mise en attente, pour quil puisse retrouver ltat o il se trouvait au moment de sa suspension.
Do lintrt du PCB (Process Control block).
Un PCB contient :
un identificateur unique du processus (un entier) : le PID
l'tat courant du processus (lu, prt, bloqu)
le contexte processeur du processus : la valeur du CO, la valeur des autres registres du
processeur.
le contexte mmoire : ce sont des informations mmoire qui permettent de trouver le
code et les donnes du processus en mmoire centrale (pointeurs).
des informations diverses de comptabilisation pour les statistiques sur les performances
systme
des informations lies l'ordonnancement du processus.
Le PCB permet la sauvegarde et la restauration du contexte du processus lors des oprations de
commutations de contexte.
La gestion des processus ncessite trois structures de donnes essentielles :
Une pile pour chaque processus pour la gestion des appels retours aux procdures,
fonctions, mthodes Cette pile doit exister dans chaque systme qui admet ce genre
dappels, mme sil nadmet pas dinterruptions ni de multiprogrammation, et elle doit
contenir ladresse laquelle le processus doit retourner aprs avoir termin une procdure
donne en plus des variables locales, et des paramtres pour les retrouver au retour.
Elle est gre par le systme dexcution du programme compil.
Une Pile du SE pour la gestion des interruptions. Cette pile doit exister dans tout systme qui
admet les interruptions mme sil nadmet pas la multiprogrammation.
Elle gre directement par le matriel.
Une interruption est un mcanisme qui permet de stopper lexcution dun programme afin
dexcut une tche donne. Elle est caractrise par un numro et un traitement
particulier. Il existe en principe deux vnements principaux :
1. Les interruptions internes/logicielles (traps).
2. Les interruptions externes/matrielles.
Au niveau MATERIEL, quand le signal dune interruption est gnr, LUCT termine linstruction
courante, dtecte le signal, et enregistre ltat de ses registres dans la pile dinterruption pour
pouvoir sauter ladresse trouve dans le vecteur dinterruption.
Au niveau LOGICIEL, les informations sont sauvegardes sur le PCB. Le code de traitement de
linterruption est excut, et lordonnanceur choisit un processus prt. Les informations relatives ce
dernier sont alors charges depuis son PCB dans les registres de lUCT pour quelle puisse reprendre
son excution.
Les deux piles cites plus haut, fonctionnent de la mme faon, mais elles sont indpendantes.
Chaque lment de ces piles est dit stack frame (cadre de la pile).
Liste chaines des PCBs actifs dans le systme un instant donn (do lintrt des
pointeurs). Cette liste est partitionne en plusieurs files dattente, chaque une relatif une
ressource pouvant tre affecte un processus.
A un moment donn, un processus ne peut se trouver que dans une seule des diffrentes
files dattentes. En changeant dtat, les processus se dplacent dune file une autre.
Cette liste ne doit exister que dans les systmes multiprogramms. Elle est gre par le
systme dexploitation.
Les tats :
En principe, un processus a besoin de ressources pour pouvoir sexcuter :
Mmoire
CPU
Priphriques dE/S
Fichiers...
En fonction de ces ressources et de son ordre de priorit parmi les autres processus existants, le
processus peut changer dtat plusieurs reprises :
1. Bloqu : en attente dun vnement externe (ressources).
2. Prt : suspendu en faveur dun autre (ne lui manque que la ressource CPU). Dans ce cas, il
est en attente de son tour.
3. Elu : le processus est en cours dexcution sur le processeur.
Un seul processus peut tre lu la fois, tandis que plusieurs processus peuvent tre prts ou
bloqus en mme temps (files dattente).
Commutation de processus :
(Appele aussi commutation de contexte ou context switching) : Quand lUCT passe de lexcution
dun proc 0 un proc 1, il faut :
Ordonnancement :
L'ordonnanceur est une partie du SE qui distribue le temps du processeur entre les diffrents
processus.
Dans un systme premptif, l'ordonnanceur peut interrompre tout moment une tche en cours
d'excution pour permettre une autre tche de s'excuter. Dans ce cas, le processus passe ltat
bloqu sil sest bloqu de lui-mme, ou ltat prt si le processeur est rquisitionn pour un autre
processus.
A l'inverse d'un systme collaboratif (non premptif), lordonnanceur laisse le processus sexcuter
jusqu ce quil se bloque (E/S, wait) ou se termine.
L'avantage le plus vident d'un systme premptif est qu'il peut en permanence dcider
d'interrompre un processus, principalement si celui-ci choue et provoque l'instabilit du systme.
Une tche pouvant tre spcifie comme premptible ou non premptible . Une tche
premptible peut tre suspendue (mise l'tat prt ) au profit d'une tche de priorit plus leve
ou d'une interruption. Une tche non premptible ne peut tre suspendue qu'au profit d'une
interruption.
Comportement de processus :
Algorithmes dordonnancement: