Pagkakaiba sa pagitan ng Interrupt at Exception

Pagkakaiba sa pagitan ng Interrupt at Exception
Pagkakaiba sa pagitan ng Interrupt at Exception

Video: Pagkakaiba sa pagitan ng Interrupt at Exception

Video: Pagkakaiba sa pagitan ng Interrupt at Exception
Video: Network Ports Explained 2024, Nobyembre
Anonim

Interrupt vs Exception

Sa anumang computer, sa panahon ng normal na pagpapatupad nito ng isang program, maaaring may mga kaganapan na maaaring maging sanhi ng pansamantalang paghinto ng CPU. Ang mga kaganapang tulad nito ay tinatawag na interrupts. Ang mga pagkaantala ay maaaring sanhi ng alinman sa mga error sa software o hardware. Ang mga interrupt sa hardware ay tinatawag na (simpleng) Interrupts, habang ang software interrupts ay tinatawag na Exceptions. Kapag nakataas na ang isang interrupt (software o hardware), ang kontrol ay ililipat sa isang espesyal na subroutine na tinatawag na ISR (Interrupt Service Routine) na kayang hawakan ang mga kundisyon na itinaas ng interrupt.

Ano ang Interrupt?

Ang terminong Interrupt ay karaniwang nakalaan para sa hardware interrupts. Ang mga ito ay mga pagkagambala sa pagkontrol ng programa na dulot ng mga panlabas na kaganapan sa hardware. Dito, ang ibig sabihin ng panlabas ay panlabas sa CPU. Karaniwang nagmumula ang mga hardware interrupts sa maraming iba't ibang source tulad ng timer chip, peripheral device (keyboard, mouse, atbp.), I/O ports (serial, parallel, atbp.), disk drive, CMOS clock, expansion card (sound card, video card, atbp). Nangangahulugan iyon na ang mga pagkaantala ng hardware ay halos hindi nangyayari dahil sa ilang kaganapan na nauugnay sa pagpapatupad ng programa. Halimbawa, ang isang kaganapan tulad ng pagpindot sa key sa keyboard ng user, o isang internal na hardware timer timing ay maaaring magpataas ng ganitong uri ng pagkaantala at maaaring ipaalam sa CPU na ang isang partikular na device ay nangangailangan ng ilang pansin. Sa ganitong sitwasyon, hihinto ang CPU sa anumang ginagawa nito (ibig sabihin, i-pause ang kasalukuyang program), ibibigay ang serbisyong kinakailangan ng device at babalik sa normal na programa. Kapag naganap ang mga pagkaantala ng hardware at sinimulan ng CPU ang ISR, ang iba pang mga pagkagambala sa hardware ay hindi pinagana (hal. sa 80 × 86 na mga makina). Kung kailangan mo ng iba pang mga pagkagambala sa hardware na maganap habang tumatakbo ang ISR, kailangan mong gawin iyon nang tahasan sa pamamagitan ng pag-clear sa interrupt na bandila (na may sti instruction). Sa 80×86 machine, ang pag-clear sa interrupt na flag ay makakaapekto lang sa mga hardware interrupts.

Ano ang Exceptions?

Ang Exception ay isang software interrupt, na maaaring matukoy bilang isang espesyal na gawain ng handler. Ang pagbubukod ay maaaring matukoy bilang isang awtomatikong nagaganap na bitag (ang isang Trap ay maaaring matukoy bilang isang paglipat ng kontrol, na pinasimulan ng programmer). Sa pangkalahatan, walang mga partikular na tagubilin na nauugnay sa mga pagbubukod (nabubuo ang mga bitag gamit ang isang partikular na pagtuturo). Kaya, ang isang pagbubukod ay nangyayari dahil sa isang "pambihirang" kundisyon na nangyayari sa panahon ng pagpapatupad ng programa. Halimbawa, ang paghahati sa pamamagitan ng zero, ang pagpapatupad ng isang ilegal na opcode o ang pagkakamali na nauugnay sa memorya ay maaaring magdulot ng mga pagbubukod. Sa tuwing may itataas na exception, pansamantalang sinuspinde ng CPU ang program na pinapagana nito at sinisimulan ang ISR. Maglalaman ang ISR kung ano ang gagawin sa pagbubukod. Maaaring itama nito ang problema o kung hindi posible, maaari nitong i-abort ang programa nang maganda sa pamamagitan ng pag-print ng angkop na mensahe ng error. Kahit na ang isang partikular na pagtuturo ay hindi nagiging sanhi ng isang pagbubukod, ang isang pagbubukod ay palaging sanhi ng isang pagtuturo. Halimbawa, ang paghahati sa pamamagitan ng zero na error ay maaari lamang mangyari sa panahon ng pagpapatupad ng pagtuturo ng dibisyon.

Ano ang pagkakaiba ng Interrupt at Exception?

Ang mga interrupt ay hardware interrupts, habang ang exceptions ay software interrupts. Ang mga paglitaw ng mga pagkaantala ng hardware ay karaniwang hindi pinapagana ang iba pang mga pagkagambala sa hardware, ngunit hindi ito totoo para sa mga pagbubukod. Kung kailangan mong huwag payagan ang mga pagkaantala ng hardware hanggang sa maihatid ang isang pagbubukod, kailangan mong tahasang i-clear ang bandila ng interrupt. At kadalasan ang interrupt flag sa computer ay nakakaapekto sa (hardware) interrupts kumpara sa mga exception. Nangangahulugan ito na ang pag-clear sa flag na ito ay hindi mapipigilan ang mga pagbubukod.

Inirerekumendang: