SlideShare une entreprise Scribd logo
1  sur  38
Télécharger pour lire hors ligne
Systèmes d’Exploitation I
Chapitre II :
La gestion des processus
Préparé par Amine DHRAIEF
Révisé par Chiheb-Eddine Ben N’Cir
Université de Manouba
Plan du cours
● Processus Vs Programme
● États des processus
● Structure d’un processus
● Mémoire allouée aux processus
● Structures de données pour la gestion des
Processus
● Les processus sous Unix
26/02/17 OS I 3
Contexte
● Les premiers OS autorisaient un seul programme à
être exécuté à la fois.
– Un tel programme avait un contrôle complet du système et
un accès à toutes les ressources du système
● Les OS actuels permettent à plusieurs programmes
d'être charger en mémoire et exécuter en même
temps.
– Cette évolution a nécessité un contrôle plus strict et un
cloisonnement plus rigoureux des différents programmes.
26/02/17 OS I 4
Contexte
● Ces besoins ont conduit à la création de la notion de
processus, qui est « un programme en exécution ».
– Un processus est l'unité fondamental dans le cadre d’un OS
moderne temps partagé.
● Un système se compose d'un ensemble de processus:
– les processus du OS exécutent le code du OS
– et des processus utilisateurs exécutent le code de l'utilisateur.
● Tous ces processus s'exécutent en même temps.
→ En commutant le processeur entre les processus, le
système d‘exploitation peut rendre l'ordinateur plus productif.
26/02/17 OS I 5
Programme Vs Processus
● Le programme n'est pas en soi un processus !
– un programme est une entité passive, comme un fichier contenant
une liste d'instructions
– alors qu'un processus est une entité active avec un ensemble de
ressources associées.
→ Un programme devient un processus lorsqu'un fichier exécutable
est chargé en mémoire.
● Même si deux processus peuvent être associés à un même
programme, ils sont néanmoins considérés comme deux
séquences d'exécution séparées.
– Chacune d'elles est un processus distinct, et bien que les sections de
texte sont équivalentes, les data section, la pile, le tas sont différents.
26/02/17 OS I 6
Etats des processus
26/02/17 OS I 7
Etat des processus
26/02/17 OS I 8
Transitions des états d’un processus
1) en exécution → enattente : a lieu quand le
processus ne peut plus poursuivre son exécution car
il a besoin d'une ressource non disponible.
2) en exécution → prêt : a lieu quand le processus a
terminé le temps imparti par le système
d'exploitation pour son exécution.
Remarque:
Un processus ne s'exécute pas forcément jusqu'à la fin car le système
d'exploitation a d'autres processus à exécuter. Cette transition a
également lieu si un processus plus urgent doit prendre la main (par
exemple processus du système d'exploitation)
26/02/17 OS I 9
3) prêt → en exécution : signale que le système d'exploitation a
sélectionné un processus pour l'exécuter.
4) en exécution → Terminé : indique que le processus a fini
son exécution.
5) En attente → prêt: a lieu sitôt que le processus n'a plus de
raison d'être bloqué; par exemple les données deviennent
disponibles. Le processus passe à l'état prêt.
6) prêt → en exécution a lieu quand l'événement attendu par
le processus ne peut se réaliser. Il est donc inutile de faire
patienter davantage ce processus, autant le terminer
(interblocage).
Transitions des états d’un processus
26/02/17 OS I 10
Structure d’un processus et
allocation de la mémoire
26/02/17 OS I 11
Structure d’un processus
● Un processus est souvent définit comme étant un programme en
exécution.
– Un processus est plus que le code du programme (text section)
● Un processus inclus une représentation de l'activité en cours du
programme :
– Le contenu des registres du processeur tel que le program counter (PC) (un
registre qui contient l’adresse mémoire de l’instruction en cours/prochaine
selon les architectures des CPUs)
– une pile d’exécution (stack) qui contient des données provisoires (tels que la
fonction, les paramètres, des adresses de retour, et les variables locales),
– une section de données (data section), qui contient les variables globales.
– un tas (heap) qui est une mémoire allouée dynamiquement lors de l'exécution
processus.
26/02/17 OS I 12
Structure d’un processus
Representation d'un
processus en mémoire
26/02/17 OS I 13
La mémoire associée à un
processus
Allocation de la mémoire
● Au cours de son exécution, un processus
alloue de la mémoire. Il existe trois types
d’allocations :
1)allocation statique
2)allocation sur la pile (« stack allocation »)
3)allocation sur le tas (« heap allocation »)
26/02/17 OS I 14
La mémoire associée à un processus
Allocation de la mémoire
● Allocation statique :
– Exemple : static int exemple=1 ;
– Espace mémoire nécessaire précisé dans le code avant
l’exécution
– Espace réservé au moment de la compilation dans le
fichier binaire résultant
– Espace accessible lors du chargement du binaire avant
l’exécution
→ Pas d’allocation lors de l’exécution
26/02/17 OS I 15
La mémoire associée à un processus
Allocation de la mémoire
● Allocation statique :
– La mémoire allouée statiquement placée dans le segment de données ou
le segment bss
– Segment de données:
● variables globales
● variables statiques initialisées
– Segment BSS :
● zone de données non initialisées
● les variables globales et statiques qui sont initialisées à zéro ou non initialisées
26/02/17 OS I 16
La mémoire associée à un processus
Allocation de la mémoire
● Allocation dynamique de mémoire du processus
– Se fait pendant l’exécution du programme
– Espace non prévue dans le binaire du programme
– Demande d’allocation se fait durant l’exécution
● Deux segments de processus concernés :
– Segment de pile
– Segment de tas
26/02/17 OS I 17
La mémoire associée à un processus
Allocation de la mémoire
● Allocation sur la pile (stack allocation)
– Programme : routines (fonctions/procédures) + variables
locales (lexicales)
– Variables locales (lexicales) : sa portée est définie par le texte
du programme
● Mémoire allouée à l’entrée de la routine
● Mémoire libérée au retour de la routine
● → Le segment de pile est utilisé pour ces
allocations/dés-allocations
26/02/17 OS I 18
La mémoire associée à un processus
Allocation de la mémoire
● Allocation sur le tas (heap allocation)
– Selon l’execution, un programme peut allouer de la
mémoire (malloc) et la libérer par la suite
– l’allocation se fait alors dans le segment de tas.
– Un tas : est une structure de données de type
arbre qui permet de retrouver rapidement un
élément.
26/02/17 OS I 19
Exemple : Anatomie d’un
processus sous Linux
26/02/17 OS I 20
Exemple : Anatomie d’un
processus sous Linux
26/02/17 OS I 21
Exemple : Anatomie d’un
processus sous Linux
26/02/17 OS I 22
Structures de données pour la
gestion des processus
26/02/17 OS I 23
● Chaque processus est représenté dans le SE par un PCB
(process control block) qui représente le contexte d’un
processus
PCB: le Contexte d’un processus est
une structure de données qui décrit
un processus en cours d'exécution. Ce
bloc est créé au même moment que le
processus et il est mis à jour en grande
partie lors de l'interruption du
processus afin de pouvoir reprendre
l'exécution du processus
ultérieurement.
Structure de gestion des processus
Process Control Block (PCB)
26/02/17 OS I 24
Structure d’un PCB
Le contexte d'un processus comporte principalement
les informations suivantes :
● Le compteur ordinal : adresse de la prochaine instruction à
exécuter par le processeur
● Les contenus des registres généraux : ils contiennent les
résultats calculés par le processus
● Les registres qui décrivent l'espace qu'il occupe en mémoire
centrale (l'adresse de début et de fin par exemple)
● Le registre variable d'état qui indique l'état du processus
D'autres informations telles que la valeur de l'horloge, la
priorité du processus
● Etc …..
26/02/17 OS I 25
Table des processus
26/02/17 OS I 26
Commutation de contextes de
processus et transition d’états
26/02/17 OS I 27
Programme réentrant: plusieurs processus
pour un même programme
26/02/17 OS I 28
Processus Sous UNIX
26/02/17 OS I 29
Contexte : la division cellulaire
26/02/17 OS I 30
Contexte : UNIX est multitâche
● La qualité du fonctionnement multitâche
d’Unix représente l’un des points les plus
attractifs de ce système d’exploitation.
● On peut faire exécuter simultanément
plusieurs programmes sans qu’aucun d’eux
ne ressente la présence des autres, ou à
l’inverse en leur permettant de dialoguer
entre eux.
26/02/17 OS I 31
Appel systéme fork()
● Le parallélisme Unix bas niveau est fourni
par le noyau qui duplique un processus
lorsqu’on invoque l’appel-système fork() .
● Les deux processus sont alors strictement
identiques, et seule la valeur de retour de
fork() permet de les distinguer.
26/02/17 OS I 32
Comment faire un processus ?
● Un nouveau processus est créé par fork() du système appelant.
● Le nouveau processus comprend une copie de l'espace
d'adressage de l'original processus.
– Ce mécanisme permet au processus parent de communiquer facilement avec
son processus enfant.
● Les deux processus (le parent et l'enfant) poursuivre l'exécution à
l'instruction après le fork(), avec une différence:
– le code retour du fork() est égal à zéro pour le nouveau (enfant)
processus,
– alors que le PID (non nulle) de l'enfant est retourné au processus père.
26/02/17 OS I 33
Comment faire un processus ?
● L'appel-système fork() est déclaré dans <unistd.h> : pid_t
fork(void);
●
DEUX valeurs de retour en cas de succès:
– Dans le processus père : valeur de retour = le PID du fils,
– Dans le processus fils : valeur de retour = zéro.
●
Sinon
– Dans le processus père : valeur de retour = -1.
● Afin d'obtenir le numéro du processus, il suffit de faire l'appel système
getpid(), ou getppid() pour obtenir le numéro du père.
– PID (Process IDentifier)
– PPID : numéro du processus père (Parent Process Identifier)
26/02/17 OS I 34
Naissance d’un processus
exemple
26/02/17 OS I 35
Mort naturelle et Zombie
● Un processus peut se terminer normalement ou
anormalement.
● Dans le premier cas, l'application est abandonnée à la
demande de l'utilisateur, ou la tâche à accomplir est finie.
● Dans le second cas, un dysfonctionnement est
découvert, qui est si sérieux qu'il ne permet pas au
programme de continuer son travail
26/02/17 OS I 36
Orphelin et Zombie
● Processus orphelins
– si un processus père meurt avant son fils ce dernier
devient orphelin.
● Processus zombie
– Si un fils se termine tout en disposant toujours d'un PID
celui-ci devient un processus zombie
– Le cas le plus fréquent : le processus s’est terminé mais
son père n’a pas (encore) lu son code de retour.
26/02/17 OS I 37
Orphelin et Zombie
● Un processus fils peut devenir orphelin si son
père termine avant lui, auquel cas le noyau
s'arrange pour le « faire adopter » par un
processus système (INIT), le processus fils peut
donc lui transmettre son statut de terminaison.
● Un processus est dit zombie s’il s'est achevé,
mais qui dispose toujours d'un identifiant de
processus (PID) et reste donc encore visible
dans la table des processus. On parle aussi de
processus défunt.
26/02/17 OS I 38
The END

Contenu connexe

Similaire à 1488135632336.pdf

coursystemedexploitaionsghaieranouar-150103105816-conversion-gate01.pdf
coursystemedexploitaionsghaieranouar-150103105816-conversion-gate01.pdfcoursystemedexploitaionsghaieranouar-150103105816-conversion-gate01.pdf
coursystemedexploitaionsghaieranouar-150103105816-conversion-gate01.pdfRihabBENLAMINE
 
Admin bd chapitre1_architecturebd_oracle
Admin bd chapitre1_architecturebd_oracleAdmin bd chapitre1_architecturebd_oracle
Admin bd chapitre1_architecturebd_oracleIsimmSpotted
 
0081-cours-systemes-exploitations.ppt
0081-cours-systemes-exploitations.ppt0081-cours-systemes-exploitations.ppt
0081-cours-systemes-exploitations.pptDenisKouakou1
 
Outils de gestions de versions
Outils de gestions de versionsOutils de gestions de versions
Outils de gestions de versionsAli Ben Messaoud
 
Cour systeme d'exploitation sghaier anouar
Cour systeme d'exploitation sghaier anouarCour systeme d'exploitation sghaier anouar
Cour systeme d'exploitation sghaier anouarAnouar Sghaier
 
System d\'exploitation
System d\'exploitationSystem d\'exploitation
System d\'exploitationThắng Thao
 
LP_Admin_base_données.ppt
LP_Admin_base_données.pptLP_Admin_base_données.ppt
LP_Admin_base_données.pptIdriss22
 
utilisation des core dump sous linux
utilisation des core dump sous linuxutilisation des core dump sous linux
utilisation des core dump sous linuxThierry Gayet
 
A la découverte d'abus
A la découverte d'abusA la découverte d'abus
A la découverte d'abusThierry Gayet
 
La programmation systéme en langage C sous UNIX
La programmation systéme en langage C sous UNIXLa programmation systéme en langage C sous UNIX
La programmation systéme en langage C sous UNIXBen Hassen Hamdi
 
Etude DéTailléé de la pile réseau sous GNU Linux
Etude DéTailléé de la pile réseau sous GNU LinuxEtude DéTailléé de la pile réseau sous GNU Linux
Etude DéTailléé de la pile réseau sous GNU LinuxThierry Gayet
 
system de gestion Nfs (Network File System)
system de gestion Nfs (Network File System)system de gestion Nfs (Network File System)
system de gestion Nfs (Network File System)ninanoursan
 
Cours système d’exploitation S1 - IG IPSET.pdf
Cours système d’exploitation S1 - IG IPSET.pdfCours système d’exploitation S1 - IG IPSET.pdf
Cours système d’exploitation S1 - IG IPSET.pdfMedBechir
 
Ordinnancement des processus
Ordinnancement des processusOrdinnancement des processus
Ordinnancement des processusSelman Dridi
 

Similaire à 1488135632336.pdf (20)

coursystemedexploitaionsghaieranouar-150103105816-conversion-gate01.pdf
coursystemedexploitaionsghaieranouar-150103105816-conversion-gate01.pdfcoursystemedexploitaionsghaieranouar-150103105816-conversion-gate01.pdf
coursystemedexploitaionsghaieranouar-150103105816-conversion-gate01.pdf
 
Admin bd chapitre1_architecturebd_oracle
Admin bd chapitre1_architecturebd_oracleAdmin bd chapitre1_architecturebd_oracle
Admin bd chapitre1_architecturebd_oracle
 
0081-cours-systemes-exploitations.ppt
0081-cours-systemes-exploitations.ppt0081-cours-systemes-exploitations.ppt
0081-cours-systemes-exploitations.ppt
 
Outils de gestions de versions
Outils de gestions de versionsOutils de gestions de versions
Outils de gestions de versions
 
Cour systeme d'exploitation sghaier anouar
Cour systeme d'exploitation sghaier anouarCour systeme d'exploitation sghaier anouar
Cour systeme d'exploitation sghaier anouar
 
Cours_OS 1.pptx
Cours_OS 1.pptxCours_OS 1.pptx
Cours_OS 1.pptx
 
La gestion des processus
La gestion des processusLa gestion des processus
La gestion des processus
 
chapitre0.pptx
chapitre0.pptxchapitre0.pptx
chapitre0.pptx
 
System d\'exploitation
System d\'exploitationSystem d\'exploitation
System d\'exploitation
 
1514117367383.pptx
1514117367383.pptx1514117367383.pptx
1514117367383.pptx
 
1514117367383.pptx
1514117367383.pptx1514117367383.pptx
1514117367383.pptx
 
LP_Admin_base_données.ppt
LP_Admin_base_données.pptLP_Admin_base_données.ppt
LP_Admin_base_données.ppt
 
utilisation des core dump sous linux
utilisation des core dump sous linuxutilisation des core dump sous linux
utilisation des core dump sous linux
 
A la découverte d'abus
A la découverte d'abusA la découverte d'abus
A la découverte d'abus
 
La programmation systéme en langage C sous UNIX
La programmation systéme en langage C sous UNIXLa programmation systéme en langage C sous UNIX
La programmation systéme en langage C sous UNIX
 
Etude DéTailléé de la pile réseau sous GNU Linux
Etude DéTailléé de la pile réseau sous GNU LinuxEtude DéTailléé de la pile réseau sous GNU Linux
Etude DéTailléé de la pile réseau sous GNU Linux
 
system de gestion Nfs (Network File System)
system de gestion Nfs (Network File System)system de gestion Nfs (Network File System)
system de gestion Nfs (Network File System)
 
SYSTèmes d'exploitation
SYSTèmes d'exploitationSYSTèmes d'exploitation
SYSTèmes d'exploitation
 
Cours système d’exploitation S1 - IG IPSET.pdf
Cours système d’exploitation S1 - IG IPSET.pdfCours système d’exploitation S1 - IG IPSET.pdf
Cours système d’exploitation S1 - IG IPSET.pdf
 
Ordinnancement des processus
Ordinnancement des processusOrdinnancement des processus
Ordinnancement des processus
 

Plus de RihabBENLAMINE

presentationatelierphpprt2-140314143938-phpapp02.pdf
presentationatelierphpprt2-140314143938-phpapp02.pdfpresentationatelierphpprt2-140314143938-phpapp02.pdf
presentationatelierphpprt2-140314143938-phpapp02.pdfRihabBENLAMINE
 
Tutoriel-PHP-Introduction-à-la-POoooooooooooO.pdf
Tutoriel-PHP-Introduction-à-la-POoooooooooooO.pdfTutoriel-PHP-Introduction-à-la-POoooooooooooO.pdf
Tutoriel-PHP-Introduction-à-la-POoooooooooooO.pdfRihabBENLAMINE
 
CM_PHP_PDOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.pdf
CM_PHP_PDOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.pdfCM_PHP_PDOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.pdf
CM_PHP_PDOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.pdfRihabBENLAMINE
 
10_interfacesjavaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.pdf
10_interfacesjavaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.pdf10_interfacesjavaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.pdf
10_interfacesjavaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.pdfRihabBENLAMINE
 
coursphp-chap3-230321082859-121d6678.pptx
coursphp-chap3-230321082859-121d6678.pptxcoursphp-chap3-230321082859-121d6678.pptx
coursphp-chap3-230321082859-121d6678.pptxRihabBENLAMINE
 
Cours3-PHPfgdwfwdffhddfbwdfwdfwdfwdfwfw.pdf
Cours3-PHPfgdwfwdffhddfbwdfwdfwdfwdfwfw.pdfCours3-PHPfgdwfwdffhddfbwdfwdfwdfwdfwfw.pdf
Cours3-PHPfgdwfwdffhddfbwdfwdfwdfwdfwfw.pdfRihabBENLAMINE
 
Virtualisation & Cloud. Cloud Computing. Iset Siliana RSI3..pdf
Virtualisation & Cloud. Cloud Computing. Iset Siliana RSI3..pdfVirtualisation & Cloud. Cloud Computing. Iset Siliana RSI3..pdf
Virtualisation & Cloud. Cloud Computing. Iset Siliana RSI3..pdfRihabBENLAMINE
 
416769859360_chap2fondementdesreseaux2023.pdf
416769859360_chap2fondementdesreseaux2023.pdf416769859360_chap2fondementdesreseaux2023.pdf
416769859360_chap2fondementdesreseaux2023.pdfRihabBENLAMINE
 
Interace Utilisateur.pdf
Interace Utilisateur.pdfInterace Utilisateur.pdf
Interace Utilisateur.pdfRihabBENLAMINE
 
Bases de données sous Android.pdf
Bases de données sous Android.pdfBases de données sous Android.pdf
Bases de données sous Android.pdfRihabBENLAMINE
 
Environnement Android.pdf
Environnement Android.pdfEnvironnement Android.pdf
Environnement Android.pdfRihabBENLAMINE
 
coursphp-230411142526-784b67e9.pdf
coursphp-230411142526-784b67e9.pdfcoursphp-230411142526-784b67e9.pdf
coursphp-230411142526-784b67e9.pdfRihabBENLAMINE
 
0519-pdf-php-bases-initiation.pdf
0519-pdf-php-bases-initiation.pdf0519-pdf-php-bases-initiation.pdf
0519-pdf-php-bases-initiation.pdfRihabBENLAMINE
 
introAndroid_2023_V6.5.2pp1-162.pdf
introAndroid_2023_V6.5.2pp1-162.pdfintroAndroid_2023_V6.5.2pp1-162.pdf
introAndroid_2023_V6.5.2pp1-162.pdfRihabBENLAMINE
 
016834638650_suitechap1.pptx
016834638650_suitechap1.pptx016834638650_suitechap1.pptx
016834638650_suitechap1.pptxRihabBENLAMINE
 
Chapitre 04-B - Langages de consultation.pdf
Chapitre 04-B - Langages de consultation.pdfChapitre 04-B - Langages de consultation.pdf
Chapitre 04-B - Langages de consultation.pdfRihabBENLAMINE
 

Plus de RihabBENLAMINE (20)

presentationatelierphpprt2-140314143938-phpapp02.pdf
presentationatelierphpprt2-140314143938-phpapp02.pdfpresentationatelierphpprt2-140314143938-phpapp02.pdf
presentationatelierphpprt2-140314143938-phpapp02.pdf
 
Tutoriel-PHP-Introduction-à-la-POoooooooooooO.pdf
Tutoriel-PHP-Introduction-à-la-POoooooooooooO.pdfTutoriel-PHP-Introduction-à-la-POoooooooooooO.pdf
Tutoriel-PHP-Introduction-à-la-POoooooooooooO.pdf
 
CM_PHP_PDOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.pdf
CM_PHP_PDOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.pdfCM_PHP_PDOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.pdf
CM_PHP_PDOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.pdf
 
10_interfacesjavaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.pdf
10_interfacesjavaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.pdf10_interfacesjavaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.pdf
10_interfacesjavaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.pdf
 
coursphp-chap3-230321082859-121d6678.pptx
coursphp-chap3-230321082859-121d6678.pptxcoursphp-chap3-230321082859-121d6678.pptx
coursphp-chap3-230321082859-121d6678.pptx
 
Cours3-PHPfgdwfwdffhddfbwdfwdfwdfwdfwfw.pdf
Cours3-PHPfgdwfwdffhddfbwdfwdfwdfwdfwfw.pdfCours3-PHPfgdwfwdffhddfbwdfwdfwdfwdfwfw.pdf
Cours3-PHPfgdwfwdffhddfbwdfwdfwdfwdfwfw.pdf
 
Virtualisation & Cloud. Cloud Computing. Iset Siliana RSI3..pdf
Virtualisation & Cloud. Cloud Computing. Iset Siliana RSI3..pdfVirtualisation & Cloud. Cloud Computing. Iset Siliana RSI3..pdf
Virtualisation & Cloud. Cloud Computing. Iset Siliana RSI3..pdf
 
416769859360_chap2fondementdesreseaux2023.pdf
416769859360_chap2fondementdesreseaux2023.pdf416769859360_chap2fondementdesreseaux2023.pdf
416769859360_chap2fondementdesreseaux2023.pdf
 
Interace Utilisateur.pdf
Interace Utilisateur.pdfInterace Utilisateur.pdf
Interace Utilisateur.pdf
 
Firebase.pdf
Firebase.pdfFirebase.pdf
Firebase.pdf
 
Bases de données sous Android.pdf
Bases de données sous Android.pdfBases de données sous Android.pdf
Bases de données sous Android.pdf
 
Les Activités.pdf
Les Activités.pdfLes Activités.pdf
Les Activités.pdf
 
Environnement Android.pdf
Environnement Android.pdfEnvironnement Android.pdf
Environnement Android.pdf
 
coursphp-230411142526-784b67e9.pdf
coursphp-230411142526-784b67e9.pdfcoursphp-230411142526-784b67e9.pdf
coursphp-230411142526-784b67e9.pdf
 
0519-pdf-php-bases-initiation.pdf
0519-pdf-php-bases-initiation.pdf0519-pdf-php-bases-initiation.pdf
0519-pdf-php-bases-initiation.pdf
 
introAndroid_2023_V6.5.2pp1-162.pdf
introAndroid_2023_V6.5.2pp1-162.pdfintroAndroid_2023_V6.5.2pp1-162.pdf
introAndroid_2023_V6.5.2pp1-162.pdf
 
016834638650_suitechap1.pptx
016834638650_suitechap1.pptx016834638650_suitechap1.pptx
016834638650_suitechap1.pptx
 
PHP_intro.pdf
PHP_intro.pdfPHP_intro.pdf
PHP_intro.pdf
 
Chapitre 04-B - Langages de consultation.pdf
Chapitre 04-B - Langages de consultation.pdfChapitre 04-B - Langages de consultation.pdf
Chapitre 04-B - Langages de consultation.pdf
 
chapitre-2.pptx.pdf
chapitre-2.pptx.pdfchapitre-2.pptx.pdf
chapitre-2.pptx.pdf
 

1488135632336.pdf

  • 1. Systèmes d’Exploitation I Chapitre II : La gestion des processus Préparé par Amine DHRAIEF Révisé par Chiheb-Eddine Ben N’Cir Université de Manouba
  • 2. Plan du cours ● Processus Vs Programme ● États des processus ● Structure d’un processus ● Mémoire allouée aux processus ● Structures de données pour la gestion des Processus ● Les processus sous Unix
  • 3. 26/02/17 OS I 3 Contexte ● Les premiers OS autorisaient un seul programme à être exécuté à la fois. – Un tel programme avait un contrôle complet du système et un accès à toutes les ressources du système ● Les OS actuels permettent à plusieurs programmes d'être charger en mémoire et exécuter en même temps. – Cette évolution a nécessité un contrôle plus strict et un cloisonnement plus rigoureux des différents programmes.
  • 4. 26/02/17 OS I 4 Contexte ● Ces besoins ont conduit à la création de la notion de processus, qui est « un programme en exécution ». – Un processus est l'unité fondamental dans le cadre d’un OS moderne temps partagé. ● Un système se compose d'un ensemble de processus: – les processus du OS exécutent le code du OS – et des processus utilisateurs exécutent le code de l'utilisateur. ● Tous ces processus s'exécutent en même temps. → En commutant le processeur entre les processus, le système d‘exploitation peut rendre l'ordinateur plus productif.
  • 5. 26/02/17 OS I 5 Programme Vs Processus ● Le programme n'est pas en soi un processus ! – un programme est une entité passive, comme un fichier contenant une liste d'instructions – alors qu'un processus est une entité active avec un ensemble de ressources associées. → Un programme devient un processus lorsqu'un fichier exécutable est chargé en mémoire. ● Même si deux processus peuvent être associés à un même programme, ils sont néanmoins considérés comme deux séquences d'exécution séparées. – Chacune d'elles est un processus distinct, et bien que les sections de texte sont équivalentes, les data section, la pile, le tas sont différents.
  • 6. 26/02/17 OS I 6 Etats des processus
  • 7. 26/02/17 OS I 7 Etat des processus
  • 8. 26/02/17 OS I 8 Transitions des états d’un processus 1) en exécution → enattente : a lieu quand le processus ne peut plus poursuivre son exécution car il a besoin d'une ressource non disponible. 2) en exécution → prêt : a lieu quand le processus a terminé le temps imparti par le système d'exploitation pour son exécution. Remarque: Un processus ne s'exécute pas forcément jusqu'à la fin car le système d'exploitation a d'autres processus à exécuter. Cette transition a également lieu si un processus plus urgent doit prendre la main (par exemple processus du système d'exploitation)
  • 9. 26/02/17 OS I 9 3) prêt → en exécution : signale que le système d'exploitation a sélectionné un processus pour l'exécuter. 4) en exécution → Terminé : indique que le processus a fini son exécution. 5) En attente → prêt: a lieu sitôt que le processus n'a plus de raison d'être bloqué; par exemple les données deviennent disponibles. Le processus passe à l'état prêt. 6) prêt → en exécution a lieu quand l'événement attendu par le processus ne peut se réaliser. Il est donc inutile de faire patienter davantage ce processus, autant le terminer (interblocage). Transitions des états d’un processus
  • 10. 26/02/17 OS I 10 Structure d’un processus et allocation de la mémoire
  • 11. 26/02/17 OS I 11 Structure d’un processus ● Un processus est souvent définit comme étant un programme en exécution. – Un processus est plus que le code du programme (text section) ● Un processus inclus une représentation de l'activité en cours du programme : – Le contenu des registres du processeur tel que le program counter (PC) (un registre qui contient l’adresse mémoire de l’instruction en cours/prochaine selon les architectures des CPUs) – une pile d’exécution (stack) qui contient des données provisoires (tels que la fonction, les paramètres, des adresses de retour, et les variables locales), – une section de données (data section), qui contient les variables globales. – un tas (heap) qui est une mémoire allouée dynamiquement lors de l'exécution processus.
  • 12. 26/02/17 OS I 12 Structure d’un processus Representation d'un processus en mémoire
  • 13. 26/02/17 OS I 13 La mémoire associée à un processus Allocation de la mémoire ● Au cours de son exécution, un processus alloue de la mémoire. Il existe trois types d’allocations : 1)allocation statique 2)allocation sur la pile (« stack allocation ») 3)allocation sur le tas (« heap allocation »)
  • 14. 26/02/17 OS I 14 La mémoire associée à un processus Allocation de la mémoire ● Allocation statique : – Exemple : static int exemple=1 ; – Espace mémoire nécessaire précisé dans le code avant l’exécution – Espace réservé au moment de la compilation dans le fichier binaire résultant – Espace accessible lors du chargement du binaire avant l’exécution → Pas d’allocation lors de l’exécution
  • 15. 26/02/17 OS I 15 La mémoire associée à un processus Allocation de la mémoire ● Allocation statique : – La mémoire allouée statiquement placée dans le segment de données ou le segment bss – Segment de données: ● variables globales ● variables statiques initialisées – Segment BSS : ● zone de données non initialisées ● les variables globales et statiques qui sont initialisées à zéro ou non initialisées
  • 16. 26/02/17 OS I 16 La mémoire associée à un processus Allocation de la mémoire ● Allocation dynamique de mémoire du processus – Se fait pendant l’exécution du programme – Espace non prévue dans le binaire du programme – Demande d’allocation se fait durant l’exécution ● Deux segments de processus concernés : – Segment de pile – Segment de tas
  • 17. 26/02/17 OS I 17 La mémoire associée à un processus Allocation de la mémoire ● Allocation sur la pile (stack allocation) – Programme : routines (fonctions/procédures) + variables locales (lexicales) – Variables locales (lexicales) : sa portée est définie par le texte du programme ● Mémoire allouée à l’entrée de la routine ● Mémoire libérée au retour de la routine ● → Le segment de pile est utilisé pour ces allocations/dés-allocations
  • 18. 26/02/17 OS I 18 La mémoire associée à un processus Allocation de la mémoire ● Allocation sur le tas (heap allocation) – Selon l’execution, un programme peut allouer de la mémoire (malloc) et la libérer par la suite – l’allocation se fait alors dans le segment de tas. – Un tas : est une structure de données de type arbre qui permet de retrouver rapidement un élément.
  • 19. 26/02/17 OS I 19 Exemple : Anatomie d’un processus sous Linux
  • 20. 26/02/17 OS I 20 Exemple : Anatomie d’un processus sous Linux
  • 21. 26/02/17 OS I 21 Exemple : Anatomie d’un processus sous Linux
  • 22. 26/02/17 OS I 22 Structures de données pour la gestion des processus
  • 23. 26/02/17 OS I 23 ● Chaque processus est représenté dans le SE par un PCB (process control block) qui représente le contexte d’un processus PCB: le Contexte d’un processus est une structure de données qui décrit un processus en cours d'exécution. Ce bloc est créé au même moment que le processus et il est mis à jour en grande partie lors de l'interruption du processus afin de pouvoir reprendre l'exécution du processus ultérieurement. Structure de gestion des processus Process Control Block (PCB)
  • 24. 26/02/17 OS I 24 Structure d’un PCB Le contexte d'un processus comporte principalement les informations suivantes : ● Le compteur ordinal : adresse de la prochaine instruction à exécuter par le processeur ● Les contenus des registres généraux : ils contiennent les résultats calculés par le processus ● Les registres qui décrivent l'espace qu'il occupe en mémoire centrale (l'adresse de début et de fin par exemple) ● Le registre variable d'état qui indique l'état du processus D'autres informations telles que la valeur de l'horloge, la priorité du processus ● Etc …..
  • 25. 26/02/17 OS I 25 Table des processus
  • 26. 26/02/17 OS I 26 Commutation de contextes de processus et transition d’états
  • 27. 26/02/17 OS I 27 Programme réentrant: plusieurs processus pour un même programme
  • 28. 26/02/17 OS I 28 Processus Sous UNIX
  • 29. 26/02/17 OS I 29 Contexte : la division cellulaire
  • 30. 26/02/17 OS I 30 Contexte : UNIX est multitâche ● La qualité du fonctionnement multitâche d’Unix représente l’un des points les plus attractifs de ce système d’exploitation. ● On peut faire exécuter simultanément plusieurs programmes sans qu’aucun d’eux ne ressente la présence des autres, ou à l’inverse en leur permettant de dialoguer entre eux.
  • 31. 26/02/17 OS I 31 Appel systéme fork() ● Le parallélisme Unix bas niveau est fourni par le noyau qui duplique un processus lorsqu’on invoque l’appel-système fork() . ● Les deux processus sont alors strictement identiques, et seule la valeur de retour de fork() permet de les distinguer.
  • 32. 26/02/17 OS I 32 Comment faire un processus ? ● Un nouveau processus est créé par fork() du système appelant. ● Le nouveau processus comprend une copie de l'espace d'adressage de l'original processus. – Ce mécanisme permet au processus parent de communiquer facilement avec son processus enfant. ● Les deux processus (le parent et l'enfant) poursuivre l'exécution à l'instruction après le fork(), avec une différence: – le code retour du fork() est égal à zéro pour le nouveau (enfant) processus, – alors que le PID (non nulle) de l'enfant est retourné au processus père.
  • 33. 26/02/17 OS I 33 Comment faire un processus ? ● L'appel-système fork() est déclaré dans <unistd.h> : pid_t fork(void); ● DEUX valeurs de retour en cas de succès: – Dans le processus père : valeur de retour = le PID du fils, – Dans le processus fils : valeur de retour = zéro. ● Sinon – Dans le processus père : valeur de retour = -1. ● Afin d'obtenir le numéro du processus, il suffit de faire l'appel système getpid(), ou getppid() pour obtenir le numéro du père. – PID (Process IDentifier) – PPID : numéro du processus père (Parent Process Identifier)
  • 34. 26/02/17 OS I 34 Naissance d’un processus exemple
  • 35. 26/02/17 OS I 35 Mort naturelle et Zombie ● Un processus peut se terminer normalement ou anormalement. ● Dans le premier cas, l'application est abandonnée à la demande de l'utilisateur, ou la tâche à accomplir est finie. ● Dans le second cas, un dysfonctionnement est découvert, qui est si sérieux qu'il ne permet pas au programme de continuer son travail
  • 36. 26/02/17 OS I 36 Orphelin et Zombie ● Processus orphelins – si un processus père meurt avant son fils ce dernier devient orphelin. ● Processus zombie – Si un fils se termine tout en disposant toujours d'un PID celui-ci devient un processus zombie – Le cas le plus fréquent : le processus s’est terminé mais son père n’a pas (encore) lu son code de retour.
  • 37. 26/02/17 OS I 37 Orphelin et Zombie ● Un processus fils peut devenir orphelin si son père termine avant lui, auquel cas le noyau s'arrange pour le « faire adopter » par un processus système (INIT), le processus fils peut donc lui transmettre son statut de terminaison. ● Un processus est dit zombie s’il s'est achevé, mais qui dispose toujours d'un identifiant de processus (PID) et reste donc encore visible dans la table des processus. On parle aussi de processus défunt.
  • 38. 26/02/17 OS I 38 The END