Sistemski klic vs prekinitev
Tipični procesor izvrši navodila eno za drugo. Vendar se lahko zgodi, da se mora procesor začasno ustaviti in zadržati trenutno navodilo ter zagnati kakšen drug program ali kodni segment (stalno na drugem mestu). Po tem se procesor vrne v normalno izvajanje in nadaljuje od tam, kjer je končal. Takšna priložnost sta sistemski klic in prekinitev. Sistemski klic je klic podprogramu, ki je vgrajen v sistem. Prekinitev je prekinitev nadzora programa zaradi zunanjih dogodkov strojne opreme.
Kaj je sistemski klic?
Sistemski klici nudijo programom, ki se izvajajo v računalniku, vmesnik za pogovor z operacijskim sistemom. Ko mora program od jedra operacijskega sistema zahtevati storitev (za katero sam nima dovoljenja), uporabi sistemski klic. Procesi na ravni uporabnika nimajo enakih dovoljenj kot procesi, ki neposredno komunicirajo z operacijskim sistemom. Na primer, za komunikacijo z zunanjo I / O napravo ali za interakcijo s katerimi koli drugimi procesi mora program uporabljati sistemske klice.
Kaj je prekinitev?
Med običajnim izvajanjem računalniškega programa lahko pride do dogodkov, zaradi katerih se lahko CPU začasno ustavi. Takšni dogodki se imenujejo prekinitve. Prekinitve lahko povzročijo napake programske ali strojne opreme. Prekinitve strojne opreme se imenujejo (preprosto) prekinitve, programske prekinitve pa izjeme ali pasti. Ko se prekinitev (programska ali strojna oprema) dvigne, se nadzor prenese v posebno podprogram, imenovan 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 zaradi zunanjih dogodkov strojne opreme. Tu zunanje pomeni zunanje CPE. Prekinitve strojne opreme običajno prihajajo iz številnih različnih virov, kot so časovni čip, zunanje naprave (tipkovnice, miška itd.), V / I vrata (serijska, vzporedna itd.), Diskovni pogoni, ura CMOS, razširitvene kartice (zvočna kartica, video kartico itd.). To pomeni, da zaradi nekaterih dogodkov, povezanih z izvršilnim programom, skoraj nikoli ne pride do prekinitev strojne opreme. Na primer dogodek, kot je pritisk tipke na tipkovnici s strani uporabnika, ali časovna omejitev internega časovnika strojne opreme lahko povzroči tovrstno prekinitev in lahko obvesti CPU, da določena naprava potrebuje nekaj pozornosti. V takšni situaciji bo CPU ustavil vse, kar je počel (tj. Zaustavil trenutni program),zagotavlja 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 glavnih razlik v tem, da so sistemski klici sinhroni, prekinitve pa ne. To pomeni, da se sistemski klici zgodijo ob določenem času (običajno ga določi programer), vendar lahko pride do prekinitev kadar koli zaradi nepričakovanega dogodka, na primer, ko uporabnik pritisne tipko na tipkovnici. Zato se mora procesor, kadar koli pride do sistemskega klica, samo spomniti, kam naj se vrne, v primeru prekinitve pa si mora procesor zapomniti tako kraj, kamor naj se vrne, kot tudi stanje sistema. Za razliko od sistemskega klica prekinitev običajno nima nič skupnega s trenutnim programom.