V>То есть, соблюсти последовательность кроме синхронного вызова с ожиданием подтверждения — никак не получится. Возможно ли тогда для экономии ресурсов применить MAP_NOSYNC, дабы ОС не скидывала данные самостоятельно, а только тогда, когда потребуется приложению?
Тут уже пора бы переходить к описанию задачи, которую ты хочешь решить.
В первую очередь, зачем вообще тебе нужно соблюдать порядок записи? Почему бы не оставить эту задачу на усмотрение ОС?
W>>msync с флагом MS_ASYNC — это вызов-подсказка. Он не влияет на данные, он лишь сообщает ОС что пора бы уже начать их сбрасывать на диск. V>Ок, понял, наверно это просто добавление команды на сброс кэша в какую-нибудь AIO-очередь.
Добавление задания в отложенную очередь — это допустимая реализация. Но и игнорирования вызова — тоже.
V> Но в какой-то момент при синхронизации "грязные" страницы все-равно должны быть заблокированы на запись?
Нет, незачем что-то блокировать.
Грязные страницы скидываются на диск. Если после этого в неё произойдёт запись, то страница снова станет грязной и будет скинута на диск ещё раз когда-нибудь в будущем.