Diferència entre la trucada del sistema i la trucada de funció

Diferència entre la trucada del sistema i la trucada de funció
Diferència entre la trucada del sistema i la trucada de funció

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

Vídeo: Diferència entre la trucada del sistema i la trucada de funció
Vídeo: Пару слов про InstallPack,Хороший софт? 2024, Juliol
Anonim

Trucada del sistema versus trucada de funció

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

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 per fer-ho per si mateix) des del nucli del sistema operatiu, fa servir 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 utilitza trucades del sistema.

Què és una trucada de funció?

Una trucada de funció també s'anomena trucada de subrutina. Una subrutina (també coneguda com a procediment, funció, mètode o rutina) forma part d'un programa més gran que s'encarrega de dur a terme una tasca específica. El programa més gran pot executar una gran càrrega de treball i la subrutina pot estar realitzant només una tasca senzilla, que també és independent de la codificació del programa restant. Una funció està codificada de tal manera que es pot cridar diverses vegades i des de diferents llocs (fins i tot des d' altres funcions). Quan es crida una funció, el processador pot anar al lloc on resideix el codi de la funció i executar les instruccions de la funció una per una. Després de completar les funcions, el processador tornarà exactament on ho havia deixat i continuarà l'execució a partir de la següent instrucció. Les funcions són una gran eina per a la reutilització del codi. Molts llenguatges de programació moderns admeten funcions. Una col·lecció de funcions s'anomena biblioteca. Les biblioteques s'utilitzen sovint com a mitjans per compartir i comercialitzar programari. En alguns casos, tot el programa podria ser una seqüència de subrutines (p. ex., compilació de codi enfilat).

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

La trucada al sistema és una trucada a una subrutina integrada al sistema, mentre que una trucada a una funció és una trucada a una subrutina dins del programa. A diferència de les trucades de funció, les trucades del sistema s'utilitzen quan un programa necessita realitzar alguna tasca, per a la qual no té privilegis. Les trucades al sistema són punts d'entrada al nucli del sistema operatiu i no estan enllaçades al programa (com les trucades a funcions). A diferència de les trucades de sistema, les trucades de funció són portàtils. La sobrecàrrega de temps d'una trucada al sistema és més que la sobrecàrrega d'una trucada de funció perquè s'ha de produir una transició entre el mode d'usuari i el mode del nucli. Les trucades del sistema s'executen a l'espai d'adreces del nucli, mentre que les trucades de funció s'executen a l'espai d'adreces de l'usuari.

Recomanat: