Подтвердить что ты не робот

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

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

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

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

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

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

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

4b9b3361

Ответ 1

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

При виртуальной адресации все обращения к памяти приложений поступают в таблицу страниц, которая затем сопоставляется с виртуальным на физический адрес. Поэтому каждое приложение имеет собственное адресное пространство "private", и никакая программа не может читать или записывать в другую программную память. Это называется сегментацией.

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

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

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

Ответ 2

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