Académique Documents
Professionnel Documents
Culture Documents
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
Initialisation de systme
Demande dutilisateur
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;
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)
Bloqu
(en attente)
13
Nouveau
Admis 2
Sortie
Termin
Prt
1
lu
(en excution)
Bloqu
(en attente)
14
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
15
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
cause par le processus lui-mme) initie une E/S: doit attendre le rsultat a besoin de la rponse dun autre processus
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
tat des Processus Compteur ordinal Pointeur de pile Allocation de la mmoire tat des fichiers ouverts Information de gestion/ordonnancement... Et encore plus!
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
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
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 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