Это вопрос интервью, который я нашел на веб-сайте, на вопросы: "В виртуальной памяти два разных процесса имеют один и тот же адрес? Когда вы отвечаете" Нет ", что правильно, как один процесс может получить доступ к другому процессу", памяти, например, отладчик может получить доступ к переменным и изменить их при отладке? "
Я понимаю:
-
2 diff-процесс может иметь одинаковый адрес виртуальной памяти. Это связано с тем, что каждый процесс имеет свою собственную таблицу страниц. Каждый процесс считает его памятью 4 ГБ на 32-битной машине. Таким образом, оба P1 и P2 могут обращаться к адресу 0xabcdef, но физическое расположение памяти может отличаться. Разве это не так?
-
Отладчик работает по тому же принципу - 2 процесса могут получить доступ к одному и тому же адресу. Таким образом, он может изменять переменные и т.д. На лету.