Таблица страниц классифицируется как «виртуальное пространство» и содержит виртуальные адреса каждой страницы. Затем он сопоставляется с «физическим пространством», которое содержит физические адреса каждой страницы.
Это не совсем правильно. Таблица страниц определяет логическое адресное пространство, состоящее из страниц. Таблица страниц отображает логические страницы в физические кадры страниц, они указывают, что кадр страницы еще не существует [все еще] в памяти, и в этом случае у вас есть виртуальное сопоставление. Страница VIRTUAL, когда память моделируется с использованием дискового пространства.
В старые времена таблицы страниц всегда устанавливали виртуальное адресное пространство. Теперь становится все более распространенным (например, встроенная система) использовать логический перевод адреса без виртуальной памяти (пейджинг). Таким образом, термины «виртуальная память» и «логическая память» часто объединяются.
Физическое адресное пространство существует только для операционной системы. Процесс видит только логическое адресное пространство.
Это немного упрощение, потому что процесс становится операционной системой после исключения или прерывания, а ядро работает в пределах общего диапазона логических адресов. Однако ядро операционной системы в определенной степени должно управлять физической памятью.
Например, некоторые аспекты таблиц страниц должны использовать физические адреса. Если в таблицах страниц были использованы все логические адреса, у вас возникла проблема с цыпленком и яйцом для перевода адресов. Различные аппаратные системы решают эту проблему по-разному.
И, наконец, диаграмма, на которую вы ссылаетесь, является очень плохой иллюстрацией.
Приносим извинения; Я забыл задать соответствующий вопрос, прежде чем принимать ваш ответ. Что касается 3, могу ли я правильно сказать, что ЦП может также извлекать данные из вторичного хранилища, предполагая, что это относится к физическому адресу? –
@ handler'shandle №. ЦП может напрямую обращаться к первичному хранилищу. Вторичное хранилище «адресуется» контроллером, который вместе с драйвером загружает данные из вторичного хранилища в основное хранилище. Затем процессор может получить к нему доступ. В архитектуре x86 можно использовать пейджинг: если виртуальный адрес, переданный в MMU, не имеет соответствующего адреса физической памяти в таблице страниц и установлен соответствующий флаг, запрашивается вторичное хранилище, а данные из него копируются в первичный storage.This позволяет программе адресовать больше адресов, чем обеспечивает первичное хранилище. – Downvoter