Perbedaan antara interupsi dan pengecualian

Perbedaan antara interupsi dan pengecualian

Interupsi dan pengecualian adalah dua konsep yang berbeda tetapi mereka serupa dalam arti bahwa keduanya menyebabkan CPU menghentikan aliran eksekusi instruksi normal untuk melaksanakan program lain di ruang kernel untuk menanganinya. Perbedaan utama adalah bagaimana mereka menangani peristiwa tak terduga yang terjadi di suatu tempat dalam sistem, prosesor, atau dalam program itu sendiri.

Mengganggu

Interupsi adalah sinyal yang dikirim ke CPU dari perangkat eksternal yang terpasang pada komputer atau program dari dalam sistem yang mengharuskan OS untuk campur tangan dalam proses yang sedang berlangsung. Interupsi, seperti namanya, adalah peristiwa mendadak yang membuat aliran normal eksekusi instruksi berhenti. Itu meminta OS untuk mengambil tindakan segera tentang apa yang harus dilakukan selanjutnya. Peristiwa tak terduga ini biasanya terkait dengan perangkat I/O, yang sebagian besar berurusan dengan dunia luar. Misalnya, saat Anda menekan tombol pada keyboard atau memindahkan mouse, ia memicu interupsi perangkat keras yang menyebabkan CPU membaca keystroke atau gerakan mouse. Jadi, ketika interupsi terjadi, CPU menjalankan 'rutinitas penanganan interupsi' atau 'interrupt handler' khusus untuk mengurus acara yang menyebabkannya di tempat pertama. Kontrol ditransfer ke OS segera setelah interupsi terjadi, mendorongnya untuk mengambil tindakan segera. Interupsi diprioritaskan makna interupsi dengan prioritas tinggi kebutuhan segera dan harus ditangani terlebih dahulu.

Pengecualian

Istilah pengecualian adalah kependekan dari peristiwa luar biasa dan mengacu pada peristiwa tak terduga yang ada di suatu tempat dalam sistem, prosesor, atau dalam suatu program yang membutuhkan perhatian CPU. Pengecualian, seperti interupsi, mengganggu aliran instruksi normal tetapi terjadi selama eksekusi program yang luar biasa dan yang tidak dapat ditangani dalam program itu sendiri. Misalnya, jika Anda memerintahkan prosesor untuk membagi angka dengan nol, itu akan memberikan pengecualian divide-by-nol, menyebabkan komputer menghentikan perhitungan atau menampilkan pesan kesalahan. Ketika pengecualian terjadi, CPU mengganggu proses yang sedang berlangsung dan segera menanggapi pengecualian dengan memanggil fungsi penangan pengecualian tertentu, tergantung pada jenis eksekusi. Pengecualian dapat secara umum diklasifikasikan sebagai pengecualian yang terdeteksi prosesor dan pengecualian terprogram. Yang pertama terjadi ketika CPU mendeteksi segala jenis anomali saat melakukan instruksi, sementara yang terakhir dihasilkan berdasarkan permintaan programmer.

Perbedaan antara interupsi dan pengecualian

Definisi

- Interupsi, seperti namanya adalah peristiwa tak terduga yang menempatkan aliran normal eksekusi instruksi untuk berhenti, mengubah urutan instruksi yang dieksekusi oleh prosesor. Kontrol ditransfer ke OS segera setelah interupsi terjadi, mendorongnya untuk mengambil tindakan segera. Pengecualian, di sisi lain, adalah peristiwa luar biasa yang mengganggu aliran instruksi normal tetapi terjadi selama pelaksanaan program yang luar biasa dan yang tidak dapat ditangani dalam program itu sendiri. Informasi tentang pengecualian termasuk sumbernya dan jenisnya disimpan dalam objek yang disebut objek luar biasa.

Sumber

- Saat tombol ditekan pada keyboard atau mouse dipindahkan, ia memicu interupsi perangkat keras yang mendorong CPU untuk dibaca ke keystroke atau gerakan mouse. Interupsi perangkat lunak dapat dipicu oleh kesalahan eksekusi program, dan sering disebut pengecualian. Pengecualian dihasilkan di suatu tempat dalam sistem, prosesor, atau dalam program yang membutuhkan perhatian CPU. Misalnya, jika Anda memerintahkan prosesor untuk membagi angka dengan nol, itu akan memberikan pengecualian divide-by-nol, menyebabkan komputer menghentikan perhitungan atau menampilkan pesan kesalahan.

Jenis

- Interupsi secara umum dapat diklasifikasikan sebagai interupsi sinkron dan asinkron. Interupsi sinkron dipicu setiap kali instruksi dieksekusi oleh CPU dan disebut sinkron karena CPU mengeluarkannya hanya setelah mengakhiri pelaksanaan instruksi. Interupsi asinkron terjadi ketika anomali eksternal mengganggu prosesor. Pengecualian dapat secara umum diklasifikasikan sebagai pengecualian yang terdeteksi prosesor dan pengecualian terprogram. Yang pertama terjadi ketika CPU mendeteksi segala jenis anomali saat melakukan instruksi, sementara yang terakhir dihasilkan berdasarkan permintaan programmer.

Penanganan

- Interupsi adalah kelas pengecualian, dan pengecualian dibagi terutama menjadi empat kelas: interupsi, kesalahan, perangkap dan aborsi. Interupsi dan pengecualian keduanya tiba -tiba membawa aliran eksekusi instruksi saat ini. Interupsi diprioritaskan makna interupsi dengan kebutuhan prioritas tinggi membutuhkan perhatian dan ditangani terlebih dahulu. Ketika interupsi atau pengecualian terdeteksi, prosesor mengeksekusi penangan interupsi atau penangan pengecualian sambil menangguhkan proses yang sedang berlangsung. Prosesor melanjutkan kontrol proses yang terganggu segera setelah pelaksanaan pawang selesai.

Interupsi vs. Pengecualian: Bagan Perbandingan

Ringkasan

Baik interupsi dan pengecualian adalah peristiwa tak terduga terjadi di suatu tempat dalam sistem, prosesor, atau dalam suatu program yang membutuhkan perhatian segera dari CPU. Keduanya tiba -tiba membawa aliran eksekusi instruksi saat ini. Ketika interupsi atau pengecualian terdeteksi, prosesor mengeksekusi penangan interupsi atau penangan pengecualian sambil menangguhkan proses yang sedang berlangsung. Prosesor melanjutkan kontrol proses yang terganggu segera setelah pelaksanaan pawang selesai. Jika ada beberapa interupsi, interupsi dengan prioritas tertinggi harus ditangani terlebih dahulu. Salah satu perbedaan utama antara kedua kondisi tersebut adalah interupsi dipicu oleh peristiwa eksternal sementara pengecualian dipicu dari dalam prosesor.