Sistemos skambutis vs pertraukimas
Įprastas procesorius vykdo instrukcijas po vieną. Tačiau gali būti atvejų, kai procesorius turi laikinai sustoti ir laikyti esamą instrukciją bei vykdyti kitą programą ar kodo segmentą (gyvenantį kitoje vietoje). Tai padaręs procesorius grįžta į įprastą vykdymą ir tęsia ten, kur baigė. Sistemos skambutis ir pertraukimas yra tokios progos. Sistemos iškvietimas yra skambutis į sistemoje įdiegtą paprogramę. Pertraukimas yra programos valdymo pertraukimas, kurį sukelia išoriniai aparatūros įvykiai.
Kas yra sistemos skambutis?
Sisteminiai skambučiai suteikia kompiuteryje veikiančioms programoms 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 iškvietimą. Vartotojo lygio procesai neturi tų pačių teisių kaip ir procesai, tiesiogiai sąveikaujantys su operacine sistema. Pavyzdžiui, norint bendrauti su išoriniu įvesties / išvesties įrenginiu arba sąveikauti su bet kokiais kitais procesais, programa turi naudoti sistemos skambučius.
Kas yra pertraukimas?
Įprastai vykdant kompiuterinę programą, gali būti įvykių, dėl kurių procesorius gali laikinai sustoti. Tokie įvykiai kaip šis vadinami pertraukimais. Pertraukimus gali sukelti programinės įrangos arba aparatinės įrangos gedimai. Aparatinės įrangos pertraukimai vadinami (tiesiog) pertraukimais, o programinės įrangos pertraukimai - išimtimis arba spąstais. Iškėlus pertraukimą (programinę ar aparatinę įrangą), valdiklis perkeliamas į specialų paprogramę, vadinamą ISR („Interrupt Service Routine“), kuri gali valdyti pertraukimo keliamas sąlygas.
Kaip minėta pirmiau, terminas „Nutraukti“paprastai yra skirtas aparatūros pertraukimams. Tai programos valdymo sutrikimai, kuriuos sukelia išoriniai aparatūros įvykiai. Čia išorinė reiškia išorinę procesoriaus dalį. Aparatinės įrangos pertraukimai paprastai gaunami iš daugybės skirtingų šaltinių, tokių kaip laikmačio lustas, periferiniai įrenginiai (klaviatūros, pelė ir kt.), I / O prievadai (nuoseklusis, lygiagretusis ir kt.), Diskų įrenginiai, CMOS laikrodis, plėtotės kortelės (garso plokštė, vaizdo įrašai kortelę ir pan.). Tai reiškia, kad aparatinės įrangos sutrikimai beveik niekada neįvyksta dėl įvykio, susijusio su vykdančiąja programa. Pvz., Įvykis, pavyzdžiui, klaviatūros klavišo paspaudimas vartotojui, arba vidinis aparatūros laikmačio laikas, gali sukelti tokio pobūdžio pertraukimą ir informuoti centrinį procesorių, kad tam tikram įrenginiui reikia skirti šiek tiek dėmesio. Tokioje situacijoje procesorius sustabdys viską, ką darė (t. Y. Pristabdys dabartinę programą),teikia prietaisui reikalingą paslaugą ir grįš į įprastą programą.
Kuo skiriasi sistemos skambutis nuo pertraukimo?
Sistemos iškvietimas yra iškvietimas į sistemoje integruotą paprogramę, o pertraukimas yra įvykis, dėl kurio procesorius laikinai sulaiko dabartinį vykdymą. Tačiau vienas esminis skirtumas yra tas, kad sistemos skambučiai yra sinchroniški, 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 tik įvyksta sistemos iškvietimas, procesorius turi tik prisiminti, kur grįžti, tačiau pertraukimo atveju procesorius turi prisiminti ir vietą, į kurią reikia grįžti, ir sistemos būseną. Skirtingai nuo sistemos skambučio, pertraukimas paprastai neturi nieko bendro su dabartine programa.