Я читаю "Концепция операционных систем", и я на восьмой главе! Однако я мог бы использовать некоторые разъяснения или уверенность в том, что мое понимание верное.
Логические адреса: Логические адреса генерируются ЦП, согласно книге. Что именно это значит? (В системе сгенерированной с выполнением адреса). Я предполагаю, что когда код скомпилирован для программы, программа не имеет понятия, где код будет загружен в память. Весь компилятор устанавливает общий эскиз макета программы и как изображение должно быть выложено, но не присваивает ему никаких реальных адресов. Когда программа выполняется, процессор принимает это изображение макета, которое сделал компилятор, и передает некоторые адреса (логические) тем, которые генерируются из кода.
Физические адреса: физические адреса не генерируются до тех пор, пока ЦП не сформирует какой-либо набор логических адресов (состоящий из базового адреса и смещения). Логические адреса проходят через MMU или другое устройство, а где-то вдоль линии логические адреса сопоставляются с физическими адресами RAM.
В чем же разница? Я вижу одно преимущество. Использование логических адресов дает больше свободы для приложений. Если физические адреса были жестко закодированы, то успех программы будет сильно зависеть от физического компьютера, доступных адресов RAM и т.д.
Не использует ли логические адреса, преобразованные в физический адрес, два шага вместо одного к одному и, следовательно, больше над головой?
Где же логические адреса остаются после поколения? Они могут существовать в регистре CPU, а ЦПУ обслуживает процесс, но до и после, куда они идут? Я понимаю, что это зависит от реализации. Я предполагаю, что они могут быть сохранены в каком-либо специальном пространстве регистров или в буфере на процессоре, таком как TLB, правильно? Если нет, тогда таблица может существовать в самом фактическом ОЗУ, а ЦП содержит только указатель/адрес на базовый адрес таблицы в ОЗУ, правильно?
Кажется, что адреса в ОЗУ являются обрадованными для целей адресов логической памяти. Я могу только предположить, что мое понимание неверно.