Synchronisation de Processus (partie-1).pdf

(128 KB) Pobierz
Cours « système d’exploitation »
2
ème
année
IUT de Caen, Département d’Informatique
(François Bourdon)
Chapitre 3
Synchronisation de Processus
(partie−1)
Cours Systèmes d’Exploitation. IUT d’Ifs département informatique.
.
Page 2
François Bourdon.
Plan
1.Système de Gestion des Fichiers : Concepts avancés
2.Création et ordonnancement de Processus
3.Synchronisation de Processus
3.1 Expression de la notion de processus
3.2 Modèles de représentation des processus
Processus séquentiels
Systèmes de tâches et graphes de précédence
Automates finis
Réseaux de Pétri
Exemples de mise en oeuvre sur UNIX
3.3 Interactions de processus
Déterminisme d’un système de tâches
Blocage dans un système de tâches
3.4 Synchronisation de processus
Section critique
Désarmement des interruptions
Instruction Test−and−Set
Les sémaphores
Les moniteurs de Hoare
3.5 Problèmes classiques de synchronisation
Producteurs/consommateurs
Lecteurs/rédacteurs
Le problème des philosophes [Dikkstra 65]
4.Communication entre Processus : les Signaux
5.Echange de données entre Processus
6. ...
Cours Systèmes d’Exploitation. IUT d’Ifs département informatique.
.
Page 3
François Bourdon.
3. Synchronisation de Processus
Les machines bi−processeurs existent, les systèmes existent, la
difficulté est la programmation elle−même.
On trouve plusieurs types de programmation : séquentielle,
structurée, objet, agent, fonctionnelle, parallèle ...
Suivant les langages et les systèmes sous−jacents on manipule
les processus de différentes façons.
Un processus peut être considéré comme une occurrence d’un
programme, c’est−à−dire comme une entité active/dynamique,
contrairement au programme qui est une entité statique.
L’état d’un processus c’est :
l’état de ses variables globales,
l’état de la pile,
l’état du tas,
l’état de la structure U (Unix),
l’état du registre du processeur,
sauvegardé lors de la commutation de
contexte (mot d’état).
Cours Systèmes d’Exploitation. IUT d’Ifs département informatique.
.
Page 4
François Bourdon.
3.1 Expression de la notion de processus dans les
langages de programmation
Dans Unix :
fork () , exec ()
(PID)
En Pascal// ou en
C//,
il existe une structure de
contrôle pour le parallèlisme : cobegin/coend
cobegin
<bloc1> || <bloc2> || <bloc3>
coend
à la fin du
coend
les 3 blocs sont terminés et les
processus 1,2 et 3 sont finis.
Le type « processus » peut être directement
manipulable par le langage :
process I ( < paramètres formels> )
var locale;
begin
end
 
start I (7, « bonjour »)
lancement du
processus
Cours Systèmes d’Exploitation. IUT d’Ifs département informatique.
.
Page 5
François Bourdon.
Zgłoś jeśli naruszono regulamin