Razlika med sistemskim klicem in funkcijskim klicem

Sistemski klic in funkcijski klic

Običajni procesor eno za drugim izvaja navodila. Lahko pa pride do primerov, ko mora procesor ustaviti trenutni pouk in izvesti kakšen drug programski ali kodni segment (ki prebiva na drugem mestu). Po tem se procesor vrne v običajno izvedbo in nadaljuje tam, kjer je izklopljen. Sistemski klic in klic funkcije sta takšni priložnosti. Sistemski klic je klic podprogramu, ki je vgrajen v sistem. Klic funkcije je klic na podprogram znotraj samega programa.

Kaj je sistemski klic?

Sistemski klici zagotavljajo programom, ki se izvajajo v računalniku, vmesnik za pogovor z operacijskim sistemom. Ko mora program zahtevati storitev (za katero nima dovoljenja, da to stori sam) iz jedra operacijskega sistema, uporabi sistemski klic. Procesi na ravni uporabnikov nimajo enakih dovoljenj kot procesi, ki neposredno vplivajo na operacijski sistem. Na primer, program za komunikacijo z in zunanjo V / I napravo ali za interakcijo z drugimi procesi uporablja sistemske klice.

Kaj je funkcijski klic?

Klic funkcije se imenuje tudi klic podprograma. Podprogram (znan tudi kot postopek, funkcija, metoda ali rutina) je del večjega programa, ki je odgovoren za izvedbo določene naloge. Večji program lahko opravi veliko delovno obremenitev in podprogram morda opravlja preprosto nalogo, ki ni odvisna od kodiranja preostalega programa. Funkcija je kodirana tako, da jo lahko kličemo večkrat in z različnih krajev (tudi znotraj drugih funkcij). Ko se pokliče funkcija, lahko procesor odide, kje prebiva koda funkcije, in izvrši navodila funkcije eno za drugo. Po končanih funkcijah se bo procesor vrnil točno tam, kjer je izpuščen, in nadaljeval z izvajanjem, začenši z naslednjim navodilom. Funkcije so odlično orodje za ponovno uporabo kode. Številni sodobni programski jeziki podpirajo funkcije. Zbirka funkcij se imenuje knjižnica. Knjižnice se pogosto uporabljajo kot sredstva za izmenjavo in trgovanje s programsko opremo. V nekaterih primerih je celoten program lahko zaporedje podprogramov (npr. Navojna kompilacija).

Kakšna je razlika med sistemskim klicem in funkcijskim klicem?

Sistemski klic je klic podprogramu, ki je vgrajen v sistem, medtem ko je funkcijski klic klic podprogramu znotraj programa. Za razliko od funkcijskih klicev se sistemski klici uporabljajo, kadar mora program opraviti neko nalogo, za katero nima privilegija. Sistemski klici so vstopne točke v jedro operacijskega sistema in niso povezani s programom (kot so funkcijski klici). Za razliko od sistemskih klicev so funkcijski klici prenosni. Časovni reži sistemskega klica so več kot režijski stroški za klic funkcije, ker mora potekati prehod med uporabniškim in jedrskim načinom. Sistemski klici se izvajajo v naslovnem prostoru jedra, medtem ko se funkcijski klici izvajajo v uporabniškem naslovnem prostoru.