Если процессы будут создоваться в едином адресном пространстве,то ОС сама будет решать проблему синхронизации при разделяемом ресурсе с помощью создания критических секций и блокирующих перемен ,перебрасывая потоки кого в ожидание,кого в выполнение.Дай бог чтобы не пришлось в данном случае самому разрабатывать и расставлять семафоры системными вызовами.
Я в своей практике при использовании такого рода разделяемого ресурса вводил
дополнительное поле в файле,которое указывало мне можно ли читать данную запись,или ждать ее модификации.