Systemes Linux : processus et ordonnancement
Processus et états, création, remplacement, synchronisation, signaux, ordonnancement, mémoire virtuelle et E/S.
Processus et états
Définition
Un processus est un programme en cours d’exécution, identifié par un PID.
- Le PPID identifie le parent.
- Un processus peut être prêt, en exécution ou bloqué.
Repères
Création et remplacement
Chaîne classique
- 1
forkduplique le processus courant. - 2
Le père et le fils poursuivent chacun leur exécution.
Comparaison
`fork`
- Crée un fils.
- Duplique le contexte courant.
- Conserve le même programme au départ.
`exec`
- Ne crée pas un nouveau processus.
- Charge un autre programme.
- Remplace l’image mémoire courante.
Mémo
`fork` puis `exec`, parent attend : trois verbes pour la vie d’un fils.
Attente et synchronisation
Attente d’un fils
Un parent crée un fils avec fork, puis veut éviter un zombie. Que fait-il ?
- Le parent conserve le PID du fils.
- Il appelle
waitouwaitpid. - Le noyau délivre l’état de fin du fils.
Le parent synchronise sa reprise avec la fin du fils et évite un zombie.
Notion clé
La synchronisation coordonne plusieurs processus pour ordonner leurs actions.
waitbloque jusqu’à la fin d’un fils.waitpidcible un fils précis.
Signaux
Principe
- Un signal est une notification asynchrone.
- Le processus peut l’ignorer, le traiter ou subir l’action par défaut.
Repères
| Signal | Rôle |
|---|---|
SIGTERM | Arrêt demandé proprement. |
SIGKILL | Arrêt forcé immédiat. |
SIGSTOP | Suspension immédiate. |
Ordonnancement et priorités
Idée centrale
Résumé
- Le noyau choisit le prochain processus à exécuter.
- Plusieurs processus prêts partagent un seul CPU.
Mémoire virtuelle et E/S
Repères mémoire
- Mémoire virtuelle
- Espace mémoire isolé propre à chaque processus.
- Descripteur de fichier
- Entier représentant une ouverture de fichier.
- Entrée standard
- Descripteur
0.
Entree sortie
int fd = open("fichier.txt", O_RDONLY);
read(fd, buf, n);
write(1, buf, n);
close(fd);read, write et close manipulent descripteurs, pas directement des fichiers.
