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