1. Interupsi
Interupsi terjadi bila suatu perangkat Input/output ingin memberitahu prosesor bahwa ia siap menerima perintah, output sudah dihasilkan,atau terjadi error.
Ada beberapa tahapan dalam penanganan interupsi:
Pertama-tama Controller mengirimkan sinyal interupsi melalui interrupt-request-line, lalu Sinyal interupsi tersebut dideteksi oleh prosesor. Selanjutnya Prosesor akan terlebih dahulu menyimpan informasi tentang keadaan state-nya(informasi Tentang proses yang sedang dikerjakan). Kemudian Prosesor mengidentifikasi penyebab interupsi dan mengakses tabel vektor interupsi untuk menentukan interrupt handler. Selanjutnya Transfer kontrol ke interrupt handler. Setelah interupsi berhasil diatasi, prosesor akan kembali kekeadaan seperti sebelum terjadinya interupsi dan melanjutkan pekerjaan yang tadi sempat tertunda.
Siklus penanganan interupsi
2. Polling atau juga disebut Busy-waiting adalah ketika host mengalami looping yaitu membaca status register secara terus-menerus sampai status busy di-clear. Pada dasarnya polling dapat dikatakan efisien. Akan tetapi polling menjadi tidak efisien ketika setelah berulang-ulang melakukan looping, hanya menemukan sedikit device yang siap untuk men-service, karena CPU processing yang tersisa belum selesai.
Interrupt Vector
Interrupt Vector adalah harga yang disimpan ke Program Counter pada saat terjadi interrupt sehingga program akan menuju ke alamat yang ditunjukkan oleh Program Counter. Pada saat program menuju ke alamat yang ditunjuk oleh Interrupt Vector maka flag-flag yang set karena terjadinya interrupt akan di-clear kecuali RI dan TI.
Masing-masing alamat vektor mempunyai jarak yang berdekatan sehingga akan timbul masalah bila diperlukan sebuah Interrupt Service Routine yang cukup panjang.
0 komentar:
Posting Komentar