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

104
задан Community 23 May 2017 в 12:10
поделиться

8 ответов

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

-121--1732672-

Это нормально, но немного избыточно; в общем смысле, можно легко удалить с помощью блока , добавить блок finally после catch и явно вызвать Dispose там, что уменьшит вложенность в код.

В более конкретном смысле, меня немного беспокоит то, что вы фактически не назначаете ответ , пока не получите внутри блока с помощью , и явные объявления переменных в этом контексте являются ненужными и запутанными. Я бы переписал его так:

HttpHeaderInfo result;
try
{
    var request = (HttpWebRequest)WebRequest.Create(uri);
    request.Method = "HEAD";
    request.KeepAlive = false;
    request.Timeout = Properties.Settings.Default.WebTimeoutDefault;

    using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
    {
        result = new HttpHeaderInfo();
        result.LastModified = response.LastModified;
        result.ContentType = response.ContentType;
        result.StatusCode = response.StatusCode;
        result.ContentLength = response.ContentLength;
    }
}
catch (WebException ex)
{
    // etc.
}

Это намного яснее, чем первоначальная форма. Также обратите внимание, что я ловлю WebException , а не универсальную System.Exception . Вместо поиска общих исключений и последующей проверки их типа следует перехватить определенные типы исключений.

-121--4167070-

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

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

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

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

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

313
ответ дан 24 November 2019 в 04:03
поделиться

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

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

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

мои 2 цента

0
ответ дан 24 November 2019 в 04:03
поделиться

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

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

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

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

6
ответ дан 24 November 2019 в 04:03
поделиться

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

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

Симулятор представляет собой частичную реализацию устройства / платформы, он достаточно настолько для своих целей. Например, симулятор iPhone запускает «приложение для iPhone», которое было специально скомпилировано для цели X86 и API Cocoa, а не в APU Real Diapry CPU и API Cocoa Touch. Тем не менее, двоичный бинар, который мы бегите в симуляторе, не будут работать на реальном устройстве.

14
ответ дан 24 November 2019 в 04:03
поделиться

«Эмулятор» - это термин, обозначающий программный аппаратный симулятор, но в целом они являются синонимами.

2
ответ дан 24 November 2019 в 04:03
поделиться

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

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

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

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

-121--726891-

Для этого можно использовать Xuggler (в Windows, Mac или Linux), и в следующих учебных пособиях будет показано, как именно это сделать. В частности, см. (я не шучу) учебное пособие «Как вырастить некоторые мячи» для программы, которая делает видео из серии BufferedImages (и некоторых аудио).

-121--1687984-

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

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

4
ответ дан 24 November 2019 в 04:03
поделиться

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

Симуляторы тесты функциональные возможности. 2 + 2 = 4 и т. Д.

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

Вот пример пищи:

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

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

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

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

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

1
ответ дан 24 November 2019 в 04:03
поделиться

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

0
ответ дан 24 November 2019 в 04:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: