Физическая адресация означает, что ваша программа действительно знает реальное расположение оперативной памяти.Когда вы обращаетесь к переменной по адресу 0x8746b3, она действительно хранится в физических чипах ОЗУ.
При виртуальной адресации все обращения к памяти приложения переходят в таблицу страниц, которая затем сопоставляется с виртуального на физический адрес.,Таким образом, каждое приложение имеет свое собственное «личное» адресное пространство, и никакая программа не может читать или записывать в память другой программы.Это называется сегментация .
Виртуальная адресация имеет много преимуществ.Он защищает программы от сбоя друг друга из-за плохого манипулирования указателем и т. Д. Поскольку каждая программа имеет свой собственный набор виртуальной памяти, ни одна из программ не может читать чужие данные - это одновременно и безопасность, и плюс безопасности.Виртуальная память также позволяет пейджинг , где физическое ОЗУ программы может храниться на диске (или, теперь, с более медленной флэш-памятью), когда оно не используется, а затем вызываться, когда приложение пытается получить доступ к странице.Кроме того, поскольку на конкретной странице физическая может быть только одна программа, в физической системе подкачки либо a) все программы должны быть скомпилированы для загрузки по разным адресам памяти, либо b) каждая программа должна использовать Position-Независимый код или c) некоторые наборы программ не могут выполняться одновременно.
Физически-виртуальное сопоставление может быть выполнено в программном обеспечении (с аппаратной поддержкой перехватов памяти) или в чистом аппаратном обеспечении.Иногда даже сами таблицы страниц находятся на специальном наборе аппаратной памяти.Я не знаю, с какой стороны, что делает встроенная система, но на каждом настольном компьютере есть аппаратный TLB (Translation Lookaside Buffer, в основном кэш для виртуально-физических отображений), а некоторые теперь имеют расширенные модули отображения памяти, которые помогают свиртуальные машины и т. п.
Единственными недостатками виртуальной памяти являются сложность в реализации оборудования и более низкая производительность.