Sustavni poziv vs Prekid
Tipični procesor izvršava upute jednu po jednu. No mogu se dogoditi slučajevi da se procesor mora privremeno zaustaviti i zadržati trenutnu upute te pokrenuti neki drugi program ili segment koda (koji boravi na nekom drugom mjestu). Nakon toga procesor se vraća u normalno izvršavanje i nastavlja tamo gdje je stao. Sustavni poziv i prekid takve su prigode. Sustavni poziv je poziv na podprogram ugrađen u sustav. Prekid je prekid programske kontrole uzrokovan vanjskim događajima hardvera.
Što je sistemski poziv?
Sustavni pozivi pružaju programima koji rade na računalu sučelje za razgovor s operativnim sustavom. Kad program treba zatražiti uslugu (za koju sama nema dozvolu) iz kernela operativnog sustava koristi sistemski poziv. Procesi na razini korisnika nemaju ista dopuštenja kao i procesi koji izravno komuniciraju s operativnim sustavom. Na primjer, za komunikaciju s vanjskim I / O uređajem ili za interakciju s bilo kojim drugim procesima program mora koristiti sistemske pozive.
Što je Prekid?
Tijekom uobičajenog izvršavanja računalnog programa, moglo bi doći do događaja zbog kojih se CPU privremeno zaustavi. Ovakvi događaji nazivaju se prekidi. Prekidi mogu biti uzrokovani greškama u softveru ili hardveru. Prekidi hardvera nazivaju se (jednostavno) Prekidi, dok se softverski prekidi nazivaju Iznimke ili Zamke. Jednom kada je prekid (softverski ili hardverski) povišen, kontrola se prebacuje u posebnu potprogramu zvanu ISR (Interrupt Service Routine) koja može podnijeti uvjete koje podiže prekid.
Kao što je gore spomenuto, pojam Interrupt obično je rezerviran za hardverske prekide. Oni su prekidi kontrole programa uzrokovani vanjskim događajima hardvera. Ovdje su vanjska sredstva koja su vanjska za CPU. Prekidi hardvera najčešće dolaze iz različitih izvora, kao što su tajmer čip, periferni uređaji (tipkovnice, miš itd.), I / O portovi (serijski, paralelni itd.), Pogoni diska, CMOS sat, kartice za proširenje (zvučna kartica, video kartica itd.). To znači da se hardverski prekidi gotovo nikada ne događaju zbog nekog događaja vezanog za izvršni program. Na primjer, događaj poput pritiska tipke na tipkovnici od strane korisnika ili unutarnje vremensko ograničenje vremenskog ograničenja hardvera može potaknuti ovu vrstu prekida i može obavijestiti CPU da određenom uređaju treba malo pažnje. U situaciji poput toga da će CPU zaustaviti sve što je radio (tj. Zaustavio trenutni program), pružit će uslugu koju uređaj zahtijeva i vratit će se u uobičajeni program.
Koja je razlika između sistemskog poziva i prekida?
Sustavni poziv je poziv na podprogram ugrađen u sustav, dok je Interrupt događaj, koji uzrokuje da procesor privremeno zadrži trenutnu izvedbu. Međutim jedna je glavna razlika što su sistemski pozivi sinkroni, dok prekidi nisu. To znači da se sistemski pozivi događaju u određeno vrijeme (obično ih određuje programer), ali do prekida može doći u bilo kojem trenutku zbog neočekivanog događaja, kao što je pritiskanje tipke na tipkovnici od strane korisnika. Stoga, kada se ikad dogodi sistemski poziv, procesor se mora sjetiti samo kamo se treba vratiti, ali u slučaju prekida, procesor mora upamtiti i mjesto povratka i stanje u sustavu. Za razliku od sistemskog poziva, prekid obično nema nikakve veze s trenutnim programom.