Különbség A Rendszerhívás és A Megszakítás Között

Különbség A Rendszerhívás és A Megszakítás Között
Különbség A Rendszerhívás és A Megszakítás Között

Videó: Különbség A Rendszerhívás és A Megszakítás Között

Videó: Különbség A Rendszerhívás és A Megszakítás Között
Videó: Oroszország kész megszakítani a kapcsolatot az Európai Unióval 2024, Április
Anonim

Rendszerhívás vs megszakítás

Egy tipikus processzor egyesével hajtja végre az utasításokat. 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 valamilyen más programot vagy kódszegmenst (máshol tartózkodik). Ezt követően a processzor visszatér a normál végrehajtáshoz, és onnan folytatja, ahol abbahagyta. Ilyen alkalom a rendszerhívás és a megszakítás. A rendszerhívás a rendszerbe épített szubrutin hívása. A megszakítás a program vezérlésének megszakítása, amelyet külső hardveresemények okoznak.

Mi az a rendszerhívás?

A rendszerhívások a számítógépen futó programoknak interfészt biztosítanak az operációs rendszerrel való beszélgetéshez. Amikor egy programnak szolgáltatást kell kérnie (amelyre maga nem rendelkezik engedéllyel) az operációs rendszer kerneltől, akkor rendszerhívást használ. A felhasználói szintű folyamatok nem rendelkeznek ugyanazokkal az engedélyekkel, mint az operációs rendszerrel közvetlenül kölcsönhatásban lévő folyamatok. Például egy I / O eszközzel való kommunikációhoz vagy bármely más folyamathoz való interakcióhoz a programnak rendszerhívásokat kell használnia.

Mi az a megszakítás?

A számítógépes program normál futtatása során előfordulhatnak olyan események, amelyek a CPU ideiglenes leállását okozhatják. Az ilyen eseményeket megszakításoknak nevezzük. A megszakításokat szoftveres vagy hardveres hibák okozhatják. A hardveres megszakításokat (egyszerűen) megszakításoknak, míg a szoftveres megszakításokat kivételeknek vagy csapdáknak nevezzük. Amint egy megszakítás (szoftver vagy hardver) felvetődik, a vezérlő átkerül egy speciális szubrutinra, az úgynevezett ISR-re (Interrupt Service Routine), amely képes kezelni a megszakítás által felvetett feltételeket.

Mint fent említettük, az Interrupt kifejezést általában hardveres megszakításoknak tartják fenn. Ezek külső hardveresemények által okozott programszabályozási megszakítások. Itt a külső azt jelenti, hogy a CPU-n kívül van. A hardveres megszakítások általában sokféle forrásból származnak, például időzítő chip, perifériás eszközök (billentyűzetek, egér stb.), I / O portok (soros, párhuzamos stb.), Lemezmeghajtók, CMOS óra, bővítőkártyák (hangkártya, video) kártya stb.). Ez azt jelenti, hogy a végrehajtó programhoz kapcsolódó valamilyen esemény miatt a hardveres megszakítás szinte soha nem történik meg. Például egy olyan esemény, mint a billentyűzet billentyű általi megnyomása a felhasználó által, vagy egy belső hardveres időzítő időzítése emelheti ezt a fajta megszakítást, és tájékoztathatja a CPU-t arról, hogy egy bizonyos eszköz némi figyelmet igényel. Ilyen helyzetben a CPU leállítja bármit is (azaz szünetelteti az aktuális programot),biztosítja a készülék á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 a rendszerbe épített szubrutin hívása, míg a megszakítás olyan esemény, amely a processzort ideiglenesen az aktuális végrehajtás megtartására készteti. Az egyik fő különbség azonban az, hogy a rendszerhívások szinkronosak, míg a megszakítások nem. Ez azt jelenti, hogy a rendszerhívások rögzített időpontban történnek (általában a programozó határozza meg), de megszakítások bármikor bekövetkezhetnek olyan váratlan esemény miatt, mint például a felhasználó által megnyomott billentyű. Ezért amikor valaha is rendszerhívás történik, a processzornak csak arra kell emlékeznie, hogy hová térjen vissza, de megszakítás esetén a processzornak emlékeznie kell a visszatérés helyére és a rendszer állapotára is. A rendszerhívástól eltérően a megszakításnak általában semmi köze az aktuális programhoz.

Ajánlott: