обрабатывает запись в виртуальную память - PullRequest
0 голосов
/ 06 июня 2011

Я сейчас читаю книгу по .Net 4.0 с C # и читаю заявление, которое я не до конца понимаю ...

В нем говорится: «Как правило, любой процесс может получить доступ к памяти только путем указания адреса в виртуальной памяти - процессы не имеют прямого доступа к физической памяти. Следовательно, одному процессу просто невозможно получить доступ к памяти, выделенной другому процессу»

как мы формируем это различие ... потому что я указываю свои адреса виртуальной памяти, а не физической памяти, что я не могу получить доступ к памяти другого процесса? или это кроется в том, что они означают мой доступ?

1 Ответ

2 голосов
/ 06 июня 2011

Это означает, что все ваши адреса являются виртуальными (также известными как логические) ... они не указывают напрямую, к какой физической памяти вы будете обращаться. Вместо этого есть карта (в оборудовании, управляемом системой) для преобразования между вашими виртуальными адресами и фактической используемой физической памятью.

Другими словами, ваш процесс может иметь адрес 0x1000, и мой процесс может также иметь этот же адрес. Поскольку оба наших адреса являются виртуальными, вы не сможете получить доступ к моим (а на физическом уровне они будут находиться в разных местах аппаратного обеспечения).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...