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: Photoshop CS5 - 5.Анимация 2024, Srpanj
Anonim

Sustavski poziv u odnosu na prekid

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

Što je poziv sustava?

Sistemski pozivi daju programima koji se izvode na računalu sučelje za komunikaciju s operativnim sustavom. Kada program treba zatražiti uslugu (za koju sam nema dopuštenje) od kernela operativnog sustava, koristi se pozivom sustava. Procesi na korisničkoj razini nemaju iste dozvole 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 procesima, program mora koristiti sistemske pozive.

Što je prekid?

Tijekom normalnog izvođenja računalnog programa može doći do događaja koji mogu uzrokovati privremeno zaustavljanje CPU-a. Ovakvi događaji nazivaju se prekidi. Prekidi mogu biti uzrokovani softverskim ili hardverskim greškama. Hardverski prekidi nazivaju se (jednostavno) prekidi, dok se softverski prekidi nazivaju izuzecima ili zamkama. Nakon što se podigne prekid (softverski ili hardverski), kontrola se prenosi na posebnu potprogramu nazvanu ISR (Interrupt Service Routine) koja može rukovati uvjetima koje je pokrenuo prekid.

Kao što je gore spomenuto, pojam Prekid obično je rezerviran za hardverske prekide. To su prekidi kontrole programa uzrokovani vanjskim hardverskim događajima. Ovdje vanjski znači vanjski u odnosu na CPU. Hardverski prekidi obično dolaze iz mnogo različitih izvora kao što su tajmer čip, periferni uređaji (tipkovnice, miš, itd.), I/O portovi (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 povezanog s programom koji se izvršava. Na primjer, događaj kao što je korisnikov pritisak na tipku na tipkovnici ili istek internog hardverskog timera može potaknuti 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. pauzirati trenutni program), pružiti uslugu potrebnu uređaju i vratiti se na normalan program.

Koja je razlika između poziva sustava i prekida?

Sistemski poziv je poziv podrutine ugrađene u sustav, dok je prekid događaj koji uzrokuje da procesor privremeno zadrži trenutno izvršenje. Međutim, jedna velika razlika je u tome što su sistemski pozivi sinkroni, dok prekidi nisu. To znači da se pozivi sustava događaju u fiksno vrijeme (koje obično određuje programer), ali prekidi se mogu dogoditi u bilo kojem trenutku zbog neočekivanog događaja kao što je korisnikov pritisak tipke na tipkovnici. Stoga, kad god se dogodi sistemski poziv, procesor mora zapamtiti samo gdje se treba vratiti, ali u slučaju prekida, procesor mora zapamtiti i mjesto na koje se treba vratiti i stanje sustava. Za razliku od sistemskog poziva, prekid obično nema nikakve veze s trenutnim programom.

Preporučeni: