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