SlideShare une entreprise Scribd logo
Systèmes
d'exploitation
Processus
Linus Torvalds
• Finlandais
• Étudiant à Helsinki
• Git
• Linux
Contenu
• Processus
– Rôle
– Attributs
• Planification
• Démarrage de SE
• Hiérarchie de processus
• Créer un processus
– Autres opérations de
traitement
• Fermer un processus
• API pour travailler avec des
processus
3
Bibliographie pour aujourd'hui
• Modern Operating Systems
– Chapitre 2
• 2.1
• Operating Systems Concepts
– Chapitre 3
4
Processus
• le unité de base du exécution
• en SE, il y a deux abstractions de base
– fichier - abstraction pour l’information / les données
– processus – abstraction pour des actions
5
PROCESSUS
6
Qu'est-ce qu'un processus?
• Un programme en cours d'exécution
• Encapsulation / abstraction de l'exécution
dans SO
• Abstraction sur processeur, mémoire, E / S
SO: Curs 3: Procese 7
8
Processus
1
Noyau de SE
Processus
2
Processus
3
MemoireCPU
Temps
E/S
Stockage
API utilisée par les processus
9
processeur memoire E/S
threads memoire
virtuelle
descripteurs
de fichiers
Processeur
• Un processus a un ou plusieurs threads
– Un thread exécute des instructions sur un
processeur
• En règle générale, les processus système sont
plus que des processeurs système
– La planification des processus sur les processeurs
est nécessaire
10
Processeur
11
Memoire
• Un processus a sa propre mémoire (isolée des
autres processus)
– Code
– Instructions
– Données
• Les instructions sont amenées de la RAM dans
le processeur et exécutées
– Nous disons que le processus s'exécute sur le
processeur
SO: Curs 3: Procese 12
Espace d'adressage (virtuel)
• Chaque processus a un espace d'adressage
(virtuel)
– Assure l'isolement des autres processus
– Le processus a l'impression d'utiliser
exclusivement la mémoire
• Toutes les ressources de mémoire (code,
données, bibliothèques, pile) sont référencées
par zones dans l'espace d'adressage virtuel
13
Espace d'adressage (virtuel)
14
E/S
• Un processus communique avec l'extérieur:
disque, réseau, clavier, moniteur
• La communication se fait généralement par les
descripteurs de fichiers.
– tableau de descripteurs de fichier
– descripteur de fichier: un fichier, un socket, un
terminal, un périphérique, etc.
• Les opérations d'E/S bloque le processus
– E/S est plus lent que le processeur
– le processus attend la fin de l'opération
15
Tableau de descripteur de fichier
16
L’interface E/S de processus
Types de processus (CPU)
• CPU bound (CPU intensive)
– utilise beaucoup le processeur
• I/O bound (I/O intensive)
– utilise rarement le processeur
– faire des opérations d'E / S -> se bloque
17
Types de processus (Utilisateur)
• Interactif (foreground)
– interagir avec l'utilisateur
• Non interactif (batch, background)
– services, démons
18
LES ATTRIBUTES D’UN PROCESSUS
19
A quoi ressemble un processus SE?
• PID (Process ID)
– le identifiant de processus
• PCB (Process Control Block)
– Une structure de données
– Décrit un processus au niveau SO
• Informations sur les ressources utilisées
• Liens vers d'autres structures
• Sécurité, surveillance, informations comptables
20
Ressources
• Temps d’execution sur processeur
• Mémoire (code et données)
• Tableau des descripteurs de fichiers
• Certaines ressources peuvent être partagées
avec d'autres processus
SO: Curs 3: Procese 21
Attributs d'un processus
• PID
• parent PID
• pointeurs vers les ressources
– tableau de descripteurs, tableau de mémoire …
• état (en cours, en attente)
• le quantum de temps d'exécution
• comptabilisation des ressources consommées
• utilisateur, groupe
22
CREATION D’UN PROCESSUS
23
Nouveau processus
• À partir d'un exécutable (programme)
• Un autre processus (parent) crée un processus
(enfant)
• Le nouveau processus (processus enfant) remplit
sa mémoire avec des informations exécutables
– L'action s'appelle également load, load time
– fait par le chargeur (loader)
24
Hiérarchie des processus
• Un processus peut créer un ou plusieurs
processus enfants.
• Un procès peut avoir un processus parent
25
Démarrage - UNIX
• init est au sommet de la hiérarchie des processus
– PID 1
• init est créé par le noyau au boot
• init crée ensuite les processus de démarrage
• les processus de démarrage créent d'autres
processus, etc.
26
Démarrage - Windows
• Il n’existe pas un hiérarchie propre
• csrss.exe - Client Server Runtime Process
• winlogon.exe - Login Manager
• services.exe - Services
27
Processus et exécutables
• Un ou plusieurs processus proviennent d'un fichier
exécutable
• Le fichier exécutable contient essentiellement les
données et le code du futur processus
• Le processus a aussi des zones de mémoire non
décrites dans l'exécutable associé
– stack
– heap (malloc)
– zones pour bibliothèques dynamiques
28
Espace d'adressage (virtuel)
29
Nouveau Processus - Windows
if (!CreateProcess(NULL, "notepad", NULL, NULL,
TRUE, NORMAL_PRIORITY_CLASS, NULL, NULL, &pi)) {
printf("Cannot execute notepad.n");
}
else {
printf("notepad runningn");
printf("notepad handle is 0x%xn", pi.hProcess);
// ...
CloseHandle (pi.hProcess);
}
30
Nouveau Processus - UNIX
• Séparation entre la création d'un nouveau
processus et le chargement de données à partir
d'un exécutable
• fork: créer un nouveau processus (enfant)
(presque identique au processus parent)
• exec: chargement d'informations d'un exécutable
dans la mémoire du processus enfant
31
fork
• Nouveau processus
• Une clone de processus parent
• retour deux fois
– en parent
– en enfant
• Le nouveau processus a
– Un copie de PCB
– Nouveau PID
– Nouveau tableau des descripteurs (avec les même pointeurs)
– Un copie de la mémoire
32
fork bomb
while (1)
{
fork ();
}
33
fork bomb
while (1)
{
fork ();
}
34
Nouveau Processus - UNIX - fork
pid_t pid = fork ();
if (pid < 0) {
perror ("fork");
}
else if (pid > 0) {
// This is the parent process
printf ("Child process PID is %dn", pid);
}
else {
// This is the child process
printf ("My PID is %dn", getpid ());
}
35
exec
• Charge un nouveau exécutable
• Remplace les donnes d’exécutable courent
(l’image) avec les données chargées
d’exécutable
• ne retour pas
36
Nouveau Processus - UNIX - exec
int execl(const char *path, const char *arg0, ...
/*, (char *)0 */);
int execle(const char *path, const char *arg0, ...
/*, (char *)0, char *const envp[] */);
int execv(const char *path, char *const argv[]);
int execve(const char *path, char *const argv[],
char *const envp[]);
int execvp(const char *file, char *const argv[]);
37
Nouveau Processus - UNIX - exec
if (!execl ("/usr/bin/cowsay", "/usr/bin/cowsay",
"Hello", NULL))
{
perror ("execl");
abort ();
}
// if successful, this is never executed
38
Exemple
39
Exemple
1. Une chaîne est écrite au stdin
2. La chaîne est interprétée par le shell dans un chemin
d’exécutable (et des arguments)
3. Le processus shell crée un nouveau processus (fork)
– Le processus enfant est planifié par le planificateur
4. Le processus enfant "charge" les données et le code
de l'exécutable (exec)
– Le processus parent du processus enfant est le processus
shell
5. Le processus parent attend le fini du processus enfant
40
Exemple
41
shell
parent
shell
child
fork()
child
exec(“/bin/ls”)
ls
shell
parent
wait()
Exemple
int status;
pid_t pid = fork ();
if (pid < 0) {
perror ("fork");
abort ();
}
else
if (pid > 0) {
// This is the parent process
// printf ("Child process PID is %dn", pid);
waitpid (pid, &status, 0);
}
else {
// This is the child process
if (!execl ("/bin/ls", "/bin/ls", "-l", NULL)) {
perror ("Error loading /bin/lsn");
abort ();
}
}
42
fork, exec et redirection
int fd;
pid_t pid = fork ();
if (pid == 0)
{
// redirect
fd = open ("output", O_TRUNC | O_WRONLY | O_CREAT, 0644);
dup2 (fd, 1);
if (!execl ("/bin/ls", "/bin/ls", "-l", NULL))
{
perror ("Error loading /bin/lsn");
abort ();
}
}
SO: Curs 3: Procese 43
FERMER UN PROCESSUS
44
Fermer un processus
• Terminer l’exécution
• Fermé par le SE
45
Terminer l'exécution d'un processus
• Le processus termine sa exécution
– arrivé la fin du programme
– appelé exit
• La décision c’est au processus
46
Fermé par le SE
• Le SE ferme le processus
– à la demande d'un autre processus (kill)
– le processus a effectué une erreur
• Envoyer un signal (Unix) ou une exception
(Windows)
47
Effacer le processus
• Le SE efface toute les informations du
processus
– PCB
– PID
– Tableau des descripteurs
– Mémoire alloue
– …
• Le SE envoie un signal (Unix) / message
(Windows) aux processus parent
48
Attendre le fin du processus
• Synchroniser l'action de certains processus
– tu fais X après Y
– le processus qui fait l'action X attend la fin de
l'exécution du processus qui fait l’action Y
• Cela s'appelle "attendre un processus"
• Informations utiles sur le fin du processus
– la valeur de retour
49
La valeur de retour
int main ()
{
// do some work ...
if (error)
{
// exit with an error code, here -120
exit (-120);
}
// exit without error, success
return 0;
}
50
Exemple
int fd, status;
pid_t pid = fork ();
if (pid == 0)
{
// child
if (!execl ("/bin/ls", "/bin/ls", "-l", NULL))
{
perror ("Error loading /bin/lsn");
abort ();
}
}
else if (pid > 0) {
// parent
waitpid (pid, &status, 0);
printf ("/bin/ls exited with %dn", WEXITSTATUS (status));
}
51
Processus orphelin
• Un processus dont le parent a terminé sa
exécution
• Il perd sa connexion dans la hiérarchie des
processus
• Il est adopté par un processus dédié (init sur
Unix)
52
Processus zombie
• Un processus qui s'est terminé mais n'était pas
attendu
– Les informations résiduelles restent (elles prouvent
être utilisé par le processus parent)
• Si un processus zombie reste orphelin, il est
adopté par init puis il est terminé
• Les processus zombies plus longs occupent (en
vain) les ressources de système
53
Le operateur shell &
• En règle générale, le shell attend le fin des
processus créés
• L'opérateur &: shell n'attend plus la fin du
processus
– le processus s'exécute en background
– le shell contrôle le stdin
54
Exemple
55
shell
parent
shell
child
fork()
child
exec(“/bin/ls”)
ls
shell
parent
Mot clés
• Processus
• Multitasking
• Planificateur
• Etat
• NEW
• RUNNING
• READY
• WAITING
• TERMINATE
• init
• Hiérarchie des processus
• CreateProcess
• fork
• exec
• exit
• Wait
• valeur de retour
• processus orphelin
• processus zombie
• processus en background
56
Questions
57

Contenu connexe

Tendances

Systemes d'explotation: Threads
Systemes d'explotation: ThreadsSystemes d'explotation: Threads
Systemes d'explotation: ThreadsAlexandru Radovici
 
SdE 2 - Langage C, Allocation de memoire
SdE 2 - Langage C, Allocation de memoireSdE 2 - Langage C, Allocation de memoire
SdE 2 - Langage C, Allocation de memoireAlexandru Radovici
 
Systemes d'explotation: Mémoire Virtuelle
Systemes d'explotation: Mémoire VirtuelleSystemes d'explotation: Mémoire Virtuelle
Systemes d'explotation: Mémoire VirtuelleAlexandru Radovici
 
SdE 8 - Synchronisation de execution
SdE 8 - Synchronisation de executionSdE 8 - Synchronisation de execution
SdE 8 - Synchronisation de executionAlexandru Radovici
 
SdE 11: Implémentation de Système de Fichiers
SdE 11: Implémentation de Système de FichiersSdE 11: Implémentation de Système de Fichiers
SdE 11: Implémentation de Système de FichiersAlexandru Radovici
 
Principes de fonctionnement unix
Principes de fonctionnement unixPrincipes de fonctionnement unix
Principes de fonctionnement unixwebreaker
 
SdE TP 3 - Fonctions d'entrée et sortie
SdE TP 3 - Fonctions d'entrée et sortieSdE TP 3 - Fonctions d'entrée et sortie
SdE TP 3 - Fonctions d'entrée et sortieAlexandru Radovici
 
Solutions temps réel sous linux
Solutions temps réel sous linuxSolutions temps réel sous linux
Solutions temps réel sous linuxembedded-linux-bdx
 

Tendances (20)

SdE 3 - System de fichiers
SdE 3 - System de fichiersSdE 3 - System de fichiers
SdE 3 - System de fichiers
 
SdE 3 - Systemes de fichiers
SdE 3 - Systemes de fichiersSdE 3 - Systemes de fichiers
SdE 3 - Systemes de fichiers
 
SdE - Introduction
SdE - IntroductionSdE - Introduction
SdE - Introduction
 
Systemes d'explotation: Threads
Systemes d'explotation: ThreadsSystemes d'explotation: Threads
Systemes d'explotation: Threads
 
SdE 2 - Langage C, Allocation de memoire
SdE 2 - Langage C, Allocation de memoireSdE 2 - Langage C, Allocation de memoire
SdE 2 - Langage C, Allocation de memoire
 
SdE 1 - Introduction
SdE 1 - IntroductionSdE 1 - Introduction
SdE 1 - Introduction
 
Systemes d'explotation: Mémoire Virtuelle
Systemes d'explotation: Mémoire VirtuelleSystemes d'explotation: Mémoire Virtuelle
Systemes d'explotation: Mémoire Virtuelle
 
SdE 2 - Introduction
SdE 2 - IntroductionSdE 2 - Introduction
SdE 2 - Introduction
 
SdE 8 - Synchronisation de execution
SdE 8 - Synchronisation de executionSdE 8 - Synchronisation de execution
SdE 8 - Synchronisation de execution
 
SdE 11: Implémentation de Système de Fichiers
SdE 11: Implémentation de Système de FichiersSdE 11: Implémentation de Système de Fichiers
SdE 11: Implémentation de Système de Fichiers
 
SdE 6 - Gestion de la memoire
SdE 6 - Gestion de la memoireSdE 6 - Gestion de la memoire
SdE 6 - Gestion de la memoire
 
SdE 9 - Threads
SdE 9 - ThreadsSdE 9 - Threads
SdE 9 - Threads
 
SdE2 - Planification, IPC
SdE2 - Planification, IPCSdE2 - Planification, IPC
SdE2 - Planification, IPC
 
SdE 2 - System de fichiers
SdE 2 - System de fichiersSdE 2 - System de fichiers
SdE 2 - System de fichiers
 
Principes de fonctionnement unix
Principes de fonctionnement unixPrincipes de fonctionnement unix
Principes de fonctionnement unix
 
ALF - Introduction
ALF - IntroductionALF - Introduction
ALF - Introduction
 
ALF1 - Introduction
ALF1 - IntroductionALF1 - Introduction
ALF1 - Introduction
 
SdE TP 3 - Fonctions d'entrée et sortie
SdE TP 3 - Fonctions d'entrée et sortieSdE TP 3 - Fonctions d'entrée et sortie
SdE TP 3 - Fonctions d'entrée et sortie
 
ALF 1 - Introduction
ALF 1 - IntroductionALF 1 - Introduction
ALF 1 - Introduction
 
Solutions temps réel sous linux
Solutions temps réel sous linuxSolutions temps réel sous linux
Solutions temps réel sous linux
 

Similaire à SdE 4: Processus

0081-cours-systemes-exploitations.ppt
0081-cours-systemes-exploitations.ppt0081-cours-systemes-exploitations.ppt
0081-cours-systemes-exploitations.pptDenisKouakou1
 
Gestion des threads
Gestion des threadsGestion des threads
Gestion des threadsSana Aroussi
 
Cours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETCours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETMedBechir
 
coursystemedexploitaionsghaieranouar-150103105816-conversion-gate01.pdf
coursystemedexploitaionsghaieranouar-150103105816-conversion-gate01.pdfcoursystemedexploitaionsghaieranouar-150103105816-conversion-gate01.pdf
coursystemedexploitaionsghaieranouar-150103105816-conversion-gate01.pdfRihabBENLAMINE
 
cours-gratuit.com--id-3443.pdf
cours-gratuit.com--id-3443.pdfcours-gratuit.com--id-3443.pdf
cours-gratuit.com--id-3443.pdfSouha Bennani
 
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
 
Cours SE Ordonnancement des processus - IPSET.pdf
Cours SE Ordonnancement des processus - IPSET.pdfCours SE Ordonnancement des processus - IPSET.pdf
Cours SE Ordonnancement des processus - IPSET.pdfMedBechir
 
Expose linux gestion des processus
Expose linux  gestion des processusExpose linux  gestion des processus
Expose linux gestion des processusFatima Zahra Fagroud
 
Cour systeme d'exploitation sghaier anouar
Cour systeme d'exploitation sghaier anouarCour systeme d'exploitation sghaier anouar
Cour systeme d'exploitation sghaier anouarAnouar Sghaier
 
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
 
Gestion des processus
Gestion des processusGestion des processus
Gestion des processusguebba sara
 
Lin10 formation-linux-red-hat-administration
Lin10 formation-linux-red-hat-administrationLin10 formation-linux-red-hat-administration
Lin10 formation-linux-red-hat-administrationCERTyou Formation
 

Similaire à SdE 4: Processus (20)

1488135632336.pdf
1488135632336.pdf1488135632336.pdf
1488135632336.pdf
 
0081-cours-systemes-exploitations.ppt
0081-cours-systemes-exploitations.ppt0081-cours-systemes-exploitations.ppt
0081-cours-systemes-exploitations.ppt
 
Gestion des threads
Gestion des threadsGestion des threads
Gestion des threads
 
Cours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETCours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSET
 
SYSTèmes d'exploitation
SYSTèmes d'exploitationSYSTèmes d'exploitation
SYSTèmes d'exploitation
 
Boot
BootBoot
Boot
 
Les nouveautés de PowerShell 3.0
Les nouveautés de PowerShell 3.0Les nouveautés de PowerShell 3.0
Les nouveautés de PowerShell 3.0
 
coursystemedexploitaionsghaieranouar-150103105816-conversion-gate01.pdf
coursystemedexploitaionsghaieranouar-150103105816-conversion-gate01.pdfcoursystemedexploitaionsghaieranouar-150103105816-conversion-gate01.pdf
coursystemedexploitaionsghaieranouar-150103105816-conversion-gate01.pdf
 
Chapitre 4 Linux
Chapitre 4 LinuxChapitre 4 Linux
Chapitre 4 Linux
 
Cours se chap3_2
Cours se chap3_2Cours se chap3_2
Cours se chap3_2
 
cours-gratuit.com--id-3443.pdf
cours-gratuit.com--id-3443.pdfcours-gratuit.com--id-3443.pdf
cours-gratuit.com--id-3443.pdf
 
Développement informatique : Programmation concurrente
Développement informatique : Programmation concurrenteDéveloppement informatique : Programmation concurrente
Développement informatique : Programmation concurrente
 
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
 
Cours SE Ordonnancement des processus - IPSET.pdf
Cours SE Ordonnancement des processus - IPSET.pdfCours SE Ordonnancement des processus - IPSET.pdf
Cours SE Ordonnancement des processus - IPSET.pdf
 
Cours se chap3
Cours se chap3Cours se chap3
Cours se chap3
 
Expose linux gestion des processus
Expose linux  gestion des processusExpose linux  gestion des processus
Expose linux gestion des processus
 
Cour systeme d'exploitation sghaier anouar
Cour systeme d'exploitation sghaier anouarCour systeme d'exploitation sghaier anouar
Cour systeme d'exploitation sghaier anouar
 
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
 
Gestion des processus
Gestion des processusGestion des processus
Gestion des processus
 
Lin10 formation-linux-red-hat-administration
Lin10 formation-linux-red-hat-administrationLin10 formation-linux-red-hat-administration
Lin10 formation-linux-red-hat-administration
 

Plus de Alexandru Radovici (20)

SdE2 - Pilot Tock
SdE2 - Pilot TockSdE2 - Pilot Tock
SdE2 - Pilot Tock
 
SdE2 - Systèmes embarquées
SdE2 - Systèmes embarquéesSdE2 - Systèmes embarquées
SdE2 - Systèmes embarquées
 
SdE2 - Introduction
SdE2 - IntroductionSdE2 - Introduction
SdE2 - Introduction
 
MDAD 6 - AIDL and Services
MDAD 6 - AIDL and ServicesMDAD 6 - AIDL and Services
MDAD 6 - AIDL and Services
 
MDAD 5 - Threads
MDAD 5 - ThreadsMDAD 5 - Threads
MDAD 5 - Threads
 
MDAD 4 - Lists, adapters and recycling
MDAD 4 - Lists, adapters and recyclingMDAD 4 - Lists, adapters and recycling
MDAD 4 - Lists, adapters and recycling
 
MDAD 3 - Basics of UI Applications
MDAD 3 - Basics of UI ApplicationsMDAD 3 - Basics of UI Applications
MDAD 3 - Basics of UI Applications
 
MDAD 2 - Introduction to the Android Framework
MDAD 2 - Introduction to the Android FrameworkMDAD 2 - Introduction to the Android Framework
MDAD 2 - Introduction to the Android Framework
 
MDAD 1 - Hardware
MDAD 1 - HardwareMDAD 1 - Hardware
MDAD 1 - Hardware
 
MDAD 0 - Introduction
MDAD 0 - IntroductionMDAD 0 - Introduction
MDAD 0 - Introduction
 
SdE 11 - Reseau
SdE 11 - ReseauSdE 11 - Reseau
SdE 11 - Reseau
 
SdE 8 - Memoire Virtuelle
SdE 8 - Memoire VirtuelleSdE 8 - Memoire Virtuelle
SdE 8 - Memoire Virtuelle
 
SdE 7 - Gestion de la Mémoire
SdE 7 - Gestion de la MémoireSdE 7 - Gestion de la Mémoire
SdE 7 - Gestion de la Mémoire
 
ALF 6 - Parser
ALF 6 - ParserALF 6 - Parser
ALF 6 - Parser
 
ALF 5 - Parser
ALF 5 - ParserALF 5 - Parser
ALF 5 - Parser
 
ALF 4 - Grammaires
ALF 4 - GrammairesALF 4 - Grammaires
ALF 4 - Grammaires
 
ALF 3 - Expressions régulières et Lexer
ALF 3 - Expressions régulières et LexerALF 3 - Expressions régulières et Lexer
ALF 3 - Expressions régulières et Lexer
 
ALF 1 - Automates finis
ALF 1 - Automates finis ALF 1 - Automates finis
ALF 1 - Automates finis
 
DAPM 1 - Introduction
DAPM 1 - IntroductionDAPM 1 - Introduction
DAPM 1 - Introduction
 
ALF 1 - Introduction
ALF 1 - IntroductionALF 1 - Introduction
ALF 1 - Introduction
 

Dernier

support de formation Consignation et déconsignation des energies et produits...
support de formation  Consignation et déconsignation des energies et produits...support de formation  Consignation et déconsignation des energies et produits...
support de formation Consignation et déconsignation des energies et produits...ABDELHADI ENNAIR
 
Présentation Webinaire Cohésion - Concevoir et mettre en place une CMDB, comm...
Présentation Webinaire Cohésion - Concevoir et mettre en place une CMDB, comm...Présentation Webinaire Cohésion - Concevoir et mettre en place une CMDB, comm...
Présentation Webinaire Cohésion - Concevoir et mettre en place une CMDB, comm...Technologia Formation
 
Cahier-de-Charges-Communication-Digitale-1-1.pdf
Cahier-de-Charges-Communication-Digitale-1-1.pdfCahier-de-Charges-Communication-Digitale-1-1.pdf
Cahier-de-Charges-Communication-Digitale-1-1.pdfTOP AUTO CIV
 
Épreuve de leçon SII.pptx
Épreuve de leçon  SII.pptxÉpreuve de leçon  SII.pptx
Épreuve de leçon SII.pptxSAIDALI701276
 
Guide d'utilisation Microsoft PowerPoint 2016
Guide d'utilisation Microsoft PowerPoint 2016Guide d'utilisation Microsoft PowerPoint 2016
Guide d'utilisation Microsoft PowerPoint 2016ImnaTech
 
Newsletter SPW Agriculture en province du Luxembourg du 17-05-24
Newsletter SPW Agriculture en province du Luxembourg du 17-05-24Newsletter SPW Agriculture en province du Luxembourg du 17-05-24
Newsletter SPW Agriculture en province du Luxembourg du 17-05-24BenotGeorges3
 
Comment enseigner la langue française en Colombie?
Comment enseigner la langue française en Colombie?Comment enseigner la langue française en Colombie?
Comment enseigner la langue française en Colombie?sashaflor182
 
Sainte Jeanne d'Arc, patronne de la France 1412-1431.pptx
Sainte Jeanne d'Arc, patronne de la France 1412-1431.pptxSainte Jeanne d'Arc, patronne de la France 1412-1431.pptx
Sainte Jeanne d'Arc, patronne de la France 1412-1431.pptxMartin M Flynn
 
Résultats enquête RH 2024 Fonction Publique.pdf
Résultats enquête RH 2024 Fonction Publique.pdfRésultats enquête RH 2024 Fonction Publique.pdf
Résultats enquête RH 2024 Fonction Publique.pdfGERESO
 
Decret-n°19-10-du-23-janvier-2019-reglementant-lexportation-des-déchets-spéci...
Decret-n°19-10-du-23-janvier-2019-reglementant-lexportation-des-déchets-spéci...Decret-n°19-10-du-23-janvier-2019-reglementant-lexportation-des-déchets-spéci...
Decret-n°19-10-du-23-janvier-2019-reglementant-lexportation-des-déchets-spéci...zidani2
 
EL KATRY Reem: Proposition de Programme Artistique et Exposition pour les Écoles
EL KATRY Reem: Proposition de Programme Artistique et Exposition pour les ÉcolesEL KATRY Reem: Proposition de Programme Artistique et Exposition pour les Écoles
EL KATRY Reem: Proposition de Programme Artistique et Exposition pour les ÉcolesSOLIANAEvelyne
 

Dernier (11)

support de formation Consignation et déconsignation des energies et produits...
support de formation  Consignation et déconsignation des energies et produits...support de formation  Consignation et déconsignation des energies et produits...
support de formation Consignation et déconsignation des energies et produits...
 
Présentation Webinaire Cohésion - Concevoir et mettre en place une CMDB, comm...
Présentation Webinaire Cohésion - Concevoir et mettre en place une CMDB, comm...Présentation Webinaire Cohésion - Concevoir et mettre en place une CMDB, comm...
Présentation Webinaire Cohésion - Concevoir et mettre en place une CMDB, comm...
 
Cahier-de-Charges-Communication-Digitale-1-1.pdf
Cahier-de-Charges-Communication-Digitale-1-1.pdfCahier-de-Charges-Communication-Digitale-1-1.pdf
Cahier-de-Charges-Communication-Digitale-1-1.pdf
 
Épreuve de leçon SII.pptx
Épreuve de leçon  SII.pptxÉpreuve de leçon  SII.pptx
Épreuve de leçon SII.pptx
 
Guide d'utilisation Microsoft PowerPoint 2016
Guide d'utilisation Microsoft PowerPoint 2016Guide d'utilisation Microsoft PowerPoint 2016
Guide d'utilisation Microsoft PowerPoint 2016
 
Newsletter SPW Agriculture en province du Luxembourg du 17-05-24
Newsletter SPW Agriculture en province du Luxembourg du 17-05-24Newsletter SPW Agriculture en province du Luxembourg du 17-05-24
Newsletter SPW Agriculture en province du Luxembourg du 17-05-24
 
Comment enseigner la langue française en Colombie?
Comment enseigner la langue française en Colombie?Comment enseigner la langue française en Colombie?
Comment enseigner la langue française en Colombie?
 
Sainte Jeanne d'Arc, patronne de la France 1412-1431.pptx
Sainte Jeanne d'Arc, patronne de la France 1412-1431.pptxSainte Jeanne d'Arc, patronne de la France 1412-1431.pptx
Sainte Jeanne d'Arc, patronne de la France 1412-1431.pptx
 
Résultats enquête RH 2024 Fonction Publique.pdf
Résultats enquête RH 2024 Fonction Publique.pdfRésultats enquête RH 2024 Fonction Publique.pdf
Résultats enquête RH 2024 Fonction Publique.pdf
 
Decret-n°19-10-du-23-janvier-2019-reglementant-lexportation-des-déchets-spéci...
Decret-n°19-10-du-23-janvier-2019-reglementant-lexportation-des-déchets-spéci...Decret-n°19-10-du-23-janvier-2019-reglementant-lexportation-des-déchets-spéci...
Decret-n°19-10-du-23-janvier-2019-reglementant-lexportation-des-déchets-spéci...
 
EL KATRY Reem: Proposition de Programme Artistique et Exposition pour les Écoles
EL KATRY Reem: Proposition de Programme Artistique et Exposition pour les ÉcolesEL KATRY Reem: Proposition de Programme Artistique et Exposition pour les Écoles
EL KATRY Reem: Proposition de Programme Artistique et Exposition pour les Écoles
 

SdE 4: Processus

  • 2. Linus Torvalds • Finlandais • Étudiant à Helsinki • Git • Linux
  • 3. Contenu • Processus – Rôle – Attributs • Planification • Démarrage de SE • Hiérarchie de processus • Créer un processus – Autres opérations de traitement • Fermer un processus • API pour travailler avec des processus 3
  • 4. Bibliographie pour aujourd'hui • Modern Operating Systems – Chapitre 2 • 2.1 • Operating Systems Concepts – Chapitre 3 4
  • 5. Processus • le unité de base du exécution • en SE, il y a deux abstractions de base – fichier - abstraction pour l’information / les données – processus – abstraction pour des actions 5
  • 7. Qu'est-ce qu'un processus? • Un programme en cours d'exécution • Encapsulation / abstraction de l'exécution dans SO • Abstraction sur processeur, mémoire, E / S SO: Curs 3: Procese 7
  • 9. API utilisée par les processus 9 processeur memoire E/S threads memoire virtuelle descripteurs de fichiers
  • 10. Processeur • Un processus a un ou plusieurs threads – Un thread exécute des instructions sur un processeur • En règle générale, les processus système sont plus que des processeurs système – La planification des processus sur les processeurs est nécessaire 10
  • 12. Memoire • Un processus a sa propre mémoire (isolée des autres processus) – Code – Instructions – Données • Les instructions sont amenées de la RAM dans le processeur et exécutées – Nous disons que le processus s'exécute sur le processeur SO: Curs 3: Procese 12
  • 13. Espace d'adressage (virtuel) • Chaque processus a un espace d'adressage (virtuel) – Assure l'isolement des autres processus – Le processus a l'impression d'utiliser exclusivement la mémoire • Toutes les ressources de mémoire (code, données, bibliothèques, pile) sont référencées par zones dans l'espace d'adressage virtuel 13
  • 15. E/S • Un processus communique avec l'extérieur: disque, réseau, clavier, moniteur • La communication se fait généralement par les descripteurs de fichiers. – tableau de descripteurs de fichier – descripteur de fichier: un fichier, un socket, un terminal, un périphérique, etc. • Les opérations d'E/S bloque le processus – E/S est plus lent que le processeur – le processus attend la fin de l'opération 15
  • 16. Tableau de descripteur de fichier 16 L’interface E/S de processus
  • 17. Types de processus (CPU) • CPU bound (CPU intensive) – utilise beaucoup le processeur • I/O bound (I/O intensive) – utilise rarement le processeur – faire des opérations d'E / S -> se bloque 17
  • 18. Types de processus (Utilisateur) • Interactif (foreground) – interagir avec l'utilisateur • Non interactif (batch, background) – services, démons 18
  • 19. LES ATTRIBUTES D’UN PROCESSUS 19
  • 20. A quoi ressemble un processus SE? • PID (Process ID) – le identifiant de processus • PCB (Process Control Block) – Une structure de données – Décrit un processus au niveau SO • Informations sur les ressources utilisées • Liens vers d'autres structures • Sécurité, surveillance, informations comptables 20
  • 21. Ressources • Temps d’execution sur processeur • Mémoire (code et données) • Tableau des descripteurs de fichiers • Certaines ressources peuvent être partagées avec d'autres processus SO: Curs 3: Procese 21
  • 22. Attributs d'un processus • PID • parent PID • pointeurs vers les ressources – tableau de descripteurs, tableau de mémoire … • état (en cours, en attente) • le quantum de temps d'exécution • comptabilisation des ressources consommées • utilisateur, groupe 22
  • 24. Nouveau processus • À partir d'un exécutable (programme) • Un autre processus (parent) crée un processus (enfant) • Le nouveau processus (processus enfant) remplit sa mémoire avec des informations exécutables – L'action s'appelle également load, load time – fait par le chargeur (loader) 24
  • 25. Hiérarchie des processus • Un processus peut créer un ou plusieurs processus enfants. • Un procès peut avoir un processus parent 25
  • 26. Démarrage - UNIX • init est au sommet de la hiérarchie des processus – PID 1 • init est créé par le noyau au boot • init crée ensuite les processus de démarrage • les processus de démarrage créent d'autres processus, etc. 26
  • 27. Démarrage - Windows • Il n’existe pas un hiérarchie propre • csrss.exe - Client Server Runtime Process • winlogon.exe - Login Manager • services.exe - Services 27
  • 28. Processus et exécutables • Un ou plusieurs processus proviennent d'un fichier exécutable • Le fichier exécutable contient essentiellement les données et le code du futur processus • Le processus a aussi des zones de mémoire non décrites dans l'exécutable associé – stack – heap (malloc) – zones pour bibliothèques dynamiques 28
  • 30. Nouveau Processus - Windows if (!CreateProcess(NULL, "notepad", NULL, NULL, TRUE, NORMAL_PRIORITY_CLASS, NULL, NULL, &pi)) { printf("Cannot execute notepad.n"); } else { printf("notepad runningn"); printf("notepad handle is 0x%xn", pi.hProcess); // ... CloseHandle (pi.hProcess); } 30
  • 31. Nouveau Processus - UNIX • Séparation entre la création d'un nouveau processus et le chargement de données à partir d'un exécutable • fork: créer un nouveau processus (enfant) (presque identique au processus parent) • exec: chargement d'informations d'un exécutable dans la mémoire du processus enfant 31
  • 32. fork • Nouveau processus • Une clone de processus parent • retour deux fois – en parent – en enfant • Le nouveau processus a – Un copie de PCB – Nouveau PID – Nouveau tableau des descripteurs (avec les même pointeurs) – Un copie de la mémoire 32
  • 35. Nouveau Processus - UNIX - fork pid_t pid = fork (); if (pid < 0) { perror ("fork"); } else if (pid > 0) { // This is the parent process printf ("Child process PID is %dn", pid); } else { // This is the child process printf ("My PID is %dn", getpid ()); } 35
  • 36. exec • Charge un nouveau exécutable • Remplace les donnes d’exécutable courent (l’image) avec les données chargées d’exécutable • ne retour pas 36
  • 37. Nouveau Processus - UNIX - exec int execl(const char *path, const char *arg0, ... /*, (char *)0 */); int execle(const char *path, const char *arg0, ... /*, (char *)0, char *const envp[] */); int execv(const char *path, char *const argv[]); int execve(const char *path, char *const argv[], char *const envp[]); int execvp(const char *file, char *const argv[]); 37
  • 38. Nouveau Processus - UNIX - exec if (!execl ("/usr/bin/cowsay", "/usr/bin/cowsay", "Hello", NULL)) { perror ("execl"); abort (); } // if successful, this is never executed 38
  • 40. Exemple 1. Une chaîne est écrite au stdin 2. La chaîne est interprétée par le shell dans un chemin d’exécutable (et des arguments) 3. Le processus shell crée un nouveau processus (fork) – Le processus enfant est planifié par le planificateur 4. Le processus enfant "charge" les données et le code de l'exécutable (exec) – Le processus parent du processus enfant est le processus shell 5. Le processus parent attend le fini du processus enfant 40
  • 42. Exemple int status; pid_t pid = fork (); if (pid < 0) { perror ("fork"); abort (); } else if (pid > 0) { // This is the parent process // printf ("Child process PID is %dn", pid); waitpid (pid, &status, 0); } else { // This is the child process if (!execl ("/bin/ls", "/bin/ls", "-l", NULL)) { perror ("Error loading /bin/lsn"); abort (); } } 42
  • 43. fork, exec et redirection int fd; pid_t pid = fork (); if (pid == 0) { // redirect fd = open ("output", O_TRUNC | O_WRONLY | O_CREAT, 0644); dup2 (fd, 1); if (!execl ("/bin/ls", "/bin/ls", "-l", NULL)) { perror ("Error loading /bin/lsn"); abort (); } } SO: Curs 3: Procese 43
  • 45. Fermer un processus • Terminer l’exécution • Fermé par le SE 45
  • 46. Terminer l'exécution d'un processus • Le processus termine sa exécution – arrivé la fin du programme – appelé exit • La décision c’est au processus 46
  • 47. Fermé par le SE • Le SE ferme le processus – à la demande d'un autre processus (kill) – le processus a effectué une erreur • Envoyer un signal (Unix) ou une exception (Windows) 47
  • 48. Effacer le processus • Le SE efface toute les informations du processus – PCB – PID – Tableau des descripteurs – Mémoire alloue – … • Le SE envoie un signal (Unix) / message (Windows) aux processus parent 48
  • 49. Attendre le fin du processus • Synchroniser l'action de certains processus – tu fais X après Y – le processus qui fait l'action X attend la fin de l'exécution du processus qui fait l’action Y • Cela s'appelle "attendre un processus" • Informations utiles sur le fin du processus – la valeur de retour 49
  • 50. La valeur de retour int main () { // do some work ... if (error) { // exit with an error code, here -120 exit (-120); } // exit without error, success return 0; } 50
  • 51. Exemple int fd, status; pid_t pid = fork (); if (pid == 0) { // child if (!execl ("/bin/ls", "/bin/ls", "-l", NULL)) { perror ("Error loading /bin/lsn"); abort (); } } else if (pid > 0) { // parent waitpid (pid, &status, 0); printf ("/bin/ls exited with %dn", WEXITSTATUS (status)); } 51
  • 52. Processus orphelin • Un processus dont le parent a terminé sa exécution • Il perd sa connexion dans la hiérarchie des processus • Il est adopté par un processus dédié (init sur Unix) 52
  • 53. Processus zombie • Un processus qui s'est terminé mais n'était pas attendu – Les informations résiduelles restent (elles prouvent être utilisé par le processus parent) • Si un processus zombie reste orphelin, il est adopté par init puis il est terminé • Les processus zombies plus longs occupent (en vain) les ressources de système 53
  • 54. Le operateur shell & • En règle générale, le shell attend le fin des processus créés • L'opérateur &: shell n'attend plus la fin du processus – le processus s'exécute en background – le shell contrôle le stdin 54
  • 56. Mot clés • Processus • Multitasking • Planificateur • Etat • NEW • RUNNING • READY • WAITING • TERMINATE • init • Hiérarchie des processus • CreateProcess • fork • exec • exit • Wait • valeur de retour • processus orphelin • processus zombie • processus en background 56