Как известно, операционная система реализует механизм страницы для быстрого доступа. Каждый раз, когда процесс запрашивает ядро для загрузки двоичного файла с диска в его пространство памяти, ядро сначала будет искать кеш страницы. Если двоичные файлы уже кэшируются в кэше страниц, тогда нет необходимости обращаться к аппаратным дискам. Таким образом, ОС может снизить накладные расходы.Как работает кеш-страница в памяти? В частности, в Linux
Однако, у меня есть вопрос.
Как известно, ОС будет помогать кешу страницы выделять страницы в физической памяти для хранения данных, которые будут потенциально использоваться в ближайшее время. Когда запрашиваемые данные процесса обнаруживаются в кеше страницы ядром, что будет передавать ядро процессу? Будет ли ядро копировать содержимое страницы PageCache, содержащее требуемые данные, на новую страницу, выделенную для этого процесса? Или ядро просто вернет указатель страницы в PageCache?
Что делать, если мы говорим о Linux? Мы знаем, что struct address_space будет использоваться ОС для описания кеша страницы для файла. Как Linux справляется с этим? –
Содержимое файла загружается только один раз и совместно используется. См. Http://duartes.org/gustavo/blog/post/page-cache-the-affair-between-memory-and-files/ –
Большое спасибо! –