Cours de Syst`eme : Les processus Bertrand Le cun et Emmanuel Hyon bertrand.le cun{at}u-paris10.fr et Emmanuel.Hyon{at}u-paris10.fr Universit´e Paris X 9 novembre 2007 B.L.C. et E.H. (Universit´e Paris X) Cours de Syst`eme : Les processus 9 novembre 2007 1 / 64Les processus Abstraction d’une ex´ecution C’est l’unit´e d’ex´ecution visible par le S.E. C’est l’unit´e ordonnanc´ee par le S.E. (et rien d’autre). Il contient le contexte d’ex´ecution d’un programme ◮ Espace d’adressage m´emoire, ◮ Pointeur d’instruction, ◮ Pointeur de pile ◮ Autre ressources syst`eme : les fichiers ouverts, les connections r´eseaux ouvertes Appel´e Job, Taˆche, processus B.L.C. et E.H. (Universit´e Paris X) Cours de Syst`eme : Les processus 9 novembre 2007 2 / 64Diff´erence entre programme et processus Programme Entit´e statique d´ecrivant un traitement; Code situ´e sur disque (en langage source, en langage machine) Un programme peut donner lieu `a plusieurs processus possibles par exemple : un mˆeme programme ex´ecut´e avec des donn´ees diff´erentes Processus Entit´e dynamique r´ealisant un traitement; Code situ´e en m´emoire centrale (en langage machine); Un processus peut mettre en jeu plusieurs programmes par exemple : un programme se terminant avec le lancement d’un autre programme (recouvrement). B.L.C. et E.H. (Universit´e Paris X) Cours de Syst`eme : Les processus 9 novembre 2007 3 / 64Image Ensemble des composants d’une image Un programme en cours d’ex´ecution manipule (met en ...
Processus Entit´edynamiquere´alisantuntraitement; Codesitu´eenm´emoirecentrale(enlangagemachine); Un processus peut mettre en jeu plusieurs programmes par exemple : un programme se terminant avec le lancement d’un autre programme (recouvrement).
4
Image
Ensemble des composants d’une image Unprogrammeencoursd’ex´ecutionmanipule(metenjeu) Code
D´efinition Image: Unensemble d’objetsoncutixee´uaenei`uenlrenuvontdqpeui (ud´ecutable). n co e ex
Formellement
Illustration Un programme (codes(ertien)uqaiojtu+e`1dasees´enndo) sauvegarde´esdansunfichier(contexte). L’instance en train de s’exe´cuter(suividesinstructionsdansl’environnement)estle processus.
De´finition Processus: Execution d’une image. ´
us9ncessbre2ovem
´eitrsveni(UH.E.te.C.L.B646/
zone utilisateur
Repre´sentationdel’imagedansunprocessus
erbm70029susevonesprocesst`eme:LuosredySaPirXsC)
4
Les processus
Identification : le PID Identification de processus :le PID(process id) pid t getpid(void) ;st`emeretournantelIPdDuppAysle processus visibles par les commandestop,ps Nomdel’entre´edansledossier/proc
Affiliation toutprocessusa`unpe`re:processusquil’alance´ pid t getppid(void) ;t`yslspeApPeltnanruoteremeIDdu processus pere ` L’anceˆtrepid= 1, le processusinitla,´encboauot lesorphelins(processusdontlep`ereestmort)sontleplussouvent recuper´esparinit ´ ´
Identification : le PID Identification de processus :le PID(process id) pid t getpid(void) ;AppellentDdPIutsyseme`oteranru processus visibles par les commandestop,ps Nomdel’entre´edansledossier/proc
R´eel-effectif proprie´tairere´el:celuiquiex´ecutelacommande(idempour groupe),leplussouventceluiquialanc´elacommande. Donne´sparUIDetGIDobtenusavecgetuid(),getgid(). lepropri´etaireeffectif(respectivementgroupeeffectif)celuia`qui appartientl’ex´ecutable. D ´ ar EUID et EGID obtenus avecgeteuid(),getegid(). onnes p