Vous êtes sur la page 1sur 29

cole Normale Suprieure Ttouan Dpartement d Informatique

Systmes dexploitation

M. AAMMOU Souhaib
1

Notion de processus Le modle des processus Cration de processus Terminaison de processus tats dun Processus Transitions entre processus Implmentation dun processus PCB (Process Control Block) Commutation de processeur Files dattente Revue des interruptions

La notion de processus constitue un modle simple et efficace pour reprsenter lexcution concurrente de tches au sein dun systme dexploitation multitches. Le terme de processus a t utilis pour la premire fois au sein du systme Multics, et popularis depuis. Tout le travail effectu par lordinateur est ralis par des processus squentiels, qui reprsentent chacun une instance dun programme squentiel en train de sexcuter. Conceptuellement, un processus modlise lexcution dun programme; cest une abstraction dun programme en excution.

Diffrence entre processus et programme : le programme est une description statique ; le processus est une activit dynamique (il a un dbut, un droulement et une fin, il a un tat qui volue au cours du temps)

Exemple de processus lexcution dun programme. la copie dun fichier sur disque. la transmission dune squence de donnes sur un rseau.

Un certain nombre de processus (2 ou plus) excutant en mme temps forme un systme multitches, multithreads, ou multiprogrammation Est-ce que ces programmes excute vraiment en parallle?

Paralllisme et pseudo-paralllisme Soit deux processus p1 et p2 (excution de deux programmes squentiels P1 et P2) Mise en oeuvre concrte de lexcution de p1 et p2

Le model des processus est tout simplement lide que tout logiciel qui est excutable est organis en un nombre de processus squentiels incluant le SE.

Certains SE peuvent tre capables de crer tout les processus requis durant linitialisation. Les systmes communs ont besoin de crer des nouveaux processus durant lopration. Quand?
Initialisation du systme Excution dun systme de cration de processus appel

par un processus en excution

Demande dun utilisateur pour crer un processus

Initialisation de systme

Demande de processus en excution

Demande dutilisateur

Les processus terminent quand la job est faite. Raisons de terminaison

Normale (volontaire) Erreur (volontaire) Erreur fatal (involontaire) Tu par un autre processus (involontaire)

10

Dans les systmes ou il y a des processus enfants et parents, il y a une hirarchie qui existe Dans *NIX, un processus et tout ces descendants forment un groupe de processus. Les signaux (clef frappes sur clavier) peuvent tre partags avec tout les membres du groupe. Windows na pas de concept de hirarchie de processus.

11

Les processus passent par des tats discrtes diffrents. On dits quun processus est :
lu (running) sil est en cours dexcution sur le

processeur. Dans le cas dune machine multiprocesseurs, plusieurs processus peuvent tre lus en mme temps, mais il y a toujours au plus autant de processus lus que le processeurs; processus est prt sil ne lui manque que la ressource processeur pour sexcuter;

Prt (ready) sil est suspendu en faveur dun autre. Un

Bloqu (bloked) sil est en attente dun vnement

12

externe (bloc disque, frappe clavier,). Des fois, des commandes sont appeles pour entrer dans ltat bloqu (block, pause, wait). Parfois le systme cause la transition automatiquement (ordonnancement).

Nouveau

Admis 2 (interruption)

Sortie

Termin

Prt
1 (dispatch de

lu
(en excution)

lOrdonnanceur) 4 (terminaison dE/S ou dvnement) 3 (attente dE/S ou dvnement)

Bloqu
(en attente)

13

Nouveau

Admis 2

Sortie

Termin

Prt
1

lu
(en excution)

Bloqu
(en attente)
14

tats Nouveau, Termin:

Nouveau

Le SE a cr le processus

Termin:

a construit un identificateur pour le processus (PID) a construit les tableaux pour grer le processus mais ne sest pas encore engag excuter le processus (pas encore admis) pas encore allou des ressources La file des nouveaux travaux est souvent appele spoule travaux (job spooler)
Le processus nest plus excutable, mais ses donnes sont encore

requises par le SE (comptabilit, etc.)

15

Prt Excution (1)


Lorsque lordonnanceur UCT choisit un processus pour

Excution Prt (2)


Rsultat dune interruption cause par un vnement

excution

indpendant du processus Il faut traiter cette interruption, donc le processus courant perd lUCT Cas important: le processus puis son intervalle de temps (minuterie)

16

Excution Attente (3)


Lorsquun processus fait un appel de systme (interruption

Attente Prt (4)

cause par le processus lui-mme) initie une E/S: doit attendre le rsultat a besoin de la rponse dun autre processus

lorsque l'vnement attendu se produit

17

En multiprogrammation, un processus excute sur le processeur de faon intermittente. Chaque fois quun processus reprend le processeur (transition prt excution) il doit la reprendre dans la mme situation o il la laisse (mme contenu de registres processeur, etc.). Donc au moment o un processus sort de ltat excution il est ncessaire de sauvegarder ses informations essentielles, quil faudra rcuprer quand il retourne cet tat.

18

Comment le SE implmente le modle des processus?


La table des processus, un tableau ou liste chane de

structures avec une entre par processus. Information typique:



19

tat des Processus Compteur ordinal Pointeur de pile Allocation de la mmoire tat des fichiers ouverts Information de gestion/ordonnancement... Et encore plus!

La mmoire vive a trois utilisations majeures :


Stockage des instructions (le code) des processus Pile dexcution des processus Espace de tas des processus (l o (m|c)alloc et new

allouent les blocs demands)

Le processeur contient des registres, dans lesquels sont mmoriss, pour le processus courant :
Le pointeur sur linstruction en cours Le pointeur courant de la pile Les adresses de base des segments de code, de pile, de tas Les arguments des fonctions appeles, la valeur de retour
20

La mmoire de pile sert :


Prserver (empiler) les valeurs des registres pour pouvoir

les restaurer (dpiler) ultrieurement, par exemple avant et aprs un appel de fonction Passer les arguments des fonctions qui ne sont pas passs par des registres Allouer de lespace pour les variables locales et les objets locaux (+ alloca)

21

processeur pc sp

code segment ... mov reg1, [a] add reg1, [b] cmp reg1, [c] jge +5Fh mov [d], 69h jmp main+43h ...

stack segment

reg1 reg3

reg2 reg4

PC : Program Counter (pointeur dinstruction) SP : Stack Pointer (pointeur de pile)


22

stack XXX f( ) { } Ladresse de f est connue la compilation. Schma dun appel f : Prservation des registres caller-save Empilement des arguments Saut la fonction aprs empilement de ladresse de retour Rservation despace de pile pour les variables/objets locaux Prservation des registres callee-save f fait son travail Restauration des registres callee-save utiliss par la fonction Dpilement des variables locales Retour linstruction suivant lappel de f Dpilement des arguments Restauration des registres caller-save
23

sp

registres caller-save arguments return address variables locales registres callee-save

Registres Compteur ordinal 1-.Iot d'tat du programme Pointeur de pile tat du processus Date de lancement du processus Temps CP utilis Temps CP des fils Date de la prochaine alarme Pointeurs sur files de messages Bits des signaux en ente Identificateur de proc sus (pid) Divers indicateurs

Pointeur sur le segment code Pointeur sur le segment donne Pointeur sur le segment bss Statut de fin d'excution Statut de signal

Masque UMASK Rpertoire racine Rpertoire de travail Descripteurs de fichiers uid effectif

Identificateur, de processus (pid) gid effectif Processus pre Groupe du processus uid rel uid effectif gid rel gid effectif Table de bits des signaux Paramtres des appels systme Divers indicateurs

Champs typiques pour une entre dans la table des processus Divers indicateurs
24

Afin que cette table ne soit pas trop norme, la plupart des systmes disposent de deux zones par processus. La premire, jamais swappe, contient les informations critiques dont le systme a toujours besoin. La deuxime, contenue dans l'espace de chaque processus et donc swappable, contient l'information dont le processus n'aura besoin que lorsqu'il passera effectivement de l'tat prt l'tat lu (et ces donnes seront alors bien disponibles en mmoire ce moment).

25

pointeur: les PCBs sont rangs dans des listes enchanes tat de processus: ready, running, waiting compteur programme: le processus doit reprendre linstruction suivante autres registres du processeur bornes de mmoire fichiers quil a ouvert etc.

26

Quand le processuer passe de lexcution dun processus 0 lexcution d`un proc 1, il faut
mettre jour le PCB de 0 reprendre le PCB de 1, qui avait t

sauvegard avant remettre les registres dUCT tels que le compteur dinstructions etc. dans la mme situation qui est dcrite dans le PCB de 1
27

28

Questions?

29

Vous aimerez peut-être aussi