虽然我了解模拟和仿真的一般含义,但我几乎总是对它们感到困惑。假设我创建了一个模仿现有硬件/软件的软件,我应该怎么称呼它?模拟器还是模拟器?
谁能解释一下编程方面的区别?
奖励:这两个术语之间的英语区别是什么?(对不起,我不是母语人士:))
虽然我了解模拟和仿真的一般含义,但我几乎总是对它们感到困惑。假设我创建了一个模仿现有硬件/软件的软件,我应该怎么称呼它?模拟器还是模拟器?
谁能解释一下编程方面的区别?
奖励:这两个术语之间的英语区别是什么?(对不起,我不是母语人士:))
Answers:
仿真是模仿外部可观察到的行为以匹配现有目标的过程。仿真机制的内部状态不必准确反映它正在仿真的目标的内部状态。
另一方面,模拟涉及对目标的基础状态进行建模。良好仿真的最终结果是,仿真模型将仿真所仿真的目标。
理想情况下,您应该能够查看模拟并观察到的属性,如果您查看原始目标,这些属性也将看到。在实践中,出于性能原因,可能会有一些捷径可以进行仿真-也就是说,仿真的某些内部方面实际上可能是仿真。
MAME是一款街机游戏模拟器;Hyperterm是一个(不是很好)的终端模拟器。无需对街机或终端进行详细建模即可获得所需的仿真行为。
Flight Simulator是一个模拟器;SPICE是电子模拟器。他们尽可能地对目标的每个细节进行建模,以表示目标在现实中的行为。
编辑:其他答复指出,仿真的目的是能够替代它正在仿真的对象。这很重要。模拟的重点更多地放在目标内部状态的建模上,并且模拟不一定会导致仿真。特别是,模拟可能比实时运行慢得多。例如,SPICE不能代替实际的电子电路(即使假设存在某种神奇的设备也可以完美地将电路连接到SPICE仿真。)仿真仿真并不总是会导致仿真-
如果飞行模拟器可以将您从A运送到B,那么它将是飞行模拟器。
模拟器可以代替原始 实际使用。
虚拟PC模仿PC。
模拟器是用于研究和分析的模型。
仿真器将始终必须接近实时运行。对于模拟器,情况并非总是如此。地质模拟可能达到1000年/秒或更长时间。
模拟=用于分析和研究
仿真=用作替代品
模拟器是一种可以建模的环境,而模拟器是一种可以复制原始设备或系统上的用法的环境。
模拟器模拟其正在模拟的活动。它“出现”(取决于上下文,很多“出现”都可以)与被模拟的对象相同。例如,飞行模拟器“看上去”是对用户的真实飞行,尽管它不会将您从一个地方运送到另一个地方。
另一方面,仿真器实际上是“ 做 ”被仿真的事情,并且这样做也“ 看起来是在做同样的事情 ”。仿真器可以使用不同的协议集来模仿被仿真的事物,但是结果/结果始终与原始对象相同。例如,EMU8086在您的计算机上模拟了8086微处理器,该微处理器显然没有在8086上运行(= 不同的协议),但是它提供的输出才是真正的8086所提供的。
重点不同。仿真器1专注于重新创建系统的行为,而不考虑系统内部的功能。模拟器2专注于对系统组件进行建模。当您最关心系统的工作时,可以使用模拟器,而当您关心系统的工作时,则可以使用模拟器。
至于它们的一般英语含义,模拟是“力求在品质或行为上等同于或超越他人”,而模拟是“ 模拟,复制,复制其行为,外观或特性”。没有太大的区别。模拟来自æmulus(“努力,竞争”),并且与“模仿”和“图像”有关,这暗示了表面杠杆的相似性。“模拟”来自similis “喜欢”一样,这或许意味着更深的一致性单词“类似,”。
参考文献:
我认为仿真器和仿真器无法比拟。两者都模仿某些东西,但不是同一推理范围的一部分,它们不在同一上下文中使用。
简而言之:仿真器旨在复制原始功能,甚至可以在实际环境中替换原始功能。模拟器并非旨在复制原件的功能,而仅仅是为了看起来与原件相似。如果没有原始功能,模拟器将无法在实际环境中替换它。
一个仿真器是一种装置,模仿的东西足够接近,以便它可以替代真实的东西。例如,您希望电路像ROM(只读存储器)电路一样工作,但还希望调整内容直到您想要的内容为止。您将使用ROM模拟器,这是一个黑匣子(可能基于CPU),其物理和电气接口与您要模拟的ROM兼容。仿真器将代替真正的ROM插入设备。主板在工作时不会有任何区别,但是您可以轻松更改仿真ROM的内容。换句话说,仿真器将在其主板环境中与实际情况完全一样(由于实际内部模型可能会稍慢一些),但是在主板环境之外,还有其他功能(如重写)仅对设计人员可见。因此,模拟器的定义是:模仿原始内容的东西,具有所有功能,
一个模拟器在另一个思维环境中使用,如飞机模拟器,汽车模拟器等模拟将只需要的实际事情的某一方面,通常是那些涉及到照顾一个人如何感知和控制它。模拟器将不会执行真实物品的功能,因此无法将其设置为真实物品。飞机模拟器不会飞行或不会载人,这根本不是目的。该模拟器并非旨在工作,而是在飞行员看来某种类似于实际事物的目的,而不是出于其正常目的,例如,允许进行地面训练(包括在异常情况下,例如全引擎故障)。因此,模拟器的定义是:某些东西在人类看来可以扩展到某种程度,就像原始的一样,但是不能代替它进行实际使用。另外,飞行员将知道模拟器是模拟器。
我认为我们不会看到任何ROM仿真器,因为ROM不会与人互动,也不会看到任何平面仿真器,因为在现实世界中飞机无法替代它们执行相同的功能。
在我看来,仿真器或仿真器中的模型可以是任何东西,并且不必与原始模型相似。ROM仿真器模型可能是软件而不是硬件,MS Flight Simulator不能是比它更多的软件。
这两个术语的比较将与当前选择的答案(来自Toybuilder)相矛盾,后者使内部模型有所不同,而我的建议是,区别在于伪造品是否可以在现实世界中用于执行实际功能(确实可以接受)。
请注意,飞机模拟器还必须模拟不属于飞机的一部分的地球,太阳,风等,因此飞机模拟器将必须模拟飞机的某些方面以及飞机的环境。飞机,因为它不在实际环境中使用,而是在训练室中使用。
这与仅模拟原始字符的模拟器有很大的不同,其目的是在原始文件的环境中使用,而无需对其进行模拟。回到飞机环境中...飞机模拟器是什么?也许一列火车将连接两个机场-实际上是两个飞机台阶-载有乘客,机上有空姐,汽车内部看起来像一个实际的飞机舱,机长说:“女士们,先生们,我们的海拔高度是10公里,温度在我们的目的地是24°C”。它的好处很难看,哼...
总而言之,模拟器是旨在工作的真实事物,模拟器是旨在欺骗用户的假货。
简单的解释。
如果要将PC(运行Windows)转换为Mac,可以执行以下任一操作:
(1)您可以简单地在Windows上安装Mac主题。因此,您的PC感觉更像Mac,但实际上无法运行任何Mac程序。
(SIMULATION)
(要么)
(2)您可以将PC编程为像Mac一样运行(我不确定是否可以:P)。现在,您甚至可以成功运行Mac程序,并期望获得与Mac上相同的输出。
(EMULATION)
在第一种情况下,您可以体验Mac,但不能期望与Mac上的输出相同。
在第二种情况下,您可以期望获得与Mac上相同的输出,但事实仍然是它只是一台PC。
要了解模拟器与模拟器之间的区别,请记住,模拟器试图模仿真实设备的行为。例如,对于iOS模拟器,它可以模拟实际iPhone / iPad设备的真实行为。但是,模拟器本身使用Mac上安装的各种库(例如QuickTime)执行渲染,因此效果与实际的iPhone相同。此外,在Simulator上测试的应用程序被编译为x86代码,这是Simulator可以理解的字节代码。相反,真正的iPhone设备使用基于ARM的代码。
相反,仿真器可模拟真实设备的工作。在仿真器上测试的应用程序被编译为实际设备使用的实际字节码。仿真器通过将字节代码转换为可以由运行仿真器的主机执行的形式来执行应用程序。
要了解模拟和仿真之间的细微差别,请想象您试图说服孩子使用刀子是危险的。为了模拟这一点,您假装用刀割伤自己,痛苦地吟。为了模拟这一点,您实际上切开了自己。
仿真器是系统的模型,它将接受仿真系统将接受的任何有效输入,并产生相同的输出或结果。因此,仅当软件精确地再现了仿真系统的行为时,您的软件才是仿真器。
这两个术语之间的区别有点模糊。来自“ Emulators”是允许您调试嵌入式系统的硬件的世界。记住那些使您具有ICE(在线仿真)功能来调试PC平台的产品,我发现“仿真”一词的使用在某种程度上误称了模拟硬件行为的软件。
我对该术语的当前使用的理由是仿真,它是它可以“增强”功能,并且仅与系统行为的“合理”近似有关。
ICE :(在线仿真中)代替实际处理器插入板中的硬件。它使您可以像运行实际处理器一样运行系统。通常,它们具有处理器的一种变体,可以实际使用胶合逻辑执行软件,以允许用户在硬件控制下中断执行和执行单步操作。有些还可以提供日志记录功能。大多数现代处理器开发系统已经用JTAG仿真代替了ICE类型的仿真,在JTAG仿真中,JTAG只是通过专用串行链接与处理器通信,所有执行都由板上安装的处理器执行。
软件仿真器:0x86仿真器仅与能够执行0x86汇编语言有关,而不能提供SPECIFIC 0x86处理器的每个周期的准确行为模型。博克斯就是一个例子。QEMU可以做到这一点,但也可以使用特殊的内核模块进行“虚拟化”。
仿真器:德州仪器(TI)为软件开发提供了该处理器的周期精确行为模型,旨在准确模拟特定处理器内核的性能,供开发人员在拥有可用硬件之前使用。
软件EMULATOR增强功能:BLEEM不仅允许您运行Playstation软件,而且允许以比Playstation能够提供的分辨率更高的分辨率输出显示,还利用了可用的GPU的更高级功能。(即更好地融合和平滑纹理。)
两者都是对象的模型,您可以通过某些方法控制输入和观察输出。
关键区别在于:
让我举个例子-假设您要进行一些系统测试,以了解向系统中添加新传感器(例如温度计)将如何影响系统。您知道温度计每秒8次发送一条包含其测量值的消息。
模拟-如果您还没有温度计,但要测试此消息速率是否不会使系统过载,则可以通过连接每秒发送8次随机数的单元来模拟传感器。您可以运行任何不依赖于传感器发送的实际值的测试。
仿真-假设您有一个非常昂贵的温度计,可测量到0.001 C,并且您想看看是否可以买到便宜的温度计,它只能测量到最接近的0.5 C.您可以使用一个昂贵的温度计来模拟便宜的温度计然后将读数四舍五入到最接近的0.5 C,并根据温度值运行测试。
注意,模拟也可以用于预测或预测行为。有限元分析模拟被用于许多应用中,包括天气预报和虚拟风洞。
术语的定义:
在计算机科学中,模拟和仿真从原始输入产生的输出与原始系统相同;但是,仿真也使用相同的过程来实现,并且由相同的材料制成。模拟使用与原始系统不同的过程。另外值得注意的是复制一词,它是两者的中间产物-使用相同的过程,但由不同的材料制成。
因此,如果要在PC上运行旧的《超级马里奥兄弟》游戏,请使用SNES 模拟器,因为它使用相同或相似的计算机代码(进程)来运行游戏,并且使用相同或相似的材料(硅芯片) 。但是,如果要在PC上驾驶Boeing 747喷气式飞机,请使用飞行模拟器,因为它使用的过程与原始飞行器完全不同(不涉及实际机翼,升力或空气动力学!)。
以下是计算机科学词汇表中的确切定义:
仿真是系统的模型,可捕获系统输入和输出之间的功能连接,但不一定基于与系统本身相同或相似的过程。
复制是系统的模型,该模型捕获系统的输入和输出之间的功能连接,并基于与系统本身的过程相同或相似的过程。
仿真是某些系统的模型,该模型基于与该系统相同或相似的过程捕获该系统的输入和输出之间的功能连接,并且该过程由与该系统相同的材料构成。
参考:开放大学,M366术语表1.1,2007年
词语的定义最好地描述了差异。谷歌搜索给出了模拟和仿真的以下定义:
模拟 模仿的外观或性格。
模拟 比赛或超越(一个人或一个成就),通常是模仿。
模拟模仿系统。仿真可以很好地模拟系统,以至于可以替代甚至超越它。
在计算中,仿真将取代它正在仿真的系统。通常,它甚至会胜过它所模仿的系统。例如,游戏机模拟器通常会进行改进,例如增强硬件兼容性,改善性能并改善音频/视频质量。
另一方面,仿真受模型限制。它们是模仿系统的最佳尝试,但不能替代它。有硬件仿真器,因为可以模仿硬件,很难区分两者之间的区别。没有耕作模拟器,因为没有可以替代实际耕作的模仿。我们只能模拟一种耕作模型,以了解如何更好地耕种。
仿真器:
考虑一个您只会英语并且您在中国的情况。为了与中国人互动,您需要翻译。现在,翻译器的作用是它将以英语寻求您的输入并将其转换为中文,然后将该输入提供给中国人,并得到中国人的回应,并转换为英语并将输出以英语提供给您。现在,翻译和中国人是模拟器。两种组合都将提供类似的功能,就像您与英国人交流一样。因此硬件可能不同,但功能将相同。
模拟器:
我不能提供比SPICE或Flight Simulator更好的示例。两者都将用与硬件相似的软件或数学模型代替硬件组件的行为。
最后,取决于上下文,哪种解决方案更适合项目需求。
Simulator比Emulator更为广泛,似乎在以上文章中都过分考虑了该术语的对偶性。
仿真器
人们开始以直接的方式替换现有系统的某些硬件部分时,决定在“计算机世界”中使用新的词模拟 -模仿他们的行为并依靠计算性质来确保不会破坏某些内容并将所有内容留在计算机中等效状态。因此,我们模拟了这一部分!(并且整个过程仍然像以前一样)
仿真器通常在狭义上用于数字领域,作为以前已知和存在的东西(虚拟芯片,电路板,电子设备)的替换和虚拟化(以数字形式作为软件呈现)。因此,当世界变得更加数字化并将仿真器词带给大众时,大众为它增加了不确定性(或其他原因)。
仿真器
首先,我看到了许多关于模拟器的评论,这些评论确实或代替了真实的东西,但模拟器却没有。
但是,飞行模拟器用于真实物体-它可以训练飞行员,提高他们的技能和知识,并且可以代替昂贵的真实飞机并节省大量资金。我们不能只说一个平面仿真器,因为我们有一种内在的感觉,那就是它不止于此,因此我们称之为模拟器:)平面模拟器可以包含真实的仿真雷达或应答器。
相反,使用模拟器进行分析和研究(使用模拟器进行真实的研究),但是 分析和研究的真实性不比仿真GSM板低(在我们生活的信息时代甚至更多)。分析为企业增加了价值,削减了成本或指出了不少于已更换(模拟)硬件的利润。
Simulator类似于对由于某种原因(成本,技术,物理上的不可能)而无法获得的某些事物进行建模的模型。通常针对市场,天气,燃烧,用户等我们不熟悉的新事物,无形事物或复杂事物进行模拟。因此,出现了飞行,黑洞,证券交易所,模拟。
所以最后:
至于单词的起源
全部来自拉丁语,意思是: