1 - Compilation et programmation

1.1 - Préparation du fichier source

1.1.1 - L'éditeur vi (mode console)

1.1.2 - L'éditeur nedit ou xedit (sous X)

1.2 - La compilation sous unix

1.3 - Constitution d’une bibliothèque

1.3.1 - Statique

1.3.2 - Dynamique

1.4 - Make

1.4.1 - Qu'est-ce que make ?

1.4.2 - Le makefile

1.4.3 - Les règle

1.4.4 - Ecrire un makefile

1.4.5 - Comment make interprète-t-il un makefile ?

1.4.6 - Exécuter un makefile

1.4.7 - Les variables

1.4.8 - Les règles

1.5 - L'interface C-Unix

1.5.1 - Les primitives

1.5.2 - Les fonctions

1.6 - L'interface shell

1.6.1 - Accès aux arguments

1.6.2 - Accès à l'environnement

1.6.3 - Renvoi d'un code de retour

1.7 - Aide à la mise au point

2 - Les processus

2.1 - Accès aux données du BCP.

2.1.1 - Identité du processus

2.1.2 - Propriétaires du processus

2.2 - La primitive fork

2.3 - Les primitives exec

2.4 - La primitive wait

2.5 - Le mécanisme du fork/exec

2.5.1 - Fonctionnement canonique d’un shell

3 - Les signaux

3.1 - Introduction

3.1.1 - Les signaux disponibles

3.1.2 - Le comportement à la réception d’un signal

3.2 - L’envoi des signaux

3.2.1 - La primitive kill

3.2.2 - Exemple

3.3 - Le masquage des signaux

3.3.1 - Manipulation des ensembles de signaux

3.3.2 - La primitive sigprocmask

3.3.3 - La primitive sigpending

3.3.4 - Exemple

3.4 - Le captage des signaux

3.4.1 - La structure sigaction

3.4.2 - La primitive sigaction

3.4.3 - Exemple

3.5 - L’attente d’un signal.

4 - Les entrées-sorties

4.1 - Les différentes tables utilisées

4.1.1 - Au niveau d’un processus

4.1.2 - Au niveau du système

4.1.3 - Appels système et fonctions

4.2 - Les opérations de base

4.2.1 - 0uverture d un fichier

4.2.2 - Création d’un fichier régulier

4.2.3 - Fermeture d’un fichier

4.2.4 - Lecture dans un fichier

4.2.5 - Ecriture dans un fichier

4.2.6 - Déplacement de la position courante

4.3 - Manipulation de descripteurs

4.3.1 - Duplication

4.3.2 - Création d’un tube local

4.4 - Manipulation de i-nœuds

4.4.1 - Création d’un fichier de type tube nommé

4.4.2 - Création d’un fichier de type catalogue

4.5 - Consultation d'un i-nœud

4.5.1 - Introduction

4.5.2 - La structure stat

4.5.3 - La primitive stat

4.5.4 - Les mnémoniques

4.5.5 - Set-uid bit, set-gid bit, sticky bit

4.6 - Modification des caractéristiques d'un i-nœud

4.6.1 - Modification des droits d’accès

4.6.2 - Modification des propriétaires

4.7 -  Les fichiers de type catalogue

4.7.1 - Le fichier standard <dirent.h>

4.7.2 - Ouverture d'un fichier catalogue

4.7.3 - Lecture d'une entrée

4.7.4 - Fermeture d'un fichier catalogue

4.8 - La bibliothèque d'entrée-sortie standard

4.8.1 - Le fichier <stdio.h>

4.8.2 - Ouverture d'un fichier

4.8.3 - Fermeture d'un fichier

4.8.4 - Ouverture bibliothèque et système

4.8.5 - Lecture dans un fichier

4.8.6 - Ecriture dans un fichier

4.8.7 - Autre fonctions de la bibliothèque standard d'E/S

5 - Les verrous

5.1 - Introduction : Les accès concurrents

5.2 - Les verrous externes

5.2.1 - Le principe

5.2.2 - Création d’un fichier verrou

5.2.3 - Suppression d’un fichier verrou

5.2.4 - Première utilisation :assurer l’unicité d’un processus

5.2.5 - Seconde utilisation : accès exclusif à un fichier

5.2.6 - Critique du mécanisme

5.3 - Les verrous internes

5.3.1 - Introduction

5.3.2 - Caractéristiques générales

5.3.3 - L’implémentation System V

6 - Les IPC

6.1 - Introduction

6.2 - Caractéristiques communes

6.3 - Le fichier standard <sys/ipc.h>

6.3.1 - Les constantes macro-définies.

6.3.2 - La structure ipc_perm

6.4 - La gestion des clés

6.5 - Les commandes IPC System V

6.6 - Les sémaphores

6.6.1 - Principe initial

6.6.2 - Principe des sémaphores Unix

6.6.3 - La table des sémaphores

6.6.4 - Les commandes

6.6.5 -  La primitive semget

6.6.6 - La primitive semctl

6.6.7 -  La primitive semop

6.7 - Segments de mémoire partagée

6.7.1 - Le principe

6.7.2 - La table des segments

6.7.3 - Les commandes

6.7.4 - Création d'un segment et obtention d'un shmid

6.7.5 - Opérations de contrôle d’un segment

6.7.6 - Attachement à un segment

6.7.7 - Le détachement d'un segment

6.7.8 - Détachement et suppression

7 - Les threads

7.1 - Introduction

7.1.1 - Processus UNIX et threads

7.1.2 - Remarque

7.1.3 - Compilation pour les threads

7.2 - Les attributs d’un activité

7.2.1 - Identification d’une activité

7.2.2 - Terminaison d’un activité

7.3 - Création et terminaison des activités

7.3.1 - Création d’une activité : pthread_create

7.3.2 - Terminaison d'une activité

7.4 - Synchronisation des activités

7.4.1 - Introduction

7.4.2 - Synchronisation sur terminaison d'une activité : pthread_join

7.4.3 - LES MUTEX

7.4.4 - Les conditions

7.4.5 - Autres mécanisme associés aux threads

7.5 - Exemple d'utilisation des mutex et des conditions