Sobes.tech
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;
}