Здравствуйте, SE, Вы писали:
SE>Откуда же оси знать, какой из файлов важнее. Что ни сделай пользователи останутся недовольны.
Да ей и не надо про это знать.
Тут ведь какая проблема, вот допустим потоки А и Б одновременно читают с винта. Головка переместилась чтобы прочитать данные для А, хоп — ее тут же дергает поток Б на другое место. А потом в обратную сторону. Вот так и мечется
Что надо было сделать — это отслеживать перемещения головки. Если она только что переместилась и читает данные, то попытки считать данные из другого места надо откладывать на небольшой промежуток, чтобы дать текущей операции чтения закончиться.