Rendszerhívás vagy megszakítás
Egy tipikus processzor az utasításokat egyenként hajtja végre. De előfordulhatnak olyan esetek, amikor a processzornak átmenetileg le kell állnia, és tartania kell az aktuális utasítást, és végre kell hajtania egy másik programot vagy kódszegmenst (egy másik helyen lakik). Ezt követően a processzor visszatér a normál végrehajtáshoz, és folytatja onnan, ahonnan abbahagyta. Ilyen esetekben rendszerhívás és megszakítás lehetséges. A rendszerhívás a rendszerbe beépített szubrutin hívása. A megszakítás egy külső vezérlőprogram-megszakítás, amelyet külső hardver események okoztak.
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 nem rendelkezik saját engedélyével) az operációs rendszer kerneléből, akkor a rendszerhívást használja. 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 a kommunikációhoz és a külső I / O eszközhöz, vagy bármilyen más folyamattal 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 végrehajtása során előfordulhatnak olyan események, amelyek miatt a CPU ideiglenesen leállhat. Az ilyen eseményeket megszakításoknak nevezzük. A megszakítást a szoftver vagy a hardver hibája okozhatja. A hardver megszakításokat (egyszerűen) megszakításoknak, a szoftver megszakításokat kivételeknek vagy csapdáknak nevezzük. Ha egy megszakítás (szoftver vagy hardver) felmerült, a vezérlés egy speciális szubrutinba kerül át, az úgynevezett ISR (Interrupt Service Routine), amely képes kezelni a megszakítás által felvetett feltételeket..
Mint fentebb említettük, a Megszakítás kifejezést általában a hardvermegszakításokra kell fenntartani. Ezek a külső hardver események által okozott programvezérlő megszakítások. Itt a CPU-n kívüli külső eszközök vannak. A hardvermegszakítások általában sokféle forrásból származnak, például időzítő chipből, perifériákból (billentyűzetek, egér stb.), I / O portokból (soros, párhuzamos stb.), Lemezmeghajtókból, CMOS órából, bővítőkártyákból (hangkártya, videó) kártya stb.). Ez azt jelenti, hogy a végrehajtó programhoz kapcsolódó események miatt szinte soha nem fordul elő hardver-megszakítás. Például egy esemény, például a felhasználó által a billentyűzeten lenyomott billentyű, vagy a belső hardveridőzítő időkorlátja növeli az ilyen típusú megszakítást, és tájékoztathatja a CPU-t arról, hogy egy adott eszköznek némi figyelmet igényel. Ilyen helyzetben a CPU leállítja, amit tett (azaz megállítja az aktuális programot), biztosítja az eszköz által megkövetelt 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 beépített szubrutin hívása, míg a Megszakítás olyan esemény, amely miatt a processzor ideiglenesen megtartja az aktuális végrehajtást. 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 rögzített időben történnek (általában a programozó határozza meg), de megszakítások bármikor előfordulhatnak egy váratlan esemény miatt, például a felhasználó által a billentyűzeten lenyomva. Ezért ha valaha rendszert hív, akkor a processzornak csak arra kell emlékeznie, hogy hova kell visszatérnie, de megszakítás esetén a processzornak emlékeznie kell a visszatérési helyre és a rendszer állapotára. A rendszerhívástól eltérően a megszakításnak általában semmi köze nincs az aktuális programhoz.