Я просмотрел различные онлайн-документы / видео, чтобы понять «Виртуальный адрес, виртуальное адресное пространство (VAS)» и так далее, но все же некоторые сомнения, упомянутые ниже, еще не прояснены.
1) Когда программа считывается с жесткого диска, ЦП генерирует «виртуальный адрес». Итак, где находится этот виртуальный адрес? Находится ли он на жестком диске / в ОЗУ / в виртуальной памяти?
2) Для выполнения программа должна быть загружена в ОЗУ, а ЦП генерирует для нее виртуальный адрес. Эти действия (создание VA и загрузка в RAM) происходят одновременно или последовательно? Если есть, то как ядро / MMU узнает, какой конкретный виртуальный адрес необходимо сопоставить с каким физическим адресом в ОЗУ?
3) Пейджинг - это метод виртуальной памяти. Являются ли страницы выходящими / входящими и заменяемыми / входящими одинаковыми или разными? Если другое, то как?
4) pmap cmd на linux - это VA для представления физического адреса?
5) Если нет, как проверить VA & PA процесса на linux?
Это будет действительно здорово и поможет, если мои сомнения прояснятся.