MRC Komputer Maintenance & Repair Computer

Kamis, 28 Maret 2013

Interrupt Handler



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
 2 Perbandingan Antara Subrutin Dan ISR
 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
    

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.

      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.

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