В этом уроке я расскажу вам про различные состояния страниц памяти. И про то, как эти страницы переходят из одного состояния в другое.

Состояния страниц памяти

При создании процесса, диспетчер памяти выделяет ему некоторый объём виртуальной памяти. Как вы уже знаете, такая память в системе делится на страницы. Но чтобы в виртуальную память хоть что-то записать, её страницы нужно связать с физическими страницами.

При всём этом страницы виртуальной памяти могут находиться в разных состояниях. Они могут быть:

  • Свободными (free) — эти страницы можно выделять новым процессам. Ими ещё не владеет ни один процесс.
  • Зарезервированными (reserved) — диспетчер памяти их уже зарезервировал для каково-то процесса. Но ещё не связал с физическими страницами памяти. В зарезервированную память ещё ничего записать нельзя, её вначале нужно подтвердить (связать её с физической).
  • Подтвержденными (committed) — эти страницы уже связанные с физической памятью. Такую память уже можно использовать для хранения информации. Подтвержденные страницы ещё называют закрытыми, это связано с тем, что другие процессы не могут получить к ним доступ, тогда как с разделяемыми страницами это возможно.
  • Разделяемыми (shareable) — это тоже подтвержденные страницы памяти, но такие страницы могут использоваться разными процессами совместно.

Алгоритм работы

При зарождении нового процесса диспетчер памяти из свободных страниц выделяет этому процессу память. То есть свободные страницы становятся зарезервированными для этого процесса. Этот процесс не связывает виртуальные страницы с физическими, и это позволяет очень быстро резервировать память для новых процессов.

Во время работы процессу нужно помещать некоторые данные в зарезервированную память. И уже здесь, по мере надобности зарезервированные страницы подтверждаются. И так как подтверждается не весь диапазон сразу, то и системные ресурсы тратятся не значительно. Это позволяет сгладить пиковые нагрузки на систему.

Но бывает и так, что размер который потребуется процессу известен заранее. Тогда процесс может зарезервировать и подтвердить память одновременно.

В любом случае полученные подтвержденные страницы доступны для любого потока в процессе. Как вы уже должны знать, именно программные потоки выполняют полезную работу в процессе.

Состояния страниц виртуальной памяти

Некоторая часть страниц, в которые процесс успел записать данные, может быть выгружена на диск. Это делается для того чтобы освободить оперативную память. Такие страницы сбрасываются в так называемый файл подкачки (swap). А при необходимости эти страницы возвращаются с диска в оперативку.

Диспетчер памяти может выполнять и другие функции. Например, он может отменить подтверждение и тогда память останется зарезервированной, но уже не будет подтверждённой. Или он может освободить адресное пространство, тогда страницы памяти станут свободными и доступными для использования новыми процессами.


Вернуться к оглавлению

Сводка
Состояния страниц памяти
Имя статьи
Состояния страниц памяти
Описание
В этом уроке я расскажу вам про различные состояния страниц памяти. И про то, как эти страницы переходят из одного состояния в другое

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *