Systémové volanie vs Volanie funkcie
Typický procesor vykonáva pokyny jeden po druhom. Môžu sa však vyskytnúť prípady, keď procesor musí zastaviť aktuálnu inštrukciu a vykonať nejaký iný program alebo segment kódu (uložený na inom mieste). Po vykonaní tohto postupu sa procesor vráti k normálnemu vykonaniu a pokračuje od miesta, kde prestal. Systémové volanie a volanie funkcie sú také príležitosti. Systémové volanie je volanie do podprogramu zabudovaného v systéme. Volanie funkcie je volanie podprogramu v rámci samotného programu.
Čo je to systémové volanie?
Systémové volania poskytujú programom spusteným v počítači rozhranie na komunikáciu s operačným systémom. Keď program potrebuje z jadra operačného systému požiadať o službu (na ktorú nemá povolenie), použije systémové volanie. Procesy na úrovni používateľa nemajú rovnaké povolenia ako procesy priamo interagujúce s operačným systémom. Napríklad na komunikáciu s externým I / O zariadením alebo na komunikáciu s akýmikoľvek inými procesmi program používa systémové volania.
Čo je to volanie funkcie?
Volanie funkcie sa nazýva aj volanie podprogramu. Podprogram (tiež známy ako postup, funkcia, metóda alebo rutina) je súčasťou väčšieho programu, ktorý je zodpovedný za vykonanie konkrétnej úlohy. Väčší program môže vykonávať veľké pracovné zaťaženie a podprogram môže vykonávať iba jednoduchú úlohu, ktorá je tiež nezávislá od zvyšného programového kódovania. Funkcia je kódovaná takým spôsobom, že ju možno volať viackrát a z rôznych miest (dokonca aj z iných funkcií). Keď sa volá funkcia, procesor môže prejsť na miesto, kde sa nachádza kód funkcie, a vykonávať pokyny funkcie jeden po druhom. Po dokončení funkcií sa procesor vráti presne tam, kde prestal, a bude pokračovať v spustení počnúc nasledujúcou inštrukciou. Funkcie sú skvelým nástrojom na opätovné použitie kódu. Mnoho moderných programovacích jazykov podporuje funkcie. Zbierka funkcií sa nazýva knižnica. Knižnice sa často používajú ako prostriedky na zdieľanie a obchodovanie so softvérom. V niektorých prípadoch môže byť celým programom postupnosť podprogramov (napr. Kompilácia vláknového kódu).
Aký je rozdiel medzi systémovým a funkčným volaním?
Systémové volanie je volanie do podprogramu zabudovaného do systému, zatiaľ čo volanie funkcie je volanie do podprogramu v rámci programu. Na rozdiel od volaní funkcií sa systémové volania používajú, keď program potrebuje na vykonanie nejakej úlohy, na ktorú nemá oprávnenie. Systémové volania sú vstupnými bodmi do jadra operačného systému a nie sú prepojené s programom (napríklad volania funkcií). Na rozdiel od systémových volaní sú hovory funkcií prenosné. Časová réžia systémového volania je viac ako réžia pre volanie funkcie, pretože musí dôjsť k prechodu medzi užívateľským režimom a režimom jadra. Systémové volania sa vykonávajú v adresnom priestore jadra, zatiaľ čo volania funkcií sa vykonávajú v adresnom priestore používateľa.