Különbség rendszerhívás és megszakítás

Anonim

Rendszerhívás és megszakítás

Egy tipikus processzor végrehajtja az utasításokat egyenként. De előfordulhatnak olyan esetek, amikor a processzornak ideiglenesen le kell állnia, és meg kell tartania az aktuális utasítást, és végre kell hajtania egy másik programot vagy kódszegmenst (amely más helyen van). Ezt követően a processzor visszatér normál végrehajtássá és folytatódik, ahonnan leállt. Rendszerhívás és megszakítás ilyen alkalmak. A rendszerhívás egy hívás a rendszerbe épített alprogramba. A megszakítás a külső hardveresemények okozta programvezérlő megszakítás.

Mi a rendszerhívás?

A rendszerhívások lehetővé teszik, hogy a számítógépen futó programok futjanak az operációs rendszerrel. Ha egy programnak szüksége van egy olyan szolgáltatásra (amelyhez nem rendelkezik engedélyekkel) az operációs rendszer rendszermagjából, rendszerhívást használ. A felhasználói szintű folyamatok nem rendelkeznek ugyanolyan jogosultságokkal, mint az operációs rendszerrel közvetlenül együttműködő folyamatok. Például a külső és az I / O eszközökkel történő kommunikációhoz vagy bármely más folyamathoz való kapcsolódáshoz a programnak rendszerhívásokat kell használnia.

Mi a megszakítás?

Számítógépes program normál végrehajtása során előfordulhatnak olyan események, amelyek a CPU ideiglenes leállítását okozhatják. Az ilyen eseményeket nevezik megszakításoknak. A megszakításokat szoftveres vagy hardveres hibák okozhatják. A hardveres megszakításokat egyszerűen megszakítják, míg a szoftveres megszakításokat kivételeknek vagy csapdáknak nevezik. A megszakítás (szoftver vagy hardver) felemelése után a vezérlés átkerül egy speciális, az interrupt szolgáltatás rutin (ISR) nevű szubrutinába, amely képes kezelni a megszakítás által felvetett feltételeket.

Amint fentebb említettük, a Megszakítás kifejezést rendszerint hardveres megszakításokra fenntartjuk . Ezek a programok a külső hardveresemények által okozott programellenőrző megszakítások. Itt a külső CPU-n kívüli eszközök . A hardveres megszakítások általában többféle forrásból származnak: időzítő chip, perifériák (billentyűzetek, egér stb.), I / O portok (soros, párhuzamos stb.), Lemezmeghajtók, CMOS óra, kártya, videokártya stb.). Ez azt jelenti, hogy a hardveres megszakítások szinte soha nem fordulnak elő a végrehajtó programhoz kapcsolódó események miatt. Például olyan esemény, mint például a billentyűzet billentyűzet általi megnyomása a felhasználó által, vagy a belső hardveres időzítés időzítése, felkeltheti ezt a megszakítást, és tájékoztathatja a CPU-t, hogy egy bizonyos eszköz valamilyen figyelmet igényel. Ilyen helyzetben a CPU leállítja bármit is (azaz megállítja az aktuális programot), biztosítja az eszköz által igényelt szolgáltatást, és visszatér a normál programhoz.

Mi a különbség a rendszerhívás és a megszakítás között?

A rendszerhívás hívás a rendszerbe épített alprogramhoz, míg a Megszakítás olyan esemény, amely a processzort ideiglenesen megtartja az aktuális végrehajtás során. Azonban az egyik fő különbség az, hogy a rendszerhívások szinkronak, míg a megszakítások nem. Ez azt jelenti, hogy a rendszerhívások meghatározott időpontban (rendszerint a programozó határozza meg), de a megszakítások bármikor előfordulhatnak váratlan esemény miatt, például a billentyűzet billentyűin történő megnyomásával. Ezért amikor rendszeres hívás történik, a processzornak csak arra kell emlékeznie, hogy hova térjen vissza, de megszakítás esetén a processzornak mind a helyet és a rendszer állapotát meg kell emlékeznie. A rendszerhívástól eltérően a megszakításnak általában nincs semmi köze az aktuális programhoz.