Я часто вижу симуляции и эмуляции в информатике. Эти два термина кажутся синонимами. Есть ли разница между симуляцией и эмуляцией ?
Я часто вижу симуляции и эмуляции в информатике. Эти два термина кажутся синонимами. Есть ли разница между симуляцией и эмуляцией ?
Ответы:
Да, понятия разные.
A simulation
- это система, которая ведет себя подобно чему-то другому, но реализована совершенно по-другому. Он обеспечивает базовое поведение системы, но может не обязательно соответствовать всем правилам моделируемой системы. Это чтобы дать вам представление о том, как что-то работает.
пример
В качестве примера рассмотрим симулятор полета. Это выглядит и кажется, что вы летите на самолете, но вы совершенно не связаны с реальностью полета на самолете, и вы можете согнуть или нарушить эти правила, как считаете нужным. Например, летайте на аэробусе А380 вверх ногами между Лондоном и Сиднеем, не ломая его.
An emulation
- это система, которая ведет себя точно так же, как что-то еще, и придерживается всех правил эмулируемой системы. Фактически это полная репликация другой системы, вплоть до двоичной совместимости с входами и выходами эмулируемой системы, но работающая в среде, отличной от среды исходной эмулируемой системы. Правила являются фиксированными и не могут быть изменены, иначе система выйдет из строя.
пример
Система MAME построена вокруг этой самой предпосылки. Все те старые аркадные системы, о которых давно забыли, которые были реализованы почти полностью на аппаратном уровне или во встроенном программном обеспечении их аппаратных систем, можно эмулировать вплоть до исходных ошибок и сбоев, которые могут произойти, когда вы достигнете максимально возможного балла.
Моделирование представляет собой модель , построенная из чего - то другого , который воспроизводит некоторые из особенностей этой штуки и оставляет другие из - очевидно , вы хотите , чтобы сохранить функции , имеющие отношение к вашему запросу, и оставить из них нерелевантных.
Например, симуляция раннего утреннего трафика исключает имена и, возможно, даже их имена (используя переменную счетчика, а не фактический набор Commuter
объектов), но не может игнорировать их скорость прибытия.
Эмуляция - это запуск программного обеспечения X, созданного для платформы A на платформе B, без изменения самого программного обеспечения. Это требует построения модели A, которая работает на B, и, очевидно, она должна моделировать все, что касается A, что включает выполнение кода. (Теоретически вы могли бы опустить поддержку кодов операций, которые, как вы знаете, не будут использоваться этим конкретным программным обеспечением, но это редкость - создание эмулятора - это тяжелая работа, и гораздо полезнее выполнить тщательную работу и получить что-то повторно используемое, чем kludge это работает только для S.)
И то, и другое означает выполнение чего-то другого.
Разница в том, что «Симуляция» происходит на сознательном уровне (по отношению к пользователю) и обычно дорабатывается, чтобы предвидеть результат реальности, не касаясь самой реальности.
«Эмуляция» происходит на бессознательном уровне и имеет целью заменить базовый компонент другим, который, по отношению к пользователю, работает как старый.
Другими словами, симуляция происходит в «параллельном мире», а эмуляция - в «замененном мире».
Технически они оба делают одно и то же: делают что-то в среде, которая действует так, как если бы она была реальной.
Концептуально, однако, есть важное отличие.
Предполагается, что симуляция в определенной степени отделена от реального мира; результат симуляции не связан напрямую с тем, что он симулирует. Например, симулятор самолета фактически не летает, а пилот фактически не общается с реальным авиадиспетчером.
Моделирование обычно имеет цель тестирования или предсказание какой - то процесс реальной жизни в безопасной среде; поскольку симуляция отключена от реального мира, ничего страшного не случится (симулятор разбившегося самолета никогда не убивает реальных людей).
Эмуляция , напротив, имеет целью занять место реальной вещи: например, если вы эмулировать простой микроконтроллер , используя более сложный программируемый процессор, что процессор может использоваться вместо оригинального микроконтроллера; он будет физически подключен к некоторой машине, и фактически будет управлять этой машиной так же, как микроконтроллер.
Цель из эмуляции заключается в замене аппаратных или программных компонентов с функциональными эквивалентами , когда исходные модули не доступны (или стали слишком дорогими, если только поддерживать). Эмуляция также может служить цели более гибкого использования аппаратного обеспечения - один и тот же программируемый микроконтроллер может удвоить для нескольких более простых контроллеров, переключая режим эмуляции по мере необходимости.
"technically"
они совершенно разные. Концептуальное различие, которое вы описываете, является фундаментальным для этого различия.
Хотя этимология не совсем точна, подумайте о разнице между сочувствием, «я могу представить, как это должно ощущаться», и сочувствием, «я знаю, что это такое». Симуляция может включать визуальное представление проблемы, но это не так. Например, он может просто распечатать столбцы чисел, представляющих, сколько людей выстроено в очередь за что-то, общий доход или среднюю скорость. У него есть некоторые характеристики, которые соответствуют реальности, а некоторые - нет.
Эмуляция, которая часто используется в контексте одной платформы, претендующей на роль другой платформы, гораздо более полная. Таким образом, разработчики Windows Phone могут запускать или отлаживать свои телефонные приложения на компьютере под управлением Windows в эмуляторе, который выглядит как телефон и ведет себя так же. Вы также можете запускать свои старые игры Commodore 64 в эмуляторе.
Слова не точны. На мой взгляд, большинство симуляторов полета больше похожи на эмуляторы, но название пришло из того времени, когда они не были такими захватывающими. Некоторые люди зарезервируют слово эмулятор для кроссплатформенного случая и отвергают его для чего-либо еще. Вы, вероятно, никогда не будете думать неправильно, если будете делать то же самое, когда говорите, но понимаете, что некоторые люди могут немного по-разному определять границу между двумя словами и делают скидку, когда кто-то говорит «это подражание» для действительно точного и полное моделирование.
Оба термина очень похожи по своему понятию - имитация.
Симуляторы или симуляторы используют программное обеспечение для создания реплицированной системы, которая очень похожа на целевую модель в отношении ее базовой функциональности (особенно ее основной методологии).
Эмуляторы, с другой стороны, больше внимания уделяют внешнему сходству по сравнению с целевой системой. Это имеет минимальное беспокойство о том, «как» функции имитируются. Эмуляторы, как правило, используются при работе в совершенно другой среде (например, в другой операционной системе) по сравнению с исходной системой.