SlideShare une entreprise Scribd logo
1  sur  36
Systèmes
d'exploitation
Threads
Tim Berners-Lee
• Anglais
• Oxford
• www
2
Contenu
• threads
– noyau
– utilisateur
• NPTL
• Threads en Java
3
Bibliographie pour aujourd'hui
• Modern Operating Systems
– Chapitre 2
• 2.2
• Operating Systems Concepts
– Chapitre 4
4
THREAD
5
Threads
• L’unité de planification
• Un processus est forme depuis plusieurs de
threads
6
Processus et threads
7
Thread
8
Proprietes de thread
• ID – identificateur
• TLS – thread local storage
• Stack – la pile
• Registres de CPU
• État de processus
9
Types de thread
• Noyau
– Sont connue par le noyau
– Changement de contexte
• Utilisateur
– Ne sont pas connue par le noyau
– Pas de changement de contexte
10
Types de threads
11
Question?
• Threads Utilisateur
– Un thread fait un action bloquante
– Qu’est qui ce passe?
Toutes les threads se bloque
12
Les états de processus
13
Changement de contexte
14
Implementation des threads
• Many to one
• One to one
• Many to many
15
Many to one
16
• Threads utilisateur
• Chaque thread
utilisateur est panifie
sur en seul thread
noyau
One to one
17
• Threads noyau
• Un thread est planifie sur en
thread noyau
Many to many
18
• Plusieurs des threads
utilisateur son
planifie sur plusiers
des threads noyau
Arrête d’un thread
• Asynchronous
– Le thread este arrêté immédiatement
• Deffered
– Le thread s’arrêté
19
Problemes
• fork et exec
– fork fait un clone a touts les threads?
– exec remplace un seul thread?
• signaux
– quel thread recoit les signaux?
20
Implementation
• Windows
– Threads
– Fibers
• UNIX
– pthreads (NPTL)
– biblioteque
• Java
– Many to many
21
Windows
• Threads
– Noyau
– Un processus a plusieurs des threads noyau
• Fibers
– Utilisateur
– Un thread noyau a plusieurs de thread utilisateur
22
POSIX
23
Nouveau Processus - UNIX
• fork: créer un nouveau processus (enfant)
(presque identique au processus parent)
– copie de mémoire
• exec: chargement d'informations d'un
exécutable dans la mémoire du processus
enfant
– mémoire nouveau
24
Nouveau Thread - Linux
• fork: créer un nouveau processus (enfant)
(presque identique au processus parent)
– Partage toutes les ressources
• Linux n’a pas l’idée de thread
• Un processus c’est un group des threads
25
pthread
• bibliothèque pthread (POSIX Thread)
• NPTL (New POSIX Thread Library)
26
Fonctions
// create a thread
int pthread_create(pthread_t *thread, const pthread_attr_t *attr,
void *(*start_routine)(void *), void *arg);
// stop a thread
int pthread_cancel(pthread_t thread);
// wait for a thread to finish
int pthread_join(pthread_t thread, void **value_ptr);
// send a signal to a thread
int pthread_kill(pthread_t thread, int sig);
// run a function once in a thread
int pthread_once(pthread_once_t *once_control, void (*init_routine)(void));
// detach a thread
int pthread_detach(pthread_t thread)
// exit from a thread
void pthread_exit(void *value_ptr)
27
Exemple
/* this function is run by thread */
void *run(void *void_ptr)
{
// ... thread code here
return NULL;
}
28
Start
void *data;
int main ()
{
int r;
pthread_t run_thread;
r = pthread_create(&run_thread, NULL, run, data);
if (r != 0)
{
perror ("pthread_create");
}
return 0;
}
29
JAVA
30
Etendre Thread
class MyThread extends Thread
{
public void run ()
{
// ... thread code here
}
}
31
Implementer Runnable
class MyThread implements
Runnable
{
public void run ()
{
// ... theread code here
}
}
32
Start
// Thread
MyThread t = new MyThread();
t.start ();
// Runnable
Thread t = new Thread (new MyThread());
t.start ();
33
Arrête du thread
• quand la fonction run se fin
34
Mot clés
• thread
• thread utilisateur
• thread noyau
• fiber
• many to one
• one to many
• many to many
• join
• Thread ID
• TLS
• pthread
• NPTL
• asynchronous exit
• deffered exit
35
Questions
36

Contenu connexe

Tendances

Tendances (20)

SdE 1 - Introduction
SdE 1 - IntroductionSdE 1 - Introduction
SdE 1 - Introduction
 
SdE - Introduction
SdE - IntroductionSdE - Introduction
SdE - Introduction
 
SdE 10 - Threads
SdE 10 - ThreadsSdE 10 - Threads
SdE 10 - Threads
 
SdE 3 - Systemes de fichiers
SdE 3 - Systemes de fichiersSdE 3 - Systemes de fichiers
SdE 3 - Systemes 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 5 - Communication entre processus et Planification
SdE 5 - Communication entre processus et PlanificationSdE 5 - Communication entre processus et Planification
SdE 5 - Communication entre processus et Planification
 
Systemes d'explotation: Threads
Systemes d'explotation: ThreadsSystemes d'explotation: Threads
Systemes d'explotation: Threads
 
SdE2 4 - Processus
SdE2 4 - ProcessusSdE2 4 - Processus
SdE2 4 - Processus
 
SdE 5 - Planification
SdE 5 - PlanificationSdE 5 - Planification
SdE 5 - Planification
 
SdE 6 - Planification
SdE 6 - PlanificationSdE 6 - Planification
SdE 6 - Planification
 
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
 
SdE 4: Processus
SdE 4: ProcessusSdE 4: Processus
SdE 4: Processus
 
SdE 2 - Introduction
SdE 2 - IntroductionSdE 2 - Introduction
SdE 2 - Introduction
 
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
 
SdE2 - Introduction
SdE2 - IntroductionSdE2 - Introduction
SdE2 - Introduction
 
FreeBSD vs Linux, RMLL 2014
FreeBSD vs Linux, RMLL 2014FreeBSD vs Linux, RMLL 2014
FreeBSD vs Linux, RMLL 2014
 
Redis - (nosqlfr meetup #2)
Redis - (nosqlfr meetup #2) Redis - (nosqlfr meetup #2)
Redis - (nosqlfr meetup #2)
 
Formation Linux lpi 101
Formation Linux lpi 101 Formation Linux lpi 101
Formation Linux lpi 101
 
MYSQLDUMP & ZRM COMMUNITY (FR)
MYSQLDUMP & ZRM COMMUNITY (FR)MYSQLDUMP & ZRM COMMUNITY (FR)
MYSQLDUMP & ZRM COMMUNITY (FR)
 
Sysadmin Day #5
Sysadmin Day #5Sysadmin Day #5
Sysadmin Day #5
 

Similaire à SdE 9 - Threads

Lin03 formation-linux-administration-bases-services
Lin03 formation-linux-administration-bases-servicesLin03 formation-linux-administration-bases-services
Lin03 formation-linux-administration-bases-services
CERTyou Formation
 
A la queue leu leu
A la queue leu leuA la queue leu leu
A la queue leu leu
nautilebleu
 

Similaire à SdE 9 - Threads (20)

03_ProgrammationSystemeLinux_Thread.pdf
03_ProgrammationSystemeLinux_Thread.pdf03_ProgrammationSystemeLinux_Thread.pdf
03_ProgrammationSystemeLinux_Thread.pdf
 
Plongée au cœur du Framework .NET 4.5
Plongée au cœur du Framework .NET 4.5Plongée au cœur du Framework .NET 4.5
Plongée au cœur du Framework .NET 4.5
 
Le garbage collector .NEt
Le garbage collector .NEtLe garbage collector .NEt
Le garbage collector .NEt
 
Support NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDBSupport NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDB
 
Lin03 formation-linux-administration-bases-services
Lin03 formation-linux-administration-bases-servicesLin03 formation-linux-administration-bases-services
Lin03 formation-linux-administration-bases-services
 
Principes de fonctionnement unix
Principes de fonctionnement unixPrincipes de fonctionnement unix
Principes de fonctionnement unix
 
SdE2 - Planification, IPC
SdE2 - Planification, IPCSdE2 - Planification, IPC
SdE2 - Planification, IPC
 
A la queue leu leu
A la queue leu leuA la queue leu leu
A la queue leu leu
 
Prez FreeBSD jail
Prez FreeBSD jailPrez FreeBSD jail
Prez FreeBSD jail
 
les Threads
les  Threadsles  Threads
les Threads
 
Couse SE Le système d’exploitation Linux - IPSET.pdf
Couse SE Le système d’exploitation Linux - IPSET.pdfCouse SE Le système d’exploitation Linux - IPSET.pdf
Couse SE Le système d’exploitation Linux - IPSET.pdf
 
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
 
Pm2 pres
Pm2 presPm2 pres
Pm2 pres
 
java_PAR.pdf
java_PAR.pdfjava_PAR.pdf
java_PAR.pdf
 
Admin_Réseaux_linux_cours.pptx
Admin_Réseaux_linux_cours.pptxAdmin_Réseaux_linux_cours.pptx
Admin_Réseaux_linux_cours.pptx
 
Elasticsearch 5.0 les nouveautés
Elasticsearch 5.0 les nouveautésElasticsearch 5.0 les nouveautés
Elasticsearch 5.0 les nouveautés
 
Développement d'un générateur d'intépréteur de bytecodes pour une JVM embarquée
Développement d'un générateur d'intépréteur de bytecodes pour une JVM embarquéeDéveloppement d'un générateur d'intépréteur de bytecodes pour une JVM embarquée
Développement d'un générateur d'intépréteur de bytecodes pour une JVM embarquée
 
0081-cours-systemes-exploitations.ppt
0081-cours-systemes-exploitations.ppt0081-cours-systemes-exploitations.ppt
0081-cours-systemes-exploitations.ppt
 
Solutions temps réel sous linux
Solutions temps réel sous linuxSolutions temps réel sous linux
Solutions temps réel sous linux
 
Programmation concurrente en Java
Programmation concurrente en JavaProgrammation concurrente en Java
Programmation concurrente en Java
 

Plus de Alexandru Radovici

Plus de Alexandru Radovici (19)

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
 
ALF1 - Introduction
ALF1 - IntroductionALF1 - Introduction
ALF1 - 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 - Synchronisation de execution
SdE 8 - Synchronisation de executionSdE 8 - Synchronisation de execution
SdE 8 - Synchronisation de execution
 
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

Dernier (13)

GHASSOUB _Seance 4_ measurement and evaluation in education_-.pptx
GHASSOUB _Seance 4_ measurement and evaluation in education_-.pptxGHASSOUB _Seance 4_ measurement and evaluation in education_-.pptx
GHASSOUB _Seance 4_ measurement and evaluation in education_-.pptx
 
GHASSOUB _Seance 3_ measurement and evaluation in education.pptx
GHASSOUB _Seance 3_ measurement and evaluation in education.pptxGHASSOUB _Seance 3_ measurement and evaluation in education.pptx
GHASSOUB _Seance 3_ measurement and evaluation in education.pptx
 
CALENDRIER ET COMPTE RENDU REUNION DIRECTION
CALENDRIER ET COMPTE RENDU REUNION DIRECTIONCALENDRIER ET COMPTE RENDU REUNION DIRECTION
CALENDRIER ET COMPTE RENDU REUNION DIRECTION
 
Fiche de vocabulaire pour faire une appréciation
Fiche de vocabulaire pour faire une appréciationFiche de vocabulaire pour faire une appréciation
Fiche de vocabulaire pour faire une appréciation
 
Saint Damien, missionnaire auprès des lépreux de Molokai, Hawaï.pptx
Saint Damien, missionnaire auprès des lépreux de Molokai, Hawaï.pptxSaint Damien, missionnaire auprès des lépreux de Molokai, Hawaï.pptx
Saint Damien, missionnaire auprès des lépreux de Molokai, Hawaï.pptx
 
Àma Gloria.pptx Un film tourné au Cap Vert et en France
Àma Gloria.pptx   Un film tourné au Cap Vert et en FranceÀma Gloria.pptx   Un film tourné au Cap Vert et en France
Àma Gloria.pptx Un film tourné au Cap Vert et en France
 
Nathanaëlle Herbelin.pptx Peintre française
Nathanaëlle Herbelin.pptx Peintre françaiseNathanaëlle Herbelin.pptx Peintre française
Nathanaëlle Herbelin.pptx Peintre française
 
complement de agri cours irrigation.pptx
complement de agri cours irrigation.pptxcomplement de agri cours irrigation.pptx
complement de agri cours irrigation.pptx
 
Chapitre3-Classififcation des structures de chaussu00E9e.pptx
Chapitre3-Classififcation des structures de  chaussu00E9e.pptxChapitre3-Classififcation des structures de  chaussu00E9e.pptx
Chapitre3-Classififcation des structures de chaussu00E9e.pptx
 
Réunion des directeurs de Jonzac - 15 mai 2024
Réunion des directeurs de Jonzac - 15 mai 2024Réunion des directeurs de Jonzac - 15 mai 2024
Réunion des directeurs de Jonzac - 15 mai 2024
 
Un petit coin etwinning- Au fil des cultures urbaines
Un petit coin  etwinning- Au fil des cultures urbainesUn petit coin  etwinning- Au fil des cultures urbaines
Un petit coin etwinning- Au fil des cultures urbaines
 
Texte avec différentes critiques positives, négatives ou mitigées
Texte avec différentes critiques positives, négatives ou mitigéesTexte avec différentes critiques positives, négatives ou mitigées
Texte avec différentes critiques positives, négatives ou mitigées
 
Les débuts de la collection "Le livre de poche"
Les débuts de la collection "Le livre de poche"Les débuts de la collection "Le livre de poche"
Les débuts de la collection "Le livre de poche"
 

SdE 9 - Threads