Sobes.tech
Junior — Middle

Qual mecanismo é responsável por criar segmentos de memória partilhada para processos?

sobes.tech IA

Resposta da IA

O mecanismo responsável por criar segmentos de memória partilhada para processos chama-se Shared Memory (memória partilhada). Em sistemas operativos como Unix/Linux, isto é implementado através de chamadas ao sistema, por exemplo, shmget, shmat, shmdt e shmctl.

A memória partilhada permite que vários processos utilizem conjuntamente um mesmo segmento de memória, o que acelera significativamente a troca de dados em comparação com outros métodos de comunicação entre processos (IPC).

Exemplo de uso em C (simplificado):

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

int main() {
    key_t key = 1234; // chave única
    int shmid = shmget(key, 1024, 0666|IPC_CREAT); // cria um segmento de memória
    char *data = (char*) shmat(shmid, NULL, 0); // conecta ao segmento

    strcpy(data, "Olá do memória partilhada!");
    printf("Dados na memória partilhada: %s\n", data);

    shmdt(data); // desconecta do segmento
    // shmctl(shmid, IPC_RMID, NULL); // remove o segmento se necessário
    return 0;
}