Sistemski klic vs Prekinjen
Običajni procesor eno za drugim izvaja navodila. Lahko pa pride do dogodkov, ko se mora procesor začasno ustaviti in zadržati trenutno navodilo ter izvesti kakšen drug program ali kodni segment (ki prebiva na drugem mestu). Po tem se procesor vrne v normalno izvedbo in nadaljuje tam, kjer je izklopljen. Sistemski klic in prekinitev sta takšni priložnosti. Sistemski klic je klic podprogramu, ki je vgrajen v sistem. Prekinitev je prekinitev nadzora programa, ki jo povzročijo zunanji dogodki strojne opreme.
Kaj je sistemski klic?
Sistemski klici zagotavljajo programom, ki se izvajajo v računalniku, vmesnik za pogovor z operacijskim sistemom. Ko mora program zaprositi za storitev (za katero sam nima dovoljenja) iz jedra operacijskega sistema, uporabi sistemski klic. Procesi na ravni uporabnikov nimajo enakih dovoljenj kot procesi, ki neposredno vplivajo na operacijski sistem. Na primer, za komunikacijo z in zunanjo V / I napravo ali za interakcijo z drugimi procesi mora program uporabljati sistemske klice.
Kaj je prekinitev?
Med običajnim izvajanjem računalniškega programa lahko pride do dogodkov, ki lahko povzročijo, da se CPU začasno ustavi. Taki dogodki se imenujejo prekinitve. Prekinitve lahko povzročijo napake programske ali strojne opreme. Prekinitve strojne opreme se imenujejo (preprosto) Prekinitve, medtem ko programske prekinitve imenujemo Izjeme ali Pasti. Ko je prekinjena prekinitev (programska ali strojna oprema), se kontrola prenese v posebno podprogram ISR (Interrupt Service Routine), ki lahko obravnava pogoje, ki jih povzroči prekinitev.
Kot smo že omenili, je izraz Prekinitev običajno rezerviran za strojne prekinitve. So prekinitve nadzora programa, ki jih povzročijo zunanji dogodki strojne opreme. Tukaj zunanja pomeni zunanji CPU. Prekinitve strojne opreme običajno prihajajo iz različnih virov, kot so časovnik čip, obrobne naprave (tipkovnice, miška itd.), V / I vrata (serijska, vzporedna itd.), Diskovni pogoni, ure CMOS, razširitvene kartice (zvočna kartica, video kartice itd.). To pomeni, da strojne prekinitve skoraj nikoli ne nastanejo zaradi nekega dogodka, povezanega z izvajalnim programom. Na primer, dogodek, kot je pritisk tipke na tipkovnici s strani uporabnika ali interni časovni potek notranjega strojne opreme, lahko povzroči tovrstno prekinitev in lahko obvesti CPU, da določena naprava potrebuje nekaj pozornosti. V takšni situaciji, da bo procesor ustavil vse, kar je počel (tj. Zaustavil trenutni program), zagotovil storitev, ki jo zahteva naprava, in se vrne v običajni program.
Kakšna je razlika med sistemskim klicem in prekinitvijo?
Sistemski klic je klic podprogramu, ki je vgrajen v sistem, medtem ko je Prekinitev dogodek, zaradi katerega procesor začasno zadrži trenutno izvedbo. Vendar je ena velika razlika v tem, da so sistemski klici sinhroni, medtem ko prekinitve niso. To pomeni, da se sistemski klici zgodijo ob določenem času (običajno jih določi programer), vendar pa lahko pride do prekinitev kadar koli zaradi nepričakovanega dogodka, kot je pritisk tipke na tipkovnici s strani uporabnika. Ko se kdaj zgodi sistemski klic, se mora procesor samo spomniti, kam se vrniti, v primeru prekinitve pa si mora procesor zapomniti tako mesto, da se vrne v stanje, kot tudi stanje v sistemu. Za razliko od sistemskega klica prekinitev običajno nima nobene zveze s trenutnim programom.