Size: a a a

2020 April 02

VK

Vladislav K. in Arch Linux RU
Wolf Arch
Учебник по виртуальной памяти
Физическая память в компьютерной системе является ограниченным ресурсом, и даже для систем, которые поддерживают горячее подключение памяти, существует жесткое ограничение на объем памяти, который можно установить. Физическая память не обязательно является смежной; он может быть доступен в виде набора отдельных диапазонов адресов. Кроме того, разные архитектуры ЦП и даже разные реализации одной и той же архитектуры имеют разные представления о том, как определяются эти диапазоны адресов.

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

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

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

Физическая системная память делится на фреймы страниц или страницы. Размер каждой страницы зависит от архитектуры. Некоторые архитектуры позволяют выбирать размер страницы из нескольких поддерживаемых значений; этот выбор выполняется во время сборки ядра путем установки соответствующей опции конфигурации ядра.

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

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

А вы тут тимке про кеш диска втираете 😂
в этом и суть, что говорим про кэш диска, а он про мэппинг страниц
источник

E

Evgeniy in Arch Linux RU
Тима
Мне предоставили пасту с того что я сам кинул
потому что ты или троллишь или реально сам не понял о чем прочитал. И опять выдираешь куски из целого контекста
источник

Т

Тима in Arch Linux RU
totallynot@tty
кэш не привязан к процессам
Где я это утверждал?
источник

t

totallynot@tty in Arch Linux RU
Тима
Где я это утверждал?
ну ты вечно приплетаешь виртуальную память процессов
источник

t

totallynot@tty in Arch Linux RU
которая может выходить за рамки физической
источник

t

totallynot@tty in Arch Linux RU
хотя к выводу free это никакого отношения не имеет
источник

WA

Wolf Arch in Arch Linux RU
Vladislav K.
в этом и суть, что говорим про кэш диска, а он про мэппинг страниц
ну так надо рассказать человеку, что разговор о разных подсистемах
источник

Т

Тима in Arch Linux RU
totallynot@tty
ну ты вечно приплетаешь виртуальную память процессов
Это был разговор в контексте устройства виртуальной памяти
источник

t

totallynot@tty in Arch Linux RU
даже ссаный хтоп показывает тебе кэшированую память
источник

E

Evgeniy in Arch Linux RU
Тима
Где я это утверждал?
это не ты утверждал, это тебе коротко разъяснили смысл виртуальной памяти к которой ты прицепился
источник

t

totallynot@tty in Arch Linux RU
Тима
Это был разговор в контексте устройства виртуальной памяти
только он никак не связан с кэшем
источник

Т

Тима in Arch Linux RU
totallynot@tty
хотя к выводу free это никакого отношения не имеет
Он показывает кэш\буфер
источник

WA

Wolf Arch in Arch Linux RU
shenmue
у меня не 5.6 и вопрос был не об этом
какое у тебя костомное ядро?
источник

s

shenmue in Arch Linux RU
Wolf Arch
какое у тебя костомное ядро?
из clear linux
источник

Т

Тима in Arch Linux RU
totallynot@tty
только он никак не связан с кэшем
Да? А кэш что у нас работает независимо от подсистемы памяти ?
источник

t

totallynot@tty in Arch Linux RU
Тима
Да? А кэш что у нас работает независимо от подсистемы памяти ?
он работает независимо от процессов
источник

WA

Wolf Arch in Arch Linux RU
shenmue
из clear linux
и я так понял nvidia-dkms тебе показала дулю.
надо лог смотреть сборки, на что жалобы идут.
источник

VK

Vladislav K. in Arch Linux RU
Тима
Да? А кэш что у нас работает независимо от подсистемы памяти ?
дисковый кэш и лежит в памяти
источник

VK

Vladislav K. in Arch Linux RU
держу вкурсе
источник

Т

Тима in Arch Linux RU
Тогда как он кэширует мой терминал? Тупо записывает побайтово в кэш ?
источник