Cet ouvrage s'adresse plus particulièrement aux étudiants de premier et deuxième cycles d'informatique.Il présente les principes fondamentaux des systèmes d'exploitation ainsi que la programmation système sous les systèmes d'exploitation Linux, conformes à la norme POSIX.Cet ouvrage se compose de dix chapitres qui décrivent [...] [lire le résumé du livre]
Cet ouvrage s'adresse plus particulièrement aux étudiants de premier et deuxième cycles d'informatique.
Il présente les principes fondamentaux des systèmes d'exploitation ainsi que la programmation système sous les systèmes d'exploitation Linux, conformes à la norme POSIX. Cet ouvrage se compose de dix chapitres qui décrivent l'ensemble des fonctions d'un système d'exploitation multiprogrammé comme l'est Linux : - une première partie traite du fonctionnement du système d'exploitation : notions de base, processus, ordonnancement, système de gestion de fichiers, mécanisme des entrées-sorties, gestion de la mémoire centrale, pagination et mémoire virtuelle ; - une deuxième partie présente les outils de communication et de synchronisation tels que les sockets, les tubes, les files de messages, les signaux, les régions de mémoires partagées, les sémaphores et l'appel de procédure à distance ; - une dernière partie présente des notions avancées sur les systèmes Linux temps réel et multiprocesseurs.
Chaque chapitre s'ouvre sur une partie théorique. Puis une partie applicative, toujours basée sur Linux, décrit de manière simplifiée l'implémentation faite de ces concepts au sein du noyau Linux, ainsi que les primitives systèmes qui leur sont attachées. Des exemples de programmation illustrent l'emploi de ces primitives.
Des exercices corrigés actualisés pour cette 4e édition clôturent chaque chapitre et des énoncés de programmation sont suggérés.
Auteurs :
Joëlle Delacroix est maître de conférences en informatique au Cnam de Paris et docteur en informatique.
Sommaire et contenu du livre "Linux - Programmation système et réseau - Cours et exercices corrigés"
TABLE DES MATIÈRES
Avant-propos IX
Chapitre 1 . Introduction au système Linux
1.1
Le système d'exploitation: présentation générale 1
1.1.1
Définition 1
1.1.2
Structure générale 3
1.1.3
Types de systèmes d'exploitation 5
1.2
Le système Linux 8
1.2.1
Présentation générale 8
1.2.2
Structure 8
1.3
Notions fondamentales la
1.3.1
Modes d'exécutions et commutations de contexte la
1.3.2
Gestion des interruptions matérielles et logicielles 14
Exercices 23
Solutions 26
Chapitre 2 . Processus, threads et ordonnancement 27
2.1
Processus Linux 27
2.1.1
Rappels sur la notion de processus 27
2.1.2
Processus Linux 31
2.2
Processus léger (thread) 41
2.2.1
Notion de processus léger 41
2.2.2
Primitives de gestion des threads 43
2.2.3
Implémentation sous Linux 47
2.3
Démarrage du système Linux 47
2.4
Ordonnancement 49
2.4.1
Le rôle de l'ordonnancement 49
2.4.2
Les principaux algorithmes d'ordonnancement 51
2.4.3
La fonction d'ordonnancement sous Linux 53
Exercices 61
Solutions 69
Chapitre 3• Système de gestion de fichiers 75
3.1
Notions générales 75
3.1.1
Le fichier logique 76
3.1.2
Le fichier physique 77
3.1.3
Correspondance fichier logique -fichier physique 86
3.2
Le système de gestion de fichiers de Linux 88
3.2.1
Structure d'un fichier dans Ext2 89
3.2.2
Structure d'un répertoire 94
3.2.3
Structure d'une partition 95
3.3
VFS: le système de gestion de fichiers virtuel 97
3.3.1
Présentation 97
3.3.2
Structure et fonctionnement du VFS 98
3.4
Primitives du VFS 105
3.4.1
Opérations sur les fichiers 105
3.4.2
Opérations sur les répertoires 112
3.4.3
Opérations sur les liens symboliques 115
3.4.4
Opérations sur les partitions 116
3.5
Le système de fichiers /proc 116
Exercices 118
Solutions 121
Chapitre 4 • Gestion des entrées-sorties 127
4.1
Principes généraux 127
4.1.1
~unité d'échange 127
4.1.2
Le pilote et les modes d'entrées-sorties 129
4.2
Entrées-sorties Linux 134
4.2.1
Fichiers spéciaux 134
4.2.2
Appels systèmes 135
4.2.3
Exemples 138
Exercices 139
Solutions 140
Chapitre 5• Gestion de la mémoire centrale 141
5.1
Les mécanismes de pagination et de mémoire virtuelle 141
5.1.1
Rappels sur la mémoire physique 141
5.1.2
Espace d'adressage d'un processus 143
5.1.3
Pagination de la mémoire centrale 144
5.1.4
Principe de la mémoire virtuelle 152
5.2
La gestion de la mémoire centrale sous Linux 159
5.2.1
Espace d'adressage d'un processus Linux 159
5.2.2
Mise en œuvre de la pagination 166
5.2.3
Mise en œuvre de la mémoire virtuelle 168
Exercices 173
Solutions 178
Chapitre 6 . Gestion des signaux 185
6.1
Présentation générale 185
6.
1.1 Définition 185
6.1.2
Listes des signaux 186
6.1.3
Champs du PCB associés aux signaux 186
6.2
Aspects du traitement des signaux par le noyau 186
6.2.1
Envoi d'un signal 186
6.2.2
Prise en compte d'un signal 188
6.2.3
Signaux et appels systémes 191
6.2.4
Signaux et héritage 191
6.3
Programmation des signaux 191
6.3.1
Envoyer un signal 191
6.3.2
Bloquer les signaux 192
6.3.3
Attacher un handler à un signal 194
6.3.4
Traiter les appels systèmes interrompus 197
6.3.5
Attendre un signal 198
6.3.6
Armer une temporisation 199
6.4
Signaux temps réel 200
6.4.1
Présentation générale 200
6.4.2
Envoyer un signal temps réel 201
6.4.3
Attacher un gestionnaire à un signal temps réel 201
6.4.4
Exécution du gestionnaire de signal 203
Exercices 205
Solutions 208
Chapitre 7 • Communication entre processus 211
7.1
La communication par tubes 211
7.1.1
Les tubes anonymes 212
7.1.2
Les tubes nommés 219
7.2
Les IPe : files de messages, mémoire partagée 223
7.2.1
Caractéristiques générales 223
7.2.2
Les files de messages 224
7.2.3
Les régions de mémoire partagée 231
Exercices 235
Solutions 239
Chapitre 8 • Synchronisation entre processus -Interblocage 249
8.1
Les grands schémas de synchronisation 249
8.1.1
L'exclusion mutuelle 250
3.1.2
Le schéma de l'allocation de ressources 256
8.1.3
Le schéma lecteurs-rédacteurs 258
8.1.4
Le schéma producteurs-consommateurs 261
8.2
Utilisation des sémaphores sous Linux 263
8.2.1
Création et recherche d'un ensemble de sémaphores 264
8.2.2
Opérations sur les sémaphores 264
8.2.3
Un exemple 266
8.3
Mutex et variables conditions 268
8.3.1
Mutex 268
8.3.2
Variables conditions 270
8.4
Interblocage 272
8.4.1
Les conditions nécessaires à l'obtention d'un interblocage 272
8.4.2
Les différentes méthodes de traitement des interblocages 273
8.5
Synchronisation dans le noyau Linux 278
8.5.1
Le noyau est non préemptible 278
8.5.2
Masquage des interruptions 278
8.5.3
Sémaphores 279
8.5.4
Interblocage 279
Exercices 279
Solutions 284
Chapitre 9 • Programmation réseau 295
9.1
L'interconnexion de réseaux 295
9.1.1
Le modèle client-serveur 295
9.1.2
Les architectures clients-serveurs 297
9.1.3
L'interconnexion de réseaux 297
9.2
Programmation réseau 303
9.2.1
Les utilitaires pour la programmation socket 304
9.2.2
L'interface socket 306
9.3
Appel de procédure à distance 326
9.3.1
Mise en œuvre de l'appel de procédure à distance 326
9.3.2
Les difficultés 327
Exercices 331
Solutions 335
Chapitre 10 • Systèmes Linux avancés 343
10.1
Systèmes Linux temps réel 343
10.1.1
Applications temps réel 343
10.1.2
Exécutifs temps réel 345
10.1.3
Le service d'ordonnancement temps réel 347
10.1.4
Les systèmes Linux temps réel 352
10.2
Systèmes Linux pour les architectures multiprocesseurs 355
10.2.1
Classification des architectures multiprocesseurs 355
10.2.2
Architectures SMP Linux 358
Exercices 362
Solutions 364
Index 369
Avis clients
Avis clients sur Linux - dunod - Sciences sup
(Ils sont modérés par nos soins et rédigés par des clients ayant acheté l'ouvrage)
Nous utilisons des cookies pour assurer le bon fonctionnement du site et améliorer votre expérience-utilisateur.
Ce site respecte la loi RGPD du 25 mai 2018.
Vous pouvez modifier vos préférences à tout moment.
Consulter notre politique de confidentialité
Nécessaires
Les cookies nécessaires contribuent à rendre un site web utilisable en activant des fonctions de base comme la navigation de page et l'accès aux zones sécurisées du site web. Le site web ne peut pas fonctionner correctement sans ces cookies.
Statistiques
Les cookies statistiques aident les propriétaires du site web, par la collecte et la communication d'informations de manière anonyme, à comprendre comment les visiteurs interagissent avec les sites web.
Marketing
Les cookies marketing sont utilisés pour effectuer le suivi des visiteurs au travers des sites web. Le but est d'afficher des publicités qui sont pertinentes et intéressantes pour l'utilisateur individuel et donc plus précieuses pour les éditeurs et annonceurs tiers.