Какие механизмы межпроцессного взаимодействия (IPC) вы знаете?

Обмен данными между процессами (IPC, Inter-Process Communication) в операционных системах может осуществляться несколькими способами:

Короткий ответ

Что ответить на собеседовании

Обмен данными между процессами (IPC, Inter-Process Communication) в операционных системах может осуществляться несколькими способами:

Подробный разбор

Ответ с пояснениями

Обмен данными между процессами (IPC, Inter-Process Communication) в операционных системах может осуществляться несколькими способами:

  • Каналы (Pipes) — позволяют передавать данные по потоку от одного процесса к другому, обычно используются для связи родитель-потомок.
  • Сокеты — обеспечивают обмен данными между процессами, как на одной машине, так и по сети.
  • Общая память (Shared Memory) — выделяется область памяти, доступная нескольким процессам для быстрого обмена данными.
  • Семафоры и мьютексы — используются для синхронизации доступа к общим ресурсам.
  • Сообщения (Message Queues) — процессы обмениваются сообщениями через очередь, что упрощает асинхронное взаимодействие.
  • Файлы и базы данных — процессы могут читать и писать данные в общие файлы или БД.

Пример использования канала в C:

int fd[2];
pipe(fd); // создаём канал
if (fork() == 0) {
  close(fd[0]); // закрываем чтение в дочернем
  write(fd[1], "Hello", 5);
  close(fd[1]);
} else {
  char buf[6] = {0};
  close(fd[1]); // закрываем запись в родительском
  read(fd[0], buf, 5);
  printf("Received: %s\n", buf);
  close(fd[0]);
}

Выбор метода зависит от требований к скорости, объёму данных и архитектуре приложения.

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку