Sobes.tech
Junior — Middle

Melyik mechanizmus felelős a folyamatok közös memória szegmenseinek létrehozásáért?

sobes.tech MI

Válasz az MI-től

Az a mechanizmus, amely felelős a folyamatok közös memória szegmenseinek létrehozásáért, a Shared Memory (megosztott memória). Unix/Linux rendszerekben ez rendszerhívásokon keresztül valósul meg, például shmget, shmat, shmdt és shmctl.

A megosztott memória lehetővé teszi több folyamat számára, hogy ugyanazt a memória szegmenst használják, ami jelentősen felgyorsítja az adatok cseréjét más IPC (Inter-Process Communication) módszerekhez képest.

Egyszerűsített példakód C nyelven:

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

int main() {
    key_t kulcs = 1234; // egyedi kulcs
    int shmid = shmget(kulcs, 1024, 0666|IPC_CREAT); // szegmens létrehozása
    char *adat = (char*) shmat(shmid, NULL, 0); // csatlakozás a szegmenshez

    strcpy(adat, "Üdvözlet a megosztott memóriából!");
    printf("Adatok a megosztott memóriában: %s\n", adat);

    shmdt(adat); // leválasztás a szegmensekről
    // shmctl(shmid, IPC_RMID, NULL); // szegmens törlése szükség szerint
    return 0;
}