Влияет ли эта функция на производительность отображаемого в память файла?
Вот проблема, которую мне нужно решить:
У меня есть два приложения, которые борются за доступ к диску: «читатель» и «программа обновления». Вся система работает на Windows Server 2008 R2 x64
«Updater» постоянно обращается к диску линейно, обновляя данные. Их система настроена таким образом, что у программы обновления всегда есть бесконечные данные для обновления. Учтите, что оно постоянно аппроксимирует решение огромной системы уравнений, которая занимает весь диск объемом 2 ТБ. Updater использует ReadFile и WriteFile для линейной обработки данных.
«Читатель» иногда вызывается пользователем для получения некоторых фрагментов данных. Обычно пользователь читает с диска несколько блоков по 4 Кб и останавливается. Иногда пользователю необходимо прочитать до 100 МБ последовательно. В исключительных случаях до нескольких гигабайт. Reader отображает файлы в память для получения необходимых данных.
Я бы хотел, чтобы «читатель» имел абсолютный приоритет, чтобы «обновитель» полностью останавливался при необходимости, чтобы «читатель» мог получать данные, необходимые пользователю как можно скорее.
Решается ли эта проблема с помощью вызовов SetPriorityClass и SetFileBandwidthReservation?
Мне бы очень не хотелось помещать имя входа для синхронизации в "reader" и "updater", а скорее, чтобы ОС позаботилась о приоритетах.