Sebuah interrupt handler, juga dikenal sebagai sebuah rutin layanan
interupsi (ISR), adalah subroutine panggilan balik di firmware mikrokontroler,
sistem operasi atau driver perangkat yang eksekusi adalah dipicu oleh
penerimaan interrupt. Penangan interrupt memiliki banyak fungsi yang bervariasi
berdasarkan pada alasan mengganggu dihasilkan dan kecepatan di mana interrupt handler
menyelesaikan tugasnya.
Sebuah interrupt handler adalah mitra rendah tingkat event handler. Ini penangan yang diprakarsai oleh interupsi baik hardware atau instruksi interupsi dalam perangkat lunak, dan digunakan untuk perangkat keras melayani dan transisi di antara modus operasi yang dilindungi seperti panggilan sistem.
1 Ikhtisar
Sebuah interrupt handler adalah mitra rendah tingkat event handler. Ini penangan yang diprakarsai oleh interupsi baik hardware atau instruksi interupsi dalam perangkat lunak, dan digunakan untuk perangkat keras melayani dan transisi di antara modus operasi yang dilindungi seperti panggilan sistem.
1 Ikhtisar
2 Perbandingan Antara Subrutin Dan ISR
3 Urutan Umum Diikuti Ketika Interupsi Terjadi Dengan perangkat eksternal
4 Penanganan mengganggu Beberapa Devices
3 Urutan Umum Diikuti Ketika Interupsi Terjadi Dengan perangkat eksternal
4 Penanganan mengganggu Beberapa Devices
v Garis Beberapa Interrupt
v Polling software
v Polling hardware (Metode Vector)
v Bus Arbitrase
5 Interrupt Thread
6 Symbian OS
6 Symbian OS
1. Ikhtisar
Dalam beberapa
sistem operasi - Linux, Unix, Mac OS X, Microsoft
Windows, dan beberapa sistem operasi lain dalam, penangan interrupt masa
lalu dibagi menjadi dua bagian: ' First-Level Interrupt Handler ( FLIH )
dan Second-Level Interrupt Handlers (SLIH). FLIH juga dikenal sebagai penangan interrupt keras
atau penangan interrupt cepat, dan SLIH juga dikenal sebagai lambat / lembut penangan
interrupt.
FLIH menyebabkan jitter dalam proses eksekusi. FLIH juga masker interupsi. Mengurangi jitter yang paling penting untuk real time operating systems, karena mereka harus menjamin bahwa eksekusi kode tertentu akan selesai dalam jumlah waktu yang disepakati.
Untuk mengurangi jitter dan untuk mengurangi potensi kehilangan data dari interupsi bertopeng, programmer berusaha untuk meminimalkan waktu pelaksanaan FLIH, bergerak sebanyak mungkin untuk SLIH tersebut.
Dengan kecepatan komputer modern, FLIH dapat menerapkan semua perangkat dan platform tergantung penanganan, dan menggunakan SLIH untuk penanganan lebih lanjut platform-independen berumur panjang.
FLIH menyebabkan jitter dalam proses eksekusi. FLIH juga masker interupsi. Mengurangi jitter yang paling penting untuk real time operating systems, karena mereka harus menjamin bahwa eksekusi kode tertentu akan selesai dalam jumlah waktu yang disepakati.
Untuk mengurangi jitter dan untuk mengurangi potensi kehilangan data dari interupsi bertopeng, programmer berusaha untuk meminimalkan waktu pelaksanaan FLIH, bergerak sebanyak mungkin untuk SLIH tersebut.
Dengan kecepatan komputer modern, FLIH dapat menerapkan semua perangkat dan platform tergantung penanganan, dan menggunakan SLIH untuk penanganan lebih lanjut platform-independen berumur panjang.
SLIH Sebuah menyelesaikan tugas pengolahan yang panjang mengganggu mirip denganproses. SLIHs baik memiliki kernel thread khusus untuk penanganan masing-masing, ataudijalankan oleh suatu kumpulan worker threads inti. Thread ini berada di antrian yang berjalan pada sistem operasi sampai saat prosesor yang tersedia untuk mereka melakukan pengolahan interupsi. SLIH mungkin memiliki waktu eksekusi berumur panjang,dan
dengan demikian biasanya dijadwalkan sama dengan thread dan proses.
Di Linux, FLIH disebut upper half, dan SLIH disebut lower half atau bottom half. Hal ini berbeda dari penamaan yang digunakan dalam Unix-like systems, di mana keduanya merupakan bagian dari bottom half.
Di Linux, FLIH disebut upper half, dan SLIH disebut lower half atau bottom half. Hal ini berbeda dari penamaan yang digunakan dalam Unix-like systems, di mana keduanya merupakan bagian dari bottom half.
2. Perbandingan Antara Subroutin Dan ISR
1. Seperti dibahas sebelumnya, rutin dilaksanakan dalam menanggapi interupsi disebut sebagai interrupt service routine (ISR).
2. Subroutine adalah bagian dari program besar yang melakukan beberapa bagian tertentu yang terkait dengan program.
3. Subroutine disebut oleh program itu sendiri. Ini membantu untuk menghindari kompleksitas dalam program.
4. ISR adalah kode dieksekusi dalam menanggapi interupsi yang mungkin terjadi selama pelaksanaan program.
5. ISR mungkin tidak memiliki kesamaan dengan program yang sedang dijalankan pada saat interupsi diterima.
6. Dalam kasus subroutin, alamat hanya kolom yang berikutnya disimpan dalam stack secara otomatis ketika dipanggil sementara dalam kasus ISR, bersama dengan alamat kolom berikutnya, isi dari register status dan beberapa register lain (jika diperlukan) juga disimpan.
3. Urutan Umum Diikuti Ketika Interupsi Terjadi Dengan perangkat
eksternal
1. Interrupt request (IRQ) sinyal yang dikirim oleh perangkat ke prosesor.
2. Jika baris interrupt diaktifkan urutan peristiwa berikut terjadi dalam sistem, yang lain mengganggu diabaikan. Prosesor melengkapi instruksi yang sekarang (jika ada) dan memperhatikan IRQ.
3. Ini menyimpan alamat lokasi berikutnya dan isi dari status register untuk stack
4. Menginformasikan perangkat yang permintaannya telah diberikan dan respon perangkat mengaktifkan IRQ nya.
5. Menggunakan beberapa teknik yang sesuai prosesor beban program counter nya (PC) dengan alamat ISR.
6. Dengan pernyataan kembali terjadi pada akhir ISR semua konten yang tersimpan dimuat kembali ke dalam register prosesor masing-masing dan kembali program ditangguhkan.
4. Menangani beberapa perangkat interupsi.
Ada
empat cara dimana prosesor dapat mengontrol beberapa perangkat interupsi:
v menggunakan baris beberapa interupsi
Adalah cara paling sederhana. Dengan memberikan baris interrupt terpisah untuk masing-masing perangkat,beberapa perangkat yang ditangani oleh prosesor. Kerugian dari metode ini adalah bahwa, ini menyebabkan peningkatan dalam struktur hardware dari chip prosesor. karena itu menjadi tidak praktis untuk mempertahankan ukuran kecil dari chip dan menyediakanakses ke beberapa perangkat eksternal.
v Polling software.
Berikut beberapa perangkat yang terhubung ke prosesor oleh garis umum untukmempertahankan ukuran kecil. Untuk memutuskan mana perangkat di atas garis umum adalah meminta status interrupt dari bit IRQ dalam status register perangkat diperiksaoleh prosesor. Setelah mendeteksi IRQ cabang prosesor sinyal prosesor untuk ISR yang tugasnya adalah untuk mendeteksi (jajak pendapat) yang telah mengirim IRQ perangkatsignal.Here tindakan pemungutan suara dilakukan pada perangkat yang terhubung satu per satu sampai hasil yang positif (yaitu IRQ bit = 1) diperoleh. Setelah hasil positifperangkat yang sesuai disajikan. Kerugian dari skema ini adalah bahwa, di sini tidak perlu waktu terbuang dalam memeriksa perangkat mengganggu yaitu teknik ini memakan waktu.
v Polling hardware (Metode Vector).
Berikut pemborosan
waktu dihindari sejak perangkat itu sendiri
untuk memperkenalkanprosesor setelah
menerima pengakuan (INTA) Wakil prosesor sinyal
dan segera memulaimelaksanakan ISR sesuai. Perangkat
setelah menerima sinyal INTA mengirim kode khusus
untuk prosesor. kode ini digunakan untuk
mengakses lokasi memori di manaalamat awal dari dia ISR sesuai disimpan. Jadi langsung alamat diperoleh dari perangkatbertindak sebagai
vektor yang menunjuk ke alamat awal dari ISR. Oleh
karena skema ini disebut
sebagai vektor interupsi skema.
v bus Arbitrase
Teknik
ini juga menggunakan vektor interupsi. Di sini
sebelum mengirim perangkat IRQharus mendapatkan kontrol
atas bus sistem. Jadi di sini hanya satu modul
dapatmengangkat sinyal IRQ pada suatu waktu.
5. Interrupt threads (
benang ).
Beberapa sistem
operasi - Solaris, NetBSD, Mac OS X, WinCE dan FreeBSD, misalnya -menggunakan
skema yang
berbeda yang
dikenal sebagai benang mengganggu. Sebuah interrupt handler yang disediakan oleh driver perangkat hanyalah benang prioritas tinggiyang berjalan dengan interupsi diaktifkan dan, lebih penting,
mungkin blok pada mutex. Hal ini sangat menyederhanakan mengunci di kernel. Selain itu, benang interupsi dapat ditundaoleh beberapa thread interupsi dengan prioritas lebih
tinggi.
6. Symbian OS.
Pengolahan diperpanjang
karena (di antara alasan lainnya) dalam ISR penundaanmelayani interupsi lainnya, Symbian OS menggunakan Panggilan Fungsi Tertunda (DFCs)untuk melakukan pengolahan yang tidak mungkin di dalam ISR.
0 komentar:
Posting Komentar