Что происходит с общей областью памяти, когда процесс умирает?

У меня была эта проблема около года назад (с Феодра 21) и в итоге написал об этом сообщение в блоге: http://www.gautham.net/2015/01/broadcom-wl-driver-working-fedora-21-akmod-wl-bcm4312.html

Вкратце, хотя вы, похоже, не включили репозитории RPM Fusion, которые требуются для пакетов akmods и akmod-wl. См. http://rpmfusion.org/ для получения дополнительной информации.

1
11.08.2018, 03:16
2 ответа

Он сохранится, его необходимо явно удалить с помощьюshmctl IPC_RMID

Mark the segment to be destroyed. The segment will actually be destroyed only after the last process detaches it... The caller must be the owner or creator of the segment, or be privileged.

1
27.01.2020, 23:32

Это зависит от того, знает ли автор приложения, как решить эту проблему.

Многие приложения написаны так, что вызывают

shmctl(id, IPC_RMID, 0);

после того, как они перестали использовать сегмент общей памяти.

В этом случае сегмент памяти будет продолжать существовать после того, как программа неожиданно завершит работу, т.е. с дампом ядра.

Однако, если программа вызывает shmctl(id, IPC_RMID, 0);сразу после присоединения сегмента памяти, ядро ​​выполнит необходимые действия для завершения любого вида программы.

2
27.01.2020, 23:32

Теги

Похожие вопросы