Как работает память


Предыдущая | Следующая


В процессоре присутствует модуль управления памятью (MMU), который перево­
дит виртуальные адреса памяти, используемые процессами, в реальные. Ядро по­
могает модулю MMU, разбивая память на маленькие фрагменты, называемые стра-ницами. Ядро содержит структуру данных, которая называется таблицей страниц 
и содержит схему соответствия виртуальных адресов страниц реальным адресам 
страниц в памяти. Когда процесс получает доступ к памяти, модуль MMU переводит 
виртуальные адреса, используемые процессом, в реальные адреса на основе таблицы 
страниц ядра.
В действительности пользовательскому процессу для работы не нужны сразу 
все его страницы. Обычно ядро загружает и распределяет страницы по мере их 
необходимости для процесса; такая система работы известна как вызов страниц по 
запросу или листание по запросу. Чтобы понять, как это устроено, рассмотрим 
запуск и работу команды в качестве нового процесса.
1.  Ядро загружает начало кода с инструкциями команды в страницы памяти.
2.  Ядро может выделить несколько страниц рабочей памяти для нового про­
цесса.
3.  Во время своей работы процесс может дойти до такого момента, когда следу­
ющей инструкции не окажется ни в одной из страниц, загруженных ядром изна­
чально. Тогда ядро вступает в действие, загружает необходимые страницы в па­
мять и позволяет команде продолжить выполнение.
4.  Подобным же образом, если команде необходимо больше рабочей памяти, чем 
было выделено изначально, ядро решает эту задачу, отыскивая свободные стра­
ницы (или освобождая пространство) и назначая их данному процессу.