Diferența dintre apelul sistemic și apelul funcțional

Anonim

Apel de sistem vs Call Function

Un procesor tipic execută instrucțiunile unul câte unul. Dar pot exista situații în care procesorul trebuie să oprească instruirea curentă și să execute un alt program sau un segment de cod (care locuiesc în alt loc). După aceasta, procesorul revine la execuția normală și continuă de unde a încetat. Un apel de sistem și un apel de funcție sunt astfel de ocazii. Un apel de sistem este un apel către un subrutin construit în sistem. Un apel funcțional este un apel la o subrutină în cadrul programului în sine.

Ce este un apel sistem?

Apelurile de sistem furnizează programelor care rulează pe computer o interfață pentru a vorbi cu sistemul de operare. Când un program trebuie să ceară un serviciu (pentru care nu are permisiunea să facă acest lucru singur) din kernelul sistemului de operare, acesta folosește un apel sistem. Procesele la nivel de utilizator nu au aceleași permisiuni ca și 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 utilizează apeluri de sistem.

Ce este un apel pentru funcții?

Un apel pentru o funcție este numit și un apel de subrutină. O subrutină (cunoscută și ca o procedură, o funcție, o metodă sau o rutină) face parte dintr-un program mai mare, care este responsabil pentru îndeplinirea unei sarcini specifice. Programul mai mare poate executa un volum mare de lucru, iar subrutina poate efectua doar o sarcină simplă, care este, de asemenea, independentă de codificarea programelor rămase. O funcție este codificată astfel încât să se poată numi de mai multe ori și din diferite locuri (chiar și din alte funcții). Când se solicită o funcție, procesorul poate merge acolo unde codul funcției este rezident și execută instrucțiunile funcției unul câte unul. După terminarea funcțiilor, procesorul se va întoarce exact acolo unde a rămas și va continua execuția pornind de la următoarea instrucțiune. Funcțiile sunt un instrument excelent pentru reutilizarea codului. Multe limbi moderne de programare suportă funcții. O colecție de funcții este numită bibliotecă. Bibliotecile sunt adesea folosite ca mijloc de partajare și comercializare de software. În unele cazuri, întregul program ar putea fi o secvență de subrutine (de exemplu, compilarea de coduri filetate).

Care este diferența dintre apelul de sistem și apelul funcțional?

Apelul de sistem este un apel către un subrutină încorporată în sistem, în timp ce un apel pentru funcții este un apel la o subrutină din cadrul programului. Spre deosebire de apelurile de funcții, apelurile de sistem sunt utilizate atunci când un program trebuie să efectueze o anumită sarcină, pentru care nu are privilegiu. Apelurile de sistem sunt puncte de intrare în kernelul sistemului de operare și nu sunt legate de program (cum ar fi apelurile pentru funcții).Spre deosebire de apelurile de sistem, apelurile funcționale sunt portabile. Încărcarea de timp a unui apel de sistem este mai mult decât cheltuielile generale pentru un apel pentru funcții, deoarece trebuie să aibă loc o tranziție între modul de utilizare și modul kernel. Apelurile de sistem sunt executate în spațiul de adrese al kernelului, în timp ce apelurile funcționale sunt executate în spațiul de adrese al utilizatorului.