Polling dan Interrupt membiarkan CPU menghentikan apa yang sedang dilakukan dan merespons tugas yang lebih penting. Polling dan Interrupt berbeda satu sama lain dalam banyak aspek. Tetapi poin dasar yang membedakan Polling dan Interrupt adalah bahwa dalam polling CPU terus memeriksa perangkat I / O pada interval reguler apakah membutuhkan layanan CPU sedangkan, dalam interupsi, perangkat I / O mengganggu CPU dan memberi tahu CPU bahwa ia membutuhkan layanan CPU . Saya telah membahas beberapa perbedaan antara Interrupt dan Polling dalam tabel perbandingan di bawah ini, silakan lihat.
Grafik perbandingan
Dasar untuk Perbandingan | Mengganggu | Polling |
---|---|---|
Dasar | Perangkat memberi tahu CPU bahwa ia membutuhkan perhatian CPU. | CPU terus-menerus memeriksa status perangkat apakah perlu perhatian CPU. |
Mekanisme | Interupsi adalah mekanisme perangkat keras. | Polling adalah Protokol. |
Pelayanan | Handler interupsi melayani Perangkat. | CPU melayani perangkat. |
Indikasi | Baris permintaan-interupsi menunjukkan bahwa perangkat perlu diservis. | Bit siap perintah menunjukkan perangkat perlu diservis. |
CPU | CPU hanya terganggu ketika perangkat perlu diservis, yang menghemat siklus CPU. | CPU harus menunggu dan memeriksa apakah suatu perangkat perlu diservis yang menghabiskan banyak siklus CPU. |
Kejadian | Gangguan dapat terjadi kapan saja. | CPU mensurvei perangkat secara berkala. |
Efisiensi | Interupsi menjadi tidak efisien ketika perangkat terus mengganggu CPU berulang kali. | Polling menjadi tidak efisien ketika CPU jarang menemukan perangkat yang siap untuk layanan. |
Contoh | Biarkan bel berbunyi kemudian buka pintu untuk memeriksa siapa yang datang. | Terus membuka pintu untuk memeriksa apakah ada yang datang. |
Definisi Interupsi
Interrupt adalah mekanisme perangkat keras yang memungkinkan CPU mendeteksi bahwa suatu perangkat membutuhkan perhatiannya. CPU memiliki jalur permintaan interupsi kawat yang diperiksa oleh CPU setelah eksekusi setiap instruksi. Ketika CPU merasakan sinyal interupsi pada baris permintaan-interupsi, CPU menghentikan tugasnya yang sedang berjalan dan merespons pengiriman interupsi oleh perangkat I / O dengan melewati kontrol untuk interrupt handler . Penangan interupsi menyelesaikan interupsi dengan memperbaiki perangkat.
Meskipun CPU tidak mengetahui kapan interupsi akan terjadi karena dapat terjadi setiap saat, tetapi CPU harus merespons interupsi setiap kali terjadi.
Ketika pengendali interupsi selesai menjalankan interupsi, maka CPU melanjutkan eksekusi tugas yang telah dihentikannya untuk merespons interupsi. Perangkat lunak, perangkat keras, pengguna, beberapa kesalahan dalam program, dll. Juga dapat menghasilkan interupsi. Interupsi menangani sifat CPU mengarah ke multitasking, yaitu pengguna dapat melakukan sejumlah tugas yang berbeda secara bersamaan.
Jika lebih dari satu interupsi dikirim ke CPU, interrupt handler membantu mengelola interupsi yang sedang menunggu untuk diproses. Ketika interrupt handler dipicu oleh penerimaan interupsi, ia memprioritaskan interupsi yang menunggu untuk diproses oleh CPU dan mengaturnya dalam antrian untuk dilayani.
Definisi Polling
Seperti yang telah kita lihat dalam interupsi, input dari perangkat I / O dapat tiba kapan saja meminta CPU untuk memprosesnya. Polling adalah protokol yang memberi tahu CPU bahwa perangkat memerlukan perhatiannya. Tidak seperti interrupt, di mana perangkat memberi tahu CPU bahwa ia membutuhkan pemrosesan CPU, dalam polling CPU terus menanyakan perangkat I / O apakah ia membutuhkan pemrosesan CPU.
CPU secara terus-menerus menguji setiap perangkat yang terhubung dengannya untuk mendeteksi apakah ada perangkat yang membutuhkan perhatian CPU. Setiap perangkat memiliki bit siap-perintah yang menunjukkan status perangkat itu yaitu apakah itu memiliki beberapa perintah untuk dieksekusi oleh CPU atau tidak. Jika bit perintah diatur 1, maka ada beberapa perintah yang harus dijalankan jika bitnya 0, maka tidak ada perintah. CPU memiliki bit sibuk yang menunjukkan status CPU apakah sibuk atau tidak. Jika bit sibuk diatur 1, maka sibuk dalam mengeksekusi perintah beberapa perangkat, selain itu 0 .
Algoritma untuk pemungutan suara
- Ketika suatu perangkat memiliki beberapa perintah untuk dieksekusi oleh CPU, perangkat akan terus menerus memeriksa bit sibuk CPU sampai menjadi jelas (0).
- Ketika bit yang sibuk menjadi jelas, perangkat mengatur bit-bit pada register perintahnya dan menulis byte pada register data-out.
- Sekarang perangkat menetapkan (1) bit siap-perintah.
- Ketika CPU memeriksa perangkat siap-bit dan menemukannya mengatur (1), itu menetapkan (1) bit yang sibuk.
- CPU kemudian membaca register perintah perangkat dan menjalankan perintah perangkat.
- Setelah eksekusi perintah, CPU menghapus (0) bit siap-perintah, bit kesalahan perangkat untuk menunjukkan keberhasilan pelaksanaan perintah perangkat dan selanjutnya menghapus (0) bit sibuknya juga untuk menunjukkan bahwa CPU bebas untuk mengeksekusi perintah beberapa perangkat lain.
Perbedaan Kunci Antara Interupsi dan Polling di OS
- Dalam interupsi, perangkat memberitahukan CPU bahwa ia perlu diservis sedangkan, dalam polling, CPU berulang kali memeriksa apakah suatu perangkat perlu diservis.
- Interrupt adalah mekanisme perangkat keras karena CPU memiliki jalur interrupt-request yang menandakan bahwa interupsi telah terjadi. Di sisi lain, Polling adalah protokol yang terus memeriksa bit kontrol untuk memberi tahu apakah perangkat memiliki sesuatu untuk dieksekusi.
- Interrupt handler menangani interupsi yang dihasilkan oleh perangkat. Di sisi lain, dalam polling, CPU melayani perangkat saat dibutuhkan.
- Interupsi ditandai oleh garis interrupt-request . Namun, bit siap-Komando menunjukkan bahwa perangkat perlu diservis.
- Dalam interupsi, CPU hanya terganggu ketika perangkat apa pun menginterupsi. Di sisi lain, dalam pemungutan suara, CPU membuang banyak siklus CPU dengan berulang kali memeriksa bit yang siap pakai dari setiap perangkat.
- Interupsi dapat terjadi kapan saja, sedangkan CPU terus melakukan polling pada perangkat secara berkala .
- Polling menjadi tidak efisien ketika CPU terus melakukan polling pada perangkat dan jarang menemukan perangkat yang siap untuk diservis. Di sisi lain, interupsi menjadi tidak efisien ketika perangkat terus mengganggu pemrosesan CPU berulang kali.
Kesimpulan:
Baik Polling dan Interupsi efisien dalam menghadiri perangkat I / O. Tetapi mereka dapat menjadi tidak efisien pada kondisi tertentu seperti yang dibahas di atas.