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