Systémové volanie vs prerušenie
Typický procesor vykonáva pokyny jeden po druhom. Môžu sa však vyskytnúť prípady, keď sa procesor musí dočasne zastaviť a držať aktuálnu inštrukciu a vykonať nejaký iný program alebo segment kódu (zdržiavajúci sa na inom mieste). Po vykonaní tohto postupu sa procesor vráti k normálnemu vykonávaniu a pokračuje od miesta, kde prestal. Systémové volanie a prerušenie sú také prípady. Systémové volanie je volanie do podprogramu zabudovaného do systému. Prerušenie je prerušenie riadenia programu spôsobené udalosťami externého hardvéru.
Čo je systémové volanie?
Systémové volania poskytujú programom bežiacim na počítači rozhranie na rozhovor s operačným systémom. Ak program potrebuje požiadať o službu (na ktorú nemá povolenie) z jadra operačného systému, používa systémové volanie. Procesy na úrovni užívateľa nemajú rovnaké povolenia ako procesy priamo interagujúce s operačným systémom. Napríklad na komunikáciu a externé vstupno-výstupné zariadenie alebo na interakciu s inými procesmi musí program používať systémové volania.
Čo je prerušenie?
Počas normálneho vykonávania počítačového programu môžu nastať udalosti, ktoré môžu spôsobiť dočasné zastavenie CPU. Takéto udalosti sa nazývajú prerušenia. Prerušenia môžu byť spôsobené poruchami softvéru alebo hardvéru. Hardvérové prerušenia sa nazývajú (jednoducho) prerušenia, zatiaľ čo softvérové prerušenia sa nazývajú Výnimky alebo pasce. Akonáhle je prerušenie (softvér alebo hardvér) vyvolané, je ovládací prvok prenesený do špeciálneho podprogramu s názvom ISR (Interrupt Service Routine), ktorý dokáže spracovať podmienky vyvolané prerušením..
Ako je uvedené vyššie, pojem prerušenie je zvyčajne vyhradený pre prerušenia hardvéru. Sú to prerušenia riadenia programu spôsobené externými hardvérovými udalosťami. Tu externý znamená externý procesor. Hardvérové prerušenia zvyčajne pochádzajú z mnohých rôznych zdrojov, ako sú napríklad čip s časovačom, periférne zariadenia (klávesnice, myš atď.), Vstupno / výstupné porty (sériové, paralelné atď.), Diskové jednotky, hodiny CMOS, rozširujúce karty (zvuková karta, video karta atď.). To znamená, že k hardvérovým prerušeniam takmer nikdy nedôjde kvôli nejakej udalosti týkajúcej sa vykonávajúceho programu. Napríklad udalosť, ako napríklad stlačenie klávesu na klávesnici používateľom alebo interné hardvérové vypršanie časového limitu, môže spôsobiť tento druh prerušenia a môže informovať CPU, že určité zariadenie potrebuje určitú pozornosť. V takej situácii CPU zastaví čokoľvek, čo robí (t. J. Pozastaví aktuálny program), poskytne službu požadovanú zariadením a vráti sa späť k normálnemu programu..
Aký je rozdiel medzi systémovým volaním a prerušením?
Systémové volanie je volanie do podprogramu zabudovaného do systému, zatiaľ čo prerušenie je udalosť, ktorá spôsobí, že procesor dočasne drží aktuálne vykonanie. Jedným z hlavných rozdielov je však to, že systémové hovory sú synchrónne, zatiaľ čo prerušenia nie sú. To znamená, že systémové volania sa vyskytujú v pevne stanovenom čase (zvyčajne určujú programátori), ale prerušenia sa môžu vyskytnúť kedykoľvek v dôsledku neočakávanej udalosti, ako je napríklad stlačenie klávesu užívateľom na klávesnici. Preto, kedykoľvek dôjde k systémovému volaniu, procesor si musí pamätať, kam sa má vrátiť, ale v prípade prerušenia si musí pamätať miesto, kam sa vrátiť, ako aj stav systému. Na rozdiel od systémového volania prerušenie zvyčajne nemá nič spoločné s aktuálnym programom.