Sistemos skambutis prieš pertraukimą
Įprastas procesorius vykdo komandas po vieną. Tačiau gali pasitaikyti atvejų, kai procesorius turi laikinai sustoti ir išlaikyti esamą komandą bei vykdyti kokią nors kitą programą ar kodo segmentą (gyvenančią kitoje vietoje). Tai padarius, procesorius grįžta į įprastą vykdymą ir tęsia nuo ten, kur baigė. Sisteminis skambutis ir pertraukimas yra tokios progos. Sistemos iškvietimas yra iškvietimas į sistemoje integruotą paprogramę. Pertraukimas yra programos valdymo pertraukimas, kurį sukelia išoriniai aparatinės įrangos įvykiai.
Kas yra sistemos iškvietimas?
Sistemos skambučiai suteikia kompiuteryje veikiančioms programoms sąsają bendrauti su operacine sistema. Kai programai reikia paprašyti paslaugos (kuriai ji pati neturi leidimo) iš operacinės sistemos branduolio, ji naudoja sistemos iškvietimą. Vartotojo lygio procesai neturi tų pačių teisių kaip procesai, tiesiogiai sąveikaujantys su operacine sistema. Pavyzdžiui, norint susisiekti su išoriniu įvesties / išvesties įrenginiu arba sąveikauti su kitais procesais, programa turi naudoti sistemos iškvietimus.
Kas yra pertraukimas?
Įprastai vykdant kompiuterio programą, gali būti įvykių, dėl kurių CPU gali laikinai sustoti. Tokie įvykiai vadinami pertraukimais. Pertraukimus gali sukelti programinės arba aparatinės įrangos gedimai. Aparatinės įrangos pertraukimai vadinami (paprasčiausiai) pertraukimais, o programinės įrangos pertraukimai vadinami išimtimis arba spąstais. Pakėlus pertraukimą (programinę ar aparatinę įrangą), valdymas perkeliamas į specialią paprogramę, vadinamą ISR (Interrupt Service Routine), kuri gali tvarkyti sąlygas, kurias sukelia pertraukimas.
Kaip minėta pirmiau, terminas Pertraukimas paprastai yra skirtas aparatinės įrangos pertraukimams. Tai yra programos valdymo pertraukimai, kuriuos sukelia išoriniai aparatūros įvykiai. Čia išorinis reiškia išorinį procesorių. Aparatinės įrangos pertraukimai paprastai gaunami iš daugelio skirtingų š altinių, tokių kaip laikmačio lustas, išoriniai įrenginiai (klaviatūros, pelė ir kt.), I/O prievadai (nuoseklieji, lygiagrečiai ir kt.), diskų įrenginiai, CMOS laikrodis, išplėtimo plokštės (garso plokštė, vaizdo įrašas). kortelė ir kt). Tai reiškia, kad aparatinės įrangos pertraukimai beveik niekada neįvyksta dėl kažkokio įvykio, susijusio su vykdomąja programa. Pavyzdžiui, toks įvykis kaip vartotojo klaviatūros paspaudimas arba vidinis aparatinės įrangos laikmačio laikas gali padidinti tokio pobūdžio pertraukimą ir informuoti centrinį procesorių, kad tam tikram įrenginiui reikia skirti tam tikrą dėmesį. Esant tokiai situacijai, centrinis procesorius sustabdo tai, ką darė (t. y. pristabdo esamą programą), teiks įrenginiui reikalingą paslaugą ir grįš į įprastą programą.
Kuo skiriasi sistemos skambutis ir pertraukimas?
Sistemos iškvietimas yra iškvietimas į sistemoje integruotą paprogramę, o pertraukimas yra įvykis, dėl kurio procesorius laikinai sulaiko esamą vykdymą. Tačiau vienas esminis skirtumas yra tas, kad sistemos skambučiai yra sinchroniniai, o pertraukimai – ne. Tai reiškia, kad sistemos skambučiai įvyksta nustatytu laiku (paprastai nustato programuotojas), tačiau pertraukimai gali įvykti bet kuriuo metu dėl netikėto įvykio, pvz., vartotojo klaviatūros paspaudimo. Todėl, kai įvyksta sistemos iškvietimas, procesorius turi tik prisiminti, kur grįžti, bet pertraukimo atveju procesorius turi prisiminti ir vietą, į kurią reikia grįžti, ir sistemos būseną. Skirtingai nei sistemos iškvietimas, pertraukimas paprastai neturi nieko bendra su dabartine programa.