原文地址:http://blog.chinaunix.net/u1/45052/showart_472785.html

simulation、emulation、模拟、仿真。这四个名词很容易混淆,刚弄明白,赶紧记下来。
    首先,不谈模拟和仿真,先对simulation和emulation进行区分,这是因为这里两个英文单词的界线比两个中文名词的界线要清晰得多。

wiki中关于emulation的解释中提到:

An emulator duplicates (provides an emulation of) the functions of one system using a different system, so that the second system behaves like (and appears to be) the first system. This focus on exact reproduction of external behavior is in contrast to some other forms of computer simulation, which can concern an abstract model of the system being simulated

wiki中关于simulation的解释中提到:

A simulator may imitate only a few of the operations and functions of the unit it simulates. Contrast with: emulate

1965年的Communications of ACM中有一篇论文叫"Emulation of Large Systems",是一个叫Tucker的IBM工程师写的,他们用IBM360来emulate之前的IBM70xx系列机型,里面提到:

A new technique called emulation are discussed ... An emulator is a package that includes both special hardware and a complementary set of software. The package runs in the manner of an interpretive routine simulator program but is about 5 or even 10 times as fast as a purely software simulator

从上面的资料可以看到,simulation和emulation的区别还是比较明显的。根据我的理解,simulation和emulation都是在制造一个“假象”,但是emulation比simulation要“假”得更完全。    
    simulation是模拟出原系统的一个抽象模型,而不需要真的去做真实系统要做的事情。因此它其实不具备真实系统的功能,只是当某一功能执行时,通常不必输出功能执行的结果,只是在simulator中记录下由此引发的状态变化。因此它通常用于设计初期的模型验证。
    emulation则更进一步,要真正地去做所有真实系统能做的事情,只不过做的“过程”不同,它一般用于处理兼容性问题和在资源有限的条件下完成系统原型的实现。
    
    如果把真实系统比作一个人的话,simulator就是这个人的一幅肖像画,而emulator则是这个人的一个克隆人

举个例子,我们要实现一个p2p文件分发系统。
    最开始的时候我们可以实现一个simulator:它用一个函数来模拟节点间的通信,这个函数的输入是网络性能(带宽,跳数...),输出是通信时延————注意,并没有真正的数据在传输和拷贝,甚至都没有真正的节点,我们只是模拟了通信时延这个“特征(feature)”。
    接下来,我们把这个分发系统实现了,编译成一个exe文件,但这时我们发现我们没有足够多的计算机来组成一个真实的、具有足够规模的网络来进一步测试(通常p2p网络的节点数成百上千),这时,我们可以写一个emulator:它可以区分同一个计算机上的不同进程,因此我们可以在一台计算机上开100个进程,这样可以用100台计算机模拟出10000台计算机的网络————注意,此时数据真的是通过Socket在传输,只不过有的数据走的是loopback口,并没有真的进网卡。

有一种流行的说法是,simulation是用软件实现,emulation要涉及到硬件实现的部分。这个区分很简单明了,在很多情况下也是适用的(包括上面举的p2p分发系统的例子)。但是这种说法只是对于大多数情况的一种归纳性解释,因此在某些情况下就无法区分二者了。比如,这种解释无法区分Operating System Emulator和Operating System Simulator————这个时候二者都不涉及硬件,这是因为真实系统(Operating System)本身就不涉及硬件。

再说说“模拟”与“仿真”。首先,即使在正式场合下(如论文标题),{模拟,仿真}和{simulation,emulation}这两个集合并不是一一映射的。你可以看到"模拟-simulation"的组合,也可以看到"仿真-simulation"的组合。显然,这个不一致现象是由于同时存在两种一一映射造成的。这个问题不是说理能解决的,还得随着使用次数越来越大,看大多数人的习惯。个人感觉,simulation翻译成“模拟”,而emulation翻译成“仿真”的情况多一些。
    
    最后,提一下“虚拟”这个概念。这个概念最近火的不行,英文名叫virtualization。我还没有仔细调查它和前两个概念的细微差别,但是可以肯定的是,virtualization和emulation比较相似,和simulation不是一回事。其他的,以后查到再补进来吧。

理解:simulation、emulation、模拟、仿真相关推荐

  1. Simulation Emulation(转载)

    原文地址:http://blog.chinaunix.net/u1/45052/showart_472785.html simulation.emulation.模拟.仿真.这四个名词很容易混淆,刚弄 ...

  2. 虚拟现实与模拟仿真---unity

    unity (虚拟现实与模拟仿真) 本人接触unity有由于学校需要做虚拟现实相关的项目.以前接触过一些虚拟仿真的项目,航海模拟器项目,但是大部分是接触的皮毛,没有深入研究. 当时做的项目是通过ope ...

  3. 【元胞自动机】元胞自动机交通流模拟仿真【含Matlab源码 1252期】

    ⛄一.元胞自动机简介 1 元胞自动机发展历程 最初的元胞自动机是由冯 · 诺依曼在 1950 年代为模拟生物 细胞的自我复制而提出的. 但是并未受到学术界重视. 1970 年, 剑桥大学的约翰 · 何 ...

  4. Fluent常用模型介绍-流体模拟仿真ansys

    Fluent常用模型介绍-流体模拟仿真ansys FLUENT是ANSYS CFD的核心求解器,其拥有广泛的用户群.ANSYS Fluent的主要特点如下. 1.湍流和噪声模型 FLUENT的湍流模型 ...

  5. Quartus模拟仿真实现简单的CPU逻辑运算单元

    题目要求: 看到题目,很多小伙伴可能不知道高阻态是个啥玩意咧(尤其是我们计院这些不懂硬件的学生),这里普及一下高阻态的概念: 高阻态是数字电路三态门中输出状态的一种,它的输出既不是高电平也不是低电平, ...

  6. 【技巧】Vivado 仿真器simulation显示模拟波形图(非数字波形)

    [技巧]Vivado 仿真器simulation显示模拟波形图(非数字波形) 设置步骤 其他 设置步骤 ①打开Vivado的任意一个可以运行的工程 ②点击Simulation -> Run Be ...

  7. 雅马哈机器人编程讲解_YAMAHA 机器人3D模拟仿真讲解

    本文主要讲解如何进行3D 模拟仿真功能,该功能为刚刚开发的,文章介绍最为简单的搬运功能,大家可以按照博主的步骤试一试,应该是可以完成的,文章较长,图片较多,建议收藏分享. " 01 - 准备 ...

  8. 计算机频谱仪仿真,频谱分析仪模拟仿真.doc

    频谱分析仪模拟仿真 数字信号处理课程设计 题目:频谱分析仪模拟仿真 专业:电子信息工程 班级: 姓名: 日期:2015-03-26 目录 设计目的--------------------------- ...

  9. 生物细胞繁衍生存模拟仿真实验

    生物细胞繁衍生存模拟仿真实验 原定题目给的以5为界,我们为方便算法实现依据的是简单生命游戏,对于其周围数目以3为界 约束条件 (1)如果活细胞周围八个位置的活细胞数少于两个,则该位置活细胞死亡: (2 ...

  10. 配置ARM虚拟机_使用qemu建立mini2440的模拟仿真环境

    编者按: 参考文章&课程: leao :用qemu建立mini2440的模拟仿真环境 https://www.cnblogs.com/jinmu190/archive/2011/03/21/1 ...

最新文章

  1. Facebook最新研究:无需额外训练AI,即可加速NLP任务
  2. 人工智能克服了类脑硬件的绊脚石
  3. 无向图——双连通分量
  4. LeetCode-剑指 Offer 03. 数组中重复的数字
  5. python的模块和类_Python模块和类.md
  6. android studio 解决gradle加载依赖慢的问题
  7. 前端学习(501):水平居中布局得第二种方式的优缺点
  8. matlab Tricks(二十七)—— 可变输入参数输出参数的适配
  9. 结构方程模型_结构方程模型(Structural Equation Model, SEM) 三下
  10. 开心网(kaixin001)上的X世界小游戏
  11. 微信小程序即时通讯(融云sdk)
  12. 拉格朗日插值公式详解
  13. 人工智能专业保研面试如何准备?
  14. DDD结合整洁架构落地实践
  15. window安全中心关闭防火墙后仍然会将xx文件删除的解决办法
  16. 如何让传统行业的电商引发口碑效应并营销
  17. CSCD刊源(2007年-2008年)
  18. [20190227]Windows系统评估工具winsat.txt
  19. 被国人误解了千年的七句话
  20. WORD里的拼页、书籍折页、反向书籍折页功能(一)

热门文章

  1. 分众急嫁阿里背后原因,或是新潮电梯屏数已超分众一倍
  2. python根据一个list的index获取list
  3. 平衡二叉树(AVL)的左旋和右旋
  4. Cocos2d-x 3.X, IOS版添加广点通广告平台
  5. 新手教程—— Mac电脑如何正确断网
  6. 前端面试笔试错题指南(四)
  7. 在以TCP为连接方式的服务器中,为什么在服务端设计当中需要考虑心跳?
  8. 服务器系统专用驱动程序,NVIDIA显卡win 2008系统专用驱动
  9. 【蓝桥杯单片机(24)】历届单片机客观题及答案解析
  10. github push 代码出现fatal: Authentication failed for ‘https://github.com/xxx/xxx.git/‘