Interrupt vs Trap
Di komputer mana pun, selama eksekusi normal suatu program, mungkin ada peristiwa yang dapat menyebabkan CPU berhenti sementara. Peristiwa seperti ini disebut interupsi. Gangguan 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 dibuat secara otomatis, sedangkan Trap adalah interupsi yang dipicu oleh 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 dimunculkan oleh interrupt.
Apa itu Interrupt?
Istilah Interrupt biasanya disediakan untuk gangguan hardware. Mereka adalah gangguan kontrol program yang disebabkan oleh peristiwa perangkat keras eksternal. Di sini, eksternal berarti eksternal ke CPU. Gangguan perangkat keras biasanya berasal 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 berkaitan dengan program pelaksana. Misalnya, acara seperti penekanan tombol pada keyboard oleh pengguna, atau penghentian waktu perangkat keras internal dapat meningkatkan interupsi semacam ini dan dapat memberi tahu CPU bahwa perangkat tertentu perlu perhatian. Dalam situasi seperti itu CPU akan menghentikan apa pun yang dilakukannya (mis. 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. Dalam 80 × 86 mesin). Jika Anda memerlukan interupsi perangkat keras lain terjadi saat ISR berjalan, Anda harus melakukannya secara eksplisit dengan menghapus tanda interupsi (dengan IMS petunjuk). Pada mesin 80 × 86, membersihkan flag interrupt hanya akan memengaruhi interupsi hardware.
Apa itu Perangkap??
Perangkap dapat diidentifikasi sebagai transfer kontrol, yang diprakarsai oleh programmer. Istilah Trap digunakan secara bergantian dengan istilah Exception (yang merupakan interupsi perangkat lunak yang terjadi secara otomatis). Tetapi beberapa orang mungkin berpendapat bahwa jebakan hanyalah panggilan subrutin khusus. Jadi mereka masuk dalam kategori interupsi yang dipicu oleh perangkat lunak. Misalnya, dalam mesin 80 × 86, seorang programmer dapat menggunakan int instruksi untuk memulai jebakan. Karena jebakan selalu tanpa syarat kontrol akan selalu ditransfer ke subrutin yang terkait dengan jebakan. Instruksi yang tepat, yang memanggil rutin untuk menangani perangkap mudah diidentifikasi karena instruksi eksplisit digunakan untuk menentukan perangkap.
Apa perbedaan antara Interrupt dan Trap?
Interupsi adalah interupsi perangkat keras, sedangkan perangkap adalah interupsi perangkat lunak. Kemunculan gangguan perangkat keras biasanya menonaktifkan gangguan perangkat keras lain, tetapi ini tidak berlaku untuk jebakan. Jika Anda perlu melarang perangkat keras mengganggu hingga jebakan disajikan, Anda perlu menghapus tanda interupsi secara eksplisit. Dan biasanya flag interrupt pada komputer mempengaruhi interupsi (hardware) sebagai lawan dari trap. Ini berarti bahwa membersihkan bendera ini tidak akan mencegah jebakan. Tidak seperti jebakan, interupsi harus mempertahankan status CPU sebelumnya.