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: [SO 05] Apa itu interrupt? - Belajar Sistem Operasi 2024, April
Anonim

Interupsi vs Pengecualian

Di komputer mana pun, selama menjalankan program secara normal, mungkin ada peristiwa 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 Interupsi (sederhana), sedangkan interupsi perangkat lunak disebut Pengecualian. Setelah interupsi (perangkat lunak atau perangkat keras) dimunculkan, kontrol dipindahkan ke subrutin khusus yang disebut ISR (Interrupt Service Routine) yang dapat menangani kondisi yang dimunculkan oleh interupsi.

Apa itu Interrupt?

Istilah Interupsi biasanya disediakan untuk interupsi perangkat keras. Mereka adalah gangguan kontrol program yang disebabkan oleh kejadian perangkat keras eksternal. Di sini, eksternal berarti eksternal ke CPU. Interupsi 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 terkait dengan program yang sedang dijalankan. Misalnya, peristiwa seperti penekanan tombol pada keyboard oleh pengguna, atau waktu habis pengatur waktu perangkat keras internal dapat meningkatkan jenis interupsi dan dapat memberi tahu CPU bahwa perangkat tertentu memerlukan perhatian. Dalam situasi seperti itu CPU akan menghentikan apa pun yang dilakukannya (yaitu, menghentikan program saat ini),menyediakan layanan yang dibutuhkan oleh perangkat dan akan kembali ke program normal. Ketika interupsi perangkat keras terjadi dan CPU memulai ISR, interupsi perangkat keras lainnya dinonaktifkan (misalnya dalam mesin 80 × 86). Jika Anda memerlukan interupsi perangkat keras lain untuk terjadi saat ISR sedang berjalan, Anda perlu melakukannya secara eksplisit dengan menghapus tanda interupsi (dengan instruksi sti). Pada mesin 80 × 86, menghapus tanda interupsi hanya akan mempengaruhi interupsi perangkat keras.menghapus bendera interupsi hanya akan mempengaruhi interupsi perangkat keras.menghapus bendera interupsi hanya akan mempengaruhi interupsi perangkat keras.

Apa itu Pengecualian?

Exception adalah interupsi perangkat lunak, yang dapat diidentifikasi sebagai rutin penanganan khusus. Pengecualian dapat diidentifikasi sebagai jebakan yang terjadi secara otomatis (Perangkap dapat diidentifikasi sebagai transfer kontrol, yang diprakarsai oleh pemrogram). Umumnya, tidak ada instruksi khusus yang terkait dengan pengecualian (jebakan dibuat menggunakan instruksi khusus). 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 dapat membatalkan program 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 pelaksanaan instruksi pembagian.

Apa perbedaan antara Interrupt dan Exception?

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 bendera interupsi secara eksplisit. Dan biasanya bendera interupsi pada komputer mempengaruhi interupsi (perangkat keras) sebagai kebalikan dari pengecualian. Artinya, menghapus tanda ini tidak akan mencegah pengecualian.

Direkomendasikan: