Sistemos kvietimas vs funkcijos kvietimas
Įprastas procesorius vykdo instrukcijas po vieną. Tačiau gali būti atvejų, kai procesorius turi sustabdyti dabartinę komandą ir vykdyti kitą programą ar kodo segmentą (gyvenantį kitoje vietoje). Tai atlikęs, procesorius grįžta prie įprasto vykdymo ir tęsia darbą ten, kur baigė. Sistemos ir funkcijų kvietimas yra tokios progos. Sistemos skambutis - tai kvietimas į sistemoje įtaisytą paprogramę. Funkcinis skambutis yra skambinimas į paprogramę pačioje programoje.
Kas yra sistemos skambutis?
Sistemos skambučiai teikia programoms, veikiančioms kompiuteryje, sąsają kalbėtis su operacine sistema. Kai programai reikia paprašyti paslaugos (kuriai ji neturi leidimo tai padaryti pati) iš operacinės sistemos branduolio, ji naudoja sistemos kvietimą. Vartotojo lygio procesai neturi tų pačių teisių, kaip procesai, tiesiogiai sąveikaujantys su operacine sistema. Pvz., Programa naudoja sistemos skambučius, norėdama susisiekti su išoriniu įvesties ir išvesties įrenginiu ar išoriniais įrenginiais arba bendrauti su bet kokiais kitais procesais.
Kas yra funkcijos skambutis?
Funkcinis skambutis taip pat vadinamas paprogramės skambučiu. Paprogramė (dar žinoma kaip procedūra, funkcija, metodas ar rutina) yra didesnės programos dalis, atsakinga už konkrečios užduoties vykdymą. Didesnė programa gali atlikti didelį darbo krūvį, o paprogramė gali atlikti tik paprastą užduotį, kuri taip pat nepriklauso nuo likusio programos kodavimo. Funkcija yra užkoduota taip, kad ji gali būti vadinama kelis kartus ir iš skirtingų vietų (net iš kitų funkcijų). Kai iškviečiama funkcija, procesorius gali nueiti ten, kur yra funkcijos kodas, ir po vieną vykdyti funkcijos nurodymus. Baigęs funkcijas, procesorius grįš tiksliai ten, kur baigė, ir tęsia vykdymą, pradedant nuo kitos instrukcijos. Funkcijos yra puikus įrankis pakartotiniam kodo naudojimui. Daugybė šiuolaikinių programavimo kalbų palaiko funkcijas. Funkcijų rinkinys vadinamas biblioteka. Bibliotekos dažnai naudojamos kaip programinės įrangos dalijimosi ir prekybos priemonės. Kai kuriais atvejais visa programa gali būti paprogramių seka (pvz., Srieginio kodo kompiliacija).
Kuo skiriasi sistemos kvietimas ir funkcinis kvietimas?
Sistemos skambutis yra kvietimas į sistemoje įtaisytą paprogramę, o funkcijos skambutis - tai kvietimas į programos paprogramę. Skirtingai nuo funkcijų skambučių, sistemos skambučiai naudojami, kai programai reikia atlikti tam tikrą užduotį, kuriai ji neturi privilegijų. Sistemos kvietimai yra įėjimo taškai į operacinės sistemos branduolį ir nėra susieti su programa (kaip funkcijų kvietimai). Skirtingai nuo sistemos skambučių, funkcijų skambučiai yra nešiojami. Sistemos skambučio pridėtinė vertė yra didesnė nei funkcijos skambučio pridėtinė vertė, nes turi būti perėjimas nuo vartotojo režimo iki branduolio režimo. Sistemos skambučiai vykdomi branduolio adresų erdvėje, o funkcijos skambučiai - vartotojo adresų erdvėje.