Как выровнять память по строке кэша с помощью Boost Interprocess Shared MemoryC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Как выровнять память по строке кэша с помощью Boost Interprocess Shared Memory

Сообщение Anonymous »

Я пишу код Boost.Interprocess для общей памяти между двумя процессами. Я использую Managed_shared_memory. Я инициализирую память с помощью boost::interprocess::open_or_create и выделяю в ней память с помощью find_or_construct, вот так:

Код: Выделить всё

auto data_ptr = segment.find_or_construct("data")[max_elements]();
Я использую find_or_construct, чтобы один процесс инициализировал память, а другой процесс получал структуру данных. Все это атомарно.
Я хочу убедиться, что data_ptr выровнен по строке кэша, то есть он должен начинаться с адреса, кратного 64 байтам (в моей системе). Как мне добиться такого выравнивания?
Дополнительная информация:
Размер строки системного кэша составляет 64 байта.
Я использую Boost.Interprocess для управления общей памятью.
Я просмотрел документацию Boost.Interprocess, но не смог найти прямого способа указать выравнивание памяти для find_or_construct. Будет очень полезно, если я смогу найти другой способ выравнивания памяти с помощью Boost и гарантировать, что один процесс инициализирует память, в то время как другой процесс получает структуру данных, без каких-либо проблем с синхронизацией.

Подробнее здесь: https://stackoverflow.com/questions/787 ... red-memory
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Clang Wasm Target Rejects-Импорт-память-Shared-Memory
    Anonymous » » в форуме C++
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Можно ли добиться синхронизации между основным и дочерним процессами при использовании Boost Shared Memory? [дубликат]
    Anonymous » » в форуме C++
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • Как boost::interprocess::offset_ptr позволяет избежать неопределенного поведения?
    Anonymous » » в форуме C++
    0 Ответы
    26 Просмотры
    Последнее сообщение Anonymous
  • Как boost::interprocess::offset_ptr позволяет избежать неопределенного поведения?
    Anonymous » » в форуме C++
    0 Ответы
    29 Просмотры
    Последнее сообщение Anonymous
  • Судья 0: «Не удается написать /SYS/fs/cgroup/memory/box-xxx/memory.limit_in_bytes» Ошибка на Ubuntu 24.04
    Anonymous » » в форуме Javascript
    0 Ответы
    4 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C++»