Perbezaan antara gangguan dan pengecualian

Perbezaan antara gangguan dan pengecualian

Gangguan dan pengecualian adalah dua konsep yang berbeza tetapi mereka sama dalam erti kata bahawa kedua -duanya menyebabkan CPU menghentikan aliran normal pelaksanaan arahan untuk melaksanakan program lain di ruang kernel untuk mengendalikannya. Perbezaan utama adalah bagaimana mereka mengendalikan peristiwa yang tidak dijangka yang berlaku di suatu tempat dalam sistem, pemproses, atau dalam program itu sendiri.

Mengganggu

Interrupt adalah isyarat yang dihantar ke CPU dari peranti luaran yang dilampirkan ke komputer atau program dari dalam sistem yang memerlukan OS untuk campur tangan dalam proses yang berterusan. Gangguan, seperti namanya, adalah peristiwa mendadak yang meletakkan aliran normal pelaksanaan arahan untuk berhenti. Ia mendorong OS untuk mengambil tindakan segera mengenai apa yang perlu dilakukan seterusnya. Acara yang tidak dijangka ini biasanya berkaitan dengan peranti I/O, yang kebanyakannya berkaitan dengan dunia luar. Sebagai contoh, apabila anda menekan kekunci pada papan kekunci atau gerakkan tetikus, ia mencetuskan perkakasan yang mengganggu yang menyebabkan CPU membaca kekunci atau pergerakan tetikus. Oleh itu, apabila gangguan berlaku, CPU menjalankan 'rutin pengendalian gangguan' atau 'pengendali mengganggu' khas untuk menjaga peristiwa yang menyebabkannya di tempat pertama. Kawalan dipindahkan ke OS sebaik sahaja gangguan berlaku, mendorongnya untuk mengambil tindakan segera. Gangguan yang diprioritaskan makna gangguan dengan keutamaan yang tinggi memerlukan perhatian segera dan harus ditangani terlebih dahulu.

Pengecualian

Pengecualian istilah adalah pendek untuk peristiwa yang luar biasa dan merujuk kepada peristiwa yang tidak dijangka yang ada di suatu tempat dalam sistem, pemproses, atau dalam program yang memerlukan perhatian CPU. Pengecualian, seperti gangguan, mengganggu aliran normal arahan tetapi berlaku semasa pelaksanaan program yang luar biasa dan yang tidak dapat dikendalikan dalam program itu sendiri. Contohnya, jika anda memerintahkan pemproses untuk membahagikan nombor dengan sifar, ia akan memberikan pengecualian yang dibahagikan dengan sifar, menyebabkan komputer menghentikan pengiraan atau memaparkan mesej ralat. Apabila pengecualian berlaku, CPU mengganggu proses yang berterusan dan segera bertindak balas terhadap pengecualian dengan memanggil fungsi pengendali pengecualian tertentu, bergantung kepada jenis pelaksanaan. Pengecualian secara amnya boleh diklasifikasikan sebagai pengecualian yang dikesan oleh pemproses dan pengecualian yang diprogramkan. Bekas berlaku apabila CPU mengesan apa -apa jenis anomali semasa melaksanakan arahan, sementara yang terakhir dihasilkan atas permintaan pengaturcara.

Perbezaan antara gangguan dan pengecualian

Definisi

- Gangguan, seperti yang dicadangkan adalah peristiwa yang tidak dijangka yang meletakkan aliran normal pelaksanaan arahan untuk berhenti, mengubah urutan arahan yang dilaksanakan oleh pemproses. Kawalan dipindahkan ke OS sebaik sahaja gangguan berlaku, mendorongnya untuk mengambil tindakan segera. Pengecualian, sebaliknya, adalah peristiwa luar biasa yang mengganggu aliran normal arahan tetapi berlaku semasa pelaksanaan program yang luar biasa dan yang tidak dapat dikendalikan dalam program itu sendiri. Maklumat mengenai pengecualian termasuk sumbernya dan jenisnya disimpan dalam objek yang dipanggil Objek Luar Biasa.

Sumber

- Apabila kekunci ditekan pada papan kekunci atau tetikus dipindahkan, ia mencetuskan perkakasan yang mengganggu yang mendorong CPU untuk dibaca ke gerakan kekunci atau tetikus. Gangguan perisian mungkin dicetuskan oleh kesilapan pelaksanaan program, dan sering dipanggil pengecualian. Pengecualian dijana di suatu tempat dalam sistem, pemproses, atau dalam program yang memerlukan perhatian CPU. Contohnya, jika anda memerintahkan pemproses untuk membahagikan nombor dengan sifar, ia akan memberikan pengecualian yang dibahagikan dengan sifar, menyebabkan komputer menghentikan pengiraan atau memaparkan mesej ralat.

Jenis

- Gangguan boleh diklasifikasikan secara umum sebagai gangguan segerak dan tidak segerak. Gangguan segerak dicetuskan setiap kali arahan dilaksanakan oleh CPU dan dipanggil segerak kerana CPU mengeluarkan mereka hanya selepas menamatkan pelaksanaan arahan. Gangguan asynchronous berlaku apabila anomali luaran mengganggu pemproses. Pengecualian secara amnya boleh diklasifikasikan sebagai pengecualian yang dikesan oleh pemproses dan pengecualian yang diprogramkan. Bekas berlaku apabila CPU mengesan apa -apa jenis anomali semasa melaksanakan arahan, sementara yang terakhir dihasilkan atas permintaan pengaturcara.

Pengendalian

- Interrupt adalah kelas pengecualian, dan pengecualian dibahagikan terutamanya kepada empat kelas: gangguan, kesalahan, perangkap dan pengguguran. Gangguan dan pengecualian kedua -duanya secara tiba -tiba membawa aliran semasa pelaksanaan arahan ke arah terhenti. Gangguan yang diprioritaskan makna gangguan dengan keutamaan yang tinggi memerlukan perhatian segera dan ditangani terlebih dahulu. Apabila gangguan atau pengecualian dikesan, pemproses melaksanakan pengendali mengganggu atau pengendali pengecualian sambil menggantung proses yang sedang berjalan. Pemproses menyambung semula kawalan proses yang terganggu sebaik sahaja pelaksanaan pengendali selesai.

Mengganggu vs. Pengecualian: Carta Perbandingan

Ringkasan

Kedua -dua gangguan dan pengecualian adalah peristiwa yang tidak dijangka berlaku di suatu tempat dalam sistem, pemproses, atau dalam program yang memerlukan perhatian segera CPU. Kedua -duanya tiba -tiba membawa aliran semasa pelaksanaan arahan ke arah terhenti. Apabila gangguan atau pengecualian dikesan, pemproses melaksanakan pengendali mengganggu atau pengendali pengecualian sambil menggantung proses yang sedang berjalan. Pemproses menyambung semula kawalan proses yang terganggu sebaik sahaja pelaksanaan pengendali selesai. Sekiranya terdapat banyak gangguan, gangguan dengan keutamaan tertinggi harus dikendalikan terlebih dahulu. Satu perbezaan utama antara kedua -dua syarat ialah gangguan yang dicetuskan oleh peristiwa luaran sementara pengecualian dicetuskan dari dalam pemproses.