Sustavni poziv vs funkcijski poziv
Tipični procesor izvršava upute jednu po jednu. No mogu se dogoditi slučajevi da procesor mora zaustaviti trenutnu instrukciju i 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 poziv funkcije su takve prigode. Sustavni poziv je poziv na podprogram ugrađen u sustav. Poziv funkcije je poziv na podprogram unutar samog programa.
Š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 on nema dozvolu za to) od 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 koristi sistemske pozive.
Što je funkcijski poziv?
Poziv funkcije naziva se i poziv podprograma. Potprogram (poznat i kao postupak, funkcija, metoda ili rutina) dio je većeg programa koji je odgovoran za izvršavanje određenog zadatka. Veći program može izvršiti veliko radno opterećenje, a podprogram može obavljati samo jednostavan zadatak, koji je također neovisan o preostalom kodiranju programa. Funkcija je kodirana na takav način da se može nazivati više puta i s različitih mjesta (čak i iz ostalih funkcija). Kad se funkcija nazove, procesor može otići do mjesta gdje ostaje kod za funkciju i izvršavati upute funkcije jednu po jednu. Nakon dovršetka funkcija, procesor će se vratiti tamo gdje je stao i nastaviti izvršenje počevši od sljedeće upute. Funkcije su odličan alat za ponovnu upotrebu koda. Mnogi suvremeni programski jezici podržavaju funkcije. Zbirka funkcija naziva se knjižnica. Knjižnice se često koriste kao sredstva za razmjenu i trgovanje softverom. U nekim slučajevima, cijeli program može biti redoslijed podprograma (npr. Navođena kompilacija koda).
Koja je razlika između sistemskog poziva i funkcijskog poziva?
Sustavni poziv je poziv na podprogramu ugrađenu u sustav, dok je poziv funkcije poziv na podprogram unutar programa. Za razliku od funkcionalnih poziva, sistemski pozivi se koriste kada program mora obaviti neki zadatak, za koji nema privilegiju. Sustavni pozivi su ulazne točke u jezgri operacijskog sustava i nisu povezani s programom (poput funkcija poziva). Za razliku od sistemskih poziva, funkcijski pozivi su prenosivi. Vrijeme pretplate sistemskog poziva veće je od nadzemne cijene za poziv funkcije jer se mora izvršiti prijelaz između korisničkog načina i načina jezgre. Sistemski pozivi se izvode u adresnom prostoru kernele, dok se pozivi funkcija izvršavaju u korisničkom adresnom prostoru.