Daftar Isi:
Definisi - Apa yang dimaksud dengan Emulasi Prosesor?
Emulasi prosesor adalah proses dan teknologi virtualisasi yang memungkinkan perangkat lunak yang telah dikompilasi untuk prosesor atau sistem operasi (OS) tertentu untuk berjalan pada sistem yang berbeda yang memiliki prosesor dan OS yang berbeda. Hal ini dilakukan dengan secara dinamis menerjemahkan instruksi prosesor dan semua panggilan sistem operasi terkait dari suatu program ke dalam instruksi prosesor dan OS di mana ia berjalan.
Techopedia menjelaskan Emulasi Prosesor
Emulasi prosesor memungkinkan eksekusi program yang ditulis untuk satu prosesor untuk dijalankan pada prosesor yang berbeda dengan arsitektur dan set instruksi yang berbeda. Contoh dasar yang bagus adalah emulator konsol game, yang memungkinkan pengguna untuk memainkan game konsol seperti Nintendo Entertainment System dan game PlayStation pada PC mereka. Prosesor yang digunakan oleh konsol game sangat berbeda dari PC, jadi untuk dapat memainkan game konsol pada PC, prosesor konsol game harus ditiru.
Ide dasarnya adalah bahwa setiap tindakan dan perilaku individu dari program yang perlu dijalankan harus dikonversi ke set instruksi yang setara dan / atau panggilan sistem operasi dari sistem host. Tujuan utamanya adalah untuk mengeksekusi kode yang memodifikasi status prosesor dan berinteraksi dengan perangkat keras, dan ini harus dilakukan untuk setiap instruksi dari program yang sedang berjalan.
Cara menangani emulasi prosesor:
- Kompilasi dinamis - Daftar operasi dibuat dengan menjalankan kode, dan ketika instruksi cabang tercapai, daftar dikompilasi dengan kode instruksi platform host. Ini kemudian di-cache untuk digunakan di masa mendatang. Atau, setiap kode dapat dikompilasi dengan mudah, tetapi pendekatan ini sulit untuk dioptimalkan.
- Rekompilasi statis - Ini juga dikenal sebagai terjemahan biner statis di mana kode pertama kali dikonversi menjadi kode mesin target atau arsitektur tanpa menjalankan kode, seperti yang dilakukan dalam kompilasi dinamis. Masalah dapat timbul, karena tidak semua kode target dapat ditentukan oleh penerjemah selama waktu kompilasi karena beberapa dari mereka hanya dapat ditemukan di cabang tidak langsung, yang, pada gilirannya, hanya dapat ditentukan pada waktu berjalan.
- Interpretasi - Setiap kode dibaca dari memori menggunakan pointer instruksi dan kemudian dieksekusi sesuai dengan set instruksi CPU dari komputer host. Dengan kata lain, instruksi diterjemahkan satu ke satu dan kemudian dieksekusi secara native. Kelemahan terbesar di sini adalah kinerja.








