Sistemos skambutis vs pertraukimas
Įprastas procesorius vykdo instrukcijas po vieną. Tačiau gali būti atvejų, kai procesorius turi laikinai sustoti ir palaikyti esamą nurodymą bei vykdyti kitą programą ar kodo segmentą (gyvenantį kitoje vietoje). Tai atlikęs, procesorius grįžta prie įprasto vykdymo ir tęsia darbą ten, kur baigė. Sistemos skambutis ir pertraukimas yra tokios progos. Sistemos skambutis - tai kvietimas į sistemoje įtaisytą paprogramę. Pertraukimas yra programos valdymo pertraukimas, kurį sukelia išorinės aparatinės įrangos įvykiai.
Kas yra sistemos skambutis?
Sistemos skambučiai teikia programoms, veikiančioms kompiuteryje, sąsają kalbėtis su operacine sistema. Kai programai reikia paprašyti paslaugos (kuriai ji pati neturi leidimo) iš operacinės sistemos branduolio, ji naudoja sistemos kvietimą. Vartotojo lygio procesai neturi tų pačių teisių, kaip procesai, tiesiogiai sąveikaujantys su operacine sistema. Pvz., Norėdama susisiekti su išoriniu įvesties ir išvesties įrenginiu arba su kitais procesais, programa turi naudoti sistemos skambučius.
Kas yra pertraukimas?
Įprasto kompiuterio programos vykdymo metu gali būti įvykių, dėl kurių CPU gali laikinai sustoti. Tokie įvykiai vadinami pertraukimais. Trukdžius gali sukelti programinės įrangos arba aparatinės įrangos gedimai. Techninės įrangos trikdžiai vadinami (paprasčiausiai) pertraukimais, o programinės įrangos trikdžiai - išimtimis arba spąstais. Iškėlus pertraukimą (programinę ar techninę įrangą), valdymas perkeliamas į specialią paprogramę, vadinamą ISR (pertraukiamų paslaugų rutiną), kuri gali valdyti tas sąlygas, kurias sukelia pertraukimas.
Kaip minėta aukščiau, terminas „pertraukimas“ paprastai skirtas aparatinės įrangos pertraukimams. Tai yra programos valdymo pertraukimai, kuriuos sukelia išoriniai aparatūros įvykiai. Čia išorinės priemonės, nepriklausančios procesoriui. Techninės įrangos trikdžiai dažniausiai gaunami iš daugelio skirtingų šaltinių, tokių kaip laikmačio lustas, periferiniai įrenginiai (klaviatūros, pelė ir kt.), Įvesties / išvesties prievadai (nuoseklieji, lygiagrečiai ir tt), diskų įrenginiai, CMOS laikrodis, išplėtimo kortelės (garso plokštė, vaizdo įrašas kortelė ir kt.). Tai reiškia, kad aparatinės įrangos trikdžiai beveik niekada neįvyksta dėl įvykio, susijusio su vykdomąja programa. Pvz., Įvykis, pavyzdžiui, vartotojo klaviatūros paspaudimas arba vidinės aparatinės įrangos laikmačio laikas, gali sukelti tokį trikdymą ir gali pranešti centriniam procesoriui, kad tam tikram įrenginiui reikia skirti šiek tiek dėmesio. Tokioje situacijoje kaip centrinis procesorius sustabdys viską, ką darė (t. Y. Pristabdo dabartinę programą), teiks įrenginiui reikalingas paslaugas ir grįš į įprastą programą..
Kuo skiriasi sistemos kvietimas nuo pertraukimo?
Sistemos skambutis yra skambutis į paprogramę, integruotą į sistemą, o pertraukimas yra įvykis, dėl kurio procesorius laikinai sustabdo 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, pavyzdžiui, vartotojo paspaudimo klaviatūroje. Taigi, kada nors įvykus sistemos skambučiui, procesoriui tereikia atsiminti, kur grįžti, tačiau nutrūkus procesoriui, procesorius turi atsiminti ir grįžimo vietą, ir sistemos būseną. Skirtingai nuo sistemos skambučio, pertraukimas paprastai neturi nieko bendra su dabartine programa.