Rendszerhívás vs Funkcionális hívás
Egy tipikus processzor az utasításokat egyenként hajtja végre. De előfordulhatnak olyan esetek, amikor a processzornak le kell állítania az aktuális utasításokat, és végre kell hajtania egy másik programot vagy kódszegmenst (egy másik helyen kell tartózkodnia). Ezt követően a processzor visszatér a normál végrehajtáshoz, és folytatja onnan, ahonnan abbahagyta. A rendszerhívás és a funkcionális hívás ilyenek. A rendszerhívás a rendszerbe beépített szubrutin hívása. A függvényhívás egy alprogramba való hívás a programon belül.
Mi az a rendszerhívás??
A rendszerhívások a számítógépen futó programok felületét biztosítják az operációs rendszerrel való kommunikációhoz. Ha egy programnak szolgáltatást kell kérnie (amelyre önmagában nem rendelkezik engedéllyel) az operációs rendszer kerneléből, akkor rendszerhívást indít. A felhasználói szintű folyamatok nem rendelkeznek azonos engedélyekkel, mint az operációs rendszerrel közvetlenül kölcsönhatásba lépő folyamatok. Például, ha kommunikálni akarunk a külső I / O eszközökkel vagy más folyamatokkal, vagy bármilyen más folyamattal kapcsolatba lépünk, egy program rendszerhívásokat használ.
Mi az a funkcióhívás??
A funkcióhívást szubrutin hívásnak is hívják. Az alprogram (eljárásként, funkcióként, módszerként vagy rutinként is ismert) egy nagyobb program része, amely egy adott feladat végrehajtásáért felel. A nagyobb program nagy munkaterhet képes végrehajtani, és az alprogram csak egy egyszerű feladatot hajthat végre, amely szintén független a fennmaradó programkódolástól. Egy funkciót úgy kódolnak, hogy többször és más helyekről is hívható (akár más funkciókból is). Amikor egy függvényt meghívnak, a processzor eljuthat oda, ahol a funkció kódja található, és egyenként végrehajthatja a funkció utasításait. A funkciók elvégzése után a processzor visszatér pontosan ott, ahol abbahagyta, és a következő utasítástól kezdve folytatja a végrehajtást. A funkciók kiváló eszköz a kód újrafelhasználásához. Számos modern programozási nyelv támogatja a funkciókat. A függvények gyűjteményét könyvtárnak nevezzük. A könyvtárakat gyakran használják szoftverek megosztására és kereskedelmére. Egyes esetekben a teljes program alprogramok lehet egy sorozat (például menetes kód-összeállítás).
Mi a különbség a rendszerhívás és a funkcionális hívás között??
A rendszerhívás a rendszerbe beépített szubrutin hívása, míg a funkcionális hívás a programon belüli szubrutin hívása. A funkcionális hívásoktól eltérően a rendszerhívásokat akkor használják, amikor a programnak valamilyen feladatot kell elvégeznie, amelyre nincs jogosultsága. A rendszerhívások az operációs rendszer kernelének belépési pontjai, és nem kapcsolódnak a programhoz (mint például a funkcionális hívások). A rendszerhívásokkal ellentétben a funkcióhívások hordozhatóak. A rendszerhívás időbeli fölénye több, mint egy funkcionális hívás fölénye, mivel a felhasználói mód és a kernel mód közötti átmenetnek meg kell történnie. A rendszerhívásokat a kernel címterében hajtjuk végre, míg a funkcionális hívásokat a felhasználói címtérben.