Perbedaan Antara Interupsi dan Perangkap

Perbedaan Antara Interupsi dan Perangkap
Perbedaan Antara Interupsi dan Perangkap

Video: Perbedaan Antara Interupsi dan Perangkap

Video: Perbedaan Antara Interupsi dan Perangkap
Video: 🌌 Ilmu 'Fisika' Itu Sebenarnya Apa Sih? #BelajardiRumah 2024, November
Anonim

Interupsi vs Perangkap

Di komputer mana pun, selama eksekusi normal suatu program, mungkin ada kejadian yang dapat menyebabkan CPU berhenti sementara. Peristiwa seperti ini disebut interupsi. Interupsi dapat disebabkan oleh kesalahan perangkat lunak atau perangkat keras. Interupsi perangkat keras disebut (hanya) Interupsi, sedangkan interupsi perangkat lunak disebut Pengecualian atau Perangkap. Pengecualian adalah interupsi perangkat lunak yang dihasilkan secara otomatis, sedangkan Perangkap adalah interupsi yang dipanggil perangkat lunak yang diprakarsai oleh programmer. Setelah interupsi (perangkat lunak atau perangkat keras) dinaikkan, kontrol ditransfer ke subrutin khusus yang disebut ISR (Interrupt Service Routine) yang dapat menangani kondisi yang ditimbulkan oleh interupsi.

Apa itu Interupsi?

Istilah Interupsi biasanya digunakan untuk interupsi perangkat keras. Mereka adalah gangguan kontrol program yang disebabkan oleh peristiwa perangkat keras eksternal. Di sini, eksternal berarti eksternal ke CPU. Interupsi perangkat keras biasanya datang dari berbagai sumber seperti chip timer, perangkat periferal (keyboard, mouse, dll.), port I/O (serial, paralel, dll.), drive disk, jam CMOS, kartu ekspansi (kartu suara, video kartu, dll). Itu berarti interupsi perangkat keras hampir tidak pernah terjadi karena beberapa peristiwa yang terkait dengan program yang dijalankan. Misalnya, peristiwa seperti penekanan tombol pada keyboard oleh pengguna, atau waktu habis perangkat keras internal dapat meningkatkan interupsi semacam ini dan dapat memberi tahu CPU bahwa perangkat tertentu memerlukan perhatian. Dalam situasi seperti itu CPU akan menghentikan apa pun yang dilakukannya (yaitu menjeda program saat ini), menyediakan layanan yang diperlukan oleh perangkat dan akan kembali ke program normal. Ketika interupsi perangkat keras terjadi dan CPU memulai ISR, interupsi perangkat keras lainnya dinonaktifkan (mis.g. dalam mesin 80x86). Jika Anda memerlukan interupsi perangkat keras lain terjadi saat ISR sedang berjalan, Anda perlu melakukannya secara eksplisit dengan menghapus flag interupsi (dengan instruksi sti). Pada mesin 80x86, menghapus tanda interupsi hanya akan memengaruhi interupsi perangkat keras.

Apa itu Perangkap?

A Trap dapat diidentifikasi sebagai transfer kontrol, yang diprakarsai oleh programmer. Istilah Perangkap digunakan secara bergantian dengan istilah Pengecualian (yang merupakan interupsi perangkat lunak yang terjadi secara otomatis). Tetapi beberapa orang mungkin berpendapat bahwa jebakan hanyalah panggilan subrutin khusus. Jadi mereka termasuk dalam kategori interupsi yang dipanggil perangkat lunak. Sebagai contoh, pada mesin 80x86, seorang programmer dapat menggunakan instruksi int untuk memulai sebuah trap. Karena trap selalu tidak bersyarat, kontrol akan selalu ditransfer ke subrutin yang terkait dengan trap. Instruksi yang tepat, yang memanggil rutin untuk menangani jebakan mudah diidentifikasi karena instruksi eksplisit digunakan untuk menentukan jebakan.

Apa perbedaan antara Interrupt dan Trap?

Interupsi adalah interupsi perangkat keras, sedangkan jebakan adalah interupsi yang dipanggil oleh perangkat lunak. Kemunculan interupsi perangkat keras biasanya menonaktifkan interupsi perangkat keras lainnya, tetapi ini tidak berlaku untuk jebakan. Jika Anda perlu melarang interupsi perangkat keras hingga jebakan disajikan, Anda perlu menghapus flag interupsi secara eksplisit. Dan biasanya tanda interupsi pada komputer mempengaruhi (perangkat keras) interupsi sebagai lawan dari jebakan. Ini berarti bahwa membersihkan bendera ini tidak akan mencegah jebakan. Tidak seperti jebakan, interupsi harus mempertahankan status CPU sebelumnya.

Direkomendasikan: