Diferència entre la trucada del sistema i la interrupció

Diferència entre la trucada del sistema i la interrupció
Diferència entre la trucada del sistema i la interrupció

Vídeo: Diferència entre la trucada del sistema i la interrupció

Vídeo: Diferència entre la trucada del sistema i la interrupció
Vídeo: Difference between Adobe Media Encoder CS4, CS5 and CS5.5 2024, De novembre
Anonim

Trucada del sistema vs interrupció

Un processador típic executa les instruccions una per una. Però hi pot haver ocasions en què el processador s'hagi d'aturar temporalment i mantenir la instrucció actual i executar algun altre programa o segment de codi (que resideix en un altre lloc). Després de fer això, el processador torna a l'execució normal i continua des d'on es va quedar. Una trucada al sistema i una interrupció són aquestes ocasions. Una trucada al sistema és una trucada a una subrutina integrada al sistema. Una interrupció és una interrupció del control del programa causada per esdeveniments de maquinari externs.

Què és una trucada del sistema?

Les trucades al sistema proporcionen als programes que s'executen a l'ordinador una interfície per parlar amb el sistema operatiu. Quan un programa necessita demanar un servei (per al qual no té permís en si mateix) des del nucli del sistema operatiu, utilitza una trucada al sistema. Els processos a nivell d'usuari no tenen els mateixos permisos que els processos que interactuen directament amb el sistema operatiu. Per exemple, per comunicar-se amb un dispositiu d'E/S extern o per interactuar amb qualsevol altre procés, un programa ha d'utilitzar trucades del sistema.

Què és una interrupció?

Durant l'execució normal d'un programa informàtic, hi pot haver esdeveniments que poden fer que la CPU s'atura temporalment. Esdeveniments com aquest s'anomenen interrupcions. Les interrupcions poden ser causades per errors de programari o de maquinari. Les interrupcions de maquinari s'anomenen (simplement) interrupcions, mentre que les interrupcions de programari s'anomenen excepcions o trampes. Un cop generada una interrupció (programari o maquinari), el control es transfereix a una subrutina especial anomenada ISR (Interrupt Service Routine) que pot gestionar les condicions que genera la interrupció.

Com s'ha esmentat anteriorment, el terme interrupció normalment es reserva per a interrupcions de maquinari. Són interrupcions de control del programa causades per esdeveniments de maquinari extern. Aquí, extern significa extern a la CPU. Les interrupcions de maquinari solen venir de moltes fonts diferents, com ara xip de temporitzador, dispositius perifèrics (teclats, ratolí, etc.), ports d'E/S (sèrie, paral·lel, etc.), unitats de disc, rellotge CMOS, targetes d'expansió (targeta de so, vídeo). targeta, etc.). Això significa que les interrupcions de maquinari gairebé mai no es produeixen a causa d'algun esdeveniment relacionat amb el programa en execució. Per exemple, un esdeveniment com la pressió d'una tecla al teclat per part de l'usuari o un temps d'espera del temporitzador de maquinari intern pot provocar aquest tipus d'interrupció i pot informar a la CPU que un determinat dispositiu necessita una mica d'atenció. En una situació com aquesta, la CPU aturarà el que estigués fent (és a dir, aturarà el programa actual), proporciona el servei que requereix el dispositiu i tornarà al programa normal.

Quina diferència hi ha entre la trucada del sistema i la interrupció?

La trucada al sistema és una trucada a una subrutina integrada al sistema, mentre que la interrupció és un esdeveniment, que fa que el processador mantingui temporalment l'execució actual. Tanmateix, una diferència important és que les trucades al sistema són sincròniques, mentre que les interrupcions no. Això vol dir que les trucades al sistema es produeixen a una hora fixa (normalment determinada pel programador), però les interrupcions es poden produir en qualsevol moment a causa d'un esdeveniment inesperat, com ara la premsa de tecla del teclat per part de l'usuari. Per tant, quan es produeix una trucada al sistema, el processador només ha de recordar on tornar, però en cas d'interrupció, el processador ha de recordar tant el lloc on tornar com l'estat del sistema. A diferència d'una trucada del sistema, una interrupció normalment no té res a veure amb el programa actual.

Recomanat: