Perbedaan Antara Interupsi dan Pengecualian

Perbedaan Antara Interupsi dan Pengecualian
Perbedaan Antara Interupsi dan Pengecualian

Video: Perbedaan Antara Interupsi dan Pengecualian

Video: Perbedaan Antara Interupsi dan Pengecualian
Video: Networking Fundamental - Mengenal Port dan Fungsinya 2024, Desember
Anonim

Interupsi vs Pengecualian

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 (sederhana) Interupsi, sedangkan interupsi perangkat lunak disebut Pengecualian. 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 (misalnya di 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 Pengecualian?

Exception adalah interupsi perangkat lunak, yang dapat diidentifikasi sebagai rutin handler khusus. Pengecualian dapat diidentifikasi sebagai jebakan yang terjadi secara otomatis (Perangkap dapat diidentifikasi sebagai transfer kontrol, yang diprakarsai oleh programmer). Umumnya, tidak ada instruksi khusus yang terkait dengan pengecualian (perangkap dihasilkan menggunakan instruksi tertentu). Jadi, pengecualian terjadi karena kondisi "luar biasa" yang terjadi selama eksekusi program. Misalnya, pembagian dengan nol, eksekusi opcode ilegal atau kesalahan terkait memori dapat menyebabkan pengecualian. Setiap kali pengecualian dimunculkan, CPU untuk sementara menangguhkan program yang dijalankannya dan memulai ISR. ISR akan berisi apa yang harus dilakukan dengan pengecualian. Ini dapat memperbaiki masalah atau jika tidak memungkinkan, program dapat dibatalkan dengan baik dengan mencetak pesan kesalahan yang sesuai. Meskipun instruksi tertentu tidak menyebabkan pengecualian, pengecualian akan selalu disebabkan oleh instruksi. Misalnya, kesalahan pembagian dengan nol hanya dapat terjadi selama eksekusi instruksi pembagian.

Apa perbedaan antara Interupsi dan Pengecualian?

Interupsi adalah interupsi perangkat keras, sedangkan pengecualian adalah interupsi perangkat lunak. Kemunculan interupsi perangkat keras biasanya menonaktifkan interupsi perangkat keras lainnya, tetapi ini tidak berlaku untuk pengecualian. Jika Anda perlu melarang interupsi perangkat keras hingga pengecualian disajikan, Anda perlu menghapus flag interupsi secara eksplisit. Dan biasanya tanda interupsi di komputer memengaruhi (perangkat keras) interupsi sebagai lawan dari pengecualian. Ini berarti menghapus tanda ini tidak akan mencegah pengecualian.

Direkomendasikan: