What is Interrupt?
Salah satu karakteristik komputer (PC) yang sering kali ditunjukkan adalah ia selalu mengerjakan perintah berurut, langkah demi langkah. Yup, begitulah cara kerja prosesor (CPU) di komputer! Akan tetapi tidak selamanya alur eksekusi selalu berurutan. Prosesor dapat saja menerima sebuah sinyal penting dimana ia harus segera menanganinya dan menunda terlebih dahulu apa yang sedang dikerjakannya saat ini. Sinyal penting tersebut disebut sebagai interrupt.
Pengertian
Interrupt atau Interupsi adalah suatu permintaan khusus pada mikroprocessor untuk melakukan sesuatu, jika terjadi interupsi maka komputer akan menghentikan dahulu apa yang sedang dikerjakan dan melakukan apa yang diminta oleh yang menginterupsi.
Jenis - Jenis Interrupt
Prosesor dapat menerima dua jenis interrupt, yaitu hardware interrupt dan software interrupt. Sesuai namanya, Hardware Interrupt adalah interrupt yang dikirim oleh hardware melalui jalur khusus. Contoh Hardware Interrupt adalah sinyal yang dikirim ke prosesor saat tombol keyboard ditekan. Interrupt ini bersifat asynchronous karena sinyal tersebut dapat dikirim kapan saja saat prosesor sedang mengerjakan program. Kebalikannya, Software Interrupt adalah interrupt yang dikirim oleh software (dengan kata lain sinyal yang dikirim dari dalam processor itu sendiri). Lebih detailnya :
1. Internal Hardware Intteruptions
- Ditimbulkan/digenerasi oleh peristiwa tertentu yang terjadi pada waktu/selama eksekusi program.
- Diatur oleh HW dan tidak dapat dirubah.
Contoh : tipe interrupt untuk counter clock internal; HW call interrupt ini untuk memaintance “time to date”]
2. External Hardware Intteruptions
- Ditimbulkan/digenerasi oleh devais peripheral, seperti keyboard, printers, mouse, dsb.
- Biasa juga ditimbulkan/digenerasi oleh Co-processor.
- Tidak mungkin mendeaktivekan.
- Tidak dikirim langsung ke CPU, melainkan ke IC yang memiliki fungsi untuk menghandle secara eksklusive interrupts ini.
3. Software Intteruptions
Diaktifkan langsung oleh assembler melalui sejumlah interupsi yang di harapkan dengan intruksi INT
Terdapat 2 jenis : DOS interrupstions & BIOS interruptions. Perbedaan nya, DOS interruptions lebih mudah digunakan, namun lebih lambat, karena interruptions jenis ini menggunakan BIOS, BIOS interruptions lebih cepat, namun banyak kerugiannya karena BIOS bagian HW dan HW-specific. Pemilihan interrupt tergantung pada karakteristik yang akan kita berikan pada program : SPEED -> BIOS interruptions . PORTABILITY -> DOS interruptions.
Ada 2 macam Software Interrupt :
a. Vektor Interrupt ROM BIOS
Interrupt 00h-1Fh (0-31) adalah interrupt BIOS dan standar di semua komputer baik yang menggunakan sistem operasi DOS atau bukan. Lokasi interrupt vector tabkenya ada di alamat absolut 0000h-007Fh.
Interrupt BIOS dibawah ini telah di pastikan kegunaannya oleh sistem untuk keperluan khusus tidak boleh di ubah oleh program seperti lainnya.
DEVIDE BY ZERO Jika terjadi pembagian dengan nol maka proses akan segera dihentikan.
SINGLE STEP untuk melaksanakan/mengeksekusi intruksi satu persatu.
NMI pelayanan terhadap NMI (Non Maskable Interrupt yaitu interupsi yang tak dapat dicegah.
BREAK POINT Jika suatu program menyebabkan overflow flag menjadi 1, interrupt ini akan melayani pencegahannya dan memberi tanda error.
b. Interrupt DOS
Interrupt 20h-FFh (32-255) adalah interrupt DOS, dan hanya ada pada komputer yang menggunakan sistem operasi DOS dan interrupt handlernya di load ke memori oleh DOS pada saat DOS digunakan. Lokasi interrupt vector tablenya ada di alamat absolut 07Fh-3FFh
Fungsi Interrupt
1. Interupsi memindahkan pengendalian kepada interrupt service routine melalui interrupt vektor yang berisi alamat dari semua service routine.
2. Arsitektur interrupt harus menyimpan alamat intruksi yang di interrupt.
3. Interrupt yang datang berikutnya dibatalkan ketika interrupt lain sedang diproses untuk mencegah hilangnya suatu interrupt.
4. Trap adalah software generated interrupt yang disebabkan oleh kesalahan atau karena permintaan user.
5. Suatu sistem operasi dikendalikan oleh interrupt.
Tujuan Interrupt
1. Secara umum untuk manajemen pengeksekusian routine intruksi agar efektif dan efisien antar CPU dan modul – modul I/O maupun memori.
2. Setiap komponen komputer dapat menjalankan tugasnya secara bersamaan, tetapi kendali terletak pada CPU disamping itu kecepatan eksekusi masing – masing modul berbeda.
3. Dapat sebagai sinkronisasi kerja antar modul.
Penyebab Interrupt
1. Program
Diakibatkan adanya beberapa kondisi yang terjadi, hasil dari suatu eksekusi.
Contoh: arithmetic overflow, devision by zero, pengeksekusian secara illegal, penggunaan memori yang berlebihan.
2. Timer
Disebabkan oleh timer di dalam prosesor. Hal ini memungkinkan sistem operasi menjalankan fungsi-fungsi tertentu secara regular.
3. I/O
Disebabkan oleh I/O Controller, baik sebagai tanda bahwa suatu operasi telah selesai, maupun memberi tanda adanya kondisi error. Interrupt I/O ada dua macam, interrupt pendek dan interrupt panjang.
4. Hardware Failure
Disebabkan olch kesalahan hardware, scperti power failure (kegagalan daya) atau memory parity error.
Tindak Lanjut Interrupt
1. Penata interupsi / interrupt handler jika terjadi interupsi, maka kendali prosesor diserahkan ke bagian penata interupsi pada sistem operasi, maka penata interupsi inilah yang melaksanakan interupsi.
- Instruksi yang sedang diolah oleh prosesor dibiarkan sampai selesai program.
- Penata interupsi merekam semua informasi proses ke dalam blok kendali proses.
- Penata interupsi mengidentifikasi jenis dan asal interupsi.
- Penata interupsi mengambil tindakan sesuai dengan yang dimaksud interupsi.
- Penata interupsi mempersiapkan segala sesuatu untuk pelanjutan proses yang diinterupsi.
2. Penata keliru/Error handler Yaitu interupsi karena kekeliruan pada pengolahan proses dan bagian pada sistem operasi yang menata kegiatan akibat kekeliruan adalah penata keliru.
- Pemulihan, komputer telah dilengkapi dengan sandi penemuan dan pemulihan kekeliruan, contohnya telah dilengkapi dengan sandi Hamming sehingga ketika menemukan kekeliruan sandi akan mengoreksi kekeliruan itu, proses pulih ke bentuk semula sebelum terjadi kekeliruan.
- Pengulangan, mengatur agar proses yang membangkitkan interupsi keliru dikerjakan ulang, jika kekeliruan dapat diatasi maka proses akan berlangsung seperti biasa, jika tidak teratasi maka interupsi akan menempuh tindak lanjut keluar dari proses.
- Keluar dari proses, penata keliru menyiapkan tampilan berita keliru dari monitor, setelah itu prosesor keluar dari proses, ini adalah tindakan terakhir jika tidak dapat menolong proses yang keliru tersebut.
Contoh Interrupt
Mengapa memakai interrupt? Untuk menunjukkan alasan penggunaan interrupt, saya akan menggunakan contoh proses untuk membaca apa yang diketik dari keyboard. Tanpa interrupt, program harus memerintahkan prosesor untuk secara periodik memeriksa apakah ada tombol yang di tekan di keyboard. Teknik ini disebut sebagai polling. Semakin banyak hardware yang terlibat dalam proses polling, maka beban prosesor akan semakin berat. Ingat bahwa polling harus memeriksa secara periodik walaupun tidak ada tombol yang di tekan di keyboard. Interrupt menawarkan solusi yang lebih baik: prosesor akan mendapatkan notifikasi hanya bila tombol keyboard ditekan.
Ibaratnya begini, ketika anda sedang melakukan suatu pekerjaan, katakanlah membaca sebuah buku, belum selesai buku tersebut anda tamatkan, lalu telepon anda berbunyi, sehingga anda melakukan percakapan terlebih dahulu melalui telepon tersebut. Setelah pembicaraan selesai, anda melanjutkan membaca buku tadi. menerima telepon di dalam kejadian tersebut disebut dengan menyela.
Begitu juga dengan proses yang terjadi pada komputer. Apabila sebuah komputer melakukan prosesnya tanda ada gangguan, tentu komputer tersebut dapat menyelesaikan pekerjaannya dengan serius khusus untuk satu pekerjaan yang sedang dikerjakannya. Dalam kondisi demikian, komputer anda melakukan tugasnya yang disebut dengan primitive batch processing. Pekerjaan seperti ini digunakan oleh komputer pada komputer zaman awal-awal ditemukannya. Dimana komputer tidak bisa mengerjakan beberapa program sekaligus dalam waktu bersamaan, sampai satu pekerjaan selesai dikerjakan, maka baru dia bisa berpindah ke pekerjaan lainnya.
Anda tentu juga tidak jarang mengalami hal dengan interrupt ini, katakanlah, ketika mengetikkan SMS ternyata ada telpon yang masuk, anda terima dulu telpon tersebut, lalu setelahnya anda lanjutkan pengetikan SMS tadi. Untuk memungkinkan terjadinya interrupt ini pada sistem komputer, CPU memiliki suatu jalur khusus terhadap suatu chip pengatur interrupt eksternal (bagian dari chipset), yang berisi database sederhana yang dikenal dengan interrupt vectors.
Ketika sebuah interrupt terjadi pada chip, maka CPU menyimpan informasi terakhir yang dia kerjakan, berulah dia mengerjakan sesuai dengan informasi yang ada pada interrupt vector tesebut. Interrupt vector ini sebenarnya hanya sebuah nama pemanis yang berisi informasi tentang selaan yang terjadi, kalau dibelah lebih dalam lagi, isinya adalah berupa tabel yang berisi angka-angka). Pada interrupt vector inilah ditemukan kemana dan apa proses berikutnya yang harus dilaksanakan oleh komputer. Ketika pekerjaan interrupt tadi selesai dilaksanakan, maka komputer melakukan pelacakan kembali apa pekerjaan sebelumnya yang sedang dilaksanakannya.
Sumber Article :
https://www.mahirkoding.com/pengenalan-interrupt/
http://gudangmakalahkuliah.blogspot.com/2013/12/interupsi-pada-komputer.html
Komentar
Posting Komentar