Re[3]: mmap асинхронная запись
От: watchmaker  
Дата: 31.07.14 19:59
Оценка:
Здравствуйте, valuea, Вы писали:


V>То есть, соблюсти последовательность кроме синхронного вызова с ожиданием подтверждения — никак не получится. Возможно ли тогда для экономии ресурсов применить MAP_NOSYNC, дабы ОС не скидывала данные самостоятельно, а только тогда, когда потребуется приложению?

Тут уже пора бы переходить к описанию задачи, которую ты хочешь решить.
В первую очередь, зачем вообще тебе нужно соблюдать порядок записи? Почему бы не оставить эту задачу на усмотрение ОС?



W>>msync с флагом MS_ASYNC — это вызов-подсказка. Он не влияет на данные, он лишь сообщает ОС что пора бы уже начать их сбрасывать на диск.

V>Ок, понял, наверно это просто добавление команды на сброс кэша в какую-нибудь AIO-очередь.
Добавление задания в отложенную очередь — это допустимая реализация. Но и игнорирования вызова — тоже.

V> Но в какой-то момент при синхронизации "грязные" страницы все-равно должны быть заблокированы на запись?

Нет, незачем что-то блокировать.
Грязные страницы скидываются на диск. Если после этого в неё произойдёт запись, то страница снова станет грязной и будет скинута на диск ещё раз когда-нибудь в будущем.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.