1
Pr oc es su s Pr oc es su s
Auteur :Auteur :Luigi LogrippoLuigi Logrippo––http://w3.uqo.ca/http://w3.uqo.ca/luigiluigi Modifications :Modifications :Nicolas GorseNicolas Gorse––http://http://wwwwww--etud.iro.umontreal.caetud.iro.umontreal.ca/~/~gorsengorsenPr oc es su s Pr oc es su s et te rm in ol og ie et te rm in ol og ie (aussi appel(aussi appelééjob,job,tasktask, user , user programprogram))
Concept de processus: un programme en exécution Possède des ressources de mémoire, périphériques, etc Ordonnancement de processus Opérations sur les processus Processus coopérants Processus communicants 3
C r C r éé at io n de p ro ce ss us at io n de p ro ce ss us
Les processus peuvent créer d’autres processus, formant une hiérarchie (instructionfork()ou semblables)Te rm in ai so n de p ro ce ss us Te rm in ai so n de p ro ce ss us
Un processus exécute sa dernière instruction pourrait passer des données àson parent ses ressources lui sont enlevées Le parent termine l’exécution d’un fils (avortement) pour raisons différentes le fils a excédéses ressources le fils n’est plus requis etc.5
A rb re d e pr oc es su s en U N IX A rb re d e pr oc es su s en U N IX
6ta t de p ro ce ss us IM P O R T A N T ÉÉ ta t de p ro ce ss us IM P O R T A N T
Au fur et a mesure qu’un processus exécute, il change d’état nouveau: le processus vient d’être créé exécutant-running: le processus est en train d’être exécutépar l’UCT attente-waiting: le processus est en train d’attendre un événement (p.ex. la fin d’une opération d’E/S) prêt-ready: le processus est en attente d’être exécutépar l’UCT terminated: fin d’exécution 7D ia gr am m e de tr an si tio n d` D ia gr am m e de tr an si tio n d` éé ta ts d `u n pr oc es su s ta ts d `u n pr oc es su s
Ordonnanceur = angl. scheduler8ÉÉ ta ts N ou ve au , T er m in ta ts N ou ve au , T er m in éé ::
Nouveau Le SE a crééle processus a construit un identificateur pour le processus a construit les tableaux pour gérer le processus mais ne s’est pas encore engagéàexécuter le processus (pas encore admis) pas encore allouédes ressources La file des nouveaux travaux est souvent appelée spoule travaux(job spooler) Terminé: Le processus n’est plus exécutable, mais ses données sont encore requises par le SE (comptabilité, etc.)9
Tr an si tio ns e nt re p ro ce ss us Tr an si tio ns e nt re p ro ce ss us
Prêt →→→→Exécution Lorsque l’ordonnanceurUCT choisit un processus pour exécution Exécution→→→→Prêt Résultat d’une interruption causée par un événement indépendant du processus Il faut traiter cette interruption, donc le processus courant perd l’UCT •Cas important: le processus àépuiséson intervalle de temps (minuterie)Tr an si tio ns e nt re p ro ce ss us Tr an si tio ns e nt re p ro ce ss us
Exécution→→→→Attente Lorsqu’un processus fait requête d’un servi du SE que le SE ne peut offrir immédiatem (interruption causée par le processus lui-même) un accès àune ressource pas encore dispo initie une E/S: doit attendre le résultat a besoin de la réponse d’un autre processu Attente→→→→Prêt lorsque l'événement attendu se produit 11Sa uv eg ar de d Sa uv eg ar de d ’’ in fo rm at io ns p ro ce ss us in fo rm at io ns p ro ce ss us
En multiprogrammation, un processus exécute sur l’UCTde façon intermittente Chaque fois qu’un processus reprend l’UCT (transition prêt →→→→exécution) il doit la reprendre dans la même situation oùil l’a laissée (même contenu de registres UCT, etc.) Donc au moment oùun processus sort de l’état exécution il est nécessaire de sauvegarder ses informations essentielles, qu’il faudra récupérer quand il retourne àcet étatPC B = PC B = Pr oc es s Pr oc es s C on tr ol B lo ck : C on tr ol B lo ck :
ReprRepréésente la situation actuelle dsente la situation actuelle d’’un processus, pun processus, p le reprendre plus tardle reprendre plus tard Registres13
Pr oc es s Pr oc es s C on tr ol B lo ck (P C B ) C on tr ol B lo ck (P C B ) IM P O R T A N T IM P O R T A N T
pointeur: les PCBssont rangés dans des listes enchaînées (àvoir) état de processus: ready, running, waiting… compteur programme: le processus doit reprendre àl’instruction suivante autres registres UCT bornes de mémoire fichiers qu’il a ouvert etc. 14C om m ut at io n de p ro ce ss eu r C om m ut at io n de p ro ce ss eu r
AussiAussiappappéélléécommutation de contexte oucommutation de contexte oucontextcontextswitchingswitching Quand l’UCTpasse de l’exécution d’un processus0àl’exécution d’un proc1, il faut mettre àjour le PCB de 0 sauvegarder le PCB de 0 reprendre le PCB de 1, qui avait été sauvegardéavant remettre les registres d’UCT, compteur d’instructions etc. dans la même situation qui est décrite dans le PCB de 1 15C om m ut at io n de p ro ce ss eu r ( C om m ut at io n de p ro ce ss eu r ( co nt ex t co nt ex t sw itc hi ng sw itc hi ng ))
Il se peut que beaucoup de temps passe avant le retour au processus 0, et que beaucoup d’autres soient exécutés entre temps 16L e P C B n L e P C B n
es t p as la s eu le in fo rm at io n ’’ es t p as la s eu le in fo rm at io n àà
sa u ve g ar d er ... sa u ve g ar d er ...
Il faut aussi sauvegarder l’état des données du programme Ceci se fait normalement en gardant l’image du programmeen mémoire primaire ou secondaire Le PCB pointera àcette image17
La p ile d La p ile d ’’ un p ro ce ss us un p ro ce ss us
aussi aussi ààsauvegardersauvegarder Quand un processus fait appel àune procédure, àune méthode, etc., il est nécessaire de mettre dans une pile l’adresse àlaquelle le processus doit retourner après avoir terminécette procédure, méthode, etc. Aussi on met dans cette pile les variables locales de la procédure qu’on quitte, les paramètres, etc., pour les retrouver au retour Chaque élément de cette pile est appeléstackframeou cadre de pile Donc il y a normalement une pile d’adresses de retour après interruptionetune pile d’adresses de retour après appel de procédure Ces deux piles fonctionnent de façon semblable, mais sont normalement séparées Les informations relatives àces piles (base, pointeur…) doivent aussi être sauvegardées au moment de la commutation de contexteLa P ile d La P ile d ’’ un p ro ce ss us un p ro ce ss us
A B Appel AAppel B PILEDonnées
Données Données
P 19
Po in te ur s de p ile Po in te ur s de p ile àà sa uv eg ar de r: b as e et b or ne sa uv eg ar de r: b as e et b or ne
cadre 1cadre 2
cadre 3
cadre 4 pointeur de base
pointeur de borne La pile fait normal. partie de l’image du programme, mais les pointeurs sont normal. des registres donc il sont sauvegardés
R ôl e du m at R ôl e du m at éé rie l e t d u lo gi ci el d an s le tr ai te m rie l e t d u lo gi ci el d an s le tr ai te m
dd ’’
in te rr up tio ns in te rr up tio ns
MATÉRIELLOG Signal d’interruption généré UCT termine l’instruction courante et détecte interruption Registres d’UCTsont sauvegardés dans une pile UCT trouve l’adresse de la proch. instruct. dans le vecteur d’interruption Infos additionnelles sauvegardées Le code de traitement de l’interruption est exécuté L’ordonnanceur choisit un nouveau processus àexécuter Les registres d’UCTsont rechargés avec ce qu’on avait sauvegardé pour ce processus, qui reprend l’exécutionToutes les infos relatives au nouveau processus sont rétablies
21
Fi le s d Fi le s d ’’ at te nt e at te nt e IM P O R T A N T IM P O R T A N T
Les ressources d’ordinateur sont souvent limitées par rapport aux processus qui en demandent Chaque ressource a sa propre file de processus en attente En changeant d’état, les processus se déplacent d’une file àl’autre File prêt: les processus en état prêt=ready Files associés àchaque unitéE/S etc. 22O rd on na nc eu rs ( O rd on na nc eu rs ( sc he du le rs sc he du le rs ))
Programmes qui gèrent l’utilisation de ressources de l`ordinateur Trois types d`ordonnanceurs : Àcourt terme =ordonnanceur processus: sélectionne quel processus doit exécuter la transition prêt →exécution Àlong terme =ordonnanceur travaux: sélectionne quels processus peuvent exécuter la transition nouveau →prêt(événement admitted) (de spoule travaux àfile prêt) Àmoyen terme: nous verrons 23
O rd on na nc eu r t ra va ux = lo ng te rm e O rd on na nc eu r t ra va ux = lo ng te rm e et o rd on na nc eu r p ro ce ss us = c ou rt te rm e et o rd on na nc eu r p ro ce ss us = c ou rt te rm e
Ordonnanceur travaux Ordonnanceur processus 24O rd on na nc eu rs O rd on na nc eu rs
L’ordonnanceuràcourt terme est exécuté très souvent (millisecondes) doit être très efficace L’ordonnanceuràlong terme doit être exécutébeaucoup plus rarement: il contrôle le niveau de multiprogrammation doit établir une balance entre travaux liés à l’UCT et ceux liés àl’E/S de façon que les ressources de l’ordinateur soient bien utilisées25
O rd on na nc em en t d e pr oc es su s O rd on na nc em en t d e pr oc es su s
(court terme)(court terme) DisponibilitéRess.O rd on na nc eu r O rd on na nc eu r àà m oy en te rm e m oy en te rm e
Le manque de ressources peut parfois forcer le SE àsuspendredes processus ils seront plus en concurrence avec les autr pour des ressources ils seront repris plus tard quand les ressourc deviendront disponibles Ces processus sont enlevés de mémoire centrale et mis en mémoire secondaire, pour être repris plus tard `swap out`, `swap in`, va-et-vien 27O rd on na nc eu rs O rd on na nc eu rs àà co ur t co ur t et et m oy en m oy en te rm e te rm e
courtmoyen
ta ts d e pr oc es su s da ns U N IX S VR 4 ÉÉ ta ts d e pr oc es su s da ns U N IX S VR 4
Un exemple de diagramme de transitions dtats pour un SE rUn exemple de diagramme de transitions d’é’états pour un SE rééelel29
Pr oc es su s co op Pr oc es su s co op éé ra nt s ra nt s
Les processus coopérants peuvent affecter mutuellement leur exécution Avantages de la coopération entre processus: partage de l’information vitesse en faisant des tâches en parallèle modularité la nature du problème pourrait le demander 30Le Le
pbpb
du p ro du ct eu r du p ro du ct eu r -- co ns om m at eu r co ns om m at eu r
Un problème classique dans l’étude des processus communicants un processusproducteurproduit des données (p.ex.des enregistrements d’un fichier) pour un processus consommateur un pgmd’impression produit des caractères consommés par une imprimante un assembleur produit des modules objet qui seront consommés par le chargeur Nécessitéd’untamponpour stocker les items produits (attendant d’être consommés 31Ta m po ns d e co m m un ic at io n Ta m po ns d e co m m un ic at io n
Prod Cons1 donn
Prod Cons
1 donn1 donn1 donn Si le tampon est de longueur 1, le producteur et consommateur doivent forcement aller àla même vitesse Des tampons de longueur plus grandes permettent une certaine indépendance. P.ex. àdroite le consommateur a étéplus lent 32
Le ta m po n bo rn Le ta m po n bo rn éé
((bo undedboundedbufferbuffer))une structure de donnune structure de donnéées fondamentale dans les SEes fondamentale dans les SE b[0]b[1] b[7]b[2] b[6]b[3] b[4]b[5]
o u
out: 1ère pos. pleine in: 1ère pos. libreb[0]b[1]b[7]b[2]b[6]b[3]b[4]b[5] in: 1ère pos. libreout: 1ère pos. pleine Bleu = plein, Blanc = libre
Le tampon bornése trouve dans la mémoire partagée entre consommateur et usager