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;
}