Penjelasan mengidentifikasikan interrupt http://rezaakhmadg.blogspot.com/2012/05/identifikasi-interrupt.html
Apa Penyebab interrupt ?
- Program : misal overflow, division by zero, akses ke ilegal memori
- Timer: dihasilkan oleh timer prosesor internal, digunakan pada pre-emptive multi tasking
- I/O : dihasilkan oleh I/O controller
- hardware failure : misal memory , parity error, power failure
Siklus Interrupt |
Siklus Interrupt - State Diagram |
- Pengecekan interrupt ditambahkan pada siklus interuksi
- prosesor memeriksa apakah terjadi interrupt
- jika tidak ada interrupt maka kerjakan instruksi berikutnya
- jika ada interrupt:
- Tunda program yang sedang dieksekusi
- simpan context(alamat instruksi,data)
- PC : alamat awal routine interrupt handler
- kerjakan interrupt sampai selesai
- kembalikan context(PC : alamat saat terjadi interrupt)
- lanjutkan program yg tertunda
Ada 2 metode
yang dapat digunakan:
- Disable intterupt
- Bila prosesor sedang menangani sebuah interrupt, maka interrupt berikutnya diabaikan
- Bila interrupt pertama telah selesai, prosesor memeriksa apakah masih ada interrupt yang lain
- eksekusi interrupt dilakukan secara berurutan(sekuensial)
- Interrupt bertingkat
- Interrupt berprioritas rendah dapat diinterupt oleh interrupt berprioritas tinggi
- interrupt yang ter interrupt dieksekusi lagi bila interrupt yang lebih tinggi telah selesai ditangani
- I/O terjadi pada saat program yang di dalamnya terdapat perintah I/O dieksekusi
- Eksekusi I/O terus menerus melibatkan prosesor
Interrupt
driven I/O http://rezaakhmadg.blogspot.com/2012/05/interrupt-driven-input-output.html
- I/O terjadi pada saat perintah I/O dieksekusi
- Sesudah perintah I/O dieksekusi à CPU melanjutkan eksekusi perintah lainnya à tidak terlibat terus menerus
- CPU berperan lagi jika sudah ada interrupt dari device (modul I/O)
Direct Memory Access (DMA) http://rezaakhmadg.blogspot.com/2012/05/direct-memory-acces-dma.html
- Transfer data ditangani oleh sebuah prosesor I/O khusus