a-Zahra BELOUADHA Ecole Mohammadia d
Ingénieurs’
Introduction aux systèmes d ’ exploitation
Module systèmes d’exploitation Cours de 28h, Deuxième année
Filière Génie Informatique
Ecole Mohammadia d’Ingénieurs
Mme Fatima-Zahra BELOUADHA
me Fatima-Zahra BELOUADHA Ecole Mohammadia d
Ingénieurs’
2
Plan
Introduction
Gestion de Processus
Système de gestion de fichiers
Gestion de la mémoire
a-Zahra BELOUADHA Ecole Mohammadia d
Ingénieurs’
Introduction
Système informatique
Fonctionnalités du SE
Historique
Classes des systèmes
Modes d'exécution et Appels systèmes
Interpréteur de commandes
me Fatima-Zahra BELOUADHA Ecole Mohammadia d
Ingénieurs’
4
Système informatique
Applications (Jeux, Word,…) Système d’exploitation
Matériel
Compilateur Editeur Interpréteur de commande
Programmes Système
a-Zahra BELOUADHA Ecole Mohammadia d
Ingénieurs’
Fonctionnalités du SE (1/3)
Offrir une machine virtuelle
Interface plus simple à utiliser que le matériel.
Exemple : Utilisation du contrôleur de disquettes
16 commandes : lecture, écriture d’un secteur, déplacement de bras, formatage,…
Une Commande a plusieurs paramètres : nombre de secteurs, distance entre les secteurs, Numéro de secteur…
me Fatima-Zahra BELOUADHA Ecole Mohammadia d
Ingénieurs’
6
Fonctionnalités du SE (2/3)
Gérer la mémoire pour l'exécution des tâches
Gérer et conserver l'information
Assurer l'interaction et la communication entre programmes
Assurer la protection et gérer les erreurs…
a-Zahra BELOUADHA Ecole Mohammadia d
Ingénieurs’
Fonctionnalités du SE (3/3)
Gérer et contrôler les ressources partagées
Répartir les ressources entre les utilisateurs ou programmes demandeurs
Eviter les conflits d’accès à ces ressources
Exemple : Partage d’imprimante
Verrouiller l’accès à l’imprimante lors d'impression
Gérer les tampons d’impression
Gérer la file d’attente…
me Fatima-Zahra BELOUADHA Ecole Mohammadia d
Ingénieurs’
8
Historique
Premiers systèmes, Tubes à vide (1945−1955)
Systèmes de traitement par lot, transistors (1955−1965)
Systèmes multiprogrammés et à temps partagé, Circuits intégrés (1965−1980)
Systèmes des ordinateurs personnels, LSI (1980-1990)
Systèmes "micro-noyau", VLSI (1990…)
a-Zahra BELOUADHA Ecole Mohammadia d
Ingénieurs’
Premiers systèmes (1945−1955)
Machines à tubes à vide volumineuses, très fragiles et très lentes
Absence de système d’exploitation
Calculs simples (tables des sinus et cosinus)
Programmation en langage machine sur des cartes enfichables ou cartes perforées
Construction, programmation et maintenance effectuées par un seul groupe
Système mono-usager (réservation)
me Fatima-Zahra BELOUADHA Ecole Mohammadia d
Ingénieurs’
10
Systèmes de traitement par lots (1955−1965)
Machines à transistors fiables mais coûteuses
Programmation en Fortran et Assembleur
Premiers logiciels de base : chargeur et compilateur Fortran
Distinction entre opérateurs, constructeurs, programmeurs et utilisateurs
Soumission des travaux
Enchaînement des travaux par l'opérateur
Inactivité de la CPU lors de la préparation
Traitement par lots
a-Zahra BELOUADHA Ecole Mohammadia d
Ingénieurs’
Traitement par lots (Batch)
+ieurs travaux sur bandes magnétiques sont exécutés consécutivement par l'ordinateur
Ordinateurs auxiliaires pour la lecture des cartes et l'impression (Opérations lentes)
1er SE : Moniteur pour l'enchaînement automatique des travaux
me Fatima-Zahra BELOUADHA Ecole Mohammadia d
Ingénieurs’
12
Traitement par lots
Premiers systèmes Moniteurs
FMS : Fortran Monitor System
IBSYS : IBM 7094
Données$END
$RUN Programme
$JOB(nom,organisme…)
$LOAD
$FORTRAN
Cartes d'un travail FMS
a-Zahra BELOUADHA Ecole Mohammadia d
Ingénieurs’
Traitement par lots : Inconvénients
Mono-programmation
CPU encore mal utilisée (attente des E/S)
Machines incompatibles et SE différents :
IBM 7094 : calcul scientifique (equ. diff…)
IBM 1401 : traitement commercial (tri, impression…)
Coût de maintenance élevé
me Fatima-Zahra BELOUADHA Ecole Mohammadia d
Ingénieurs’
14
Systèmes multiprogrammés et à temps partagé (1965−1980)
Machines à circuits intégrés moins coûteuses et plus performantes
Famille d’ordinateurs compatibles et SE
unique (machines avec même architecture et jeu d’instructions : IBM 360, 370…)
E/S spoolées : Utilisation de la MS au lieu des bandes magnétiques
Apparition de la multiprogrammation
a-Zahra BELOUADHA Ecole Mohammadia d
Ingénieurs’
Multiprogrammation
Exécution d'une autre tâche si celle en cours attend une E/S
Partitionnement de la mémoire (plusieurs tâches à la fois en MC)
Ordonnancement des travaux
Systèmes non interactifs
Systèmes à temps partagé
Travail1 Travail2
SE
…
me Fatima-Zahra BELOUADHA Ecole Mohammadia d
Ingénieurs’
16
Systèmes à temps partagé (time sharing)
Partage de l'UC entre plusieurs tâches par
quantum de temps Traitement "simultané"
Plusieurs utilisateurs connectés en ligne sont servis à la fois de façon interactive
Systèmes d’exploitation complexes
CTSS
MULTICS (MULTiplexed Information and Computing Service) ancêtre d'Unix
Unix (le plus porté)
a-Zahra BELOUADHA Ecole Mohammadia d
Ingénieurs’
Systèmes des ordinateurs personnels (1980-1990)
Machines à circuits LSI (Large Scale Integration) : des transistors au cm2
Machines moins coûteuses
Ms-Dos, Windows, Mac OS, Linux…
Apparition des systèmes centralisés en réseaux
Apparition des systèmes distribués
me Fatima-Zahra BELOUADHA Ecole Mohammadia d
Ingénieurs’
18
SE en réseaux et SE répartis
SE en réseaux (Windows, Linux…)
Chaque machine a son propre SE
Connexion à des machines distantes, transferts de fichiers
Machine utilisée par plusieurs utilisateurs
SE répartis ou distribués
Système réparti sur un domaine
1 Machine virtuelle (à plusieurs processeurs)
Transparence à la localisation des ressources
Fiabilité et tolérance aux pannes
a-Zahra BELOUADHA Ecole Mohammadia d
Ingénieurs’
Systèmes "micro−noyau" (1990…)
Systèmes embarqués réalisés avec + ou - de modules (fonctions)
Adaptés aux ordinateurs portables et de poche
PDA : Personal Digital Assistant
PIC : Personal Intelligent Communicator
Palm OS, Windows CE…
me Fatima-Zahra BELOUADHA Ecole Mohammadia d
Ingénieurs’
20
Classes des systèmes
Selon les contraintes d'utilisation
Mono-utilisateur/mono-tâche (MS-DOS)
Un seul utilisateur/une seule tâche à la fois
Mono-utilisateur/multi-tâches(Windows XP)
Un seul utilisateur à la fois exécute plusieurs tâches simultanément
Multi−utilisateurs/multi-tâches (Unix)
Plusieurs utilisateurs à la fois exécutent chacun plusieurs tâches simultanément et partagent les mêmes ressources matérielles
a-Zahra BELOUADHA Ecole Mohammadia d
Ingénieurs’
Classes des systèmes
Selon les services
Systèmes temps réel
Utilisés dans des domaines spécifiques
(procédés, robotique, centrales nucléaires…)
Temps de réponse des tâches critiques court
Fiables et tolérants aux pannes
Systèmes transactionnels
Gestion des bases de données énormes (systèmes de réservation, systèmes bancaires…)
garantir des mises à jour sans incohérence
me Fatima-Zahra BELOUADHA Ecole Mohammadia d
Ingénieurs’
22
Classes des systèmes
Selon l'architecture matérielle
Systèmes mono-processeur
Multiprogrammés et à temps partagé (pseudo- parallélisme)
Systèmes parallèles : multiprocesseurs (SunOS 4, SunOS 5, Solaris 2 et Linux)
Traitement parallèle par plusieurs processeurs
Grande capacité de traitement, temps de réponse court et fiabilité
a-Zahra BELOUADHA Ecole Mohammadia d
Ingénieurs’
Modes d'exécution
Mode utilisateur : non protégé
Exécution des programmes des utilisateurs
Permet à l'utilisateur de modifier des données de son programme
Mode noyau : protégé et réservé au SE
Accès au code et données utilisées par le SE
Lecture et écriture sur les ports d’E/S
Permet de protéger les données sensibles
me Fatima-Zahra BELOUADHA Ecole Mohammadia d
Ingénieurs’
24
Appels systèmes
Interface entre les programmes utilisateurs et le SE
a-Zahra BELOUADHA Ecole Mohammadia d
Ingénieurs’
Interpréteur de commandes
Utilitaire et non pas une partie du SE
Exemple : Shell sous Unix
Il tourne constamment dès la connexion
Dès qu'une commande (ls, cat, sort… sous Unix) est lancée, il fait un appel système à la fonction correspondante.
me Fatima-Zahra BELOUADHA Ecole Mohammadia d
Ingénieurs’
26
Chapitre 2 : Gestion de processus
Notions de processus
Gestion de processus
Gestion des interruptions
Appels système sous Unix
Ordonnancement de processus
a-Zahra BELOUADHA Ecole Mohammadia d
Ingénieurs’
Notions de processus
Processus=programme en cours d'exécution
Un processus est exécuté par un processeur
Plusieurs processus peuvent être associés à un programme
Chaque processus possède un espace de
travail en mémoire, son compteur ordinal et
me Fatima-Zahra BELOUADHA Ecole Mohammadia d
Ingénieurs’
28
Espace de travail d’un processus
Code Données
Pile
Instructions
Appels de fonctions + Variables locales
Variables globales +
Allocations dynamiques
a-Zahra BELOUADHA Ecole Mohammadia d
Ingénieurs’
Systèmes à temps partagé
Le processeur est commuté entre plusieurs processus
Un seul processus est exécuté à la fois
Tous les processus progressent (Pseudo parallélisme)
me Fatima-Zahra BELOUADHA Ecole Mohammadia d
Ingénieurs’
30
Etats d'un processus
Actif (élu)
s'il est en cours d'exécution par le processeur
Prêt
s'il est en attente du processeur pour s'exécuter
Bloqué
s'il est en attente d'un événement extérieur (lecture disque/clavier, données d’un autre processus…)
…
a-Zahra BELOUADHA Ecole Mohammadia d
Ingénieurs’
Exemples sous Unix
who | wc -l
Le processus wc se bloque en attente des résultats du processus who
cc programme.c & cat lettre.txt
cc et cat sont 2 processus concurrents
Le processus cc reste prêt en attente de l'exécution du cat
me Fatima-Zahra BELOUADHA Ecole Mohammadia d
Ingénieurs’
32
Diagramme de transitions d'états d'un processus
4 2
3 1
Bloqué Prêt
Actif
a-Zahra BELOUADHA Ecole Mohammadia d
Ingénieurs’
Exemple de transitions d'états
Processus A Processus B Processus C
Exécution
Lecture du fichier Exécution
Données disponibles Exécution
Exécution Affichage à l'écran
Exécution
Ecriture fichier Exécution Exécution Données transférées Fin du processus Lecture du fichier Exécution
me Fatima-Zahra BELOUADHA Ecole Mohammadia d
Ingénieurs’
34
Exemples de processus
Une maman (Processeur) prépare une recette avec des ingrédients (processus).
Sa fille est piquée par une abeille (événement prioritaire)
La maman interrompt la préparation, marque le point où elle a interrompu la recette et
soigne sa fille grâce au livre de soins (autre processus).
La maman peut reprendre la recette là où elle l’avait interrompue
a-Zahra BELOUADHA Ecole Mohammadia d
Ingénieurs’
Gestion de processus
Chaque processus possède un PCB
Compteur ordinal,
Registres de l’UC (Pointeur pile, pointeur code, pointeur données…)
Numéro du processus (PID), PPID, état, priorité,
Liste des fichiers ouverts, E/S utilisées,
Temps UC utilisé,
…
Les PCBs sont rangés dans une table de processus
me Fatima-Zahra BELOUADHA Ecole Mohammadia d
Ingénieurs’
36
Création de processus
Un processus ne peut être créé que par un autre au moyen d'un appel système
Un fils a un PCB initialisé à celui du père
(sauf le PID, le PPID et le temps UC) et une copie des blocs de données et de code
Les processus sont structurés en arborescence à partir d'un ancêtre créé au démarrage
Cas d'Unix :
init Ksh (Korn shell)…
ls pwd …
Démon1
a-Zahra BELOUADHA Ecole Mohammadia d
Ingénieurs’
Destruction de processus
Un processus est détruit en général à la fin de son exécution
Il peut être détruit à la demande d'un autre processus ayant ce droit (comme le père)
Lorsqu'un processus est détruit, son PCB et ses ressources sont libérés
La destruction du père peut entraîner celle de sa descendance
me Fatima-Zahra BELOUADHA Ecole Mohammadia d
Ingénieurs’
38
Commutation et ordonnancement de processus
Le processeur bascule successivement d'un processus à l'autre à chaque fin de quantum
Le processeur est commuté également suite à un appel système ou une interruption : E/S…
La commutation est réalisée au moyen d'un ordonnanceur et un mécanisme d'interruption
L'interruption provoque un changement de contexte (CO, registres…)
L'ordonnanceur choisit parmi les processus prêts celui qui doit devenir actif
a-Zahra BELOUADHA Ecole Mohammadia d
Ingénieurs’
Commutation de processus
me Fatima-Zahra BELOUADHA Ecole Mohammadia d
Ingénieurs’
40
Interruptions
Une interruption est provoquée par un signal généré par le matériel
Les interruptions sont dues à des événements internes ou externes et peuvent être de type :
Horloge (Quantum épuisé)
Disque (E/S)
Appel système fait par le processus…
A chaque type est associée une routine de traitement d'interruption dont l'adresse se trouve dans le vecteur d'interruption
a-Zahra BELOUADHA Ecole Mohammadia d
Ingénieurs’
Types d'interruptions Unix
N°
d'interruption
Type
0 1 2 3 4 5
Horloge Disque Terminaux
Autres périphériques Logicielle (Traps)
Autres
me Fatima-Zahra BELOUADHA Ecole Mohammadia d
Ingénieurs’
42
Mécanisme et gestion des interruptions
le processeur place le CO et les registres du processus courant dans la pile
Il charge le CO de la routine de traitement
La routine de traitement sauvegarde le PCB du processus dans la table et appelle la
procédure de gestion de l'interruption
Lorsque le processus interrompu est réélu, la routine de traitement recharge son contexte
a-Zahra BELOUADHA Ecole Mohammadia d
Ingénieurs’
Gestion des interruptions
me Fatima-Zahra BELOUADHA Ecole Mohammadia d
Ingénieurs’
44
Appels systèmes
Un appel système est un moyen d'accès aux données sensibles protégées par le système (mémoire, disque…)
Un appel système provoque une interruption logicielle (trap) suivie du chargement du
code de la fonction appelée
Un appel système n’est en général pas interruptible (haute priorité : swapper…)
a-Zahra BELOUADHA Ecole Mohammadia d
Ingénieurs’
Appels système pour la gestion de processus sous Unix (1/3)
Identification
int getpid(void) : identité du processus courant
int getppid(void) : identité du processus père
Création :
int fork(void) : crée un processus fils et retourne
-1 en cas d’erreur
0 dans le processus fils
L'identité du fils dans le processus père
me Fatima-Zahra BELOUADHA Ecole Mohammadia d
Ingénieurs’
46
Appels système pour la gestion de processus sous Unix (2/3)
Terminaison
void exit(int ) : termine le processus appelant et met la valeur int dans son PCB
Attente :
int wait(int *) : provoque une attente de la fin d’un processus fils et retourne
-1 si le processus n'a pas de fils
Identité d'un processus fils terminé (Retour immédiat ou blocage jusqu’à terminaison d’un fils)
a-Zahra BELOUADHA Ecole Mohammadia d
Ingénieurs’
Appels système pour la gestion de processus sous Unix (3/3)
Recouvrement : Le code du processus
appelant est remplacé par un nouveau code donné en paramètre
6 primitives exec (nombre de paramètres)
execv(char *, char *[])
execvp(char *, char *[])
execve(char*, char*[], char*[])
…
me Fatima-Zahra BELOUADHA Ecole Mohammadia d
Ingénieurs’
48
Ordonnancement (scheduling)
L'ordonnanceur élit un processus prêt selon un algorithme
L'algorithme doit garantir :
Equité
Efficacité (Taux d’utilisation )
Temps de réponse minimal
Temps moyen d'exécution minimal (Attente )
Rendement maximal (Travaux effectués )
2 types d'ordonnancement : avec réquisition et sans réquisition
a-Zahra BELOUADHA Ecole Mohammadia d
Ingénieurs’
Ordonnancement et algorithmes sans réquisition
Un processus n'est élu qu'après terminaison ou blocage du processus courant
Appliqué dans des systèmes de traitement par lot
Premier arrivé, premier servi
File d'attente ordonnée selon l'ordre d'arrivée
Plus court d'abord
Suppose que les temps d'exécution sont connus d'avance
File classée par lots de processus arrivés au
me Fatima-Zahra BELOUADHA Ecole Mohammadia d
Ingénieurs’
50
Ordonnancement avec réquisition
Suspension du processus courant suite à une interruption horloge (expiration du quantum) ou une autre interruption matérielle
Choix du quantum est crucial (100ms)
Trop petit => moins d'efficacité
Trop élevé => temps de réponse élevé
Des mécanismes de résolution de conflit d'accès sont nécessaires (synchronisation)
a-Zahra BELOUADHA Ecole Mohammadia d
Ingénieurs’
Algorithmes avec réquisition (1/2)
Circulaire ou tourniquet (round robin)
Utilise une liste circulaire chaînée
Le processeur est retiré et alloué au processus suivant à la fin d'un quantum de temps ou au blocage ou achèvement du processus courant
Algorithme simple et fiable
me Fatima-Zahra BELOUADHA Ecole Mohammadia d
Ingénieurs’
52
Algorithmes avec réquisition (2/2)
Avec priorité
Les processus sont rangés par classes de priorité
Les processus de la classe de haute priorité sont exécutés en premier
A chaque classe correspond une file d'attente gérée par l'algorithme du tourniquet
En général, les priorités sont dynamiques afin d'éviter le monopole de l'UC
a-Zahra BELOUADHA Ecole Mohammadia d
Ingénieurs’
Ordonnancement dans Unix
2 classes de priorité : noyau et utilisateur
Chaque classe contient plusieurs priorités
A 1 priorité est associée 1 file de processus
Priorités dynamiques
Les processus de haute priorité sont non interruptibles
Un processus modifie sa priorité par l'appel système : int nice(int) de unistd.h
Un super-utilisateur peut supprimer un travail
me Fatima-Zahra BELOUADHA Ecole Mohammadia d
Ingénieurs’
54
Ordonnancement dans Unix
a-Zahra BELOUADHA Ecole Mohammadia d
Ingénieurs’
Synchronisation des processus
Les processus concurrents peuvent être coopératifs ou indépendants
Les processus peuvent coopérer en partageant des ressources (mémoire, imprimante…) ou par communication de données
L'accès concurrent peut engendrer des conflits
Le SE permet de synchroniser les activités des processus et l'accès aux ressources en cas d'accès concurrents
me Fatima-Zahra BELOUADHA Ecole Mohammadia d
Ingénieurs’
56
Exemple du spoole d'impression
Fichiers à imprimer classés dans un répertoire dans l'ordre de leur arrivée
Processus demandeur d'impression met le fichier à imprimer dans le prochain emplacement libre (in)
Processus d’impression retire le prochain fichier à imprimer (out)
fichier4 fichier3 fichier5 out=3
4 5 in=6
a-Zahra BELOUADHA Ecole Mohammadia d
Ingénieurs’
Accès concurrents et Sections critiques
Demande d’impression :
1. lire in;
2. placer_fichier (in);
3. in=in + 1;
Accès concurrent à la variable partagée in
Les processus A et B demandent simultanément l’impression mais A est interrompu avant 3
Demande d’impression est une section critique
Partie du programme où peut se produire des
me Fatima-Zahra BELOUADHA Ecole Mohammadia d
Ingénieurs’
58
Exclusion mutuelle
Deux processus ne peuvent utiliser la section critique (SC) à la fois
Contrôler l'accès et la sortie de la SC
1- Réserver l'accès si la SC est libre ou attendre
2- Utiliser la SC
3- Signaler la sortie de la SC aux autres
a-Zahra BELOUADHA Ecole Mohammadia d
Ingénieurs’
Règles de la synchronisation
Exclusion mutuelle
Famine : Aucun processus ne doit attendre trop longtemps pour entrer en SC
Interblocage : Aucun processus suspendu en dehors des sections critiques ne doit bloquer les autres
Aucune hypothèse sur les vitesses relatives des processus
me Fatima-Zahra BELOUADHA Ecole Mohammadia d
Ingénieurs’
60
Solutions pour la synchronisation
Masquage des interruptions
Solutions avec attente active
Verrous
TSL
Alternance
Alternance de Peterson
Solutions sans attente active
sleep et wakeup, Les sémaphores, Les
moniteurs, La communication par message
a-Zahra BELOUADHA Ecole Mohammadia d
Ingénieurs’
1ère Solution :
Masquage des interruptions
Masquer les interruptions avant d’entrer en SC et les restaurer après
Plus de commutation : l’interruption horloge est ignorée
inadaptée aux systèmes multi-processeurs
Dangereuse
Inéquitable
Peut bloquer un processus prioritaire
me Fatima-Zahra BELOUADHA Ecole Mohammadia d
Ingénieurs’
62
Solutions avec attente active :
Les verrous
Algorithme :
1- while (verrou == 1) ; /*Attente active*/
2- verrou=1 ; /*Verrouillage*/
3- section_critique();
4- verrou=0 ; /*Déverrouillage*/
Attente active : un processus ne pouvant entrer en SC utiliserait l’UC inutilement
Deux processus se trouvent à la fois en SC :
Si le système est multi-processeur
S'il y a interruption entre 1 et 2
Protéger le verrou par l'instruction TSL
a-Zahra BELOUADHA Ecole Mohammadia d
Ingénieurs’
Solutions avec attente active :
L'instruction câblée TSL
L'appel de TSL bloque l'accès en mémoire
Algorithme :
Entrer_en_SC :
TSL reg,verrou ;met la valeur du verrou dans le
;registre et la remplace par 1 en
;mémoire si elle est nulle
CMP reg,0 ;Teste si verrou est libre
JNZ Entrer_en_SC ;Boucle si verrou non libre
CALL Section_Critique
me Fatima-Zahra BELOUADHA Ecole Mohammadia d
Ingénieurs’
64
Solutions avec attente active :
L
’alternance Algorithme d’utilisation pour N processus
While (1) {
while (tour != monNumero) ; /*Attente active*/
Section_critique();
tour = (monNumero +1) % N ; /*Au suivant*/
Suite du programme }
Simple et facile
Famine si le tour est cédé à un processus non intéressé immédiatement par la SC
Interblocage si le tour est cédé à 1 processus bloqué
a-Zahra BELOUADHA Ecole Mohammadia d
Ingénieurs’
Solutions avec attente active :
Solution de Peterson (1981)
Plus de famine ni d'interblocage
Un processus souhaitant utiliser la SC doit le
signaler et positionner soit même la variable tour
Un processus intéressé peut entrer en SC même si c’est pas son tour quand l’autre ne l’est pas
Utilise un drapeau (tableau) et une variable tour
me Fatima-Zahra BELOUADHA Ecole Mohammadia d
Ingénieurs’
66
Solutions avec attente active :
Solution de Peterson (1981)
Algorithme pour deux processus P0 et P1
interesse[ps]=1 ; /*Lever le drapeau*/
tour = ps ; /*Passer en dernier*/
while (tour==ps && interesse[1-ps]==1);
Section_critique();
interesse[ps]=0;
Attente active
Processus prioritaire est mis en attente si l'autre est intéressé et a le tour
a-Zahra BELOUADHA Ecole Mohammadia d
Ingénieurs’
Solutions sans attente active
Un processus s'endormit et ne sera réveillé que lorsqu'il pourra entrer en SC
Appels système sleep et wakeup
Les sémaphores
Les moniteurs
La communication par message