2015-06-03 2 views
0

Как известно, операционная система реализует механизм страницы для быстрого доступа. Каждый раз, когда процесс запрашивает ядро ​​для загрузки двоичного файла с диска в его пространство памяти, ядро ​​сначала будет искать кеш страницы. Если двоичные файлы уже кэшируются в кэше страниц, тогда нет необходимости обращаться к аппаратным дискам. Таким образом, ОС может снизить накладные расходы.Как работает кеш-страница в памяти? В частности, в Linux

Однако, у меня есть вопрос.

Как известно, ОС будет помогать кешу страницы выделять страницы в физической памяти для хранения данных, которые будут потенциально использоваться в ближайшее время. Когда запрашиваемые данные процесса обнаруживаются в кеше страницы ядром, что будет передавать ядро ​​процессу? Будет ли ядро ​​копировать содержимое страницы PageCache, содержащее требуемые данные, на новую страницу, выделенную для этого процесса? Или ядро ​​просто вернет указатель страницы в PageCache?

ответ

0

Существует множество операционных систем, поэтому, если мы говорим о любой произвольной реальной, будущей или теоретической операционной системе, ответ может быть «либо».

Однако для всех реальных операционных систем, о которых я знаю, страница будет отображаться только в памяти. Было бы очень неэффективно создавать копии каждой страницы, и это не принесло бы никакой пользы.

+0

Что делать, если мы говорим о Linux? Мы знаем, что struct address_space будет использоваться ОС для описания кеша страницы для файла. Как Linux справляется с этим? –

+0

Содержимое файла загружается только один раз и совместно используется. См. Http://duartes.org/gustavo/blog/post/page-cache-the-affair-between-memory-and-files/ –

+0

Большое спасибо! –

Смежные вопросы