SlideShare une entreprise Scribd logo
Systèmes
d'exploitation
Threads
Tim Berners-Lee
• Anglais
• Oxford
• www
2
Contenu
• threads
– noyau
– utilisateur
• NPTL
• Threads en Java
• Threads en Python
3
Bibliographie pour aujourd'hui
• Modern Operating Systems
– Chapitre 2
• 2.2
• Operating Systems Concepts
– Chapitre 4
4
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
5
Transitions entre les états
6
Changement de contexte
7
Exemple de processus
• Editeur du texte
• Serveur Web
• Jeux
8
THREAD
9
Threads
• L’unité de planification
• Un processus est forme depuis plusieurs de
threads
• Lightweight Processes (LWP)
10
Processus et threads
11
Thread
12
Espace de adressage
13
Proprietes de thread
• TID – identificateur
• TLS – thread local storage
• Stack – la pile
• Registres de CPU
• État de processus
• Priority - la priorité
14
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
15
Types de threads
16
Question?
• Threads Utilisateur
– Un thread fait un action bloquante
– Qu’est qui ce passe?
Toutes les threads se bloque
17
Les états de processus
18
Changement de contexte
19
Implementation des threads
• Many to one
• One to one
• Many to many
20
Many to one
21
• Threads utilisateur
• Chaque thread
utilisateur est panifie
sur en seul thread
noyau
One to one
22
• Threads noyau
• Un thread est planifie sur en
thread noyau
Many to many
23
• 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é
24
Problemes
• fork et exec
– fork fait un clone a touts les threads?
– exec remplace un seul thread?
• signaux
– quel thread recoit les signaux?
25
Implementation
• Windows
– Threads
– Fibers
• UNIX
– pthreads (NPTL)
– biblioteque
• Java
– Many to many
26
Windows
• Threads
– Noyau
– Un processus a plusieurs des threads noyau
• Fibers
– Utilisateur
– Un thread noyau a plusieurs de thread utilisateur
27
POSIX
28
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
29
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
30
pthread
• bibliothèque pthread (POSIX Thread)
• NPTL (New POSIX Thread Library)
31
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)
32
Exemple
/* this function is run by thread */
void *run(void *void_ptr)
{
// ... thread code here
return NULL;
}
33
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;
}
34
Problèmes
• fork și exec
– tous les fils sont-ils clonés?
– exec remplace-t-il un seul thread?
• signaux
– quel thread reçoivent les signaux?
35
Threads et fork
• Un seul thread est cloné
• Ce n'est pas une bonne idée de l'utiliser dans
un processus qui a des threads
– descripteurs de fichiers
– où s'arrêtent les autres fils
• détails
https://www.linuxprogrammingblog.com/thre
ads-and-fork-think-twice-before-using-them
36
Exemple de descripteur de fichier
fd = open("file",O_RDWR|O_CREAT|O_TRUNC, 0600);
if (fd < 0) {
perror ("open()");
return 0;
}
fcntl (fd, F_SETFD, FD_CLOEXEC);
37
Solution
int pthread_atfork(
void (*prepare)(void),
void (*parent)(void),
void (*child)(void)
);
38
Signaux
• le thread actuel reçoit le signal
• la pile de signaux est unique
– Le blocage du signal est effectué par chaque
thread
– L'action est partagée
• exceptions (SIGSEV, SIGFPE, SIGBUS ...)
– ils sont reçus par le thread qui exécute l'exception
39
JAVA
40
Etendre Thread
class MyThread extends Thread
{
public void run ()
{
// ... thread code here
}
}
41
Implementer Runnable
class MyThread implements
Runnable
{
public void run ()
{
// ... theread code here
}
}
42
Start
// Thread
MyThread t = new MyThread();
t.start ();
// Runnable
Thread t = new Thread (new MyThread());
t.start ();
43
Arrête du thread
• quand la fonction run se fin
44
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
45
Questions
46

Contenu connexe

PPTX
SdE - Introduction
PPTX
SdE 11: Implémentation de Système de Fichiers
PPTX
SdE 1 - Introduction
PPTX
SdE 6 - Gestion de la memoire
PPTX
SdE2 4 - Processus
PPTX
SdE 10 - Threads
PPTX
SdE 3 - Systemes de fichiers
PPTX
SdE 5 - Communication entre processus et Planification
SdE - Introduction
SdE 11: Implémentation de Système de Fichiers
SdE 1 - Introduction
SdE 6 - Gestion de la memoire
SdE2 4 - Processus
SdE 10 - Threads
SdE 3 - Systemes de fichiers
SdE 5 - Communication entre processus et Planification

Tendances (20)

PPTX
Systemes d'explotation: Mémoire Virtuelle
PPTX
SdE 4 - Processus
PPTX
SdE 3 - System de fichiers
PPTX
SdE TP 3 - Fonctions d'entrée et sortie
PPTX
SdE 5 - Planification
PPTX
SdE 2 - System de fichiers
PPTX
SdE 2 - Langage C, Allocation de memoire
PPTX
SdE 4: Processus
PPTX
SdE 9 - Threads
PPTX
SdE 2 - Introduction
PPTX
SdE 6 - Planification
PPTX
SdE 8 - Memoire Virtuelle
PPTX
SdE 7 - Gestion de la Mémoire
PPTX
SdE 7 - Memoire Virtuelle
PPTX
ALF - Introduction
PDF
Présentation unix linux
PDF
Présentation Unix/Linux (mise à jour 2016)
PPTX
ALF1 - Introduction
ODP
Initiation Linux
PPTX
ALF 1 - Introduction
Systemes d'explotation: Mémoire Virtuelle
SdE 4 - Processus
SdE 3 - System de fichiers
SdE TP 3 - Fonctions d'entrée et sortie
SdE 5 - Planification
SdE 2 - System de fichiers
SdE 2 - Langage C, Allocation de memoire
SdE 4: Processus
SdE 9 - Threads
SdE 2 - Introduction
SdE 6 - Planification
SdE 8 - Memoire Virtuelle
SdE 7 - Gestion de la Mémoire
SdE 7 - Memoire Virtuelle
ALF - Introduction
Présentation unix linux
Présentation Unix/Linux (mise à jour 2016)
ALF1 - Introduction
Initiation Linux
ALF 1 - Introduction
Publicité

Similaire à Systemes d'explotation: Threads (20)

PDF
03_ProgrammationSystemeLinux_Thread.pdf
PDF
Systèmes parallèles-programmation des sys
PPTX
SdE2 - Introduction
PPTX
les Threads
PDF
PPTX
A la queue leu leu
PPTX
introduction_SYSTeme exploitationconcept.pptx
PDF
FreeBSD vs Linux, RMLL 2014
PPTX
Chap5THREADChap5Chap5THREADChap5THREADTHREAD.pptx
PPTX
SdE2 - Planification, IPC
PPT
cours-linux-gti base de linux general.ppt
PDF
Lin03 formation-linux-administration-bases-services
PDF
Apache solr andré bois-crettez 08
PPTX
SdE2 - Systèmes embarquées
PDF
Prez FreeBSD jail
PDF
Programmation des Threads en java
ODP
LPIC1 11 01 sécurité réseaux
PPTX
Admin_Réseaux_linux_cours.pptx
PDF
Support NodeJS avec TypeScript Express MongoDB
PDF
Java - notions de bases pour développeur
03_ProgrammationSystemeLinux_Thread.pdf
Systèmes parallèles-programmation des sys
SdE2 - Introduction
les Threads
A la queue leu leu
introduction_SYSTeme exploitationconcept.pptx
FreeBSD vs Linux, RMLL 2014
Chap5THREADChap5Chap5THREADChap5THREADTHREAD.pptx
SdE2 - Planification, IPC
cours-linux-gti base de linux general.ppt
Lin03 formation-linux-administration-bases-services
Apache solr andré bois-crettez 08
SdE2 - Systèmes embarquées
Prez FreeBSD jail
Programmation des Threads en java
LPIC1 11 01 sécurité réseaux
Admin_Réseaux_linux_cours.pptx
Support NodeJS avec TypeScript Express MongoDB
Java - notions de bases pour développeur
Publicité

Plus de Alexandru Radovici (17)

PPTX
SdE2 - Pilot Tock
PPTX
MDAD 6 - AIDL and Services
PPTX
MDAD 5 - Threads
PPTX
MDAD 4 - Lists, adapters and recycling
PPTX
MDAD 3 - Basics of UI Applications
PPTX
MDAD 2 - Introduction to the Android Framework
PPTX
MDAD 1 - Hardware
PPTX
MDAD 0 - Introduction
PPTX
SdE 11 - Reseau
PPTX
SdE 8 - Synchronisation de execution
PPTX
ALF 6 - Parser
PPTX
ALF 5 - Parser
PPTX
ALF 4 - Grammaires
PPTX
ALF 3 - Expressions régulières et Lexer
PPTX
ALF 1 - Automates finis
PPTX
DAPM 1 - Introduction
PPTX
ALF 1 - Introduction
SdE2 - Pilot Tock
MDAD 6 - AIDL and Services
MDAD 5 - Threads
MDAD 4 - Lists, adapters and recycling
MDAD 3 - Basics of UI Applications
MDAD 2 - Introduction to the Android Framework
MDAD 1 - Hardware
MDAD 0 - Introduction
SdE 11 - Reseau
SdE 8 - Synchronisation de execution
ALF 6 - Parser
ALF 5 - Parser
ALF 4 - Grammaires
ALF 3 - Expressions régulières et Lexer
ALF 1 - Automates finis
DAPM 1 - Introduction
ALF 1 - Introduction

Dernier (20)

PDF
Articles definis et indefinis. Comment les différencier ?
PPT
Les moyens de transport-2023.ppt french language teaching ppt
PDF
Bac 2026 - Livre - 🎤 Le Grand Oral - ✍️ Exemples rédigés - 📈 SES - Extrait
PPTX
SESSION1-SUPPORT-DE-COURS-FLEC-(Future leader en énergie au Cameroun)-CECOSDA...
PDF
Avis Digital Marketing Elite: Mon Retour d'Expérience Après 3 Mois d'Utilisation
DOC
Le verbe avoir- Free francais lesson-free
PDF
🎓 Le Secret des Profs Captivants - 💡 3.1. Anatomie de la respiration — VOIX, ...
PDF
Formation SSIAP _ Gestion et contrôle .pdf
PDF
Bac 2026 - Livre - 🎤 Le Grand Oral - ✍️ Exemples rédigés - Physique ⚡ - Chimi...
PPTX
Copie de Présentation Personal Branding J2025.pptx_20250610_120558_0000.pptx
PPTX
Présentation Projet Entreprise Minimaliste Moderne Sobre Blanc Noir.pptx
PPT
étude----- droit------ 2005---------.ppt
DOC
Vocabulaire pour la description II - Francais Free Lesson-
PPTX
Présentation Personal Branding J2025.pptx_20250218_132749_0000.pptx_20250610_...
PPT
مبادئ و هدف الحركة الكشفية عرض تقديمي.ppt
PPTX
plus que ´parfait--.-.-.-..-.--.-..-.-.-.-.
PDF
rédigés - Spécialité: 📊 Mathématique - Extrait
PPTX
SESSION3-SUPPORT-DE-COURS-FLEC-(Future leader en énergie au Cameroun)-CECOSDA...
PPTX
Le rendez-vous de l'été.pptx Film français
PPTX
SESSION4-SUPPORT-DE-COURS-FLEC-(Future leader en énergie au Cameroun)-CECOSDA...
Articles definis et indefinis. Comment les différencier ?
Les moyens de transport-2023.ppt french language teaching ppt
Bac 2026 - Livre - 🎤 Le Grand Oral - ✍️ Exemples rédigés - 📈 SES - Extrait
SESSION1-SUPPORT-DE-COURS-FLEC-(Future leader en énergie au Cameroun)-CECOSDA...
Avis Digital Marketing Elite: Mon Retour d'Expérience Après 3 Mois d'Utilisation
Le verbe avoir- Free francais lesson-free
🎓 Le Secret des Profs Captivants - 💡 3.1. Anatomie de la respiration — VOIX, ...
Formation SSIAP _ Gestion et contrôle .pdf
Bac 2026 - Livre - 🎤 Le Grand Oral - ✍️ Exemples rédigés - Physique ⚡ - Chimi...
Copie de Présentation Personal Branding J2025.pptx_20250610_120558_0000.pptx
Présentation Projet Entreprise Minimaliste Moderne Sobre Blanc Noir.pptx
étude----- droit------ 2005---------.ppt
Vocabulaire pour la description II - Francais Free Lesson-
Présentation Personal Branding J2025.pptx_20250218_132749_0000.pptx_20250610_...
مبادئ و هدف الحركة الكشفية عرض تقديمي.ppt
plus que ´parfait--.-.-.-..-.--.-..-.-.-.-.
rédigés - Spécialité: 📊 Mathématique - Extrait
SESSION3-SUPPORT-DE-COURS-FLEC-(Future leader en énergie au Cameroun)-CECOSDA...
Le rendez-vous de l'été.pptx Film français
SESSION4-SUPPORT-DE-COURS-FLEC-(Future leader en énergie au Cameroun)-CECOSDA...

Systemes d'explotation: Threads