В этом уроке я вам расскажу про страницы памяти. Вся память используемая процессами для работы делится на маленькие кусочки — страницы (page).

Страницы памяти

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

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

Размер страниц бывает разным, они бывают малые = 4 КБ и большие = 2 МБ. Номера страниц памяти записываются в особую таблицу. При этом малые помещаются в в одну таблицу, а большие в другую.

Страничная память

Особенности больших страниц

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

А недостатки такие. Большая страница занимает 512 смежных малых страниц. Из-за фрагментации памяти может возникнуть ситуация, когда в системе просто не останется столько смежных свободных страниц. И попытка выделения одной большой страницы завершится неудачей. А для малых страниц таких проблем нет. Еще одним недостатком является то, что в одной большой странице памяти может быть записан и код и данные. Обычно код доступен только на чтение, а данные на чтение и запись. Но так как права назначаются на страницу целиком, то код тоже станет доступен на запись.

Также существует некоторая особенность больших страниц. Файл подкачки не поддерживает такие страницы. Из этого следует что они всегда находятся в оперативной памяти.

Существуют также огромные страницы (huge page) = 1 ГБ. В Windows 10 большие страницы превращаются в огромные, если нужно выделить сразу большой блок памяти, а именно больше 1 ГБ. Например, выделение блока размером 1040 Мбайт приведет к использованию одной огромной (1024 МБ) и 8 больших страниц (по 2 МБ).


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

Сводка
Страницы памяти
Имя статьи
Страницы памяти
Описание
В этом уроке я вам расскажу про страницы памяти. Вся память используемая процессами для работы делится на маленькие кусочки - страницы (page)

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

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