Разница между физической адресацией и концепцией виртуальной адресации - PullRequest
23 голосов
/ 14 июля 2010

Это повторная отправка, потому что я не получаю никакого ответа от superuser.com. Извините за недоразумение.

Мне нужно знать разницу между физической адресацией и концепцией виртуальной адресации во встроенных системах.

Почему концепция виртуальной адресации реализована во встроенных системах?

В чем преимущество виртуальной адресации над системой с концепцией физической адресации во встроенных системах?

Как осуществляется сопоставление виртуальной адресации с физической адресацией во встроенных системах?

Пожалуйста, объясните приведенную выше концепцию на нескольких простых примерах в простой архитектуре.

Ответы [ 2 ]

46 голосов
/ 14 июля 2010

Физическая адресация означает, что ваша программа действительно знает реальное расположение оперативной памяти.Когда вы обращаетесь к переменной по адресу 0x8746b3, она действительно хранится в физических чипах ОЗУ.

При виртуальной адресации все обращения к памяти приложения переходят в таблицу страниц, которая затем сопоставляется с виртуального на физический адрес.,Таким образом, каждое приложение имеет свое собственное «личное» адресное пространство, и никакая программа не может читать или записывать в память другой программы.Это называется сегментация .

Виртуальная адресация имеет много преимуществ.Он защищает программы от сбоя друг друга из-за плохого манипулирования указателем и т. Д. Поскольку каждая программа имеет свой собственный набор виртуальной памяти, ни одна из программ не может читать чужие данные - это одновременно и безопасность, и плюс безопасности.Виртуальная память также позволяет пейджинг , где физическое ОЗУ программы может храниться на диске (или, теперь, с более медленной флэш-памятью), когда оно не используется, а затем вызываться, когда приложение пытается получить доступ к странице.Кроме того, поскольку на конкретной странице физическая может быть только одна программа, в физической системе подкачки либо a) все программы должны быть скомпилированы для загрузки по разным адресам памяти, либо b) каждая программа должна использовать Position-Независимый код или c) некоторые наборы программ не могут выполняться одновременно.

Физически-виртуальное сопоставление может быть выполнено в программном обеспечении (с аппаратной поддержкой перехватов памяти) или в чистом аппаратном обеспечении.Иногда даже сами таблицы страниц находятся на специальном наборе аппаратной памяти.Я не знаю, с какой стороны, что делает встроенная система, но на каждом настольном компьютере есть аппаратный TLB (Translation Lookaside Buffer, в основном кэш для виртуально-физических отображений), а некоторые теперь имеют расширенные модули отображения памяти, которые помогают свиртуальные машины и т. п.

Единственными недостатками виртуальной памяти являются сложность в реализации оборудования и более низкая производительность.

1 голос
/ 28 июля 2010

VAX (Virtual Address eXtented Digital Equipment Corp, которая стала Compaq, которая стала HP) является очень хорошим примером виртуальной встроенной аппаратной системы. Это был 32-битный мини-компьютер с ОС под названием VMS или Virtual Memory Systems. Дейв Катлер был одним из главных архитекторов систем, и он намного позже написал Kernal для Windows NT. Он очень хорошо читает это и другие вещи. У Vax было специальное оборудование для управления виртуальным пространством и контроля доступа кода операции для обеспечения безопасности с помощью оборудования ... очень безопасно. Эта система была или является дедушкой современного ПК на уровне Kernal. Первый BSOD, который я увидел в WNT 3.51, я смог прочитать, потому что он пришел из аварийного дампа, используемого в VMS для остановки системы в нестабильном состоянии. Кстати, посмотрите на названия VMS и WNT, и вы найдете следующие буквы в алфавите от VMS, что делает термин WNT. Это был не несчастный случай. возможно, удар в DEC за то, что он отпустил его.

...