Вопросы к Поиску с Алисой
Адресация памяти в современных операционных системах работает следующим образом:
Физические адреса — это числовые идентификаторы, которые указывают на ячейку физической памяти. wiki.merionet.ru Они представляют фактическое расположение данных в аппаратном обеспечении и играют важнейшую роль в низкоуровневом управлении памятью. wiki.merionet.ru Аппаратные компоненты, такие как процессор и контроллер памяти, используют именно физические адреса. wiki.merionet.ru Для пользовательских программ физические адреса непригодны. wiki.merionet.ru
Виртуальные адреса — это адреса, сгенерированные программой. wiki.merionet.ru Они представляют собой абстракцию физической памяти. wiki.merionet.ru Все процессы используют адресное пространство виртуальной памяти в качестве выделенной памяти. wiki.merionet.ru Виртуальные адреса не соответствуют никаким ячейкам физической памяти. wiki.merionet.ru Программы читают и создают виртуальные адреса, не подозревая о существовании физического адресного пространства. wiki.merionet.ru
Блок оперативной памяти (MMU — Main Memory Unit) отвечает за сопоставление виртуальных адресов с физическими, чтобы обеспечить правильный доступ к памяти. wiki.merionet.ru Для более эффективного использования памяти виртуальное адресное пространство разделено на сегменты и страницы. wiki.merionet.ru
Один из способов организации виртуальной памяти — страничная. github.com При её использовании вся виртуальная память делится на N страниц таким образом, что часть виртуального адреса интерпретируется как номер страницы, а часть — как смещение внутри страницы. github.com Другой способ — сегментная организация. github.com Вся память делится на сегменты фиксированной или произвольной длины, каждый из которых характеризуется своим начальным адресом — базой или селектором. github.com Виртуальный адрес в такой системе состоит из двух компонент: базы сегмента, к которому нужно обратиться, и смещения внутри сегмента. github.com Физический адрес вычисляется по формуле: addr = base + offset. github.com