Junior — Middle
Aký mechanizmus je zodpovedný za vytváranie segmentov zdieľanej pamäte pre procesy?
sobes.tech AI
Odpoveď od AI
Mechanizmus zodpovedný za vytváranie segmentov zdieľanej pamäte pre procesy sa nazýva Shared Memory (zdieľaná pamäť). V operačných systémoch ako Unix/Linux je to realizované prostredníctvom systémových volaní, napríklad shmget, shmat, shmdt a shmctl.
Zdieľaná pamäť umožňuje viacerým procesom zdieľať rovnaký segment pamäte, čo výrazne zrýchľuje výmenu dát v porovnaní s inými metódami medziprocesovej komunikácie (IPC).
Príklad použitia v C (zjednodušený):
#include <sys/ipc.h>
#include <sys/shm.h>
#include <stdio.h>
#include <string.h>
int main() {
key_t kľúč = 1234; // jedinečný kľúč
int shmid = shmget(kľúč, 1024, 0666|IPC_CREAT); // vytvorenie segmentu
char *dáta = (char*) shmat(shmid, NULL, 0); // pripojenie ku segmentu
strcpy(dáta, "Ahoj z zdieľanej pamäte!");
printf("Dáta v zdieľanej pamäti: %s\n", dáta);
shmdt(dáta); // odpojenie od segmentu
// shmctl(shmid, IPC_RMID, NULL); // odstránenie segmentu ak je potrebné
return 0;
}