Tôi thường thấy Mô phỏng và Thi đua trong khoa học máy tính. Hai thuật ngữ này có vẻ đồng nghĩa. Có sự khác biệt nào giữa Mô phỏng và Thi đua không?
Tôi thường thấy Mô phỏng và Thi đua trong khoa học máy tính. Hai thuật ngữ này có vẻ đồng nghĩa. Có sự khác biệt nào giữa Mô phỏng và Thi đua không?
Câu trả lời:
Vâng, các khái niệm là khác nhau.
A simulation
là một hệ thống hoạt động tương tự như một cái gì đó 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 thủ 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.
Thí dụ
Hãy nghĩ về một chuyến bay giả lập như một ví dụ. Nó trông giống như bạn đang lái một chiếc máy bay, nhưng bạn hoàn toàn bị ngắt kết nối với thực tế khi lái máy bay, và bạn có thể uốn cong hoặc phá vỡ những quy tắc đó khi bạn thấy phù hợp. Ví dụ, bay một chiếc Airbus A380 lộn ngược giữa London và Sydney mà không phá vỡ nó.
An emulation
là một hệ thống hoạt động chính xác như một cái gì đó 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.
Thí dụ
Các MAME hệ thống được xây dựng xung quanh tiền đề này rất. Tất cả các hệ thống arcade cũ đã bị lãng quên từ lâu, được triển khai gần như hoàn toàn bằng phần cứng hoặc trong phần sụn của hệ thống phần cứng của chúng có thể được mô phỏng ngay đến các lỗi ban đầu và sự cố sẽ xảy ra khi bạn đạt điểm cao nhất có thể.
Một mô phỏng là một mô hình xây dựng bằng cái gì khác mà tái tạo một số tính năng của điều đó và rời khỏi những người khác ra - rõ ràng là bạn muốn giữ các tính năng liên quan đến truy vấn của bạn, và bỏ qua những người không liên quan.
Ví dụ, một mô phỏng giao thông đi lại vào sáng sớm loại bỏ tên của người đi lại và thậm chí có thể cả danh tính của họ (sử dụng biến đối trọng thay vì một bộ Commuter
đối tượng thực tế ), nhưng nó không thể bỏ qua tỷ lệ đến của họ.
Thi đua là việc chạy phần mềm X được tạo cho nền tảng A trên nền tảng B, mà không thay đổi chính phần mềm. Điều này đòi hỏi phải xây dựng mô hình A chạy trên B và rõ ràng nó phải mô hình hóa mọi thứ về A liên quan đến thực thi mã. . chỉ hoạt động với S.)
Cả hai có nghĩa là một cái gì đó làm công việc của một cái gì đó khác.
Sự khác biệt là "Mô phỏng" xảy ra ở cấp độ ý thức (đối với người dùng) và được hoàn thiện điển hình để dự đoán kết quả của một thực tế mà không chạm vào chính thực tế.
"Thi đua" xảy ra ở cấp độ vô thức và có mục đích thay thế một thành phần cơ bản bằng một thành phần khác khác - liên quan đến người dùng - hoạt động như cũ.
Nói cách khác, mô phỏng xảy ra trong một "thế giới song song", trong khi mô phỏng xảy ra trong một "thế giới thay thế".
Về mặt kỹ thuật, cả hai đều làm như nhau: làm một cái gì đó trong một môi trường hoạt động như thể đó là thực tế.
Về mặt khái niệm, tuy nhiên, có một sự khác biệt quan trọng.
Một mô phỏng được cho là tách ra khỏi thế giới thực ở một mức độ nhất định; đầu ra của một mô phỏng không được kết nối trực tiếp với thứ mà nó mô phỏng. Ví dụ, một trình mô phỏng máy bay không thực sự bay và phi công thực sự không liên lạc với bộ điều khiển không lưu thực sự.
Một mô phỏng thường có mục tiêu thử nghiệm hoặc dự đoán một số quy trình thực tế trong môi trường an toàn; bởi vì mô phỏng bị ngắt kết nối với thế giới thực, không có gì thực sự tồi tệ có thể xảy ra (một trình mô phỏng máy bay bị rơi không bao giờ giết người thật).
Ngược lại, một mô phỏng có mục tiêu thay thế thực tế: ví dụ, nếu bạn mô phỏng một vi điều khiển đơn giản sử dụng CPU lập trình phức tạp hơn, CPU đó có thể được sử dụng thay cho vi điều khiển gốc; nó sẽ được kết nối vật lý với một số máy và nó thực sự sẽ điều khiển máy đó giống như vi điều khiển.
Các mục tiêu của một thi đua là để thay thế phần cứng hoặc phần mềm thành phần với các khoản tương đương chức năng khi các module gốc là không có sẵn (hoặc đã trở nên quá đắt, nếu chỉ để duy trì). Mô phỏng cũng có thể phục vụ mục tiêu sử dụng phần cứng linh hoạt hơn - cùng một bộ vi điều khiển có thể lập trình có thể tăng gấp đôi cho một số bộ điều khiển đơn giản hơn, chuyển đổi chế độ mô phỏng khi cần thiết.
"technically"
, chúng hoàn toàn khác nhau. Sự khác biệt về khái niệm mà bạn mô tả là cơ bản cho sự khác biệt này.
Trong khi từ nguyên không chính xác hoàn toàn, hãy nghĩ về sự khác biệt giữa sự cảm thông, "Tôi có thể tưởng tượng những gì phải cảm thấy như thế nào" và sự đồng cảm, "Tôi biết cảm giác đó như thế nào." Một mô phỏng có thể bao gồm đại diện trực quan của một vấn đề, nhưng nó có thể không. Ví dụ: nó có thể chỉ in ra các cột số biểu thị số lượng người được xếp hàng cho một thứ gì đó hoặc tổng doanh thu hoặc tốc độ trung bình. Nó có một số đặc điểm phù hợp với thực tế, và một số thì không.
Thi đua, thường được sử dụng trong bối cảnh của một nền tảng giả vờ là một nền tảng khác, đã hoàn thiện hơn nhiều. Vì vậy, các nhà phát triển Windows Phone có thể chạy hoặc gỡ lỗi các ứng dụng điện thoại của họ trên máy Windows trong trình giả lập, trông giống như một chiếc điện thoại và cũng hoạt động giống như một chiếc điện thoại. Bạn cũng có thể chạy các trò chơi Commodore 64 cũ trong trình giả lập.
Các từ không chính xác. Theo tôi, hầu hết các trình mô phỏng chuyến bay giống như trình giả lập hơn, nhưng cái tên đã bị mắc kẹt từ thời điểm chúng không quá đắm đuối. Một số người bảo lưu trình giả lập từ cho trường hợp đa nền tảng và từ chối nó cho bất cứ điều gì khác. Có lẽ bạn sẽ không bao giờ nghĩ sai nếu bạn làm như vậy khi nói, nhưng hãy hiểu rằng một số người có thể đặt ranh giới giữa hai từ khác nhau một chút và tạo ra các khoản phụ cấp khi ai đó nói "đây là một sự mô phỏng" cho chính xác và mô phỏng hoàn chỉnh.
Cả hai thuật ngữ rất giống nhau về khái niệm - bắt chước.
Mô phỏng hoặc Mô phỏng sử dụng phần mềm để tạo ra một hệ thống nhân rộng rất giống với mô hình đích đối với chức năng cốt lõi cơ bản của nó (đặc biệt là phương pháp cơ bản của nó).
Mặt khác, các trình giả lập tập trung nhiều hơn vào sự tương đồng bên ngoài khi so sánh với hệ thống đích. Nó có mối quan tâm tối thiểu cho "làm thế nào" các chức năng được bắt chước. Các trình giả lập, nói chung, được sử dụng khi làm việc trong một môi trường hoàn toàn khác (Ví dụ: một Hệ điều hành khác) so với hệ thống ban đầu.