Планировщики ввода / вывода в ядре Linux могут переупорядочивать и объединять операции чтения (и в некоторой степени записи), чтобы их упорядочение было более благоприятным для диска, как вы это описываете. Это влияет на планировщик процессов (который также заботится о потоках) тем, что потоки, ожидающие ввода-вывода, также «переупорядочиваются» - их запросы на чтение или запись выполняются в том порядке, в котором их обслуживал диск, а не в том порядке в котором они сделали свой запрос. (Это очень упрощенное представление о том, что действительно происходит.)
Но если вы моделируете дисковый ввод-вывод, т. Е. Если вы на самом деле не делаете реальный ввод-вывод, планировщик ввода-вывода вообще не задействуется. Только планировщик процессов. А планировщик процессов не знает, что вы «имитируете» жесткий диск - у него нет информации о том, что делают процессы, просто информация о том, нуждаются ли они в ресурсах процессора или нет. (Опять же, это упрощенное представление о том, как все работает).
Таким образом, планировщик процессов не поможет вам переупорядочить или объединить моделирование запросов на чтение. Вы должны реализовать эту логику в своем коде. (Чтение о планировщиках ввода / вывода - отличная идея.)
Если вы отправляете реальный ввод-вывод, то в некоторых случаях выполнение переупорядочения может улучшить производительность, и действительно алгоритмы планировщика ввода-вывода для оптимизации пропускной способности или задержки будут влиять на планирование ваших потоков (для блокировки В любом случае, ввод / вывод - асинхронный ввод / вывод еще более усложняет).