Undian dan Interrupt membiarkan CPU menghentikan apa yang sedang dilakukannya dan bertindak balas terhadap tugas yang lebih penting. Undian dan Interupsi berbeza antara satu sama lain dalam banyak aspek. Tetapi titik asas yang membezakan Undian dan Interupsi adalah bahawa dalam mengundi CPU terus memeriksa peranti I / O pada selang masa tetap sama ada ia memerlukan perkhidmatan CPU sedangkan dalam mengganggu, peranti I / O mengganggu CPU dan memberitahu CPU bahawa ia memerlukan perkhidmatan CPU . Saya telah membincangkan beberapa perbezaan antara Interrupt dan Polling dalam carta perbandingan di bawah, sila lihat.
Carta Perbandingan
Asas untuk Perbandingan | Ganggu | Mengundi |
---|---|---|
Asas | Peranti memberitahu CPU bahawa ia memerlukan perhatian CPU. | CPU sentiasa memeriksa status peranti sama ada ia memerlukan perhatian CPU. |
Mekanisme | Satu gangguan ialah mekanisme perkakasan. | Undian adalah Protokol. |
Perkhidmatan | Perkhidmatan pengendali sampukan Peranti. | Perkhidmatan CPU peranti ini. |
Petunjuk | Garis sampingan-permintaan menunjukkan bahawa peranti memerlukan servis. | Bit komand-siap menunjukkan peranti memerlukan servis. |
CPU | CPU terganggu hanya apabila peranti memerlukan servis, yang menjimatkan kitaran CPU. | CPU perlu menunggu dan memeriksa apakah peranti memerlukan servis yang membuang banyak siklus CPU. |
Kejadian | Suatu interupsi boleh berlaku pada bila-bila masa. | CPU mengundi peranti pada selang masa biasa. |
Kecekapan | Interrupt menjadi tidak cekap apabila peranti terus mengganggu CPU berulang kali. | Pengundian menjadi tidak cekap apabila CPU jarang mencari peranti yang sedia untuk digunakan. |
Contoh | Biarkan cincin loceng kemudian buka pintu untuk memeriksa siapa yang telah datang. | Sentiasa terus membuka pintu untuk memeriksa sama ada sesiapa datang. |
Definisi Interrupt
Suatu gangguan adalah mekanisme perkakasan yang membolehkan CPU mengesan bahawa peranti memerlukan perhatiannya. CPU mempunyai jalur pemisah-permintaan kabel yang diperiksa oleh CPU selepas pelaksanaan setiap arahan tunggal. Apabila CPU merasakan isyarat gangguan pada garisan interrupt-request, CPU menghentikan tugasnya yang sedang dijalankan dan bertindak balas terhadap interupsi yang dihantar oleh peranti I / O dengan lulus kawalan untuk mengendalikan pengendali . Pengendali interupsi menyelesaikan interupsi dengan menyelenggara peranti.
Walaupun CPU tidak menyedari apabila gangguan akan berlaku kerana ia boleh berlaku pada bila-bila masa, tetapi ia perlu bertindak balas terhadap gangguan apabila ia berlaku.
Apabila pengendali interupsi selesai melaksanakan interupsi, maka CPU akan menyambung pelaksanaan tugas yang telah dihentikan untuk menjawab gangguan. Perisian, perkakasan, pengguna, beberapa kesilapan dalam program, dan lain-lain juga boleh menghasilkan gangguan. Mengawal sifat-sifat interrupt CPU menyebabkan multitasking, iaitu pengguna boleh melakukan beberapa tugas yang berbeza pada masa yang sama.
Jika lebih daripada satu sampukan dihantar ke CPU, pengendali interrupt membantu dalam menguruskan interrupts yang sedang menunggu untuk diproses. Sebagai pengendali interrupt mendapat dipicu oleh penerimaan gangguan, ia memprioritaskan interrupts menunggu untuk diproses oleh CPU dan mengatur mereka dalam barisan untuk mendapatkan perkhidmatan.
Definisi Undian
Seperti yang kita lihat dalam gangguan, input dari peranti I / O boleh tiba pada bila-bila masa yang meminta CPU memprosesnya. Undian adalah protokol yang memberitahu CPU bahawa peranti memerlukan perhatiannya. Tidak seperti gangguan, di mana peranti memberitahu CPU bahawa ia memerlukan pemprosesan CPU, dalam mengundi CPU terus meminta peranti I / O sama ada ia memerlukan pemprosesan CPU.
CPU sentiasa menguji setiap peranti yang dilampirkan untuk mengesan sama ada mana-mana peranti memerlukan perhatian CPU. Setiap peranti mempunyai bit command-ready yang menunjukkan status peranti itu iaitu sama ada ia mempunyai beberapa arahan yang akan dilaksanakan oleh CPU atau tidak. Sekiranya bit arahan ditetapkan 1, maka ia mempunyai beberapa perintah yang akan dilaksanakan jika bit adalah 0, maka ia tidak mempunyai perintah. CPU mempunyai bit yang sibuk yang menunjukkan status CPU sama ada sibuk atau tidak. Sekiranya bit sibuk ditetapkan 1, maka ia sibuk melaksanakan perintah beberapa peranti, jika tidak 0 .
Algoritma untuk mengundi
- Apabila peranti mempunyai beberapa arahan yang akan dijalankan oleh CPU, ia akan sentiasa memeriksa bit CPU yang sibuk sehingga menjadi jelas (0).
- Apabila bit sibuk menjadi jelas, peranti menetapkan write-bit dalam daftar arahan dan menulis bait dalam daftar data keluar.
- Sekarang peranti menetapkan (1) bit siap-perintah.
- Apabila CPU memeriksa peranti yang siap sedia sedikit dan mendapati ia ditetapkan (1), ia menetapkan (1) bit sibuknya.
- CPU kemudian membaca arahan arahan peranti dan melaksanakan arahan peranti.
- Selepas pelaksanaan perintah, CPU membersihkan (0) bit siap-siap, sedikit ralat peranti untuk menunjukkan kejayaan pelaksanaan perintah peranti dan seterusnya menghapuskan (0) sedikit sibuk juga untuk menunjukkan bahawa CPU bebas untuk melaksanakan arahan sesetengah peranti lain.
Perbezaan Utama antara Interrupt dan Polling dalam OS
- Dalam mengganggu, peranti memberitahu CPU yang memerlukan servis sedangkan, dalam mengundi CPU berulang kali memeriksa apakah peranti memerlukan servis.
- Gangguan adalah mekanisme perkakasan kerana CPU mempunyai dawai, garisan interupsi-permintaan yang menandakan bahawa gangguan telah terjadi. Di tangan yang lain, Polling adalah protokol yang terus memeriksa bit kawalan untuk memberitahu sama ada peranti mempunyai sesuatu untuk dilaksanakan.
- Pengendali gangguan mengendalikan gangguan yang dihasilkan oleh peranti. Di sisi lain, dalam mengundi, perkhidmatan CPU peranti apabila diperlukan.
- Gangguan interrupt ditandakan oleh garisan interrupt-request . Walau bagaimanapun, sedikit Command-ready menunjukkan bahawa peranti memerlukan servis.
- Dalam gangguan, CPU hanya terganggu apabila mana-mana peranti memotongnya. Sebaliknya, dalam pengundian, CPU membazir banyak kitaran CPU dengan berulang kali memeriksa sedikit siap perintah setiap peranti.
- Satu gangguan boleh berlaku pada bila - bila masa seketika, CPU terus mengundi peranti pada jarak masa yang tetap .
- Pengundian menjadi tidak cekap apabila CPU terus mengundi peranti dan jarang mendapati sebarang peranti sedia untuk servis. Di sisi lain, interrupts menjadi tidak cekap apabila peranti terus mengganggu pemrosesan CPU berulang kali.
Kesimpulan:
Kedua-dua undian dan Interrupts adalah efisien dalam menghadiri peranti I / O. Tetapi mereka boleh menjadi tidak cekap dalam keadaan tertentu seperti yang dibincangkan di atas.