Sobes.tech
Junior — Middle
103

Какой механизм отвечает за создание участков общей памяти для процессов?

Сұралған компаниялар
КасперскийКасперский

AI-дан жауап

sobes.tech AI

Механизм, отвечающий за создание участков общей памяти для процессов, называется Shared Memory (разделяемая память). В операционных системах, таких как Unix/Linux, это реализуется через системные вызовы, например, shmget, shmat, shmdt и shmctl.

Shared Memory позволяет нескольким процессам совместно использовать один и тот же участок памяти, что значительно ускоряет обмен данными по сравнению с другими методами межпроцессного взаимодействия (IPC).

Пример использования в C (упрощённо):

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

int main() {
    key_t key = 1234; // уникальный ключ
    int shmid = shmget(key, 1024, 0666|IPC_CREAT); // создаём сегмент памяти
    char *data = (char*) shmat(shmid, NULL, 0); // подключаем сегмент

    strcpy(data, "Привет из общей памяти!");
    printf("Данные в общей памяти: %s\n", data);

    shmdt(data); // отключаем сегмент
    // shmctl(shmid, IPC_RMID, NULL); // удаление сегмента при необходимости
    return 0;
}