Как это сделано в Linux, и я бы подумал, что в любой операционной системе, где загрузка из кеша является асинхронной, это: когда страница запрашивается, но еще не загружена, в кэше есть запись, помеченная как еще не загруженная. Когда приходит второй запрос, он перекладывается на существующую запись кэша и ожидает завершения загрузки. В ядре Linux механизм ожидания называется очередью ожидания. Об очередях ожидания существует множество документации: Драйверы устройств Linux , Завершение (структура данных немного более высокого уровня поверх очередей ожидания), документация по API ядра ,…
Я не знаю, есть ли у этого механизма официальное название.