Являются ли эти концепции переносимыми и на процессы?
Да, атомарные операции универсальны как для потоков, так и для процессов, если IIF используется атомарно используемая память.
Атомарная операция - это конкретная инструкция самого процессора, и она ничего не знает о потоках или процессах, это просто комплекс действий "все или ничего" (неделимый) (чтение, сравнение, хранение) с аппаратной реализацией низкого уровня.
Таким образом, вы можете настроить разделяемую память между процессами и поместить в нее atomic_t.
без блокировки
Да, если блокировка без блокировки реализована только с атомарным.(Должно быть)
структуры данных
Необходимо убедиться, что совместно используемая память отображается в один и тот же адрес в обоих процессах, когда она используется для хранения указателей (в данныхструктуры).
Если память будет отображаться по другому адресу, указатели будут нарушены в другом процессе.В этом случае вам нужно использовать относительные адреса и выполнять простой перевод памяти.
межпроцессные мьютексы
И я должен сказать, что glibc> 2.4 (NPTL) использует futex в сочетании с атомарными операциями для неконтролируемой блокировки (для общих разделяемых мьютексов процесса = interмьютексы процесса).Итак, вы уже используете атомарные операции в общей памяти.