Из вашего вопроса неясно, имеете ли вы в виду симуляцию или пытаетесь получить доступ к общим функциям синхронизации процессов из C ++. Ваша ссылка на fork
предполагает, что Linux является вашей целью.
Как только вы создаете новый процесс, вы не имитируете синхронизацию процесса, вы используете собственные возможности синхронизации операционной системы.
В Linux, чтобы получить общую память, вы должны использовать mmap (возможно, с MAP_ANON) и затем вызывать fork. Полученная область памяти будет общей. Вы также можете использовать System V Shared Memory (системные вызовы, имена которых начинаются с 'shm'). После вызова fork дочерний объект становится копией родительского объекта, но обычные глобальные переменные не становятся общими: дочерний объект получает новую копию. Таким образом, потребность в ММАП или ШМ.
В Windows нет ничего похожего на fork. Вы должны использовать именованные объекты общей памяти или сопоставленные файлы, чтобы установить общую память. Новый процесс должен выполнить необходимые системные вызовы, чтобы открыть объект общей памяти или отобразить общий файл в его адресное пространство.
Если вы действительно хотите построить симулятор - отдельный процесс, который внутренне управляет процессами и общей памятью, вы можете выбрать одну из различных книг, описывающих внутреннюю работу Linux или Windows в этой области. 1010 *