Отображение в памяти Linux - mmap()

Системный вызов mmap() создает в виртуальном адресном пространстве вызывающего процесса новое отображение в памяти.

Отображения делятся на две категории.

  • Файловое отображение, которое отображает область файла на виртуальную память вызывающего процесса. После отображения содержимое файла может быть доступно с помощью операций над байтами в соответствующей области памяти. Страницы отображения автоматически загружаются из файла по мере надобности.
  • В противоположность первой категории, анонимное отображение не имеет соответствующего файла. Вместо этого страницы отображения получают начальное значение 0.

Отображение в памяти одного процесса может совместно использоваться отображения­ми в других процессах. Это может произойти либо из-за того, что два процесса отображают в памяти одну и ту же область файла, либо по причине наследования дочерним процессом, созданным с помощью fork(), отображения в памяти от своего родительского процесса.

Когда два и более процесса совместно используют одни и те же страницы, каждый из них может видеть изменения, внесенные в содержимое страниц другим процессом, в зависимости от того, каким именно было создано отображение — закрытым или совместно используемым. Когда отображение является закрытым, изменения содержимого отображения невидимы другим процессам и не доводятся до базового файла. Когда отображение является совместно используемым, изменения содержимого отображения видны другим процессам, использующим совместно то же самое отображение в памяти, и доводятся до базового файла.

Отображения в памяти служат для различных целей, включая инициализацию тексто­вого сегмента процесса из соответствующего сегмента выполняемого файла, выделения новой (заполненной нулями) памяти, файлового ввода-вывода (ввода-вывода с отображе­нием в памяти), обмена данными между процессами (через общее отображение в памяти).

Вас заинтересует / Intresting for you:

Основа операционной системы Li...
Основа операционной системы Li... 3052 просмотров Андрей Волков Wed, 09 Jan 2019, 05:36:45
Процессы Linux
Процессы Linux 4579 просмотров Doctor Wed, 23 Jan 2019, 16:47:24
Linux: как инсталлировать прог...
Linux: как инсталлировать прог... 1499 просмотров Дэйзи ак-Макарова Sun, 11 Nov 2018, 11:54:59
Краткая история Linux
Краткая история Linux 2705 просмотров Андрей Волков Wed, 09 Jan 2019, 02:46:59
Войдите чтобы комментировать