Razlika između sistemskog poziva i prekida

Razlika između sistemskog poziva i prekida
Razlika između sistemskog poziva i prekida

Video: Razlika između sistemskog poziva i prekida

Video: Razlika između sistemskog poziva i prekida
Video: Релиз Java 17 и Windows 11. Платный Docker и новые MacBook от Apple [MJC News #9] 2024, Juli
Anonim

System Call vs Interrupt

Tipični procesor izvršava instrukcije jednu po jednu. Ali mogu postojati prilike kada se procesor mora privremeno zaustaviti i zadržati trenutnu instrukciju i izvršiti neki drugi program ili segment koda (koji se nalazi na nekom drugom mjestu). Nakon što to uradi, procesor se vraća u normalno izvršavanje i nastavlja odakle je stao. Sistemski poziv i prekid su takve prilike. Sistemski poziv je poziv potprogramu ugrađenom u sistem. Prekid je prekid kontrole programa uzrokovan vanjskim hardverskim događajima.

Šta je sistemski poziv?

Sistemski pozivi pružaju programima koji rade na računaru interfejs za razgovor sa operativnim sistemom. Kada program treba da zatraži uslugu (za koju sam nema dozvolu) od kernela operativnog sistema, koristi sistemski poziv. Procesi na korisničkom nivou nemaju iste dozvole kao procesi koji direktno komuniciraju sa operativnim sistemom. Na primjer, za komunikaciju sa vanjskim I/O uređajem ili za interakciju s bilo kojim drugim procesom, program mora koristiti sistemske pozive.

Šta je prekid?

Tokom normalnog izvršavanja kompjuterskog programa, može doći do događaja koji mogu uzrokovati da se CPU privremeno zaustavi. Događaji poput ovog nazivaju se prekidima. Prekidi mogu biti uzrokovani ili softverskim ili hardverskim greškama. Hardverski prekidi se nazivaju (jednostavno) prekidi, dok se softverski prekidi nazivaju izuzeci ili zamke. Jednom kada je prekinut (softverski ili hardverski) pokrenut, kontrola se prenosi na poseban potprogram koji se zove ISR (Interrupt Service Routine) koji može upravljati uvjetima koje je pokrenuo prekid.

Kao što je gore pomenuto, termin prekid je obično rezervisan za hardverske prekide. To su prekidi kontrole programa uzrokovani vanjskim hardverskim događajima. Ovdje eksterno znači eksterno za CPU. Hardverski prekidi obično dolaze iz mnogo različitih izvora kao što su tajmer čip, periferni uređaji (tastature, miš, itd.), I/O portovi (serijski, paralelni, itd.), disk jedinice, 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 povezanog s programom koji se izvršava. Na primjer, događaj poput pritiska na tipku na tipkovnici od strane korisnika ili internog hardverskog tajmera tajmera može izazvati ovu vrstu prekida i može obavijestiti CPU da je određenom uređaju potrebna pažnja. U takvoj situaciji CPU će zaustaviti sve što je radio (tj. pauzirati trenutni program), pružiti uslugu koju uređaj zahtijeva i vratit će se na normalan program.

Koja je razlika između sistemskog poziva i prekida?

Sistemski poziv je poziv potprogramu ugrađenom u sistem, dok je Interrupt događaj, koji uzrokuje da procesor privremeno zadrži trenutno izvršenje. Međutim, jedna velika razlika je u tome što su sistemski pozivi sinhroni, dok prekidi nisu. To znači da se sistemski pozivi dešavaju u određeno vrijeme (obično određuje programer), ali prekidi se mogu dogoditi u bilo kojem trenutku zbog neočekivanog događaja kao što je korisnikov pritisak na tipku na tastaturi. Stoga, kada se ikada dogodi sistemski poziv, procesor mora samo zapamtiti gdje da se vrati, ali u slučaju prekida, procesor mora zapamtiti i mjesto na koje se vraća i stanje sistema. Za razliku od sistemskog poziva, prekid obično nema nikakve veze sa trenutnim programom.

Preporučuje se: