Sobes.tech
Junior — Middle

¿Qué mecanismo es responsable de crear segmentos de memoria compartida para procesos?

sobes.tech AI

Respuesta de la IA

El mecanismo responsable de crear segmentos de memoria compartida para procesos se llama Shared Memory (memoria compartida). En sistemas operativos como Unix/Linux, esto se implementa mediante llamadas al sistema, por ejemplo, shmget, shmat, shmdt y shmctl.

La memoria compartida permite que varios procesos compartan un mismo segmento de memoria, lo que acelera significativamente el intercambio de datos en comparación con otros métodos de comunicación entre procesos (IPC).

Ejemplo de uso en C (simplificado):

#include <sys/ipc.h>
#include <sys/shm.h>
#include <stdio.h>
#include <string.h>

int main() {
    key_t key = 1234; // clave única
    int shmid = shmget(key, 1024, 0666|IPC_CREAT); // creamos un segmento de memoria
    char *data = (char*) shmat(shmid, NULL, 0); // conectamos el segmento

    strcpy(data, "¡Hola desde la memoria compartida!");
    printf("Datos en la memoria compartida: %s\n", data);

    shmdt(data); // desconectamos el segmento
    // shmctl(shmid, IPC_RMID, NULL); // eliminación del segmento si es necesario
    return 0;
}