Sobes.tech
Junior — Middle

Jaki mechanizm odpowiada za tworzenie segmentów pamięci współdzielonej dla procesów?

sobes.tech AI

Odpowiedź od AI

Mechanizm odpowiedzialny za tworzenie segmentów pamięci współdzielonej dla procesów nazywa się Shared Memory (pamięć współdzielona). W systemach operacyjnych takich jak Unix/Linux jest on realizowany za pomocą wywołań systemowych, na przykład shmget, shmat, shmdt i shmctl.

Pamięć współdzielona pozwala wielu procesom na wspólne korzystanie z tego samego segmentu pamięci, co znacznie przyspiesza wymianę danych w porównaniu z innymi metodami komunikacji międzyprocesowej (IPC).

Przykład użycia w C (uproszczony):

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

int main() {
    key_t key = 1234; // unikalny klucz
    int shmid = shmget(key, 1024, 0666|IPC_CREAT); // tworzymy segment pamięci
    char *data = (char*) shmat(shmid, NULL, 0); // dołączamy segment

    strcpy(data, "Cześć z pamięci współdzielonej!");
    printf("Dane w pamięci współdzielonej: %s\n", data);

    shmdt(data); // odłączamy segment
    // shmctl(shmid, IPC_RMID, NULL); // usuwamy segment jeśli konieczne
    return 0;
}