← Retour

Systèmes d’exploitation Les processus concurrents et leurs synchronisations

par: Ms Habet
Disponible
Pages 286
Dimensions 16*23,5
Publication 2023-01-03
Éditeur —
Papier : 1 300.00 DA Numérique: 650.00 DA

Ce livre se veut comme une introduction aux processus concurrents et leurs synchronisations dans un contexte centralisé. Il est destiné essentiellement aux étudiants de licence, master et écoles d’ingénieurs en informatique. Il peut aussi convenir à d’autres lecteurs s’intéressant à la programmation concurrente. Ce livre est une édition revue et augmentée d’un livre du même auteur intitulé « Synchronisation par sémaphores ». En effet celui-ci a été remanié avec l’introduction de quelques nouveaux exercices, l’ajout d’une partie sur la spécification et l’expression du parallélisme et enfin une partie sur les moniteurs. L’aspect pratique a aussi été pris en compte à travers la programmation en C/Linux. Dans ce livre, on utilisera tantôt le terme « concurrent », tant tôt le terme « parallèle », vu qu’il y a une analogie entre les deux termes, bien qu’il existe une différence entre les deux. Suivant certains auteurs, par « concurrence », on désigne l’ensemble des phénomènes issus de l’interaction entre plusieurs agents au sein d’un système donné. Ainsi un programme concurrent est la réunion de plusieurs processus chargés de tâches différentes qui peuvent interagir et interférer. Par « parallélisme », on désigne la simultanéité de l’exécution de plusieurs processus. Ce livre est divisé en trois parties totalisant huit chapitres. La première partie concerne la définition et l’expression du parallélisme, elle contient un premier chapitre sur les processus, et un deuxième chapitre sur le parallélisme en C/Linux. La seconde partie concerne les sémaphores, elle contient un premier chapitre sur l’introduction aux sémaphores, un deuxième chapitre sur les problèmes classiques de synchronisation, un troisième chapitre sur le formalisme de Boksenbaum, un quatrième chapitre sur les variantes des sémaphores et enfin un cinquième chapitre sur les sémaphores en C/Linux. La troisième partie traite des moniteurs, elle contient un seul chapitre sur les moniteurs. Sémaphores et moniteurs sont deux outils de synchronisation, les plus utilisés certes, mais il en existe d’autres qui ne sont pas traités dans ce livre, comme les régions critiques, les expressions de chemin, … etc Je tiens à présenter mes remerciements à Monsieur R. Rahmani, Monsieur M. Ramdane et Monsieur M. Daoui pour leurs lectures de quelques chapitres de ce livre avant son édition, ainsi que pour leurs remarques qui ont permis d’améliorer son contenu. Cependant toutes erreurs éventuelles dans le contenu de ce livre sont de ma seule responsabilité.

Afficher la table des matières
Préface 03
Avant-propos 05
Sommaire 07
Partie I : Spécification et expression du parallélisme 11
Chapitre 1 : Les processus 13
1. Introduction
2. Notion de processus du point de vue systèmes d’exploitation
2.1. État d’un processus 14
2.2. Bloc de Contrôle de Processus 14
3 .Notion de processus du point de vue langages de programmation 17
3.1. Spécification de la concurrence par débutpar/finpar 17
3.2 .Spécification de la concurrence par fork/join 18
4. Relations entre processus 19
4.1. parallélisme 19
4.2. communication 19
4.3. synchronisation 20
5. Propriétés 20
5.1. absence d’interblocage 20
5.2 .équité 21
5.3. priorité 21
5.4. terminaison 22
6. les threads 22
7. conditions de Bernstein 23
8. graphes de précédence 24
9. le problème de l’exclusion mutuelle 25
9.1 Solutions matérielles 26
9.1.1 Désarmement des interruptions 26
9.1.2 Instruction Test-and-Set 27
9.2 Solutions logicielles 28
 Exercices avec solutions 32
 Exercices supplémentaires
Chapitre 2 : Le parallélisme en C/Linux 1 Introduction 48
2 Processus 48
2.1 Introduction 48
2.2 Identificateur de processus 48
2.3 La fonction fork 49
2.4 Terminaison et synchronisation père-fils 52
2.5 Primitives de recouvrement 58
3 Signaux 61
3.1 Types de signaux 61
3.2 La primitive kill 63
3.3 Attente d’un signal 63
3.4 Installation de nouveaux handlers 64
4 Communication entre processus 66
4.1 Les tubes anonymes 67
4.2 Les tubes nommés 71
4.3 Files de messages 74
4.4 Mémoire partagée 80
5 Threads 83
5.1 Création d’un thread 84
5.2 Terminaison d’un thread 84
5.3 Libération des ressources d’un thread 84
5.4 Libération du processeur 85
5.5 Attente de la terminaison d’un thread 85
5.6 Comportement vis-à-vis des cancels 85
5.7 Exécution d’une routine d’initialisation 86
5.8 Récupérer son propre identificateur 86
 Exercices avec solutions 89
Chapitre 3 : Introduction aux sémaphores
Partie II : Les sémaphores 113
1. Sémaphores 116
2. Exemple d’application 117
 Exercices 118
 Exercices supplémentaires
Chapitre 4 : Problèmes classiques de synchronisation 129
1. Exclusion mutuelle 130
2. Précédence de tâches 131
3. Lecteurs/ Rédacteurs 134
4. Producteurs / Consommateurs 136
5. Philosophes 138
 Exercices avec solutions 141
 Exercices supplémentaires 174
Chapitre 5 : Formalisme de Boksenbaum 177
1. Présentation du formalisme de Boksenbaum 178
2. exclusion mutuelle 179
3. Lecteurs / Rédacteurs 180
4. Producteurs / Consommateurs 181
 Exercices avec solutions 183
 Exercices Supplémentaires 195
Chapitre 6 : Variantes 197
1. Sémaphores de Vantilborgh 198
2. Sémaphores de Patil 202
3. Sémaphores binaires : les verrous 205
 Exercices avec solutions 208
 Exercices Supplémentaires 220
Chapitre 7 : Les sémaphores en C/Linux 225
1 Les sémaphores d’Unix 226
1.1 Structures semid_ds et sembuf 226
1.2 Obtention d’un ensemble de sémaphores 227
1.3 Réalisation des opérations P et V à l’aide de la primitive
1.4 Primitive semctl 229
1.5 Un header pour l’utilisation des primitives P et V 230
2 Les mutex et les variables conditions 234
2.1 Mutex 234
2.2 Variables conditions
 Exercices avec solutions
 Exercices supplémentaires
Partie III : Les moniteurs
Chapitre 8 : Les moniteurs
1. Définition d’un moniteur
2. Variables condition
2.1. Primitives manipulant les variables conditions
2.2. Différences entre condition et sémaphore
2.3 .Similitudes entre condition et sémaphore
2.4. Exemple
 Exercices avec solutions
 Exercices supplémentaires
Bibliographie

Avis des lecteurs

Aucun avis pour le moment.