Simülasyon ve emülasyon arasındaki fark nedir


97

Bilgisayar bilimlerinde Simülasyon ve Emülasyonu sıklıkla görüyorum . Bu iki terim eşanlamlı görünüyor. Simülasyon ve Emülasyon arasında bir fark var mı ?

Yanıtlar:


108

Evet, kavramlar farklı.


Simülasyon

A simulation, başka bir şeye benzer davranan , ancak tamamen farklı bir şekilde uygulanan bir sistemdir . Bir sistemin temel davranışını sağlar, ancak simüle edilen sistemin tüm kurallarına uyması gerekmeyebilir. Size bir şeyin nasıl çalıştığı hakkında bir fikir vermek için var.

Örnek

Bir uçuş simülatörünü örnek olarak düşünün. Bir uçağı uçuruyor gibi görünüyor ve hissediyorsunuz, ancak uçağı uçma gerçekliğinden tamamen bağlantınız kesildi ve bu kuralları uygun gördüğünüz gibi bükebilir ya da kırabilirsiniz. Örneğin, Londra ve Sidney arasında baş aşağı bir Airbus A380 ile uçmadan uçun.


emülasyon

Bir emulation, tam olarak başka bir şey gibi davranan ve taklit edilen sistemin tüm kurallarına uyan bir sistemdir. Etkili bir şekilde, öykünmüş sistemin girişleri ve çıkışları ile uyumlu olan, ancak orijinal öykünmüş sistemin ortamına göre farklı bir ortamda çalışan, ikili bir sisteme sahip olan tam bir replikasyondur. Kurallar sabittir, değiştirilemez veya sistem başarısız olur.

Örnek

MAME sistemi bu çok öncül etrafında inşa edilmiştir. Uzun zaman önce unutulmuş, neredeyse tamamen donanıma uygulanan ya da donanım sistemlerinin donanım yazılımına uygulanan tüm eski arcade sistemleri, mümkün olan en yüksek puana ulaştığınızda ortaya çıkabilecek orijinal hatalara ve çökmelere kadar taklit edilebilir.


18
"aynen öyle davranın ..." gerekli olmayabilir. Önemli olan, kullandığı şeyle ilgili olarak aynı aynı dış davranışı yeniden üretmesidir.
Emilio Garavaglia

Neyin simüle edildiğine / taklit edildiğine bağlı olduğunu unutmayın. Örneğin, PC uyumlu bir bilgisayarı taklit eden bir şey, PC uyumlu bir bilgisayarın dijital devresini simüle eden bir şeyden çok daha az doğru ve çok daha az gerçekçi olabilir. Bu durumda, simülatör gerçek olmayan bir PC'de "aynen olduğu gibi" davranabilir (simülatör çok daha düşük bir seviyede bir şeyi simüle ettiği için).
Brendan,

16

Bir simülasyon besbelli sorgunuzla ilgili özellikleri korumak ve alakasız olanları bırakmak istiyorum - o şeyin bazı özellikleri çoğalır ve diğerlerini dışarıda bırakır başka bir şey inşa edilmiş bir modeldir.

Örneğin, sabahın erken saatlerinde banliyö trafiğinin bir simülasyonu banliyö adlarını ve belki de kimliklerini (gerçek bir Commuternesne kümesi yerine bir sayaç değişkeni kullanarak) dışarıda bırakır , ancak varış oranlarını göz ardı edemez.


Öykünme , yazılımın kendisini değiştirmeden, platform B'ye platform A için oluşturulan X yazılımının çalıştırılmasıdır. Bu, B üzerinde çalışan bir A modeli oluşturmayı gerektirir ve kodun yürütülmesini içeren A ile ilgili her şeyin modellenmesi gerekir. (Teoride, bu özel yazılımın hiç kullanılmayacağını bildiğiniz opcod desteğini ihmal edebilirsiniz, ancak bu nadirdir - bir öykünücü yapmak zor bir iştir ve tam bir iş yapmak ve bir tortudan daha fazla tekrar kullanmak için daha değerlidir. Bu sadece S için çalışır)


7

Her ikisi de başka bir şeyin işini yapan bir şey demektir.

Aradaki fark, "Simülasyon" un bilinçli bir seviyede (kullanıcıya göre) gerçekleşmesi ve tipik olarak gerçeğe dokunmadan bir gerçeğin sonucunu öngörmesi için sonuçlandırılmasıdır.

“Öykünme” bilinçsiz bir seviyede gerçekleşir ve altta yatan bir bileşenin, kullanıcıya göre eski olanla farklı bir bileşenle değiştirilmesi amacı vardır.

Başka bir deyişle, simülasyon “paralel bir dünyada” olurken, öykünme “değiştirilmiş bir dünyada” olur.


3
Bu OP'nin bilgisayar bilimi açısından sorusunu nasıl cevaplar? Onlar hakkında bilinçli ya da bilinçsiz bir şey yoktur. Bir simülasyon, bir emülasyon olduğu gibi gerçektir. Bununla birlikte, kendi amaçları kavramsal olarak çok farklıdır.
S.Robins

@ S.Robins: bilinçli / bilinçsiz! = Gerçek / gerçek dışı. bilinçli = açıkça karar verdiğiniz bir şey, bilinçli olarak kendinize açıkça karar vermediğiniz bir şey. "Öykünülmüş" bir sistemde çalışan bir uygulama bu öykünme hakkında bir şey bilmiyor. "Simüle edilmiş" bir sistemde çalışan bir uygulamanın bunu bilmesi gerekir, çünkü mutlaka aynı davranışa sahip olmayacak.
Emilio Garavaglia

1
Hangi uygulamaların çalıştığı yerle ilgisi yoktur ve bilinçli veya bilinçsiz kararlar vermekle ilgisi yoktur. Temel olarak fark, bir sistemin genel olarak modellenip modellenmediği veya tamamen kopyalanmasıdır.
S.Robins

@ S.Robins: Ne demek konsepti ile kabul ama yakalamak değil ince bir şey var: Bir "emülatör" tipik bir şeyler yerine üst bir şey çalıştırmak için tasarlanmıştır altında uygulama kapsamı. Bir "simülatör", tipik olarak gerçek uygulama yerine kendisi için çalıştırılmak üzere tasarlanmıştır . Aynı soyutlama seviyesinde değiller.
Emilio Garavaglia

6

Teknik olarak, ikisi de aynı şeyi yapıyor: gerçek bir şeymiş gibi davranan bir ortamda bir şeyler yapın.

Bununla birlikte, kavramsal olarak önemli bir fark vardır.

Bir simülasyonun gerçek dünyadan belirli bir dereceye kadar çıkarılması gerekiyordu; Bir simülasyonun çıktısı, simüle ettiği şeye doğrudan bağlı değildir. Örneğin, bir uçak simülatörü aslında uçmuyor ve pilot aslında gerçek bir hava trafik kontrolörü ile iletişim kurmuyor.

Bir simülasyon genellikle güvenli bir ortamda bazı gerçek hayat süreçlerini test etme veya tahmin etme hedefine sahiptir ; simülasyonun gerçek dünyayla bağlantısı kesildiği için, gerçekten kötü bir şey olamaz (kaza yapan uçak simülatörü asla gerçek insanları öldürmez).


Bir öykünme , aksine, gerçek şeyin yerine geçen bir hedefi vardır: Bir daha sofistike programlanabilir CPU kullanarak basit bir mikro kontrol taklit örneğin, o CPU orijinal mikrodenetleyici yerine kullanılabilir; fiziksel olarak bazı makinelere bağlanacak ve bu makineyi tıpkı mikrodenetleyicinin yaptığı gibi kontrol edecek.

Amaç bir bir öykünme özgün modüller mevcut değildir (veya tek korumak için eğer çok pahalı hale gelmiştir) ne zaman fonksiyonel eşdeğerleriyle donanım veya yazılım bileşenlerini değiştirmektir. Öykünme, aynı zamanda donanımın daha esnek kullanılması hedefine de hizmet edebilir - aynı programlanabilir mikrodenetleyici, daha kolay denetleyiciler için iki katına çıkarılabilir, öykünme modunu gerektiği gibi değiştirir.


3
"technically", tamamen farklılar. Tarif ettiğiniz kavramsal fark, bu farkın temelini oluşturur.
S.Robins

@ S.Robins: 'teknik olarak', teknik uygulamaların genellikle benzer veya eşdeğer olduğunu kastediyorum; Aradaki fark esas olarak onları ne için kullandığınızdır.
tdammers

Kullanım durumlarıyla ilgisi yok. İki ayrı kavramı tanımlayan amaçların temel farkı budur. Öykünme, karmaşık bir işlevsellik sistemini tam olarak orjinalinden ayırt edilemeyecek şekilde değiştirmeyi hedeflerken, simülasyon bir sistemin büyük bir basitleştirmesidir ve işlevselliği bir model aracılığıyla çok genel bir anlamda temsil eder. Bu nedenle, teknik uygulamalar mutlaka çok farklıdır.
S.Robins

@ S.Robins - Katılmıyorum. Belirli bir mikroişlemciyi taklit etmek veya taklit etmek, uygulama için çok fazla bir fark yaratmaz, ancak onunla ne yaparsınız.
tdammers

1
tdammers: Genel olarak, bir öykünücünün temel tasarım amacı taklit edilen şey için "gerçek zamanlı" bir ikame olarak hizmet etmektir; ve muhtemelen altta yatan süreçle etkileşime girme. Bazı simülatörler hızlı olabilir ve bazı emülatörler altta yatan süreci analiz etmek ve / veya etkileşimde bulunmak için önemli yetenekler sağlayabilir, ancak mühendislik öncelikleri farklıdır.
supercat,

1

Etimoloji kesin olarak kesin olmamakla birlikte, sempati arasındaki farkı düşünün, "Nasıl hissetmesi gerektiğini hayal edebiliyorum" ve empati "Bunun nasıl hissettirdiğini biliyorum." Bir simülasyon, bir sorunun görsel temsilini içerebilir, ama olmayabilir. Örneğin, bir şey veya toplam gelir veya ortalama hız için kaç kişinin sıraya girdiğini temsil eden sayı sütunlarını yazdırabilir. Gerçekliğe uyan bazı özelliklere ve bazılarının eşleşmediği özelliklere sahiptir.

Genellikle başka bir platform gibi görünen bir platform bağlamında kullanılan emülasyon, çok daha tamamlandı. Böylece, Windows Phone geliştiricileri, telefon uygulamalarını, bir telefona benzeyen ve aynı şekilde davranan bir emülatördeki bir Windows makinesinde çalıştırabilir veya hata ayıklayabilir. Eski Commodore 64 oyunlarınızı da bir emülatörde çalıştırabilirsiniz.

Kelimeler kesin değil. Uçuş simülatörlerinin çoğu, benim görüşüme göre emülatörlere benziyor, ancak isim çok sürükleyici olmadıkları bir zamana bağlı kaldı. Bazı insanlar emülatör kelimesini çapraz platform vakası için ayırır ve başka herhangi bir şey için reddeder. Konuşurken aynı şeyi yaparsanız, muhtemelen asla yanlış düşünülmeyeceksiniz, ancak bazı insanların iki kelime arasındaki sınırı biraz farklı bir şekilde yerleştirebileceğini ve birisinin gerçekten doğru olması için "bu bir emülasyon olduğunu" söylediğinde ödenek alabileceğini ve tam bir simülasyon.


1
Öykünme ve simülasyonun etkili bir şekilde aynı olduğu yaygın bir yanılgı gibi görünüyor. Bunun nedeni öykünme kelimesinin başkalarının davranışlarını yansıtmak anlamına gelmesi olabilir (örneğin: bir çocuk babasını taklit eder). Bilgisayar bilimi açısından konuşulduğunda bu teknik olarak yanlış. Bir uçuş simülatörü bir emülasyon değildir, çünkü tüm giriş / çıkışlar, aynı bilgisayarı tam anlamıyla uygulamadığı için modellenen uçağın davranışını tam olarak çoğaltmayan, amaca yönelik inşa edilmiş bir program aracılığıyla yönetilir. uçağın yaptığı programları. Olsaydı, öyleyse bir öykünücü olurdu.
S.Robins

0

Her iki terim de kavram olarak benzerdir - taklit etme.

Simülasyon veya Simülatörler, temel işlevsellik (özellikle temel metodolojisi) açısından hedef modele çok benzeyen çoğaltılmış bir sistem üretmek için yazılımı kullanmaktadır.

Öte yandan emülatörler, hedef sisteme kıyasla daha fazla dış benzerliğe odaklanmaktadır. Fonksiyonların “nasıl” taklit edildiğine dair asgari endişesi vardır. Emülatörler, genel olarak, orijinal sisteme kıyasla tamamen farklı bir ortamda (örneğin farklı bir İşletim sistemi) çalışırken kullanılır.


1
İki konsepti karıştırdığını söyleyebilirim. Tam olarak uygulanması umursamayan bir simülasyondur; öykünme iç dünyaya çok değer veriyor. Bakınız: MAME
Andres F.
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.