Custom Search
5/26/2012 01:22:00 PM

Mekanisme Dasar Interupsi


Ketika CPU mendeteksibahwasebuahpengendalitelahmengirimkansebuahsinyalkeinterrupt trequest line (membangkitkansebuahinterupsi), CPU kemudianmenjawabinterupsitersebut (jugadisebutmenangkapinterupsi) denganmenyimpanbeberapainformasimengenaikeadaanterkiniCPU – contohnyanilaiinstruksi pointer, danmemanggilinterrupt handler agar handler tersebutdapatmelayanipengendaliataualat yang mengiriminterupsitersebut.

Langkah-langkahmekanismeinterupsi yang disebabkanperangkat M/K, yaitu:
1. Perangkat M/K mengirimsinyalinterupsi.
2. Prosesormenerimasinyalinterupsi.
3. Penyimpananinformasi proses yang sedangdieksekusi.
4. Prosesormengidentifikasipenyebabinterupsi.
5. Prosesormengeksekusiinterupsi routine sampai return.
6. Prosesormelanjutkan proses yang sebelumnyaditunda.

Di bawahiniadalahpenjelasanlangkah-langkahmekanismeinterupsi yang disebutkan di atas.
1.      adatigakemungkinanpenyebabperangkat M/K mengirimkaninterupsi, yaitu:
a.   Input Ready. Umpamanyaketika buffer keyboard sudahterisi (terjadipengetikan), kendali keyboard akanmengiriminterupsiuntukmemberitahuprosesorbahwa input dari keyboard sudahtersedia.
b. Output Complete. Umpamaketikamencetakpada printer.Misalnya printer hanyamenerimasatubaristekspadasatuwaktu.Karenanyaprosesorharusmengirimsatubaristeks, menunggubaristersebutdicetak, kemudianmengirimbaristeksberikutnya.Saatmenunggusatubarisdicetak, prosesordapatmengerjakan proses lain. Setelah printer selesaimencetaksatubaris, kendali printer mengiriminterupsiuntukmemberitahuprosesorbahwa output (satubaristeks) sudah complete (selesaidicetak) sehingga printer siapmenerimasatubaristeksberikutnya.
c. Error. Jikaterjadierror padaperangkat M/K saatperangkattersebutsedangmelakukanoperasi M/K, kontrolerperangkattersebutakanmengiriminterupsiuntukmemberitahuprosesorbahwaterjadierror sehinggaoperasi M/K tidakbisadilanjutkan.Perangkat M/K mengiriminterupsimelalui bus kontrolprosesor yang disebutinterupsi-request line.
2.      Setiap kali selesaimengeksekusisebuahinstruksi, prosesorakanmemeriksainterupsi-request line untukmendeteksiterjadinyainterupsi. Pemeriksaaninitidaksamadenganmekanisme polling yang dijelaskansebelumnya (meskipunsecarakonsepmirip). Padamekanisme polling, prosesorakanmengeksekusibeberapabarisinstruksidalam loop, dimanainstruksi-instruksidalam loop tersebutberfungsiuntukmemeriksa status perangkat M/K. Dalampemeriksaanterjadinyainterupsi, prosesortidakmengeksekusiinstruksi-instruksisepertipada polling, melainkanhanyasemacamvalidasi bit padainterupsi-request line.
3.      Tujuandaripenyimpananinformasi proses adalah agar data dari proses yang akanditundainitidaktergangguoleheksekusiinterupsi routine. Contohinformasimengenai proses diantaranyaadalah: status proses, program counter, isi register prosesor, informasipenjadwalanprosesor, informasimanajemenmemori, dll. Proses yang akanditundainiakandiubahstatusnyadari running ke ready.
4.      Untukmengidentifikasipenyebabinterupsi, memori me-load rutinpenangananinterupsi (jikabelumada di memori). Kemudianprosesormengeksekusi routine tersebut.InterupsihandlerakanInterupsimemeriksasatu-persatuperangkat M/K untukmengetahuiperangkatmana yang mengiriminterupsi.
5.      Setelahperangkat M/K yang mengiriminterupsiditemukan, prosesormengeksekusiinterupsi routine yang sesuaidenganperangkatitu. interupsi routine akandieksekusisampai  return.
6.      Setelahinterupsi routine selesaidieksekusi, prosesorakankembalimengeksekusi proses yang sebelumnyaditunda.
Dalammekanismeinterupsiterdapatbeberapamasalah yang perluditangani, yaitu:
1. Interupsiterjadisaatprosesorsedangmengeksekusi critical section dari proses. Untukmengatasihaliniprosesormenyediakanduainterupsi-request line, yaitumaskabledan non-maskable.Interupsi yang terjadimelaluiinterupsi-request line yang maskableakandiabaikansementaraolehprosesor. Jikaeksekusi critical section sudahselesai, prosesorakanmelayaniinterupsitersebut. Untukinterupsi yang terjadimelaluiinterupsi-request line yang non-maskable, prosesorakanlangsungmenghentikan proses yang sedangdieksekusinyakemudianmenanganiinterupsitersebut.
2. Waktu yang dibutuhkanuntukmencaripenyebabinterupsimerupakanhal yang tidakefisien, karenaprosesorakanmemeriksasatu-persatuperangkat M/K yang terhubungkekomputer.Untukmengatasihalini, kitadapatmengatur agar perangkat yang mengiriminterupsijugamengirimkanalamat. Alamattersebutadalahnomor yang digunakanuntukmencariinterupsi routine di sebuahtabeldalammemori yang disebutinterupsivektor.Interuptvektorberisipasangan-pasanganalamat yang dikirimperangkat M/K danalamatinterupsi routine di memori.Padakenyataannyakomputersaatinimemilikibanyakperangkat M/K sehinggaakanmembutuhkantabel yang cukupbesaruntukmenyimpanalamat-alamattersebut.Untukmengatasihaltersebut, terdapatsebuahteknik yang disebutinterupsi chaining. Teknikinimengaturpenyusunaninterupsivektor.Cara penyusunannyayaitu, alamat yang dikirimolehperangkat M/K merupakansatuelemen yang menunjukke head dari list interupsi routine.Ketikaterjadiinterupsi, interupsi handler yang beradadalamsatu list (list dipilihberdasarkanalamat yang dikirimperangkat M/K) dipanggilsatu-persatusampaiditemukaninterupsi routine yangsesuai.Interupsi chaining merupakansolusi yang mempertemukanantarakebutuhanpenangananinterupsisecepatnyadenganpenggunaanmemori yang minimal untukpenyimpananinterupsivektor.
3. Beberapaperangkat M/K membutuhkanpelayanan yang secepatnyadandanharusdidahulukandariperangkat M/K yang lain(jikapadasaat yang samaterdapatlebihdarisatuperangkat M/Kyangmembutuhkanpelayananolehprosesor). Dalamsituasitersebutdibutuhkanprioritasuntukmemilihperangkat yang akandilayanilebihdulu. Setiapperangkat M/K memilikiprioritassendiri.Pengaturanprioritasdanpenangananperangkatberdasarkanprioritasnyadiaturolehprosesordaninterupsicontroler.
4. JikaInterupsi yang terjadimerupakanpermintaanuntukmelakukan transfer data yang besar (contohnyaantara disk dan main memori), dalamhalinipenggunaanmekanismeinterupsiadalahcara yang tidakefisien.Untukmengatasihalinidigunakan DMA yang akandijelaskansetelahpembahasaninterupsi.

Sistemoperasimenggunakanmekanismeinterupsiuntukbeberapahal, diantaranyayaitu:
1. Menanganiberbagaimacamexception. Exception bisadisebabkanolehhal-halsepertipembagiandengannol, pengaksesanmemori yang tidakeksis, pengaksesanmemoriolehpihak yang tidakberhak, danpengeksekusianinstruksi yang privileged melaluipengguna mode.
2. Mengatur virtual memori paging.
3. Menangani software interupsi.
4. Mengaturalurkontrol kernel.

0 komentar:

Posting Komentar

IPv6 Certification Badge for yogaawuy
.