Diferența Dintre Apelul De Sistem și întreruperea

Diferența Dintre Apelul De Sistem și întreruperea
Diferența Dintre Apelul De Sistem și întreruperea

Video: Diferența Dintre Apelul De Sistem și întreruperea

Video: Diferența Dintre Apelul De Sistem și întreruperea
Video: Diferența dintre „mi-ești dragă” și „te iubesc” 2024, Decembrie
Anonim

Apel de sistem vs întrerupere

Un procesor tipic execută instrucțiuni unul câte unul. Dar pot exista ocazii în care procesorul trebuie să se oprească temporar și să țină instrucțiunea curentă și să execute un alt program sau segment de cod (care locuiește în alt loc). După ce a făcut acest lucru, procesorul revine la execuția normală și continuă de unde a rămas. Un apel de sistem și o întrerupere sunt astfel de ocazii. Un apel de sistem este un apel către un subrutină încorporat în sistem. O întrerupere este o întrerupere a controlului programului cauzată de evenimente hardware externe.

Ce este un apel de sistem?

Apelurile de sistem oferă programelor care rulează pe computer o interfață pentru a vorbi cu sistemul de operare. Atunci când un program trebuie să solicite un serviciu (pentru care nu are el însuși permisiunea) de la nucleul sistemului de operare, acesta folosește un apel de sistem. Procesele la nivel de utilizator nu au aceleași permisiuni ca procesele care interacționează direct cu sistemul de operare. De exemplu, pentru a comunica cu un dispozitiv I / O extern sau pentru a interacționa cu orice alte procese, un program trebuie să utilizeze apeluri de sistem.

Ce este o întrerupere?

În timpul executării normale a unui program de computer, pot exista evenimente care pot determina oprirea temporară a procesorului. Evenimente de acest gen se numesc întreruperi. Întreruperile pot fi cauzate de erori de software sau hardware. Întreruperile hardware sunt numite (pur și simplu) întreruperi, în timp ce întreruperile software se numesc excepții sau capcane. Odată ce o întrerupere (software sau hardware) este ridicată, controlul este transferat într-un subrutină specială numită ISR (Interrupt Service Routine) care poate gestiona condițiile generate de întrerupere.

După cum sa menționat mai sus, termenul de întrerupere este de obicei rezervat pentru întreruperile hardware. Sunt întreruperi de control al programului cauzate de evenimente hardware externe. Aici, extern înseamnă extern CPU. Întreruperile hardware provin, de obicei, din mai multe surse diferite, cum ar fi cipul cu temporizator, dispozitivele periferice (tastaturi, mouse etc.), porturile I / O (serial, paralel etc.), unitățile de disc, ceasul CMOS, plăcile de expansiune (placa de sunet, video) card etc.). Asta înseamnă că întreruperile hardware nu apar aproape niciodată din cauza unui eveniment legat de programul de executare. De exemplu, un eveniment, cum ar fi o apăsare de tastă pe tastatură de către utilizator, sau o temporizare hardware temporizată internă poate ridica acest tip de întrerupere și poate informa CPU-ul că un anumit dispozitiv are nevoie de o anumită atenție. Într-o astfel de situație CPU va opri orice a făcut (adică întrerupe programul curent),furnizează serviciul cerut de dispozitiv și va reveni la programul normal.

Care este diferența dintre apelul de sistem și întreruperea?

Apelul de sistem este un apel către un subrutină încorporat în sistem, în timp ce întreruperea este un eveniment care determină procesorul să rețină temporar execuția curentă. Cu toate acestea, o diferență majoră este că apelurile de sistem sunt sincrone, în timp ce întreruperile nu. Asta înseamnă că apelurile de sistem au loc la o oră fixă (de obicei determinată de programator), dar întreruperile pot apărea oricând din cauza unui eveniment neașteptat, cum ar fi apăsarea unei taste pe tastatură de către utilizator. Prin urmare, atunci când apare vreodată un apel de sistem, procesorul trebuie doar să-și amintească unde să revină, dar în cazul unei întreruperi, procesorul trebuie să-și amintească atât locul de revenire, cât și starea sistemului. Spre deosebire de un apel de sistem, o întrerupere nu are de obicei nimic de-a face cu programul curent.

Recomandat: