📧 Comunicación entre procesos: Memoria compartida
🎯 Objetivo de aprendizaje
- Comprender los mecanismos de comunicación entre procesos (IPC) utilizando memoria compartida.
- Identificar el papel del sistema operativo en la gestión de las conexiones de red.
📜 Enunciado
En este ejercicio, va a crear dos módulos de Python para
🔧 Paso 1 – Módulo Writer
Cree un archivo llamado writer.py y copie el siguiente código:
# 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
💬 Paso 2 – Módulo Reader
Cree un archivo 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()
🔁 Paso 3 – Prueba
Para probar, abra dos terminales. En la primera terminal, ejecute el módulo writer.py:
python writer.py
En la segunda terminal, ejecute el módulo reader.py:
python reader.py
📝 Paso 4 – El sistema operativo
- ¿Cuál es el papel del sistema operativo en la gestión de la memoria compartida?
- ¿Qué procesos pueden acceder a la memoria compartida llamada
demo_shm? - ¿Qué sucede si el proceso
writer.pytermina antes de quereader.pypueda leer los datos? - ¿El sistema operativo gestiona la sincronización entre los procesos que acceden a la memoria compartida?