Trình mô phỏng hay Trình giả lập? Sự khác biệt là gì?


522

Mặc dù tôi hiểu mô phỏng và mô phỏng có nghĩa là gì, nhưng tôi hầu như luôn bị nhầm lẫn về chúng. Giả sử rằng tôi tạo ra một phần mềm bắt chước phần cứng / phần mềm hiện có, tôi nên gọi nó là gì? Một trình giả lập hay giả lập?

Bất cứ ai có thể giải thích sự khác biệt về mặt lập trình?

Tiền thưởng: sự khác biệt trong tiếng Anh giữa hai thuật ngữ này là gì? (Xin lỗi, tôi không phải là người bản ngữ :))


3
Trong phát triển ứng dụng di động, iPhone có trình giả lập trong khi Android có trình giả lập. Xem thêm tại đây - stackoverflow.com/questions/4544588/
Mạnh

1
Tôi tìm thấy Wikipedia mang thông tin này: en.wikipedia.org/wiki/Emulator#Emulation_versus_simulation
AmigoNico

điều này cũng có thể hữu ích trong việc giải thích điều này: lập trình
viên.stackexchange.com / questions / 134746 / Fiêu

Câu trả lời:


462

Thi đua là quá trình bắt chước hành vi hướng ngoại có thể quan sát được để phù hợp với mục tiêu hiện có. Trạng thái bên trong của cơ chế mô phỏng không phải phản ánh chính xác trạng thái bên trong của mục tiêu mà nó đang mô phỏng.

Mô phỏng, mặt khác, liên quan đến việc mô hình hóa trạng thái cơ bản của mục tiêu. Kết quả cuối cùng của một mô phỏng tốt là mô hình mô phỏng sẽ mô phỏng mục tiêu mà nó đang mô phỏng.

Lý tưởng nhất, bạn sẽ có thể xem xét các thuộc tính mô phỏng và quan sát mà bạn cũng sẽ thấy nếu bạn nhìn vào mục tiêu ban đầu. Trong thực tế, có thể có một số phím tắt cho mô phỏng vì lý do hiệu suất - nghĩa là, một số khía cạnh bên trong của mô phỏng thực sự có thể là mô phỏng.

MAME là một trình giả lập trò chơi arcade; Hyperterm là một trình giả lập thiết bị đầu cuối (không tốt lắm). Không cần phải mô hình hóa máy arcade hay thiết bị đầu cuối một cách chi tiết để có được hành vi mô phỏng mong muốn.

Flight Simulator là một trình giả lập; SPICE là một mô phỏng điện tử. Họ mô hình hóa càng nhiều càng tốt mọi chi tiết của mục tiêu để thể hiện những gì mục tiêu làm trong thực tế.

EDIT: Các phản hồi khác đã chỉ ra rằng mục tiêu của một cuộc thi đua là có thể thay thế cho đối tượng mà nó đang thi đua. Đó là một điểm quan trọng. Trọng tâm của một mô phỏng tập trung nhiều hơn vào việc mô hình hóa trạng thái bên trong của mục tiêu - và mô phỏng không nhất thiết dẫn đến mô phỏng. Đặc biệt, một mô phỏng có thể chạy chậm hơn nhiều so với thời gian thực. SPICE, chẳng hạn, không thể thay thế cho một mạch điện tử thực tế (ngay cả khi giả sử có một loại thiết bị ma thuật nào đó giao tiếp hoàn hảo các mạch điện với mô phỏng SPICE.) Mô phỏng mô phỏng không phải lúc nào cũng dẫn đến mô phỏng -


33
Theo định nghĩa này, do đó không thể mô phỏng thế giới thực trong phần mềm? Tôi không nghĩ rằng chúng ta có thể đại diện chính xác trạng thái cơ bản của thế giới thực - hiện tại chỉ mô phỏng các thuộc tính có thể quan sát được ...
Dolph

8
Tôi không đồng ý với mô hình "[Mô phỏng] này càng nhiều càng tốt mọi chi tiết của mục tiêu để thể hiện những gì mục tiêu thực hiện trong thực tế." Mô phỏng có mô hình của hệ thống đích với đủ chi tiết dựa trên mục đích mô phỏng. Chẳng hạn, Flight Simulator có lẽ không tạo mô hình cá trên biển vì nó vô dụng cho mục đích mô phỏng.
Hamdi

17
Chính xác câu trả lời ngược lại ở đây: stackoverflow.com/questions/2174638/ từ
smwikipedia

3
Dường như hầu hết mọi người sử dụng những từ này theo cách khác, như trong: mô phỏng thường xảy ra ở mức độ cao hơn so với mô phỏng (mặc dù cả hai từ này hiếm khi được sử dụng cùng nhau trong một ngữ cảnh nhất định). Xem ví dụ Trình giả lập Android so với Trình mô phỏng của Apple. Tôi đề nghị chuyển đổi xung quanh các từ trong câu trả lời này để phù hợp với phần lớn các định nghĩa và để tránh nhầm lẫn cho khách truy cập trong tương lai.
phi công

1
Tôi nghĩ rằng câu trả lời này đã chuyển đổi 2 điều khoản. Tất cả các nguồn khác giải thích nó là: mô phỏng = hành vi trùng lặp; thi đua = hoạt động bên trong trùng lặp. Điều này dẫn đến kết luận sau: cả hai đều là những thuật ngữ CHỦ ĐỀ kỳ quặc.
metalim

350

Nếu một trình mô phỏng bay có thể vận chuyển bạn từ A đến B thì đó sẽ là trình giả lập chuyến bay.

Một trình giả lập có thể thay thế bản gốc để sử dụng thực sự .
Một PC ảo mô phỏng một PC.

Một mô phỏng là một mô hình để nghiên cứu và phân tích.

Một trình giả lập sẽ luôn phải hoạt động gần với thời gian thực. Đối với một giả lập không phải lúc nào cũng như vậy. Một mô phỏng địa chất có thể làm 1000 năm / giây trở lên.


6
@Henk Ví dụ "buồng lái" của bạn thật tuyệt vời mặc dù tôi đã hiểu nó sau khi tôi đọc câu trả lời của Toybuilder. Cảm ơn :)
AraK

1
PC ảo không giả lập , nó ảo hóa. QEMU, mặt khác, không thi đua. Trong cả hai trường hợp, tên nên là một gợi ý.
Jörg W Mittag

24
Tôi nghĩ sẽ an toàn khi nói rằng Virtual PC giả lập PC. CÁCH mô phỏng PC thông qua ảo hóa, nhưng đó là một chi tiết triển khai. Bạn có thể lập luận rằng ảo hóa phần cứng là một siêu mô phỏng, trong đó có thể cung cấp hỗ trợ CPU được tăng tốc, truy cập thiết bị phần cứng độc quyền, v.v.
Lee B

Đợi đã, PC ảo không cung cấp bản sao 1: 1 của PC thật sao? (Ý tôi là, ảo hóa hệ thống nói chung không chỉ mô phỏng hành vi bên ngoài mà gần như mọi ngóc ngách của một hệ thống, không giống như ảo hóa ứng dụng trong đó, ví dụ, ngăn xếp mạng không được tạo lại).
Camilo Martin

1
Tôi có thể tìm thấy trình giả lập chuyến bay nói ở đâu?
Jerry Dodge

175

Mô phỏng = Để phân tíchnghiên cứu

Thi đua = Để sử dụng thay thế

Trình giả lập là một môi trường mô hình nhưng trình giả lập là một môi trường sao chép việc sử dụng như trên thiết bị hoặc hệ thống ban đầu.

Trình mô phỏng bắt chước hoạt động của một cái gì đó mà nó đang mô phỏng. Nó "xuất hiện" (rất nhiều thứ có thể đi với "xuất hiện" này, tùy thuộc vào ngữ cảnh) giống với thứ được mô phỏng. Ví dụ, trình mô phỏng chuyến bay "dường như" là một chuyến bay thực sự đến người dùng, mặc dù nó không vận chuyển bạn từ nơi này đến nơi khác.

Mặt khác, trình giả lập thực sự " làm " những gì mà thứ được mô phỏng làm, và khi làm như vậy thì " dường như cũng đang làm điều tương tự ". Trình giả lập có thể sử dụng bộ giao thức khác nhau để bắt chước thứ được mô phỏng, nhưng kết quả / kết quả luôn giống với đối tượng ban đầu. Ví dụ, EMU8086 mô phỏng bộ vi xử lý 8086 trên máy tính của bạn, rõ ràng là nó không chạy trên 8086 (= các giao thức khác nhau ), nhưng đầu ra mà nó mang lại là những gì 8086 thực sự sẽ mang lại.


9
Câu trả lời rõ ràng nhất tôi từng thấy. Đối với tôi, chỉ có thể được cải thiện bằng cách bỏ qua câu bổ sung hoặc tích hợp nó vào các định nghĩa tương phản tuyệt vời của bạn :-D
doughgle

40

Đó là một sự khác biệt trong trọng tâm. Trình giả lập 1 tập trung vào việc tái tạo hành vi của một hệ thống, không liên quan đến cách thức hoạt động của hệ thống bên trong. Bộ mô phỏng 2 tập trung vào việc mô hình hóa các thành phần của một hệ thống. Bạn sử dụng một trình giả lập khi bạn quan tâm chủ yếu về những gì một hệ thống làm và một trình giả lập khi bạn quan tâm đến cách nó hoạt động.

Đối với ý nghĩa chung của tiếng Anh, thi đua là "nỗ lực để bằng hoặc vượt trội hơn về phẩm chất hoặc hành động ", trong khi mô phỏng là " mô hình hóa , sao chép, nhân đôi hành vi, diện mạo hoặc tính chất của". Không có nhiều khác biệt. Thi đua xuất phát từ æmulus , "phấn đấu, cạnh tranh" và có liên quan đến "bắt chước" và "hình ảnh", gợi ý sự tương đồng của đòn bẩy bề mặt. "Mô phỏng" xuất phát từ similis "như", cũng như từ "tương tự", có lẽ gợi ý về sự phù hợp sâu sắc hơn.

Người giới thiệu:

  1. Wikipedia: Trình giả lập
  2. Wikipedia: Mô phỏng máy tính
  3. Wiktionary: thi đua
  4. Wiktionary: mô phỏng
  5. Từ nguyên trực tuyến: thi đua
  6. Từ nguyên trực tuyến: mô phỏng

Câu trả lời của bạn khác với những người khác. Theo bạn, Virtual PC là trình giả lập hay Trình giả lập?
Mikaël Mayer

@ MikaëlMayer: Nhiều câu trả lời khác với những câu trả lời khác, chỉ có một số câu tương tự. Tôi xem xét câu trả lời của mình tương đương (trong đó mọi thứ sẽ được phân loại theo cùng một cách) với Toybuilder và cdiggens, và tương thích với Jörg's. Nó chỉ trái ngược với Pontus và Aeolai.
outis

@ MikaëlMayer Máy tính ảo là một trình giả lập. Nó có thể làm mọi thứ mà một PC thực sự có thể làm.
Một người dùng

1
@Pri Xem câu trả lời của chủ đề này liên quan đến Virtual PC. Đó là cả hai, nó phụ thuộc từ quan điểm. Ví dụ, bạn vẫn có thể nói đó là mô phỏng vì nó không thể nóng như máy tính thật.
Mikaël Mayer

Cảm ơn bạn đã quay trở lại @ MikaëlMayer, nhưng thành thật mà nói, đôi khi chúng ta thực sự không thể phân biệt được nếu một hệ thống là trình giả lập hoặc giả lập. Một loạt các cuộc tranh luận bắt đầu. Hy vọng tôi đúng! Rất ít sự khác biệt dựa trên cách sử dụng, ý nghĩa tiếng Anh, chức năng, khả năng chi trả. Nhưng khi tôi áp dụng tất cả các câu trả lời trong nghiên cứu trường hợp của mình, đó không phải là một điều dễ dàng
Một người dùng

19

Tôi không nghĩ rằng trình giả lập và giả lập có thể được so sánh. Cả hai đều bắt chước một cái gì đó, nhưng không phải là một phần của cùng một phạm vi lý luận, chúng không được sử dụng trong cùng một bối cảnh.

Nói tóm lại: một trình giả lập được thiết kế để sao chép một số tính năng của quỹ đạo và thậm chí có thể thay thế nó trong môi trường thực. Một trình giả lập không được mô tả để sao chép các tính năng của bản gốc, mà chỉ xuất hiện tương tự như bản gốc với con người. Không có các tính năng của bản gốc, trình giả lập có thể thay thế nó trong môi trường thực.

Trình giả lập là một thiết bị bắt chước một cái gì đó đủ gần để nó có thể được thay thế cho vật thật. Ví dụ, bạn muốn một mạch hoạt động như một mạch ROM (chỉ đọc bộ nhớ), nhưng cũng muốn điều chỉnh nội dung cho đến khi nó là những gì bạn muốn. Bạn sẽ sử dụng trình giả lập ROM, hộp đen (có thể dựa trên CPU) với giao diện vật lý và điện tương thích với ROM bạn muốn mô phỏng. Trình giả lập sẽ được cắm vào thiết bị thay cho ROM thực. Bo mạch chủ sẽ không thấy bất kỳ sự khác biệt nào khi làm việc, nhưng bạn sẽ có thể thay đổi nội dung ROM giả lập một cách dễ dàng. Nói cách khác, trình giả lập sẽ hoạt động chính xác như thực tế trong bối cảnh bo mạch chủ của nó (có thể chậm hơn một chút do mô hình bên trong thực tế) nhưng sẽ có các chức năng bổ sung (như viết lại) chỉ hiển thị cho nhà thiết kế, ngoài ngữ cảnh bo mạch chủ . Vì vậy, định nghĩa trình giả lập sẽ là: một cái gì đó bắt chước bản gốc, có tất cả các tính năng chức năng của nó,

Một trình giả lập được sử dụng trong một bối cảnh tư duy khác, ví dụ như trình mô phỏng máy bay, giả lập xe hơi, v.v ... Việc mô phỏng sẽ chỉ quan tâm đến một số khía cạnh của thực tế, thường là những điều liên quan đến cách con người sẽ nhận thức và điều khiển nó. Trình mô phỏng sẽ không thực hiện các chức năng của công cụ thực và không thể được duy trì cho nó. Trình mô phỏng máy bay sẽ không bay hoặc mang theo ai đó, đó không phải là mục đích của nó. Trình mô phỏng không nhằm mục đích hoạt động, nhưng xuất hiện cho phi công bằng cách nào đó giống như thực tế cho các mục đích khác với mục đích thông thường, ví dụ như cho phép đào tạo trên mặt đất (bao gồm cả trong các tình huống bất thường như hỏng toàn bộ động cơ). Vì vậy, định nghĩa giả lập sẽ là: một cái gì đó có thể xuất hiện với con người, với một số phần mở rộng, như bản gốc, nhưng không thể thay thế nó để sử dụng thực tế. Ngoài ra, phi công sẽ biết rằng trình giả lập là giả lập.

Tôi không nghĩ chúng ta sẽ thấy bất kỳ trình giả lập ROM nào, bởi vì ROM không tương tác với con người, chúng ta cũng sẽ không thấy bất kỳ trình giả lập máy bay nào, bởi vì các mặt phẳng không thể có sự thay thế thực hiện các chức năng tương tự trong thế giới thực.

Theo quan điểm của tôi, mô hình bên trong một trình giả lập hoặc giả lập có thể là bất cứ thứ gì, và không giống với mô hình của bản gốc. Một mô hình giả lập ROM có thể sẽ là phần mềm thay vì phần cứng, MS Flight Simulator không thể là phần mềm nhiều hơn nó.

So sánh cả hai thuật ngữ này sẽ mâu thuẫn với câu trả lời hiện được chọn (từ Toybuilder), điều này tạo ra sự khác biệt cho mô hình bên trong, trong khi đề xuất của tôi là sự khác biệt là liệu giả có thể hoặc không thể được sử dụng để thực hiện chức năng thực tế trong thế giới thực ( đến một số mở rộng được chấp nhận, thực sự).

Lưu ý rằng trình mô phỏng máy bay cũng sẽ phải mô phỏng trái đất, mặt trời, gió, v.v., không phải là một phần của máy bay, vì vậy một trình mô phỏng máy bay sẽ phải bắt chước một số khía cạnh của máy bay, cũng như môi trường của máy bay bởi vì nó không được sử dụng trong môi trường thực tế này, mà trong một phòng đào tạo.

Đây là một sự khác biệt lớn với trình giả lập chỉ mô phỏng gốc, và mục đích của nó là được sử dụng trong môi trường của bản gốc mà không cần phải mô phỏng nó. Quay lại bối cảnh máy bay ... những gì có thể là một trình giả lập máy bay? Có lẽ một chuyến tàu sẽ kết nối hai sân bay - thực sự là hai bước máy bay - chở hành khách, với tiếp viên trên tàu, với nội thất ô tô trông giống như một cabin máy bay thực sự, và với thuyền trưởng nói rằng "thưa quý ông và quý ông độ cao của chúng tôi là 10 km và nhiệt độ tại điểm đến của chúng tôi là 24 ° C ". Lợi ích của nó rất khó nhìn, hum ...

Kết luận, trình giả lập là một thứ thực sự có ý định hoạt động, trình giả lập là giả nhằm mục đích lừa người dùng.


1
Cụm từ "Trình giả lập ROM" làm tôi nhớ đến các máy chơi game video ảo.
Joe Z.

11

Giải thích đơn giản.

Nếu bạn muốn chuyển đổi PC (chạy Windows) sang Mac, bạn có thể thực hiện một trong các cách sau:

(1) Bạn chỉ cần cài đặt một chủ đề Mac trên Windows. Vì vậy, PC của bạn cảm thấy giống Mac hơn, nhưng thực tế bạn không thể chạy bất kỳ chương trình Mac nào.(SIMULATION)

(hoặc là)

(2) Bạn có thể lập trình cho PC của mình chạy như Mac (Tôi không chắc điều này có khả thi không: P). Bây giờ bạn thậm chí có thể chạy các chương trình Mac thành công và mong đợi đầu ra giống như trên Mac.(EMULATION)

Trong trường hợp đầu tiên, bạn có thể trải nghiệm Mac, nhưng bạn không thể mong đợi đầu ra giống như trên Mac.
Trong trường hợp thứ hai, bạn có thể mong đợi đầu ra giống như trên Mac, nhưng thực tế vẫn chỉ là một PC.


3
Điều này vừa đơn giản vừa hoàn toàn sai. (2) gần với mô phỏng, nhưng (1) không phải là mô phỏng hay mô phỏng.
Nick Bastin

10

Để hiểu sự khác biệt giữa trình giả lập và trình giả lập, hãy nhớ rằng trình giả lập cố gắng bắt chước hành vi của một thiết bị thực. Ví dụ: trong trường hợp Trình mô phỏng iOS, nó mô phỏng hành vi thực của thiết bị iPhone / iPad thực tế. Tuy nhiên, Trình mô phỏng tự sử dụng các thư viện khác nhau được cài đặt trên máy Mac (chẳng hạn như QuickTime) để thực hiện kết xuất của nó sao cho hiệu ứng trông giống như một chiếc iPhone thực tế. Ngoài ra, các ứng dụng được thử nghiệm trên Trình mô phỏng được biên dịch thành mã x86, đây là mã byte được Trình mô phỏng hiểu. Một thiết bị iPhone thực, ngược lại, sử dụng mã dựa trên ARM.

Ngược lại, một trình giả lập mô phỏng hoạt động của một thiết bị thực. Các ứng dụng được thử nghiệm trên trình giả lập được biên dịch thành mã byte thực tế được sử dụng bởi thiết bị thực. Trình giả lập thực thi ứng dụng bằng cách dịch mã byte thành một dạng có thể được thực thi bởi máy tính chủ chạy trình giả lập.

Để hiểu sự khác biệt tinh tế giữa mô phỏng và mô phỏng, hãy tưởng tượng bạn đang cố gắng thuyết phục một đứa trẻ rằng chơi với dao là nguy hiểm. Để mô phỏng điều này, bạn giả vờ tự cắt bằng dao và rên rỉ trong đau đớn. Để mô phỏng điều này, bạn thực sự cắt chính mình.


7
Đừng thử điều này ở nhà trẻ em: D
Gearoid Murphy

9

Trình mô phỏng là một mô hình của một hệ thống sẽ chấp nhận mọi đầu vào hợp lệ mà hệ thống mô phỏng sẽ chấp nhận và tạo ra cùng một kết quả hoặc kết quả đầu ra. Vì vậy, phần mềm của bạn là một trình giả lập, chỉ khi nó tái tạo chính xác hành vi của hệ thống giả lập.


Cảm ơn. Tôi nghĩ rằng đây là một định nghĩa rất chính xác về Thi đua. Vì vậy, ví dụ Wine là một trình giả lập vì nó không nhất thiết phải cung cấp cùng một đầu ra chính xác được xác định trong Windows?
AraK

6
Hãy cẩn thận về việc cố gắng để RƯỢU VANG vào một hoặc / hoặc trình giả lập hoặc giả lập. WINE là một lớp tương thích, làm cho các nhị phân từ một hệ thống chạy trên lớp API nhị phân của một hệ thống khác. Bạn có thể gọi nó là một bộ chuyển đổi. Tôi cho rằng giả lập cũng không phải là một cách tồi để hiểu nó, nhưng nó không thực sự gần hơn nhiều so với trình giả lập.
Lee B

RƯỢU là thi đua, trong phổ này. Nó có hình thức bên ngoài của việc liên kết các nhị phân của Windows nhưng nếu bạn nhìn vào phần bên trong, bạn sẽ không học được gì về Windows.
Nick Bastin

9

Vài năm trước tôi đã nghĩ ra một câu ngạn ngữ rất ngắn mà tôi tin rằng, nắm bắt được bản chất của sự khác biệt khá độc đáo:

Trình giả lập là một trình giả lập trong một nhiệm vụ.

Điều đó có nghĩa là bạn sử dụng một trình giả lập khi bạn không thể sử dụng vật thật và bạn sử dụng một trình giả lập khi bạn không thể sử dụng vật thật và bạn muốn tìm hiểu điều gì đó về nó .


8

Theo cách nói bình thường ít nhiều: Nếu phần mềm của bạn có thể làm mọi thứ mà hệ thống bắt chước có thể làm, đó là trình giả lập. Nếu nó chỉ xấp xỉ kết quả của một hệ thống (CNTT hoặc cách khác), thì đó là một trình giả lập.


5

Trình mô phỏng: nó tương tự như trình thông dịch. tức là nó thực sự thực thi mã thực theo từng dòng để bắt chước hành vi

Trình giả lập: nó tương tự như thực thi. tức là nó lấy mã biên dịch và thực thi nó.


4

Trình giả lập là một giải pháp thay thế cho hệ thống thực nhưng trình giả lập được sử dụng để tối ưu hóa, hiểu và ước tính hệ thống thực.


3

Sự khác biệt giữa hai điều khoản là một chút mờ nhạt. Đến từ một thế giới nơi "Trình giả lập" là những phần cứng cho phép bạn gỡ lỗi các hệ thống nhúng. Và hãy nhớ rằng các sản phẩm cho phép bạn có khả năng ICE (In Circuit Emulation) để gỡ lỗi nền tảng PC, tôi thấy việc sử dụng thuật ngữ "Thi đua" là một cách hiểu sai cho phần mềm mô phỏng hành vi của một phần cứng.

Sự biện minh của tôi cho việc sử dụng thuật ngữ hiện tại là Thi đua là nó có thể "tăng cường" chức năng và chỉ liên quan đến một xấp xỉ "hợp lý" về hành vi của hệ thống.

ICE: (Trong mô phỏng mạch) Một phần cứng được cắm vào một bảng thay cho bộ xử lý thực tế. Nó cho phép bạn chạy hệ thống như thể bộ xử lý thực sự đã có mặt. Thông thường, chúng có một biến thể của bộ xử lý trên chúng để thực sự thực hiện phần mềm bằng logic keo để cho phép người dùng phá vỡ sự thực thi và một bước duy nhất dưới sự kiểm soát phần cứng. Một số cũng sẽ cung cấp khả năng đăng nhập. Hầu hết các hệ thống phát triển bộ xử lý hiện đại đã thay thế mô phỏng ICE bằng Mô phỏng JTAG, trong đó JTAG chỉ nói chuyện với bộ xử lý thông qua một liên kết nối tiếp mục đích đặc biệt và tất cả việc thực hiện được thực hiện bởi bộ xử lý được gắn trên bo mạch.

Trình mô phỏng phần mềm: Trình giả lập 0x86 chỉ liên quan đến việc có thể thực thi ngôn ngữ lắp ráp 0x86, không cung cấp chu kỳ chính xác cho mỗi mô hình hành vi chu kỳ của bộ xử lý 0x86 CỤ THỂ. Bochs là một ví dụ về điều này. QEMU thực hiện điều này, nhưng cũng cho phép "ảo hóa" bằng các mô-đun hạt nhân đặc biệt.

Bộ mô phỏng: Texas Cụ cung cấp mô hình hành vi chính xác CYCLE của bộ xử lý để phát triển phần mềm nhằm mục đích mô phỏng chính xác hành vi lõi của bộ xử lý CỤ THỂ cho các nhà phát triển sử dụng trước khi có phần cứng hoạt động.

Chức năng tăng cường phần mềm EMULATOR: BLEEM không chỉ cho phép bạn chạy Phần mềm Playstation mà còn cho phép màn hình xuất ra với độ phân giải cao hơn so với Playstation có thể cung cấp và cũng tận dụng các khả năng tiên tiến hơn của GPU có sẵn. (tức là pha trộn tốt hơn và làm mịn kết cấu.)


3

Cả hai đều là mô hình của một đối tượng mà bạn có một số phương tiện kiểm soát đầu vào và quan sát đầu ra từ đó.

Sự khác biệt chính là:

  • Với trình giả lập , bạn muốn đầu ra khớp chính xác với những gì đối tượng bạn đang mô phỏng sẽ tạo ra.
  • Với một trình giả lập , bạn muốn các thuộc tính nhất định của đầu ra của bạn giống với những gì đối tượng sẽ tạo ra.

Hãy để tôi đưa ra một ví dụ - giả sử bạn muốn thực hiện một số thử nghiệm hệ thống để xem việc thêm một cảm biến mới (như nhiệt kế) vào hệ thống sẽ ảnh hưởng đến hệ thống như thế nào. Bạn biết rằng nhiệt kế gửi tin nhắn 8 lần một giây có chứa số đo của nó.

Mô phỏng - nếu bạn chưa có nhiệt kế, nhưng bạn muốn kiểm tra tốc độ tin nhắn này sẽ không làm quá tải hệ thống của bạn, bạn có thể mô phỏng cảm biến bằng cách gắn một đơn vị gửi số ngẫu nhiên 8 lần một giây. Bạn có thể chạy bất kỳ thử nghiệm nào không dựa trên giá trị thực tế mà cảm biến gửi.

Giả lập - giả sử bạn có một nhiệt kế rất đắt có thể đo đến 0,001 C và bạn muốn xem liệu bạn có thể nhận được bằng một nhiệt kế rẻ hơn chỉ bằng 0,5 C. Bạn có thể mô phỏng nhiệt kế rẻ hơn bằng nhiệt kế đắt tiền và sau đó làm tròn số đọc đến 0,5 C gần nhất và chạy thử nghiệm dựa trên các giá trị nhiệt độ.

Lưu ý rằng mô phỏng cũng có thể được sử dụng để dự báo hoặc dự đoán hành vi. Mô phỏng phân tích phần tử hữu hạn được sử dụng trong nhiều ứng dụng, bao gồm dự báo thời tiết và đường hầm gió ảo.

Các định nghĩa của các điều khoản:

  • thi đua - vượt qua hoặc khớp chính xác
  • mô phỏng - bắt chước ngoại hình hoặc tính cách

Lưu ý - điều này rất giống với câu trả lời cho một câu hỏi đã được đánh dấu là bản sao của câu hỏi này ( stackoverflow.com/questions/2174638/ Lỗi ). Tôi đã thêm một định nghĩa về các thuật ngữ (được hỏi trong câu hỏi nhưng chưa được trả lời) và cũng đã thêm một số thông tin về việc sử dụng cho mô phỏng (phân tích phần tử hữu hạn) cho một cái gì đó hơn là bắt chước một thiết bị.
Jay Elston

2

Câu hỏi này có lẽ được trả lời tốt nhất bằng cách xem xét thực tiễn lịch sử.

Trước đây, tôi đã từng thấy các trình giả lập máy chơi game trên PC cho PlayStation & SEGA.

Mô phỏng là phổ biến khi đề cập đến phần mềm cố gắng bắt chước các hành động thực tế, chẳng hạn như lái xe hoặc bay. Gran Turismo và Microsoft Flight Simulator xuất hiện như những ví dụ kinh điển về giả lập.

Đối với sự khác biệt về ngôn ngữ, thi đua thường đề cập đến hành động sao chép các đặc điểm hoặc hành vi đáng khen ngợi của ai đó (hoặc một cái gì đó). Thi đua khác với bắt chước, trong đó một người được sao chép với mục đích nhạo báng.

Ý nghĩa ngôn ngữ của động từ 'mô phỏng' về cơ bản là giả vờ hoặc bắt chước ai đó hoặc một cái gì đó.


2

Trong khoa học máy tính, cả mô phỏng và mô phỏng đều tạo ra cùng một đầu ra, từ cùng một đầu vào, mà hệ thống ban đầu thực hiện; Tuy nhiên, một mô phỏng cũng sử dụng các quy trình tương tự để đạt được nó và được tạo ra từ các vật liệu tương tự . Một mô phỏng sử dụng các quy trình khác nhau từ hệ thống ban đầu. Cũng đáng chú ý là sao chép thuật ngữ, là trung gian của cả hai - sử dụng cùng một quy trình nhưng được tạo ra từ một vật liệu khác nhau.

Vì vậy, nếu tôi muốn chạy trò chơi Super Mario Bros cũ trên PC của mình, tôi sử dụng trình giả lập SNES , bởi vì nó đang sử dụng cùng một mã máy tính hoặc quy trình tương tự để chạy trò chơi và sử dụng các vật liệu tương tự hoặc tương tự (chip silicon) . Tuy nhiên, nếu tôi muốn lái máy bay Boeing 747 trên PC, tôi sử dụng trình mô phỏng bay vì nó sử dụng các quy trình hoàn toàn khác với nguyên bản (không có cánh thực sự, lực nâng hoặc khí động học liên quan!).

Dưới đây là các định nghĩa chính xác được lấy từ một thuật ngữ khoa học máy tính:

Mô phỏng là mô hình của một hệ thống nắm bắt các kết nối chức năng giữa đầu vào và đầu ra của hệ thống, nhưng không nhất thiết phải dựa trên các quy trình giống hoặc tương tự với các quy trình của chính hệ thống.

Bản sao là một mô hình của một hệ thống nắm bắt các kết nối chức năng giữa đầu vào và đầu ra của hệ thống và dựa trên các quy trình giống hoặc tương tự với các hệ thống của chính hệ thống.

Mô phỏng là mô hình của một số hệ thống nắm bắt các kết nối chức năng giữa đầu vào và đầu ra của hệ thống, dựa trên các quy trình giống hoặc tương tự với các hệ thống đó và được xây dựng bằng các vật liệu giống như hệ thống đó .

Tham khảo: Đại học mở, Thuật ngữ M366 1.1, 2007


2

Mô phỏng là một hệ thống hoạt động tương tự như một thứ khác, nhưng được thực hiện theo một cách hoàn toàn khác. Nó cung cấp hành vi cơ bản của một hệ thống nhưng có thể không nhất thiết phải tuân theo tất cả các quy tắc của hệ thống được mô phỏng. Nó ở đó để cung cấp cho bạn một ý tưởng về cách một cái gì đó hoạt động.

Thi đua là một hệ thống ứng xử chính xác như một thứ khác và tuân thủ tất cả các quy tắc của hệ thống được mô phỏng. Nó thực sự là một bản sao hoàn chỉnh của một hệ thống khác, ngay cả khi tương thích nhị phân với đầu vào và đầu ra của hệ thống được mô phỏng, nhưng hoạt động trong một môi trường khác với môi trường của hệ thống mô phỏng ban đầu. Các quy tắc được cố định và không thể thay đổi hoặc hệ thống bị lỗi.


2

Các định nghĩa của các từ mô tả sự khác biệt tốt nhất. Một tìm kiếm google đưa ra các định nghĩa mô phỏng và mô phỏng sau đây:

mô phỏng bắt chước ngoại hình hoặc tính cách của.

giả lập trận đấu hoặc vượt qua (một người hoặc thành tích), thường bằng cách bắt chước.

Một mô phỏng bắt chước một hệ thống. Một mô phỏng mô phỏng một hệ thống tốt đến mức nó có thể thay thế nó hoặc thậm chí có thể vượt qua nó.

Trong điện toán, một mô phỏng sẽ là sự thay thế cho hệ thống mà nó đang mô phỏng. Thường thì nó thậm chí sẽ tốt hơn hệ thống mà nó đang bắt chước. Ví dụ, trình giả lập bảng điều khiển trò chơi thường thực hiện các cải tiến như khả năng tương thích phần cứng lớn hơn, hiệu suất tốt hơn và chất lượng âm thanh / video được cải thiện.

Mô phỏng, mặt khác, bị giới hạn bởi chúng là mô hình. Họ là một nỗ lực tốt nhất để bắt chước một hệ thống, nhưng không thay thế cho nó. Có các trình giả lập phần cứng vì phần cứng có thể được bắt chước và thật khó để phân biệt. Không có Trình giả lập Farming vì không có phần mô phỏng nào có thể thay thế cho việc canh tác thực tế. Chúng ta chỉ có thể mô phỏng một mô hình canh tác để hiểu rõ hơn về cách canh tác tốt hơn.


1

Máy tính ảo cố gắng mô phỏng Máy tính, theo quan điểm của Lập trình viên NHƯNG, đồng thời, nó mô phỏng Máy tính theo quan điểm của Kỹ sư điện .


0

Giả lập:

Hãy xem xét một tình huống mà bạn chỉ biết tiếng Anh và bạn đang ở Trung Quốc. Để tương tác với một người Trung Quốc, bạn cần một người dịch. Bây giờ, vai trò của dịch giả là nó sẽ tìm kiếm đầu vào từ bạn bằng tiếng Anh và chuyển đổi sang tiếng Trung Quốc và cung cấp đầu vào đó cho người Trung Quốc và nhận phản hồi từ người Trung Quốc và chuyển đổi sang tiếng Anh và cung cấp đầu ra cho bạn bằng tiếng Anh. Bây giờ dịch giả và người Trung Quốc là trình giả lập. Cả hai kết hợp sẽ cung cấp chức năng tương tự như thể bạn đang giao tiếp với người Anh. Vì vậy, phần cứng có thể khác nhau nhưng chức năng sẽ giống nhau.

Giả lập:

Tôi không thể đưa ra ví dụ tốt hơn SPICE hoặc trình mô phỏng bay. Cả hai sẽ thay thế hành vi thành phần phần cứng bằng phần mềm hoặc mô hình toán học sẽ hoạt động tương tự như phần cứng.

Cuối cùng, nó phụ thuộc vào bối cảnh mà giải pháp nào phù hợp hơn với nhu cầu của dự án.


0

Trình mô phỏng là một cái gì đó rộng hơn Trình giả lập và có vẻ như tính hai mặt của thuật ngữ này được thể hiện qua các bài viết ở trên.

Giả lập

Mọi người quyết định sử dụng một mô phỏng từ mới trong "thế giới máy tính" khi họ bắt đầu thay thế một số phần cứng của hệ thống hiện tại theo cách đơn giản - bắt chước hành vi của họ và dựa vào bản chất tính toán để chắc chắn không phá vỡ thứ gì đó và bỏ lại mọi thứ trong trạng thái tương đương. Vì vậy, chúng tôi đã mô phỏng các phần của điều này! (và toàn bộ vẫn hoạt động như trước)

Trình giả lập thường được sử dụng theo nghĩa hẹp trong lĩnh vực kỹ thuật số như là sự thay thế và ảo hóa - trình bày dưới dạng kỹ thuật số như một phần mềm - của một thứ đã biết và tồn tại trước đó (chip ảo, bảng mạch, thiết bị điện tử). Vì vậy, khi thế giới trở nên kỹ thuật số hơn và đưa từ giả lập đến với công chúng, đại chúng đã thêm sự không chắc chắn cho nó (hoặc lý do bổ sung).

Giả lập

Trước hết, tôi thấy nhiều ý kiến ​​về trình giả lập làm hoặc thay thế một cái gì đó thật nhưng giả lập thì không.

BUT giả lập chuyến bay được sử dụng cho một điều thực tế - nó đào tạo phi công, cung cấp cho họ kỹ năng và kiến ​​thức và nó thay thế các máy bay thực đắt tiền và tiết kiệm nhiều tiền. Và chúng ta không thể chỉ nói một trình giả lập máy bay bởi vì chúng ta có cảm giác bên trong rằng nó còn hơn thế nữa, vì vậy chúng ta gọi nó là giả lập :) Trình mô phỏng máy bay có thể chứa radar mô phỏng hoặc transponder là đúng.

Chống chỉ định rằng các trình giả lập được sử dụng để phân tích và nghiên cứu (và trình giả lập cho một cái gì đó thực sự), nhưng phân tích và nghiên cứu đó không kém gì thực tế so với các bảng GSM mô phỏng (thậm chí nhiều hơn trong thời đại thông tin chúng ta đang sống). Phân tích bổ sung một giá trị cho doanh nghiệp, cắt giảm chi phí hoặc chỉ ra lợi nhuận không thấp hơn phần cứng (mô phỏng) được thay thế.

Trình mô phỏng tương tự như mô hình hóa một cái gì đó mà chúng ta không thể có được vì một số lý do (chi phí, công nghệ, không thể thực hiện được). Nó thường được mô phỏng cho một cái gì đó mới hoặc vô hình hoặc phức tạp hoặc không được chúng ta biết đúng như thị trường, thời tiết, sự đốt cháy, người dùng. Vì vậy, ở đây có các chuyến bay, lỗ đen, trao đổi chứng khoán, mô phỏng.

Cuối cùng thì:

  1. Trình mô phỏng rộng hơn Trình giả lập
  2. Trình mô phỏng có xu hướng bắt chước / mô hình hóa nhiều quy trình / thứ toàn cầu nói chung với khả năng thu hẹp mô phỏng (ví dụ: trình mô phỏng tụ điện với các cài đặt trước đại diện cho một số mô hình đã biết)
  3. Trình giả lập có xu hướng bắt chước một số thiết bị phần cứng nhất định với đặc điểm kỹ thuật, đặc điểm và đặc tính đã biết (ví dụ: trình giả lập SNES, Intel 8087 hoặc Roland TB-303)

Đối với nguồn gốc từ

Tất cả đều đến từ tiếng Latin và có nghĩa là:

  • thi đua là "để được bình đẳng" (có vẻ như tích cực hơn và đơn giản hơn - sự cạnh tranh)
  • mô phỏng là "tương tự" (có vẻ láu cá và láu cá hơn - bắt chước)
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.