Если процесс вызывает mmap(...,MAP_ANONYMOUS | MAP_SHARED,...)
и forks N детей, возможно ли для любого из этих процессов (родителя или потомков) до munmap()
памяти для всех процессов за один раз, таким образом, освобождая физической памяти или каждый из этих процессов должен munmap() индивидуально? (Я знаю, что память будет отключена при выходе процесса, но дети еще не выйдут).linux: munmap shared memory in on one call
В качестве альтернативы, есть способ переместить память из другого процесса? Я думаю о вызове что-то вроде munmap(pid,...)
.
Или есть способ достичь того, что я ищу, используя неанонимные сопоставления и выполнение операции над связанным файловым дескриптором (например, закрытие файла)?
Мои процессы чувствительны к производительности, и я хотел бы избежать выполнения множества IPC, когда станет известно, что общая память больше не будет использоваться кем-либо.
Я не думаю, что можно «unmap» отображать другие процессы. –