đ§ Communication interprocessus : MĂ©moire partagĂ©e
đŻ Objectif pĂ©dagogiqueâ
- Comprendre les mécanismes de communication interprocessus (IPC) à l'aide de la mémoire partagée.
- Identifier le rÎle du systÚme d'exploitation dans la gestion des connexions réseau.
đ ĂnoncĂ©â
Dans cet exercice, vous allez créer une deux modules Python pour
đ§ Ătape 1 â Module Writerâ
Créez un fichier appelé writer.py et copiez le code suivant :
# writer.py
from multiprocessing import shared_memory
import time
# Create a new shared memory block
shm = shared_memory.SharedMemory(name="demo_shm", create=True, size=1024)
# Write some bytes
shm.buf[:10] = b"Hello IPC!"
print("Writer: wrote to shared memory.")
time.sleep(60) # Give reader time to read it
# Clean up
shm.close()
shm.unlink() # Only the creating process should unlink
đŹ Ătape 2 â Module Readerâ
Créez un fichier reader.py :
# reader.py
from multiprocessing import shared_memory
# Connect to existing shared memory
existing_shm = shared_memory.SharedMemory(name="demo_shm")
# Read from it
data = bytes(existing_shm.buf[:11])
print("Reader: read from shared memory:", data.decode())
existing_shm.close()
đ Ătape 3 â Testâ
Pour tester, ouvrez deux terminaux. Dans le premier terminal, exécutez le module writer.py :
python writer.py
Dans le second terminal, exécutez le module reader.py :
python reader.py
đ Ătape 4 â Le systĂšme d'exploitationâ
- Quel est le rÎle du systÚme d'exploitation dans la gestion de la mémoire partagée ?
- Quels processus peuvent accéder à la mémoire partagée nommée
demo_shm? - Que se passe-t-il si le processus
writer.pyest terminé avant quereader.pyne puisse lire les données ? - Est-ce que le systÚme d'exploitation gÚre la synchronisation entre les processus qui accÚdent à la mémoire partagée ?