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)

PPTX
Chap5THREADChap5Chap5THREADChap5THREADTHREAD.pptx
PDF
03_ProgrammationSystemeLinux_Thread.pdf
PDF
Introduction_STR_et_taches_Abir_FST_.pdf
PPTX
les Threads
PDF
Systèmes parallèles-programmation des sys
PPTX
SdE2 - Planification, IPC
PPTX
SdE 8 - Synchronization de execution
PPTX
SdE 8 - Synchronisation de execution
PPTX
Systemes d'explotation: Synchronization de execution
PDF
SYSTèmes d'exploitation
PDF
Gestion des threads
PPTX
Expose linux gestion des processus
PDF
Cours java avance avancé thread arraylist
PDF
ProcessusReseaux.pdf
PPTX
Gestion des processus
PDF
PDF
chapRRRRRRRRRRRRRRRRRRRRRRRRRRREZitre1.pdf
PDF
chap1GestionProcessus2025 Traveaux Pratique
PDF
1488135632336.pdf
Chap5THREADChap5Chap5THREADChap5THREADTHREAD.pptx
03_ProgrammationSystemeLinux_Thread.pdf
Introduction_STR_et_taches_Abir_FST_.pdf
les Threads
Systèmes parallèles-programmation des sys
SdE2 - Planification, IPC
SdE 8 - Synchronization de execution
SdE 8 - Synchronisation de execution
Systemes d'explotation: Synchronization de execution
SYSTèmes d'exploitation
Gestion des threads
Expose linux gestion des processus
Cours java avance avancé thread arraylist
ProcessusReseaux.pdf
Gestion des processus
chapRRRRRRRRRRRRRRRRRRRRRRRRRRREZitre1.pdf
chap1GestionProcessus2025 Traveaux Pratique
1488135632336.pdf
Publicité

Plus de Alexandru Radovici (18)

PPTX
SdE2 - Pilot Tock
PPTX
SdE2 - Systèmes embarquées
PPTX
SdE2 - Introduction
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
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
SdE2 - Systèmes embarquées
SdE2 - Introduction
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
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
كتاب الاكاديمية للصف الاول الثانوى - تاريخ - 2026م.pdf
PPTX
présentation du TFE QdV des diabétiques ISFSC 2020 finale (2).pptx
PDF
Enseigner la programmation en Python - Les avantages de l’approche UMC - 3
PPTX
Niki de Saint-Phalle.pptx Film français
DOCX
Une école qui dirige par des universitaires et professionnels
PDF
🎓 Le Secret des Profs Captivants - 💡 4.1. Comment se manifeste l’appréhension...
PDF
Algorithmique et programmation Algorithmique et programmation
PPTX
Les Cartes_conceptuelles de l'entreprise
PDF
4-bilan_FR___GÉNÉTIQUE_HUMAINE_bis[1].pdf
PPTX
Exercice_ Bulletin_de_Paie_Cameroun.pptx
PDF
1631198806_prsentationabck.schreiber.pdf
PPTX
Niki de Saint-Phalle.pptx artiste plasticienne
PDF
REGLEMENT INTERIEUR du Lycée Montgrand Rentrée 2025
PPT
Cours GRH et Comm de Projet Eticca-20160827-151930603.ppt
PDF
ch2 regime de neutre_LPUGE_LPUGEII.pdf
PDF
🎓 Enseigner la programmation 💻 en PYTHON - 1 - La méthode UMC - v2
PPT
FORMATION SIGNALISATION DE SECURITE ETIQUETAGE ET CODE COULEUR.ppt
PDF
Bac 2025 - Livre - 🎤 Le Grand Oral - ✍️ Exemples rédigés - 🌍 HGGSP - Extrait 2
PPTX
liste des APT - entreprises industrielle
PPT
ESPRIT D’ENTREPRISE DE RENFORCER VF.ppt
كتاب الاكاديمية للصف الاول الثانوى - تاريخ - 2026م.pdf
présentation du TFE QdV des diabétiques ISFSC 2020 finale (2).pptx
Enseigner la programmation en Python - Les avantages de l’approche UMC - 3
Niki de Saint-Phalle.pptx Film français
Une école qui dirige par des universitaires et professionnels
🎓 Le Secret des Profs Captivants - 💡 4.1. Comment se manifeste l’appréhension...
Algorithmique et programmation Algorithmique et programmation
Les Cartes_conceptuelles de l'entreprise
4-bilan_FR___GÉNÉTIQUE_HUMAINE_bis[1].pdf
Exercice_ Bulletin_de_Paie_Cameroun.pptx
1631198806_prsentationabck.schreiber.pdf
Niki de Saint-Phalle.pptx artiste plasticienne
REGLEMENT INTERIEUR du Lycée Montgrand Rentrée 2025
Cours GRH et Comm de Projet Eticca-20160827-151930603.ppt
ch2 regime de neutre_LPUGE_LPUGEII.pdf
🎓 Enseigner la programmation 💻 en PYTHON - 1 - La méthode UMC - v2
FORMATION SIGNALISATION DE SECURITE ETIQUETAGE ET CODE COULEUR.ppt
Bac 2025 - Livre - 🎤 Le Grand Oral - ✍️ Exemples rédigés - 🌍 HGGSP - Extrait 2
liste des APT - entreprises industrielle
ESPRIT D’ENTREPRISE DE RENFORCER VF.ppt

Systemes d'explotation: Threads