Sistemski poziv vs prekid
Tipični procesor izvršava upute jednu po jednu. Ali mogu biti prilike kada se procesor mora privremeno zaustaviti i zadržati trenutnu uputu te izvršiti neki drugi program ili segment koda (koji se nalazi na nekom drugom mjestu). Nakon toga procesor se vraća u normalno izvršenje i nastavlja od tamo gdje je stao. Sistemski poziv i prekid takve su prilike. Sistemski poziv je poziv potprogramu ugrađenom u sustav. Prekid je prekid upravljanja programom uzrokovan vanjskim hardverskim događajima.
Što je sistemski poziv?
Sistemski pozivi pružaju programima koji se izvode na računalu sučelje za razgovor s operativnim sustavom. Kada program treba tražiti uslugu (za koju sam nema dozvolu) od jezgre operativnog sustava, koristi sistemski poziv. Procesi na korisničkoj razini nemaju ista dopuštenja kao procesi koji izravno komuniciraju s operativnim sustavom. Na primjer, za komunikaciju s vanjskim I / O uređajem ili za interakciju s bilo kojim drugim procesom, program mora koristiti sistemske pozive.
Što je prekid?
Tijekom normalnog izvršavanja računalnog programa, moglo bi doći do događaja koji mogu uzrokovati privremeni zaustavljanje CPU-a. Događaji poput ovog nazivaju se prekidima. Prekide mogu uzrokovati softverske ili hardverske greške. Hardverski prekidi nazivaju se (jednostavno) prekidima, dok se softverski prekidi nazivaju Iznimke ili Zamke. Jednom kada se podigne prekid (softver ili hardver), kontrola se prenosi u posebnu potprogram koji se naziva ISR (Interrupt Service Rutine) koji može obraditi uvjete koje prekid pokreće.
Kao što je gore spomenuto, izraz Prekid obično je rezerviran za hardverske prekide. Oni su prekidi upravljanja programom uzrokovani vanjskim hardverskim događajima. Ovdje vanjsko znači izvan CPU-a. Hardverski prekidi obično dolaze iz mnogih različitih izvora kao što su timer čip, periferni uređaji (tipkovnice, miš, itd.), I / O priključci (serijski, paralelni itd.), Diskovni pogoni, CMOS sat, kartice za proširenje (zvučna kartica, video kartica itd.). To znači da se hardverski prekidi gotovo nikad ne događaju zbog nekog događaja vezanog uz izvršni program. Na primjer, događaj poput pritiska tipke od strane korisnika ili vremenskog ograničenja internog hardverskog odbrojavanja može povećati ovu vrstu prekida i može obavijestiti CPU da određeni uređaj treba malo pažnje. U takvoj situaciji CPU će zaustaviti sve što je radio (tj. Zaustaviti trenutni program),pruža uslugu koju zahtijeva uređaj i vratit će se na uobičajeni program.
Koja je razlika između sistemskog poziva i prekida?
Poziv sustava je poziv potprogramu ugrađenom u sustav, dok je Prekid događaj koji uzrokuje da procesor privremeno zadrži trenutno izvršavanje. Međutim, jedna od glavnih razlika je u tome što su sistemski pozivi sinkroni, dok prekidi nisu. To znači da se sistemski pozivi javljaju u određeno vrijeme (obično ga određuje programer), ali prekidi se mogu dogoditi u bilo kojem trenutku zbog neočekivanog događaja, poput pritiska tipke od strane korisnika. Stoga, kada se ikad dogodi sistemski poziv, procesor se mora samo sjetiti kamo se vratiti, ali u slučaju prekida, procesor mora zapamtiti i mjesto na koje se vraća i stanje sustava. Za razliku od sistemskog poziva, prekid obično nema nikakve veze s trenutnim programom.