IPC & synchronisation
#IPC & synchronisation
Pipes, files de messages, mémoire partagée, verrous, sémaphores, et conditions de course.
#Panorama
- Pipes/queues: passage de messages, découplage producteur/consommateur.
- Shared memory: rapide mais nécessite synchronisation.
- Verrous/sémaphores/moniteurs: exclusion mutuelle, signaux, attente conditionnelle.
#Exemple producteur‑consommateur (pseudo‑code)
bg-[rgba(var(--code-inline-bg),0.5)] text-[rgb(var(--fg))] px-1 roundedbg-[rgba(var(--code-inline-bg),0.5)] text-[rgb(var(--fg))] px-1 rounded
1buffer = Queue(max=10)2 3producer:4 loop:5 x = make_item()6 buffer.put(x) # bloque si plein7 8consumer:9 loop:10 x = buffer.take() # bloque si vide11 process(x)
#Problèmes classiques
- Deadlock (interblocage), livelock, famine; conditions de Coffman et évitement.