Süsteemkõne vs katkestus
Tüüpiline protsessor täidab juhiseid ükshaaval. Kuid võib juhtuda, et protsessor peab ajutiselt peatuma ja hoidma kehtivat käsku ning täitma mõnda muud programmi või koodisegmenti (mis asub mõnes teises kohas). Pärast seda naaseb protsessor tavapärasele täitmisele ja jätkab se alt, kus pooleli jäi. Süsteemikõne ja katkestus on sellised juhud. Süsteemikõne on kõne süsteemi sisseehitatud alamprogrammile. Katkestus on programmi juhtimise katkestus, mis on põhjustatud välistest riistvarasündmustest.
Mis on süsteemikutse?
Süsteemikõned pakuvad arvutis töötavatele programmidele liidest operatsioonisüsteemiga suhtlemiseks. Kui programm peab küsima teenust (mille jaoks tal endal luba pole) operatsioonisüsteemi tuum alt, kasutab ta süsteemikutset. Kasutajataseme protsessidel ei ole samu õigusi, mis operatsioonisüsteemiga vahetult suhtlevatel protsessidel. Näiteks peab programm välise I/O-seadmega suhtlemiseks või muude protsessidega suhtlemiseks kasutama süsteemikutseid.
Mis on katkestus?
Arvutiprogrammi tavapärase täitmise ajal võivad esineda sündmused, mis võivad põhjustada CPU ajutise seiskumise. Selliseid sündmusi nimetatakse katkestusteks. Katkestused võivad olla põhjustatud nii tarkvara- kui ka riistvararikkest. Riistvara katkestusi nimetatakse (lihts alt) katkestusteks, tarkvara katkestusi aga eranditeks või lõksudeks. Kui katkestus (tarkvara või riistvara) on tõstetud, kantakse juhtimine üle spetsiaalsele alamprogrammile ISR (Interrupt Service Routine), mis suudab käsitleda katkestuse tekitatud tingimusi.
Nagu eespool mainitud, on termin Katkestus tavaliselt reserveeritud riistvaraliste katkestuste jaoks. Need on välistest riistvarasündmustest põhjustatud programmijuhtimise katkestused. Siin tähendab väline protsessori välist. Riistvarakatkestused tulevad tavaliselt paljudest erinevatest allikatest, nagu taimerikiip, välisseadmed (klaviatuurid, hiir jne), I/O-pordid (jada-, paralleel- jne), kettaseadmed, CMOS-kell, laienduskaardid (helikaart, video). kaart jne). See tähendab, et mõne käivitava programmiga seotud sündmuse tõttu ei esine peaaegu kunagi riistvarakatkestusi. Näiteks võib selline sündmus, nagu kasutaja klahvivajutus klaviatuuril, või sisemine riistvarataimeri ajalõpp tõsta sellist katkestust ja teavitada protsessorit, et teatud seade vajab tähelepanu. Sellises olukorras peatab protsessor kõik, mida ta tegi (st peatab käimasoleva programmi), osutab seadmele vajalikku teenust ja naaseb tavapärasele programmile.
Mis vahe on süsteemikõne ja katkestuse vahel?
Süsteemikutse on süsteemi sisseehitatud alamprogrammi kutse, Katkestus aga sündmus, mille tõttu protsessor peatab ajutiselt käimasoleva täitmise. Üks oluline erinevus on aga see, et süsteemikõned on sünkroonsed, katkestused aga mitte. See tähendab, et süsteemikõned toimuvad kindlal ajal (mille määrab tavaliselt programmeerija), kuid katkestused võivad ilmneda igal ajal ootamatu sündmuse tõttu, näiteks kasutaja klahvivajutuse tõttu. Seetõttu peab protsessor alati süsteemikõne korral meeles pidama, kuhu naasta, kuid katkestuse korral peab protsessor meeles pidama nii kohta, kuhu naasta, kui ka süsteemi olekut. Erinev alt süsteemikutsest ei ole katkestusel tavaliselt praeguse programmiga midagi pistmist.