2011-01-16 2 views
0

В следующей ссылке в рамках 4-го изображения с верхним:Page Cache для общей памяти

http://duartes.org/gustavo/blog/post/page-cache-the-affair-between-memory-and-files

  • Сценарий изображал, что из двух процессов, «визуализация» и «3drender», совместное использование файл. Автор рассказывает о том, как механизм совместного доступа играет вместе с кешем страницы.
  • Первоначально визуализировать, если бы его виртуальные страницы отображались на кеш страницы.
  • На шаге 4 «рендер» выделяется новая анонимная страница, которая будет содержать определенные изменения, которые она хотела бы внести в «scene.dat # 2».
  • Как только «рендер» внесет изменения, как это изменение отразилось на «3drender», который продолжает указывать на страницу страницы с кешем страницы «scene.dat # 2»?
  • Кроме того, не следует ли это изменение сделать «рендерингом», вернемся к кешу страницы, заменив копию старой страницы «scene.dat # 2»?
  • Часть, которая остается неясной для меня, - это то, что происходит после того, как один из процессов записывает на общую страницу и как это «обновление» делает способ доступа к кешу страницы и диску, так что другие процессы, файл, см. это изменение.

Было бы здорово, если бы кто-то мог выбросить какой-то свет.

Спасибо, Виджай

ответ

1

В сценарии, описанном в связанном статье, делают и render3d имеет собственную отображаемые в памяти копии одного файла. Что касается процессов, то ОС выделяет кучу страниц в адресном пространстве каждого процесса и просто копирует содержимое файла там. Если они изменяют эти страницы, ничего не происходит. Никакие изменения не возвращаются в файл. Изменения не меняются и render3d. Это то, что значит иметь приватное отображение.

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

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