В чем разница между эмуляцией и симуляцией? [дубликат]




Возможные Дубликаты:
симулятор или эмулятор? В чем же разница?






в простых понятных выражениях, в чем разница между этими двумя терминами?



[Я уже смотрел на этой,этой и этой]

821   10  

10 ответов:

(используя в качестве примера вашу первую ссылку)

вы хотите дублировать поведение старого калькулятора HP, есть два варианта:

  1. вы пишете новую программу, которая рисует дисплей калькулятора и клавиши, и когда пользователь нажимает на клавиши, ваши программы делают то же, что и старый калькулятор. Это же симулятор

  2. вы получаете дамп прошивки калькулятора, затем пишете программу, которая загружает прошивку и интерпретирует его так же, как микропроцессор в калькуляторе. Это эмулятор

The симулятор пытается дублировать поведение устройства.
Элемент эмулятор пытается дублировать внутреннее устройство устройства.

Это трудный вопрос, чтобы ответить окончательно, потому что термины и часто злоупотребляют или путают.

часто эмулятор представляет собой полную повторную реализацию конкретного устройства или платформы. Эмулятор действует точно так же, как и реальное устройство. Например, эмулятор NES реализует процессор, звуковой чип, видеовыход, сигналы контроллера и т. д. Немодифицированный код из NES castridge может быть сброшен, а затем полученный образ может быть загружен в наш эмулятор и сыгранный.

симулятор-это частичная реализация устройства/платформы, это делает достаточно для своих целей. Например, симулятор iPhone запускает "приложение для iPhone", которое было специально скомпилировано для целевой x86 и API Cocoa, а не для реального процессора ARM устройства и API Cocoa Touch. Однако двоичного файла, который мы запускаем в симуляторе не будет работать на реальном устройстве.

обе модели объекта, который у вас есть некоторые средства управления и наблюдения результатов. С помощью эмулятора вы хотите, чтобы вывод был именно тем, что будет производить объект, который вы эмулируете. С помощью симулятора вы хотите, чтобы определенные свойства вашего вывода были похожи на то, что будет производить объект.

позвольте мне привести пример -- предположим, что вы хотите провести некоторое тестирование системы, чтобы увидеть, как добавление нового датчика (например, термометра) в систему повлияет на систему. Вы знайте, что термометр посылает сообщение 8 раз в секунду, содержащее его измерение.

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

эмуляция -- предположим, у вас есть очень дорогой термометр, который измеряет в 0,001 C, и вы хотите посмотреть, сможете ли вы обойтись более дешевым термометром, который измеряет только до ближайших 0,5 C. Вы можете эмулировать более дешевый термометр, используя дорогой термометр, округляя показания до ближайших 0,5 C и проводя тесты, которые зависят от значений температуры.

Я не знаю, является ли это общим мнением, но я всегда дифференцировал их по тому, для чего они используются. Эмулятор используется, если вы действительно хотите использовать эмулируемую машину для ее вывода. Симулятор, с другой стороны, предназначен для того, когда вы хотите изучить моделируемую машину или проверить ее поведение.

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

основываясь на опыте разработки программного обеспечения и систем, я бы резюмировал разницу следующим образом:

моделирование: для меня это всегда в программном обеспечении-каждый аспект реальной системы моделируется только некоторым кодом и / или математикой. Моделирование пытается точно воспроизвести поведение (или предсказать его) реальной системы, но только приближает его.

эмуляция: в отличие от моделирования, она не приближает поведение реальной системы, она копирует поведение реальной системы. Эмулятор может включать аппаратное обеспечение. Но это также может быть полностью в программном обеспечении. Например, вы получаете эти программные эмуляторы для старых игровых консолей, таких как Sega Genesis. Это эмулятор, потому что он копирует реальную функциональность genesis настолько, что вы можете запустить исходный код Genesis в эмуляторе. Симулятор genesis не сможет запустить исходный код, он будет только приближать его поведение, давая аналогичные результаты, в зависимости от того, насколько хороши модели оригинальная система была.

эмулятор системного компонента может быть включен в более крупную систему, полностью заменяя компонент, который он эмулирует - симулятор не может, потому что он не является достаточно точным представлением исходного поведения компонента.

An "эмулятор" это термин для программно - аппаратного симулятора, но в целом они являются синонимами.

исходя из мира разработки оборудования. . .

моделирование тестов функциональности. 2+2 = 4 и т. д.

эмуляция проверяет функциональность в конкретной среде (64-бит, 16-бит, пальцы рук и ног).

вот пример еды:

У вас есть два куска хлеба, один нож, арахисовое масло и желе и будет давать их в детский сад. Вы пишете Инструкции о том, как сделать бутерброд.

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

Если в конце инструкции у вас осталось только желе, а не арахисовое масло, то вы провалили моделирование, и вам нужно исправить ваши инструкции. С другой стороны, если у вас есть полный "бутерброд", то инструкции должны быть действительны

в эмуляции вы бы использовали близкие представления фактических частей (тот же хлеб, нож арахисовое масло и т. д.). Что произойдет, если ты подарил своему детсадовцу дешевый пластиковый нож и очень толстое арахисовое масло?? Нож сломался бы в эмуляции, и инструкции должны были бы быть разъяснены или исправлены, чтобы приспособить эту проблему. В этом случае вы можете предложить разогреть арахисовое масло в микроволновой печи.

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

пожалуйста, простите меня, если я ошибаюсь. И я должен признать заранее, что я не проводил никаких исследований по этим 2 терминам. В любом случае...

эмуляция заключается в том, чтобы имитировать что-то с подробными известными результатами, независимо от внутреннего поведения на самом деле. Мы только пытаемся сделать что-то и не очень заботимся о том, что происходит внутри.

моделирование, с другой стороны, чтобы имитировать что-то с некоторыми известными поведения, что не известно еще.

мой 2cents

вот пример-недавно мы разработали имитационную модель для измерения времени отклика удаленной передачи еще не разработанной системы. Анализ эмуляции не дал бы нам ответа вовремя, чтобы обновить пропускную способность, поэтому моделирование было нашим подходом. Поскольку нас в основном интересовало определение потребностей в пропускной способности, мы заботились в первую очередь о размере и объеме транзакций, а не об обработке системы. Имитационная модель находилась на отдельном куске программное обеспечение, предназначенное для моделирования дискретно-событийных процессов. Подводя итог в ответ на ваш вопрос, эмуляция является одним из видов моделирования. Но, в данном случае, симуляция не была эмуляцией, потому что она не полностью представляла новую систему, только размер и объем транзакций.

Я запутался между двумя процессами. Я нашел это простое объяснение о разнице между эмуляторами и симуляторами

  1. симулятор:
    Предположим, вы написали программу сборки в файл и соответствующий ехе файл готов. Симулятор-это программное обеспечение для ПК, которое читает инструкции из exe и "minmics" работа процессора.

  2. эмулятор:
    Эмулятор - это (программное обеспечение ПК + Процессор). Этот Процессор можно заткнуть внутри целевая плата, когда вы хотите протестировать разработанное программное обеспечение в режиме реального времени чтобы проверить ошибки времени выполнения. Когда он не используется, его можно отключить. процессор будет иметь параллельный или JTAG интерфейс с ПК для загрузки exe файл для выполнения.

следовательно, в то время как симулятор работает медленно, эмулятор сможет дайте в режиме реального времени проверку разработанного кода. Как правило, вы сначала протестируете свой разработанный код на симуляторе а потом иди для проверки на эмуляторе.

источник:http://www.dsprelated.com/groups/c6x/show/148.php

Comments

    Ничего не найдено.