Разница между логическими адресами и физическими адресами?

Я читаю «Концепцию операционных систем» и сейчас нахожусь на 8-й главе! Однако я мог бы использовать некоторые пояснения или заверения в том, что я правильно понимаю.

Логические адреса: Согласно книге, логические адреса генерируются ЦП. Что именно это значит? (В адресной системе, генерируемой исполнением ..) Я предполагаю, что когда код компилируется для программы, программа не имеет понятия , где код будет загружен в память. Все, что делает компилятор, - это создает общий набросок компоновки программы и того, как должно располагаться изображение, но не присваивает ему никаких реальных адресов. Когда программа выполняется, ЦП берет это изображение макета, созданное компилятором, и раздает некоторые адреса (логические) тем, которые сгенерированы из кода.

Физические адреса: Физические адреса не генерируются до тех пор, пока ЦП не сгенерирует некоторый набор логических адресов (состоящий из базового адреса и смещения). Логические адреса проходят через MMU или другое устройство, и где-то вдоль линии логические адреса отображаются на физические адреса RAM.

В чем же тогда действительная разница? Я вижу одно преимущество. Использование логических адресов дает больше свободы приложениям. Если бы физические адреса были жестко закодированы, то успех программы в значительной степени зависел бы от физического компьютера, доступных адресов RAM и т. Д.

Разве использование логических адресов, преобразованных в физический адрес, не требует двух шагов вместо одного к одному. , а значит больше над головой?

Где же тогда находятся логические адреса после генерации? Они могут существовать в регистре ЦП, пока ЦП обслуживает процесс, но куда они попадают до и после? Я понимаю, что это зависит от реализации. Я предполагаю, что они могут храниться в каком-то специальном регистровом пространстве или буфере ЦП, таком как TLB, верно? Если нет, то таблица может существовать в самой оперативной памяти, а ЦП хранит только указатель / адрес на базовый адрес таблицы в ОЗУ, правильно?

Кажется, что хранение адресов в ОЗУ противоречит назначению адресов логической памяти. Могу только предположить, что мое понимание неверно.

38
задан VividD 25 November 2014 в 19:46
поделиться